[project @ 1997-09-05 14:11:05 by simonm]
authorsimonm <unknown>
Fri, 5 Sep 1997 14:20:25 +0000 (14:20 +0000)
committersimonm <unknown>
Fri, 5 Sep 1997 14:20:25 +0000 (14:20 +0000)
Mondo commit to get tests working.

433 files changed:
ghc/tests/Makefile
ghc/tests/ccall/Makefile [new file with mode: 0644]
ghc/tests/ccall/should_compile/Makefile
ghc/tests/ccall/should_compile/cc001.stderr
ghc/tests/ccall/should_compile/cc002.stderr [deleted file]
ghc/tests/ccall/should_compile/cc003.stderr
ghc/tests/ccall/should_compile/cc005.stderr
ghc/tests/ccall/should_compile/cc006.stderr
ghc/tests/ccall/should_compile/cc007.hs [deleted file]
ghc/tests/ccall/should_compile/cc007.stderr [deleted file]
ghc/tests/ccall/should_fail/Makefile [new file with mode: 0644]
ghc/tests/ccall/should_fail/cc002.hs [moved from ghc/tests/ccall/should_compile/cc002.hs with 100% similarity]
ghc/tests/ccall/should_fail/cc002.stderr [new file with mode: 0644]
ghc/tests/ccall/should_fail/cc004.hs [moved from ghc/tests/ccall/should_compile/cc004.hs with 100% similarity]
ghc/tests/ccall/should_fail/cc004.stderr [moved from ghc/tests/ccall/should_compile/cc004.stderr with 70% similarity]
ghc/tests/codeGen/Makefile [new file with mode: 0644]
ghc/tests/codeGen/cg018.stdout [deleted file]
ghc/tests/codeGen/cg034.hs [deleted file]
ghc/tests/codeGen/cg035.stdout [deleted file]
ghc/tests/codeGen/cg041.hs [deleted file]
ghc/tests/codeGen/should_run/Makefile [new file with mode: 0644]
ghc/tests/codeGen/should_run/cg001.hs [moved from ghc/tests/codeGen/cg001.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg001.stdout [moved from ghc/tests/codeGen/cg001.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg002.hs [moved from ghc/tests/codeGen/cg002.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg002.stdout [moved from ghc/tests/codeGen/cg002.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg003.hs [moved from ghc/tests/codeGen/cg003.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg003.stdout [moved from ghc/tests/codeGen/cg003.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg004.hs [moved from ghc/tests/codeGen/cg004.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg004.stdout [moved from ghc/tests/codeGen/cg004.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg005.hs [moved from ghc/tests/codeGen/cg005.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg005.stdout [moved from ghc/tests/codeGen/cg005.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg006.hs [moved from ghc/tests/codeGen/cg006.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg006.stdout [moved from ghc/tests/codeGen/cg006.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg007.hs [moved from ghc/tests/codeGen/cg007.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg007.stdout [moved from ghc/tests/codeGen/cg007.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg008.hs [moved from ghc/tests/codeGen/cg008.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg008.stdout [moved from ghc/tests/codeGen/cg008.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg009.hs [moved from ghc/tests/codeGen/cg009.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg009.stdout [moved from ghc/tests/codeGen/cg009.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg010.hs [moved from ghc/tests/codeGen/cg010.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg010.stdout [moved from ghc/tests/codeGen/cg010.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg011.hs [moved from ghc/tests/codeGen/cg011.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg011.stdout [moved from ghc/tests/codeGen/cg011.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg012.hs [moved from ghc/tests/codeGen/cg012.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg012.stdout [moved from ghc/tests/codeGen/cg012.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg013.hs [moved from ghc/tests/codeGen/cg013.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg013.stdout [moved from ghc/tests/codeGen/cg013.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg014.hs [moved from ghc/tests/codeGen/cg014.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg014.stdout [moved from ghc/tests/codeGen/cg014.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg015.hs [moved from ghc/tests/codeGen/cg015.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg015.stdout [moved from ghc/tests/codeGen/cg015.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg016.hs [moved from ghc/tests/codeGen/cg016.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg016.stderr [new file with mode: 0644]
ghc/tests/codeGen/should_run/cg016.stdout [moved from ghc/tests/codeGen/cg016.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg017.hs [moved from ghc/tests/codeGen/cg017.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg017.stdout [moved from ghc/tests/codeGen/cg017.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg018.hs [moved from ghc/tests/codeGen/cg018.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg018.stdout [new file with mode: 0644]
ghc/tests/codeGen/should_run/cg019.hs [moved from ghc/tests/codeGen/cg019.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg019.stdout [moved from ghc/tests/codeGen/cg019.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg020.hs [moved from ghc/tests/codeGen/cg020.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg020.stdout [moved from ghc/tests/codeGen/cg020.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg021.hs [moved from ghc/tests/codeGen/cg021.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg021.stdout [moved from ghc/tests/codeGen/cg021.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg022.hs [moved from ghc/tests/codeGen/cg022.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg022.stdout [moved from ghc/tests/codeGen/cg022.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg023.stdout [moved from ghc/tests/codeGen/cg023.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg024.hs [moved from ghc/tests/codeGen/cg024.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg024.stdout [moved from ghc/tests/codeGen/cg024.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg025.hs [moved from ghc/tests/codeGen/cg025.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg025.stderr [moved from ghc/tests/codeGen/cg025.stdout with 56% similarity]
ghc/tests/codeGen/should_run/cg025.stdout [moved from ghc/tests/codeGen/cg038.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg026.hs [moved from ghc/tests/codeGen/cg026.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg026.stdout [moved from ghc/tests/codeGen/cg026.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg027.hs [moved from ghc/tests/codeGen/cg027.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg027.stdout [moved from ghc/tests/codeGen/cg027.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg028.hs [moved from ghc/tests/codeGen/cg028.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg028.stdout [moved from ghc/tests/codeGen/cg028.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg029.hs [moved from ghc/tests/codeGen/cg029.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg029.stdout [moved from ghc/tests/codeGen/cg029.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg030.hs [moved from ghc/tests/codeGen/cg030.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg030.stdout [moved from ghc/tests/codeGen/cg030.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg031.hs [moved from ghc/tests/codeGen/cg031.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg031.stdout [moved from ghc/tests/codeGen/cg031.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg032.hs [moved from ghc/tests/codeGen/cg032.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg032.stdout [moved from ghc/tests/codeGen/cg032.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg033.hs [moved from ghc/tests/codeGen/cg033.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg033.stdout [moved from ghc/tests/codeGen/cg033.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg034.stdout [moved from ghc/tests/codeGen/cg034.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg035.hs [moved from ghc/tests/codeGen/cg035.hs with 90% similarity]
ghc/tests/codeGen/should_run/cg035.stdout [new file with mode: 0644]
ghc/tests/codeGen/should_run/cg036.hs [moved from ghc/tests/codeGen/cg036.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg036.stdout [moved from ghc/tests/codeGen/cg036.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg037.hs [moved from ghc/tests/codeGen/cg037.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg037.stdout [moved from ghc/tests/codeGen/cg037.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg038.hs [moved from ghc/tests/codeGen/cg038.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg038.stdout [moved from ghc/tests/codeGen/cg042.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg039.hs [moved from ghc/tests/codeGen/cg039.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg039.stdout [moved from ghc/tests/codeGen/cg039.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg040.hs [moved from ghc/tests/codeGen/cg040.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg040.stdout [moved from ghc/tests/codeGen/cg040.stdout with 100% similarity]
ghc/tests/codeGen/should_run/cg042.hs [moved from ghc/tests/codeGen/cg042.hs with 100% similarity]
ghc/tests/codeGen/should_run/cg042.stdout [new file with mode: 0644]
ghc/tests/codeGen/should_run/cg043.hs [moved from ghc/tests/codeGen/cg043.hs with 100% similarity]
ghc/tests/deSugar/should_compile/Makefile
ghc/tests/deSugar/should_compile/ds-wildcard.stderr
ghc/tests/deSugar/should_compile/ds001.stderr
ghc/tests/deSugar/should_compile/ds002.stderr
ghc/tests/deSugar/should_compile/ds003.stderr
ghc/tests/deSugar/should_compile/ds004.stderr
ghc/tests/deSugar/should_compile/ds005.stderr
ghc/tests/deSugar/should_compile/ds006.stderr
ghc/tests/deSugar/should_compile/ds007.stderr
ghc/tests/deSugar/should_compile/ds008.stderr
ghc/tests/deSugar/should_compile/ds009.stderr
ghc/tests/deSugar/should_compile/ds010.stderr
ghc/tests/deSugar/should_compile/ds011.stderr
ghc/tests/deSugar/should_compile/ds012.stderr
ghc/tests/deSugar/should_compile/ds013.stderr
ghc/tests/deSugar/should_compile/ds014.stderr
ghc/tests/deSugar/should_compile/ds015.stderr
ghc/tests/deSugar/should_compile/ds016.stderr
ghc/tests/deSugar/should_compile/ds017.stderr
ghc/tests/deSugar/should_compile/ds018.stderr
ghc/tests/deSugar/should_compile/ds019.stderr
ghc/tests/deSugar/should_compile/ds020.stderr
ghc/tests/deSugar/should_compile/ds021.stderr
ghc/tests/deSugar/should_compile/ds022.stderr
ghc/tests/deSugar/should_compile/ds023.stderr
ghc/tests/deSugar/should_compile/ds024.stderr
ghc/tests/deSugar/should_compile/ds025.hs
ghc/tests/deSugar/should_compile/ds025.stderr
ghc/tests/deSugar/should_compile/ds026.stderr
ghc/tests/deSugar/should_compile/ds027.stderr
ghc/tests/deSugar/should_compile/ds028.stderr
ghc/tests/deSugar/should_compile/ds029.stderr
ghc/tests/deSugar/should_compile/ds030.stderr
ghc/tests/deSugar/should_compile/ds031.stderr
ghc/tests/deSugar/should_compile/ds032.stderr
ghc/tests/deSugar/should_compile/ds033.stderr
ghc/tests/deSugar/should_compile/ds034.stderr
ghc/tests/deSugar/should_compile/ds035.hs
ghc/tests/deSugar/should_compile/ds035.stderr
ghc/tests/deSugar/should_compile/ds036.stderr
ghc/tests/deSugar/should_compile/ds037.stderr
ghc/tests/deSugar/should_compile/ds038.hs
ghc/tests/deSugar/should_compile/ds038.stderr
ghc/tests/deSugar/should_compile/ds039.stderr
ghc/tests/deSugar/should_compile/ds040.hs
ghc/tests/deSugar/should_compile/ds040.stderr
ghc/tests/deSugar/should_run/Makefile
ghc/tests/deSugar/should_run/dsrun001.stdout [new file with mode: 0644]
ghc/tests/deSugar/should_run/dsrun002.stdout [new file with mode: 0644]
ghc/tests/deSugar/should_run/dsrun003.hs [moved from ghc/tests/deSugar/should_run/ds003.hs with 100% similarity]
ghc/tests/deSugar/should_run/dsrun003.stdout [new file with mode: 0644]
ghc/tests/deSugar/should_run/dsrun004.hs [moved from ghc/tests/deSugar/should_run/ds004.hs with 100% similarity]
ghc/tests/deSugar/should_run/dsrun004.stdout [new file with mode: 0644]
ghc/tests/deSugar/should_run/dsrun005.hs [moved from ghc/tests/deSugar/should_run/ds005.hs with 100% similarity]
ghc/tests/deSugar/should_run/dsrun005.stderr [new file with mode: 0644]
ghc/tests/deSugar/should_run/dsrun005.stdout [moved from ghc/tests/stranal/should_compile/moo.stderr with 100% similarity]
ghc/tests/deSugar/should_run/dsrun006.hs [moved from ghc/tests/deSugar/should_run/ds006.hs with 100% similarity]
ghc/tests/deSugar/should_run/dsrun006.stdout [new file with mode: 0644]
ghc/tests/deriving/should_compile/Makefile
ghc/tests/deriving/should_compile/drv008.hs
ghc/tests/deriving/should_compile/drv008.stderr [new file with mode: 0644]
ghc/tests/deriving/should_compile/drv009.hs
ghc/tests/deriving/should_compile/drv009.stderr [new file with mode: 0644]
ghc/tests/deriving/should_compile/drv010.stderr [new file with mode: 0644]
ghc/tests/deriving/should_fail/Makefile
ghc/tests/deriving/should_run/Makefile
ghc/tests/deriving/should_run/drvrun001.stdout [new file with mode: 0644]
ghc/tests/io/should_run/io019.hs
ghc/tests/io/should_run/net002.hs
ghc/tests/io/should_run/net004.hs
ghc/tests/mk/boilerplate.mk
ghc/tests/mk/target.mk
ghc/tests/printing/Makefile
ghc/tests/printing/Print001.stderr [deleted file]
ghc/tests/printing/Print002.stderr [deleted file]
ghc/tests/printing/Print003.stderr [deleted file]
ghc/tests/printing/Print004.stderr [deleted file]
ghc/tests/printing/should_compile/Makefile [new file with mode: 0644]
ghc/tests/printing/should_compile/Print001.hs [moved from ghc/tests/printing/Print001.hs with 100% similarity]
ghc/tests/printing/should_compile/Print001.stderr [new file with mode: 0644]
ghc/tests/printing/should_compile/Print002.hs [moved from ghc/tests/printing/Print002.hs with 100% similarity]
ghc/tests/printing/should_compile/Print002.stderr [new file with mode: 0644]
ghc/tests/printing/should_compile/Print003.hs [moved from ghc/tests/printing/Print003.hs with 100% similarity]
ghc/tests/printing/should_compile/Print003.stderr [new file with mode: 0644]
ghc/tests/printing/should_compile/Print004.hs [moved from ghc/tests/printing/Print004.hs with 100% similarity]
ghc/tests/printing/should_compile/Print004.stderr [new file with mode: 0644]
ghc/tests/programs/10queens/Makefile
ghc/tests/programs/Makefile
ghc/tests/programs/andre_monad/Makefile
ghc/tests/programs/andy_cherry/Makefile
ghc/tests/programs/areid_pass/Makefile
ghc/tests/programs/barton-mangler-bug/Makefile
ghc/tests/programs/cholewo-eval/Makefile
ghc/tests/programs/cvh_unboxing/Makefile
ghc/tests/programs/dmgob_native1/Makefile
ghc/tests/programs/dmgob_native2/Makefile
ghc/tests/programs/fast2haskell/Makefile
ghc/tests/programs/fun_insts/Makefile
ghc/tests/programs/hill_stk_oflow/Makefile
ghc/tests/programs/ipoole_spec_class/Makefile
ghc/tests/programs/jl_defaults/Makefile
ghc/tests/programs/jq_readsPrec/Makefile
ghc/tests/programs/jtod_circint/Makefile
ghc/tests/programs/jules_xref/Makefile
ghc/tests/programs/jules_xref2/Makefile
ghc/tests/programs/launchbury/Makefile
ghc/tests/programs/lennart_array/Makefile
ghc/tests/programs/lennart_range/Makefile
ghc/tests/programs/lex/Makefile
ghc/tests/programs/life_space_leak/Makefile
ghc/tests/programs/north_array/Makefile
ghc/tests/programs/north_lias/Makefile
ghc/tests/programs/record_upd/Makefile
ghc/tests/programs/rittri/Makefile
ghc/tests/programs/sanders_array/Makefile
ghc/tests/programs/seward-space-leak/Makefile
ghc/tests/programs/strict_anns/Makefile
ghc/tests/programs/waugh_neural/Makefile
ghc/tests/programs/zhang_ccall/Makefile
ghc/tests/reader/Makefile [new file with mode: 0644]
ghc/tests/reader/should_compile/Makefile
ghc/tests/reader/should_compile/expr001.stderr [deleted file]
ghc/tests/reader/should_compile/read001.stderr [deleted file]
ghc/tests/reader/should_compile/read002.stderr
ghc/tests/reader/should_compile/read003.stderr [deleted file]
ghc/tests/reader/should_compile/read005.stderr [new file with mode: 0644]
ghc/tests/reader/should_fail/Makefile [new file with mode: 0644]
ghc/tests/reader/should_fail/expr001.hs [moved from ghc/tests/reader/should_compile/expr001.hs with 100% similarity]
ghc/tests/reader/should_fail/expr001.stderr [new file with mode: 0644]
ghc/tests/reader/should_fail/read001.hs [moved from ghc/tests/reader/should_compile/read001.hs with 93% similarity]
ghc/tests/reader/should_fail/read001.stderr [new file with mode: 0644]
ghc/tests/reader/should_fail/read003.hs [moved from ghc/tests/reader/should_compile/read003.hs with 100% similarity]
ghc/tests/reader/should_fail/read003.stderr [new file with mode: 0644]
ghc/tests/reader/should_fail/read004.hs [moved from ghc/tests/reader/should_compile/read004.hs with 100% similarity]
ghc/tests/reader/should_fail/read004.stderr [moved from ghc/tests/reader/should_compile/read004.stderr with 100% similarity]
ghc/tests/rename/should_compile/Makefile
ghc/tests/rename/should_fail/Makefile
ghc/tests/simplCore/should_compile/Makefile
ghc/tests/simplCore/should_compile/simpl001.stderr
ghc/tests/simplCore/should_compile/simpl002.stderr
ghc/tests/simplCore/should_compile/simpl003.stderr [new file with mode: 0644]
ghc/tests/specialise/Makefile
ghc/tests/stranal/Makefile [new file with mode: 0644]
ghc/tests/stranal/should_compile/Makefile
ghc/tests/stranal/should_compile/default.stderr
ghc/tests/stranal/should_compile/fact.stderr
ghc/tests/stranal/should_compile/fun.hs [new file with mode: 0644]
ghc/tests/stranal/should_compile/fun.lhs [deleted file]
ghc/tests/stranal/should_compile/fun.stderr
ghc/tests/stranal/should_compile/goo.hs [new file with mode: 0644]
ghc/tests/stranal/should_compile/goo.lhs [deleted file]
ghc/tests/stranal/should_compile/goo.stderr
ghc/tests/stranal/should_compile/ins.hs [new file with mode: 0644]
ghc/tests/stranal/should_compile/ins.lhs [deleted file]
ghc/tests/stranal/should_compile/ins.stderr
ghc/tests/stranal/should_compile/map.hs [new file with mode: 0644]
ghc/tests/stranal/should_compile/map.lhs [deleted file]
ghc/tests/stranal/should_compile/map.stderr
ghc/tests/stranal/should_compile/moo.lhs [deleted file]
ghc/tests/stranal/should_compile/sim.hs [new file with mode: 0644]
ghc/tests/stranal/should_compile/sim.lhs [deleted file]
ghc/tests/stranal/should_compile/sim.stderr
ghc/tests/stranal/should_compile/syn.hs [new file with mode: 0644]
ghc/tests/stranal/should_compile/syn.lhs [deleted file]
ghc/tests/stranal/should_compile/syn.stderr
ghc/tests/stranal/should_compile/test.hs [new file with mode: 0644]
ghc/tests/stranal/should_compile/test.lhs [deleted file]
ghc/tests/stranal/should_compile/test.stderr
ghc/tests/stranal/should_compile/tst.hs [new file with mode: 0644]
ghc/tests/stranal/should_compile/tst.lhs [deleted file]
ghc/tests/stranal/should_compile/tst.stderr
ghc/tests/stranal/should_compile/unu.hs [new file with mode: 0644]
ghc/tests/stranal/should_compile/unu.lhs [deleted file]
ghc/tests/stranal/should_compile/unu.stderr
ghc/tests/typecheck/should_compile/Makefile
ghc/tests/typecheck/should_compile/tc001.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc002.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc003.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc004.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc005.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc006.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc007.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc008.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc009.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc010.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc011.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc012.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc013.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc014.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc015.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc016.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc017.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc018.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc019.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc020.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc021.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc022.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc023.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc024.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc025.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc026.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc027.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc028.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc029.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc030.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc031.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc032.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc033.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc034.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc035.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc036.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc037.hi [deleted file]
ghc/tests/typecheck/should_compile/tc037.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc038.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc039.hs
ghc/tests/typecheck/should_compile/tc039.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc040.hi [deleted file]
ghc/tests/typecheck/should_compile/tc040.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc041.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc042.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc043.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc044.hs
ghc/tests/typecheck/should_compile/tc044.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc045.hs
ghc/tests/typecheck/should_compile/tc045.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc046.hs
ghc/tests/typecheck/should_compile/tc046.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc047.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc048.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc049.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc050.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc051.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc052.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc053.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc054.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc055.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc056.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc057.hi [deleted file]
ghc/tests/typecheck/should_compile/tc057.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc058.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc059.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc060.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc061.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc062.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc063.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc064.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc065.hs
ghc/tests/typecheck/should_compile/tc065.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc066.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc067.hs
ghc/tests/typecheck/should_compile/tc067.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc068.hs
ghc/tests/typecheck/should_compile/tc068.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc069.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc070.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc073.hs
ghc/tests/typecheck/should_compile/tc073.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc074.hs
ghc/tests/typecheck/should_compile/tc074.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc076.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc077.hs
ghc/tests/typecheck/should_compile/tc077.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc078.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc079.hs
ghc/tests/typecheck/should_compile/tc079.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc080.hs
ghc/tests/typecheck/should_compile/tc080.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc081.hs [deleted file]
ghc/tests/typecheck/should_compile/tc082.hs
ghc/tests/typecheck/should_compile/tc082.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc083.hs [deleted file]
ghc/tests/typecheck/should_compile/tc084.hs
ghc/tests/typecheck/should_compile/tc084.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc085.hs
ghc/tests/typecheck/should_compile/tc085.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc086.hs
ghc/tests/typecheck/should_compile/tc086.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc087.hs
ghc/tests/typecheck/should_compile/tc087.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc088.hs
ghc/tests/typecheck/should_compile/tc088.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc089.hs
ghc/tests/typecheck/should_compile/tc089.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc090.hs
ghc/tests/typecheck/should_compile/tc090.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_compile/tc091.hs
ghc/tests/typecheck/should_compile/tc091.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_fail/Digraph.stderr
ghc/tests/typecheck/should_fail/Makefile
ghc/tests/typecheck/should_fail/tcfail001.stderr
ghc/tests/typecheck/should_fail/tcfail002.stderr
ghc/tests/typecheck/should_fail/tcfail004.stderr
ghc/tests/typecheck/should_fail/tcfail005.stderr
ghc/tests/typecheck/should_fail/tcfail008.stderr
ghc/tests/typecheck/should_fail/tcfail009.stderr
ghc/tests/typecheck/should_fail/tcfail010.stderr
ghc/tests/typecheck/should_fail/tcfail012.stderr
ghc/tests/typecheck/should_fail/tcfail013.stderr
ghc/tests/typecheck/should_fail/tcfail014.stderr
ghc/tests/typecheck/should_fail/tcfail016.stderr
ghc/tests/typecheck/should_fail/tcfail017.stderr
ghc/tests/typecheck/should_fail/tcfail018.stderr
ghc/tests/typecheck/should_fail/tcfail019.stderr
ghc/tests/typecheck/should_fail/tcfail020.stderr
ghc/tests/typecheck/should_fail/tcfail021.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_fail/tcfail023.stderr
ghc/tests/typecheck/should_fail/tcfail028.stderr
ghc/tests/typecheck/should_fail/tcfail031.stderr
ghc/tests/typecheck/should_fail/tcfail032.stderr
ghc/tests/typecheck/should_fail/tcfail033.stderr
ghc/tests/typecheck/should_fail/tcfail034.stderr
ghc/tests/typecheck/should_fail/tcfail040.stderr
ghc/tests/typecheck/should_fail/tcfail042.stderr
ghc/tests/typecheck/should_fail/tcfail044.stderr
ghc/tests/typecheck/should_fail/tcfail046.stderr
ghc/tests/typecheck/should_fail/tcfail047.stderr
ghc/tests/typecheck/should_fail/tcfail055.stderr
ghc/tests/typecheck/should_fail/tcfail065.stderr
ghc/tests/typecheck/should_fail/tcfail067.stderr
ghc/tests/typecheck/should_fail/tcfail069.stderr
ghc/tests/typecheck/should_fail/tcfail070.stderr
ghc/tests/typecheck/should_fail/tcfail071.stderr
ghc/tests/typecheck/should_fail/tcfail072.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_fail/tcfail073.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_fail/tcfail074.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_fail/tcfail075.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_fail/tcfail076.stderr [new file with mode: 0644]
ghc/tests/typecheck/should_run/Makefile
ghc/tests/typecheck/should_run/tcrun001.hs [deleted file]

index 290137a..249c6c5 100644 (file)
@@ -1,7 +1,9 @@
-TOP = ..
+TOP = .
 include $(TOP)/mk/boilerplate.mk
 
-SUBDIRS = reader rename simplCore typecheck deSugar printing ccall deriving programs
+SUBDIRS = ccall deriving deSugar printing reader rename simplCore typecheck 
+
+#programs
 
 include $(TOP)/mk/target.mk
 
diff --git a/ghc/tests/ccall/Makefile b/ghc/tests/ccall/Makefile
new file mode 100644 (file)
index 0000000..af26578
--- /dev/null
@@ -0,0 +1,7 @@
+TOP = ..
+include $(TOP)/mk/boilerplate.mk
+
+SUBDIRS = should_compile should_fail
+
+include $(TOP)/mk/target.mk
+
index a02df9b..14dc492 100644 (file)
@@ -1,15 +1,9 @@
-TOP = ../../..
+TOP = ../..
 include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/should_compile.mk
 
-HS_SRCS = $(wildcard *.hs)
-
-SRC_RUNTEST_OPTS += -o1 $*.stdout -o2 $*.stderr -x 0
 HC_OPTS += -dcore-lint -fglasgow-exts
 
-cc002_RUNTEST_OPTS = -x 1
-cc004_RUNTEST_OPTS = -x 1
-cc007_RUNTEST_OPTS = -x 1
-
 # Note that these tests are still in a state of flux... don't believe errors
 # they report. In fact, these aren't really very good tests at all...
 
@@ -21,12 +15,4 @@ cc005_HC_OPTS = -fvia-C -ddump-stg -ddump-flatC
 cc006_HC_OPTS = -fvia-C -ddump-stg -ddump-flatC
 cc007_HC_OPTS = -fvia-C -ddump-stg -ddump-flatC
 
-
-%.o : %.hs
-
-%.o : %.hs
-       $(RUNTEST) $(HC) $(RUNTEST_OPTS) $(HC_OPTS) -c $< -o $@ -osuf $(subst .,,$(suffix $@)) 
-
-all :: $(HS_OBJS)
-
 include $(TOP)/mk/target.mk
index 952647f..4556d5d 100644 (file)
 
 ================================================================================
 Typechecked:
-{- nonrec -}
-{- nonrec -}
-{- nonrec -}
-d.Fractional_a16j =
-    PrelNum.$d23{-rtW,p-}
-fromRational_a16o =
-    PrelNum.fromRational{-8T,p-}
-       PrelBase.Float{-3c,p-}
-       d.Fractional_a16j
-lit_a16r =
-    fromRational_a16o
-       1.0000000000000000
-d.Fractional_a16n =
-    PrelNum.$d14{-rtM,p-}
-fromRational_a16q =
-    PrelNum.fromRational{-8T,p-}
-       PrelBase.Double{-3a,p-}
-       d.Fractional_a16n
-lit_a16p =
-    fromRational_a16q
-       2.0000000000000000
-{- nonrec -}
-AbsBinds [] [] [([], c{-r5,x-}, c_a15h)]
-    c_a15h
-       x1_r4l x2_r4n x3_r4p x4_r4r
-               =   STBase.ST{-5G,p-}{i}
-                       [GHC.RealWorld{-3s,p-}, PrelBase.Float{-3c,p-}]
-                       _ccall_ c
-                           x1_r4l x2_r4n x3_r4p x4_r4r
-{- nonrec -}
-{- nonrec -}
-AbsBinds [] [] [([], b{-r3,x-}, b_a15F)]
-    b_a15F
-       x_r4j   =   STBase.ST{-5G,p-}{i}
-                       [GHC.RealWorld{-3s,p-}, PrelBase.Int{-3g,p-}]
-                       _ccall_ b
-                           x_r4j
-{- nonrec -}
-{- nonrec -}
-AbsBinds [] [] [([], a{-r1,x-}, a_a15R)]
-    a_a15R
-       =   STBase.ST{-5G,p-}{i}
-               [GHC.RealWorld{-3s,p-}, PrelBase.Int{-3g,p-}]
-               _ccall_ a
-{- nonrec -}
-{- nonrec -}
-AbsBinds [] [] [([], d{-r7,x-}, d_a15Y)]
-    d_a15Y
-       =   STBase.thenPrimIO{-r4w,p-}
-               [PrelBase.Int{-3g,p-}, PrelBase.Float{-3c,p-}]
-               a{-r1,x-}
-               (\ x_r4t   ->  STBase.thenPrimIO{-r4w,p-}
-                                  [PrelBase.Int{-3g,p-}, PrelBase.Float{-3c,p-}]
-                                  (b{-r3,x-}
-                                       x_r4t)
-                                  (\ y_r4v   ->  c{-r5,x-}
-                                                     y_r4v 'f' lit_a16r lit_a16p))
-{- nonrec -}
+AbsBinds [] [] [([], c{-r5,x-}, c_aZc)]
+    c_aZc x1_r4l x2_r4m x3_r4n x4_r4o
+         = STBase.ST{-5G,w-}{i}
+               [GHC.RealWorld{-3s,W-}, PrelBase.Float{-3c,W-}] _ccall_ c
+                                                                   x1_r4l x2_r4m x3_r4n x4_r4o
+AbsBinds [] [] [([], b{-r3,x-}, b_aZE)]
+    b_aZE x_r4j
+         = STBase.ST{-5G,w-}{i}
+               [GHC.RealWorld{-3s,W-}, PrelBase.Int{-3g,W-}] _ccall_ b x_r4j
+AbsBinds [] [] [([], a{-r1,x-}, a_aZR)]
+    a_aZR
+       = STBase.ST{-5G,w-}{i}
+             [GHC.RealWorld{-3s,W-}, PrelBase.Int{-3g,W-}] _ccall_ a
+AbsBinds [] [] [([], d{-r7,x-}, d_aZY)]
+    d_aZY
+       = STBase.thenPrimIO{-r4t,p-}
+             [PrelBase.Int{-3g,W-}, PrelBase.Float{-3c,W-}]
+             a{-r1,x-}
+             (\ x_r4q
+                -> STBase.thenPrimIO{-r4t,p-}
+                       [PrelBase.Int{-3g,W-}, PrelBase.Float{-3c,W-}]
+                       (b{-r3,x-} x_r4q)
+                       (\ y_r4s -> c{-r5,x-} y_r4s 'f' lit_a10r lit_a10t))
+d.Fractional_a10l = PrelNum.$d23{-rsg,p-}
+fromRational_a10q =
+    PrelNum.fromRational{-8T,p-} PrelBase.Float{-3c,W-}
+       d.Fractional_a10l
+lit_a10r = fromRational_a10q 1.0000000000000000
+d.Fractional_a10p = PrelNum.$d14{-rs6,p-}
+fromRational_a10s =
+    PrelNum.fromRational{-8T,p-} PrelBase.Double{-3a,W-}
+       d.Fractional_a10p
+lit_a10t = fromRational_a10s 2.0000000000000000
 
 
 ================================================================================
 Desugared:
 Rec {
-d.Fractional_a16j  :: 
-    {PrelNum.Fractional{-26,p-} PrelBase.Float{-3c,p-}}
-{-# L #-}
-d.Fractional_a16j =
-    PrelNum.$d23{-rtW,p-}
-fromRational_a16o  :: 
-    PrelNum.Rational{-3r,p-} -> PrelBase.Float{-3c,p-}
-{-# L #-}
-fromRational_a16o =
-    PrelNum.fromRational{-8T,p-}
-       _@_ PrelBase.Float{-3c,p-} d.Fractional_a16j
-lit_a16r  :: 
-    PrelBase.Float{-3c,p-}
-{-# L #-}
-lit_a16r =
-    fromRational_a16o
-       _rational_  1 1
-d.Fractional_a16n  :: 
-    {PrelNum.Fractional{-26,p-} PrelBase.Double{-3a,p-}}
-{-# L #-}
-d.Fractional_a16n =
-    PrelNum.$d14{-rtM,p-}
-fromRational_a16q  :: 
-    PrelNum.Rational{-3r,p-} -> PrelBase.Double{-3a,p-}
-{-# L #-}
-fromRational_a16q =
-    PrelNum.fromRational{-8T,p-}
-       _@_ PrelBase.Double{-3a,p-} d.Fractional_a16n
-lit_a16p  :: 
-    PrelBase.Double{-3a,p-}
-{-# L #-}
-lit_a16p =
-    fromRational_a16q
-       _rational_  2 1
-c_a15h  :: 
-    PrelBase.Int{-3g,p-}
-    -> PrelBase.Char{-38,p-}
-    -> PrelBase.Float{-3c,p-}
-    -> PrelBase.Double{-3a,p-}
-    -> STBase.PrimIO{-3P,p-} PrelBase.Float{-3c,p-}
+c_aZc  ::  PrelBase.Int{-3g,W-}
+          -> PrelBase.Char{-38,W-}
+          -> PrelBase.Float{-3c,W-}
+          -> PrelBase.Double{-3a,W-}
+          -> STBase.PrimIO{-3P,W-} PrelBase.Float{-3c,W-}
 {-# L #-}
-c_a15h =
-    \ x1_r4l  :: 
-         PrelBase.Int{-3g,p-}
+c_aZc =
+    \ x1_r4l  ::  PrelBase.Int{-3g,W-}
       {-# L #-}
-      x1_r4l x2_r4n  :: 
-                PrelBase.Char{-38,p-}
+      x1_r4l x2_r4m  ::  PrelBase.Char{-38,W-}
             {-# L #-}
-            x2_r4n x3_r4p  :: 
-                       PrelBase.Float{-3c,p-}
+            x2_r4m x3_r4n  ::  PrelBase.Float{-3c,W-}
                    {-# L #-}
-                   x3_r4p x4_r4r  :: 
-                              PrelBase.Double{-3a,p-}
+                   x3_r4n x4_r4o  ::  PrelBase.Double{-3a,W-}
                           {-# L #-}
-                          x4_r4r ->
+                          x4_r4o ->
        let {
-         ds_d1et  :: 
-             STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
-             -> (PrelBase.Float{-3c,p-}, STBase.State{-3M,p-} GHC.RealWorld{-3s,p-})
+         ds_d17v  ::  STBase.State{-3M,W-} GHC.RealWorld{-3s,W-}
+                      -> (PrelBase.Float{-3c,W-}, STBase.State{-3M,W-} GHC.RealWorld{-3s,W-})
          {-# L #-}
-         ds_d1et =
-             \ ds_d1ez  :: 
-                   STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
+         ds_d17v =
+             \ ds_d17B  ::  STBase.State{-3M,W-} GHC.RealWorld{-3s,W-}
                {-# L #-}
-               ds_d1ez ->
-                 case ds_d1ez of { STBase.S#{-5D,p-}{i} ds_d1eI  ->
-                 case x1_r4l of { PrelBase.I#{-5b,p-}{i} ds_d1eR  ->
-                 case x2_r4n of { PrelBase.C#{-54,p-}{i} ds_d1f0  ->
-                 case x3_r4p of { PrelBase.F#{-59,p-}{i} ds_d1f9  ->
-                 case x4_r4r of { PrelBase.D#{-56,p-}{i} ds_d1fw  ->
+               ds_d17B ->
+                 case ds_d17B of { STBase.S#{-5D,w-}{i} ds_d18A  ->
+                 case x1_r4l of { PrelBase.I#{-5b,w-}{i} ds_d18J  ->
+                 case x2_r4m of { PrelBase.C#{-54,w-}{i} ds_d18S  ->
+                 case x3_r4n of { PrelBase.F#{-59,w-}{i} ds_d191  ->
+                 case x4_r4o of { PrelBase.D#{-56,w-}{i} ds_d19o  ->
                  case
-                     _ccall_ c [(STBase.StateAndFloat#{-3C,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-}) GHC.Int#{-3f,p-} GHC.Char#{-37,p-} GHC.Float#{-3b,p-} GHC.Double#{-39,p-}]!
-                         ds_d1eI ds_d1eR ds_d1f0 ds_d1f9 ds_d1fw
+                     _ccall_ c [(STBase.StateAndFloat#{-3C,W-} GHC.RealWorld{-3s,W-}) (GHC.State#{-3L,W-} GHC.RealWorld{-3s,W-}) GHC.Int#{-3f,W-} GHC.Char#{-37,W-} GHC.Float#{-3b,W-} GHC.Double#{-39,W-}]!
+                         ds_d18A ds_d18J ds_d18S ds_d191 ds_d19o
                  of {
-                 STBase.StateAndFloat#{-5u,p-}{i} ds_d1fZ ds_d1fX  ->
+                 STBase.StateAndFloat#{-5u,w-}{i} ds_d19R ds_d19P  ->
                  let {
-                   ds_d1fO  :: 
-                       PrelBase.Float{-3c,p-}
+                   ds_d19G  ::  PrelBase.Float{-3c,W-}
                    {-# L #-}
-                   ds_d1fO =
-                       PrelBase.F#{-59,p-}{i}
-                           {ds_d1fX} } in
+                   ds_d19G =
+                       PrelBase.F#{-59,w-}{i} {ds_d19P} } in
                  let {
-                   ds_d1fS  :: 
-                       STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
+                   ds_d19K  ::  STBase.State{-3M,W-} GHC.RealWorld{-3s,W-}
                    {-# L #-}
-                   ds_d1fS =
-                       STBase.S#{-5D,p-}{i}
-                           {_@_ GHC.RealWorld{-3s,p-} ds_d1fZ}
+                   ds_d19K =
+                       STBase.S#{-5D,w-}{i} {_@_ GHC.RealWorld{-3s,W-} ds_d19R}
                  } in 
-                   PrelTup.(,){-62,p-}{i}
-                       {_@_ PrelBase.Float{-3c,p-}
-                        _@_ (STBase.State{-3M,p-} GHC.RealWorld{-3s,p-})
-                        ds_d1fO
-                        ds_d1fS};};};};};};}
+                   PrelTup.(,){-62,w-}{i}
+                       {_@_ PrelBase.Float{-3c,W-}
+                        _@_ (STBase.State{-3M,W-} GHC.RealWorld{-3s,W-})
+                        ds_d19G
+                        ds_d19K};};};};};};}
        } in 
-         STBase.ST{-5G,p-}{i}
-             _@_ GHC.RealWorld{-3s,p-} _@_ PrelBase.Float{-3c,p-} ds_d1et
-c{-r5,x-}  :: 
-    PrelBase.Int{-3g,p-}
-    -> PrelBase.Char{-38,p-}
-    -> PrelBase.Float{-3c,p-}
-    -> PrelBase.Double{-3a,p-}
-    -> STBase.PrimIO{-3P,p-} PrelBase.Float{-3c,p-}
+         STBase.ST{-5G,w-}{i}
+             _@_ GHC.RealWorld{-3s,W-} _@_ PrelBase.Float{-3c,W-} ds_d17v
+c{-r5,x-}  ::  PrelBase.Int{-3g,W-}
+              -> PrelBase.Char{-38,W-}
+              -> PrelBase.Float{-3c,W-}
+              -> PrelBase.Double{-3a,W-}
+              -> STBase.PrimIO{-3P,W-} PrelBase.Float{-3c,W-}
 {-# L #-}
 c{-r5,x-} =
-    c_a15h
-b_a15F  :: 
-    PrelBase.Int{-3g,p-} -> STBase.PrimIO{-3P,p-} PrelBase.Int{-3g,p-}
+    c_aZc
+b_aZE  ::  PrelBase.Int{-3g,W-}
+          -> STBase.PrimIO{-3P,W-} PrelBase.Int{-3g,W-}
 {-# L #-}
-b_a15F =
-    \ x_r4j  :: 
-         PrelBase.Int{-3g,p-}
+b_aZE =
+    \ x_r4j  ::  PrelBase.Int{-3g,W-}
       {-# L #-}
       x_r4j ->
        let {
-         ds_d1gj  :: 
-             STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
-             -> (PrelBase.Int{-3g,p-}, STBase.State{-3M,p-} GHC.RealWorld{-3s,p-})
+         ds_d1ab  ::  STBase.State{-3M,W-} GHC.RealWorld{-3s,W-}
+                      -> (PrelBase.Int{-3g,W-}, STBase.State{-3M,W-} GHC.RealWorld{-3s,W-})
          {-# L #-}
-         ds_d1gj =
-             \ ds_d1gp  :: 
-                   STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
+         ds_d1ab =
+             \ ds_d1ah  ::  STBase.State{-3M,W-} GHC.RealWorld{-3s,W-}
                {-# L #-}
-               ds_d1gp ->
-                 case ds_d1gp of { STBase.S#{-5D,p-}{i} ds_d1gy  ->
-                 case x_r4j of { PrelBase.I#{-5b,p-}{i} ds_d1gM  ->
+               ds_d1ah ->
+                 case ds_d1ah of { STBase.S#{-5D,w-}{i} ds_d1aq  ->
+                 case x_r4j of { PrelBase.I#{-5b,w-}{i} ds_d1aE  ->
                  case
-                     _ccall_ b [(STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-}) GHC.Int#{-3f,p-}]!
-                         ds_d1gy ds_d1gM
+                     _ccall_ b [(STBase.StateAndInt#{-3D,W-} GHC.RealWorld{-3s,W-}) (GHC.State#{-3L,W-} GHC.RealWorld{-3s,W-}) GHC.Int#{-3f,W-}]!
+                         ds_d1aq ds_d1aE
                  of {
-                 STBase.StateAndInt#{-5v,p-}{i} ds_d1hf ds_d1hd  ->
+                 STBase.StateAndInt#{-5v,w-}{i} ds_d1b7 ds_d1b5  ->
                  let {
-                   ds_d1h4  :: 
-                       PrelBase.Int{-3g,p-}
+                   ds_d1aW  ::  PrelBase.Int{-3g,W-}
                    {-# L #-}
-                   ds_d1h4 =
-                       PrelBase.I#{-5b,p-}{i}
-                           {ds_d1hd} } in
+                   ds_d1aW =
+                       PrelBase.I#{-5b,w-}{i} {ds_d1b5} } in
                  let {
-                   ds_d1h8  :: 
-                       STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
+                   ds_d1b0  ::  STBase.State{-3M,W-} GHC.RealWorld{-3s,W-}
                    {-# L #-}
-                   ds_d1h8 =
-                       STBase.S#{-5D,p-}{i}
-                           {_@_ GHC.RealWorld{-3s,p-} ds_d1hf}
+                   ds_d1b0 =
+                       STBase.S#{-5D,w-}{i} {_@_ GHC.RealWorld{-3s,W-} ds_d1b7}
                  } in 
-                   PrelTup.(,){-62,p-}{i}
-                       {_@_ PrelBase.Int{-3g,p-}
-                        _@_ (STBase.State{-3M,p-} GHC.RealWorld{-3s,p-})
-                        ds_d1h4
-                        ds_d1h8};};};}
+                   PrelTup.(,){-62,w-}{i}
+                       {_@_ PrelBase.Int{-3g,W-}
+                        _@_ (STBase.State{-3M,W-} GHC.RealWorld{-3s,W-})
+                        ds_d1aW
+                        ds_d1b0};};};}
        } in 
-         STBase.ST{-5G,p-}{i}
-             _@_ GHC.RealWorld{-3s,p-} _@_ PrelBase.Int{-3g,p-} ds_d1gj
-b{-r3,x-}  :: 
-    PrelBase.Int{-3g,p-} -> STBase.PrimIO{-3P,p-} PrelBase.Int{-3g,p-}
+         STBase.ST{-5G,w-}{i}
+             _@_ GHC.RealWorld{-3s,W-} _@_ PrelBase.Int{-3g,W-} ds_d1ab
+b{-r3,x-}  ::  PrelBase.Int{-3g,W-}
+              -> STBase.PrimIO{-3P,W-} PrelBase.Int{-3g,W-}
 {-# L #-}
 b{-r3,x-} =
-    b_a15F
-a_a15R  :: 
-    STBase.PrimIO{-3P,p-} PrelBase.Int{-3g,p-}
+    b_aZE
+a_aZR  ::  STBase.PrimIO{-3P,W-} PrelBase.Int{-3g,W-}
 {-# L #-}
-a_a15R =
+a_aZR =
     let {
-      ds_d1hy  :: 
-         STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
-         -> (PrelBase.Int{-3g,p-}, STBase.State{-3M,p-} GHC.RealWorld{-3s,p-})
+      ds_d1bq  ::  STBase.State{-3M,W-} GHC.RealWorld{-3s,W-}
+                  -> (PrelBase.Int{-3g,W-}, STBase.State{-3M,W-} GHC.RealWorld{-3s,W-})
       {-# L #-}
-      ds_d1hy =
-         \ ds_d1hE  :: 
-               STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
+      ds_d1bq =
+         \ ds_d1bw  ::  STBase.State{-3M,W-} GHC.RealWorld{-3s,W-}
            {-# L #-}
-           ds_d1hE ->
-             case ds_d1hE of { STBase.S#{-5D,p-}{i} ds_d1hP  ->
+           ds_d1bw ->
+             case ds_d1bw of { STBase.S#{-5D,w-}{i} ds_d1bH  ->
              case
-                 _ccall_ a [(STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-})]!
-                     ds_d1hP
+                 _ccall_ a [(STBase.StateAndInt#{-3D,W-} GHC.RealWorld{-3s,W-}) (GHC.State#{-3L,W-} GHC.RealWorld{-3s,W-})]!
+                     ds_d1bH
              of {
-             STBase.StateAndInt#{-5v,p-}{i} ds_d1ii ds_d1ig  ->
+             STBase.StateAndInt#{-5v,w-}{i} ds_d1ca ds_d1c8  ->
              let {
-               ds_d1i7  :: 
-                   PrelBase.Int{-3g,p-}
+               ds_d1bZ  ::  PrelBase.Int{-3g,W-}
                {-# L #-}
-               ds_d1i7 =
-                   PrelBase.I#{-5b,p-}{i}
-                       {ds_d1ig} } in
+               ds_d1bZ =
+                   PrelBase.I#{-5b,w-}{i} {ds_d1c8} } in
              let {
-               ds_d1ib  :: 
-                   STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
+               ds_d1c3  ::  STBase.State{-3M,W-} GHC.RealWorld{-3s,W-}
                {-# L #-}
-               ds_d1ib =
-                   STBase.S#{-5D,p-}{i}
-                       {_@_ GHC.RealWorld{-3s,p-} ds_d1ii}
+               ds_d1c3 =
+                   STBase.S#{-5D,w-}{i} {_@_ GHC.RealWorld{-3s,W-} ds_d1ca}
              } in 
-               PrelTup.(,){-62,p-}{i}
-                   {_@_ PrelBase.Int{-3g,p-}
-                    _@_ (STBase.State{-3M,p-} GHC.RealWorld{-3s,p-})
-                    ds_d1i7
-                    ds_d1ib};};}
+               PrelTup.(,){-62,w-}{i}
+                   {_@_ PrelBase.Int{-3g,W-}
+                    _@_ (STBase.State{-3M,W-} GHC.RealWorld{-3s,W-})
+                    ds_d1bZ
+                    ds_d1c3};};}
     } in 
-      STBase.ST{-5G,p-}{i}
-         _@_ GHC.RealWorld{-3s,p-} _@_ PrelBase.Int{-3g,p-} ds_d1hy
-a{-r1,x-}  :: 
-    STBase.PrimIO{-3P,p-} PrelBase.Int{-3g,p-}
+      STBase.ST{-5G,w-}{i}
+         _@_ GHC.RealWorld{-3s,W-} _@_ PrelBase.Int{-3g,W-} ds_d1bq
+a{-r1,x-}  ::  STBase.PrimIO{-3P,W-} PrelBase.Int{-3g,W-}
 {-# L #-}
 a{-r1,x-} =
-    a_a15R
-d_a15Y  :: 
-    STBase.PrimIO{-3P,p-} PrelBase.Float{-3c,p-}
+    a_aZR
+d_aZY  ::  STBase.PrimIO{-3P,W-} PrelBase.Float{-3c,W-}
 {-# L #-}
-d_a15Y =
+d_aZY =
     let {
-      ds_d1iE  :: 
-         PrelBase.Int{-3g,p-}
-         -> STBase.PrimIO{-3P,p-} PrelBase.Float{-3c,p-}
+      ds_d1cw  ::  PrelBase.Int{-3g,W-}
+                  -> STBase.PrimIO{-3P,W-} PrelBase.Float{-3c,W-}
       {-# L #-}
-      ds_d1iE =
-         \ x_r4t  :: 
-               PrelBase.Int{-3g,p-}
+      ds_d1cw =
+         \ x_r4q  ::  PrelBase.Int{-3g,W-}
            {-# L #-}
-           x_r4t ->
+           x_r4q ->
              let {
-               ds_d1iT  :: 
-                   STBase.PrimIO{-3P,p-} PrelBase.Int{-3g,p-}
+               ds_d1cL  ::  STBase.PrimIO{-3P,W-} PrelBase.Int{-3g,W-}
                {-# L #-}
-               ds_d1iT =
-                   b{-r3,x-}
-                       x_r4t } in
+               ds_d1cL =
+                   b{-r3,x-} x_r4q } in
              let {
-               ds_d1iX  :: 
-                   PrelBase.Int{-3g,p-}
-                   -> STBase.PrimIO{-3P,p-} PrelBase.Float{-3c,p-}
+               ds_d1cP  ::  PrelBase.Int{-3g,W-}
+                            -> STBase.PrimIO{-3P,W-} PrelBase.Float{-3c,W-}
                {-# L #-}
-               ds_d1iX =
-                   \ y_r4v  :: 
-                         PrelBase.Int{-3g,p-}
+               ds_d1cP =
+                   \ y_r4s  ::  PrelBase.Int{-3g,W-}
                      {-# L #-}
-                     y_r4v ->
-                       let {
-                         ds_d1jf  :: 
-                             PrelBase.Char{-38,p-}
-                         {-# L #-}
-                         ds_d1jf =
-                             PrelBase.C#{-54,p-}{i}
-                                 {'f'}
-                       } in 
-                         c{-r5,x-}
-                             y_r4v ds_d1jf lit_a16r lit_a16p
+                     y_r4s ->
+                       (let {
+                          ds_d1df  ::  PrelBase.Char{-38,W-}
+                          {-# L #-}
+                          ds_d1df =
+                              PrelBase.C#{-54,w-}{i} {'f'}
+                        } in  c{-r5,x-} y_r4s ds_d1df)
+                           lit_a10r lit_a10t
              } in 
-               STBase.thenPrimIO{-r4w,p-}
-                   _@_ PrelBase.Int{-3g,p-} _@_ PrelBase.Float{-3c,p-} ds_d1iT ds_d1iX
+               STBase.thenPrimIO{-r4t,p-}
+                   _@_ PrelBase.Int{-3g,W-} _@_ PrelBase.Float{-3c,W-} ds_d1cL ds_d1cP
     } in 
-      STBase.thenPrimIO{-r4w,p-}
-         _@_ PrelBase.Int{-3g,p-}
-         _@_ PrelBase.Float{-3c,p-}
+      STBase.thenPrimIO{-r4t,p-}
+         _@_ PrelBase.Int{-3g,W-}
+         _@_ PrelBase.Float{-3c,W-}
          a{-r1,x-}
-         ds_d1iE
-d{-r7,x-}  :: 
-    STBase.PrimIO{-3P,p-} PrelBase.Float{-3c,p-}
+         ds_d1cw
+d{-r7,x-}  ::  STBase.PrimIO{-3P,W-} PrelBase.Float{-3c,W-}
 {-# L #-}
 d{-r7,x-} =
-    d_a15Y
+    d_aZY
+d.Fractional_a10l  ::  {PrelNum.Fractional{-26,p-} PrelBase.Float{-3c,W-}}
+{-# L #-}
+d.Fractional_a10l =
+    PrelNum.$d23{-rsg,p-}
+fromRational_a10q  ::  PrelNum.Rational{-3r,p-}
+                      -> PrelBase.Float{-3c,W-}
+{-# L #-}
+fromRational_a10q =
+    PrelNum.fromRational{-8T,p-}
+       _@_ PrelBase.Float{-3c,W-} d.Fractional_a10l
+lit_a10r  ::  PrelBase.Float{-3c,W-}
+{-# L #-}
+lit_a10r =
+    fromRational_a10q _rational_  1 1
+d.Fractional_a10p  ::  {PrelNum.Fractional{-26,p-} PrelBase.Double{-3a,W-}}
+{-# L #-}
+d.Fractional_a10p =
+    PrelNum.$d14{-rs6,p-}
+fromRational_a10s  ::  PrelNum.Rational{-3r,p-}
+                      -> PrelBase.Double{-3a,W-}
+{-# L #-}
+fromRational_a10s =
+    PrelNum.fromRational{-8T,p-}
+       _@_ PrelBase.Double{-3a,W-} d.Fractional_a10p
+lit_a10t  ::  PrelBase.Double{-3a,W-}
+{-# L #-}
+lit_a10t =
+    fromRational_a10s _rational_  2 1
 end Rec }
-
-NOTE: Simplifier still going after 4 iterations; bailing out.
diff --git a/ghc/tests/ccall/should_compile/cc002.stderr b/ghc/tests/ccall/should_compile/cc002.stderr
deleted file mode 100644 (file)
index 4d70998..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-cc002.hs:11: No instance for:
-                `Foreign.CReturnable Foreign.ForeignObj'
-    cc002.hs:11:
-       in the result of the _ccall_ to a
-    When checking signature(s) for: `a'
-
-
-Compilation had errors
index 1f8dfdc..d4eca73 100644 (file)
 
 ================================================================================
 Typechecked:
-{- nonrec -}
-{- nonrec -}
-AbsBinds [] [] [([], fubar{-r1,x-}, fubar_aZa)]
-    fubar_aZa
-       =   STBase.seqPrimIO{-r46,p-}
-               [PrelBase.(){-40,p-}, PrelBase.Int{-3g,p-}]
-               (STBase.ST{-5G,p-}{i}
-                    [GHC.RealWorld{-3s,p-}, PrelBase.(){-40,p-}]
-                    _ccall_ f)
-               (STBase.ST{-5G,p-}{i}
-                    [GHC.RealWorld{-3s,p-}, PrelBase.Int{-3g,p-}]
-                    _ccall_ b)
-{- nonrec -}
+AbsBinds [] [] [([], fubar{-r1,x-}, fubar_aTQ)]
+    fubar_aTQ
+       = STBase.seqPrimIO{-r46,p-}
+             [PrelBase.(){-40,W-}, PrelBase.Int{-3g,W-}]
+             (STBase.ST{-5G,w-}{i}
+                  [GHC.RealWorld{-3s,W-}, PrelBase.(){-40,W-}] _ccall_ f)
+             (STBase.ST{-5G,w-}{i}
+                  [GHC.RealWorld{-3s,W-}, PrelBase.Int{-3g,W-}] _ccall_ b)
 
 
 ================================================================================
 Desugared:
-fubar_aZa  :: 
-    STBase.PrimIO{-3P,p-} PrelBase.Int{-3g,p-}
+Rec {
+fubar_aTQ  ::  STBase.PrimIO{-3P,W-} PrelBase.Int{-3g,W-}
 {-# L #-}
-fubar_aZa =
-    let { ds_d110  :: 
-             STBase.ST{-3O,p-} GHC.RealWorld{-3s,p-} PrelBase.(){-40,p-}
+fubar_aTQ =
+    let { ds_dVM  ::  STBase.PrimIO{-3P,W-} PrelBase.(){-40,W-}
          {-# L #-}
-         ds_d110 =
+         ds_dVM =
       let {
-       ds_d11g  :: 
-           STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
-           -> (PrelBase.(){-40,p-}, STBase.State{-3M,p-} GHC.RealWorld{-3s,p-})
+       ds_dW2  ::  STBase.State{-3M,W-} GHC.RealWorld{-3s,W-}
+                   -> (PrelBase.(){-40,W-}, STBase.State{-3M,W-} GHC.RealWorld{-3s,W-})
        {-# L #-}
-       ds_d11g =
-           \ ds_d11m  :: 
-                 STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
+       ds_dW2 =
+           \ ds_dW8  ::  STBase.State{-3M,W-} GHC.RealWorld{-3s,W-}
              {-# L #-}
-             ds_d11m ->
-               case ds_d11m of { STBase.S#{-5D,p-}{i} ds_d11x  ->
+             ds_dW8 ->
+               case ds_dW8 of { STBase.S#{-5D,w-}{i} ds_dWn  ->
                case
-                   _ccall_ f [(STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-})]!
-                       ds_d11x
+                   _ccall_ f [(STBase.State{-3M,W-} GHC.RealWorld{-3s,W-}) (GHC.State#{-3L,W-} GHC.RealWorld{-3s,W-})]!
+                       ds_dWn
                of {
-               STBase.S#{-5D,p-}{i} ds_d11X  ->
+               STBase.S#{-5D,w-}{i} ds_dWN  ->
                let {
-                 ds_d11Q  :: 
-                     STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
+                 ds_dWG  ::  STBase.State{-3M,W-} GHC.RealWorld{-3s,W-}
                  {-# L #-}
-                 ds_d11Q =
-                     STBase.S#{-5D,p-}{i}
-                         {_@_ GHC.RealWorld{-3s,p-} ds_d11X}
+                 ds_dWG =
+                     STBase.S#{-5D,w-}{i} {_@_ GHC.RealWorld{-3s,W-} ds_dWN}
                } in 
-                 PrelTup.(,){-62,p-}{i}
-                     {_@_ PrelBase.(){-40,p-}
-                      _@_ (STBase.State{-3M,p-} GHC.RealWorld{-3s,p-})
-                      PrelBase.(){-60,p-}{i}
-                      ds_d11Q};};}
+                 PrelTup.(,){-62,w-}{i}
+                     {_@_ PrelBase.(){-40,W-}
+                      _@_ (STBase.State{-3M,W-} GHC.RealWorld{-3s,W-})
+                      PrelBase.(){-60,w-}{i}
+                      ds_dWG};};}
       } in 
-       STBase.ST{-5G,p-}{i}
-           _@_ GHC.RealWorld{-3s,p-} _@_ PrelBase.(){-40,p-} ds_d11g
+       STBase.ST{-5G,w-}{i}
+           _@_ GHC.RealWorld{-3s,W-} _@_ PrelBase.(){-40,W-} ds_dW2
     } in
-    let { ds_d114  :: 
-             STBase.ST{-3O,p-} GHC.RealWorld{-3s,p-} PrelBase.Int{-3g,p-}
+    let { ds_dVQ  ::  STBase.PrimIO{-3P,W-} PrelBase.Int{-3g,W-}
          {-# L #-}
-         ds_d114 =
+         ds_dVQ =
       let {
-       ds_d12a  :: 
-           STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
-           -> (PrelBase.Int{-3g,p-}, STBase.State{-3M,p-} GHC.RealWorld{-3s,p-})
+       ds_dX0  ::  STBase.State{-3M,W-} GHC.RealWorld{-3s,W-}
+                   -> (PrelBase.Int{-3g,W-}, STBase.State{-3M,W-} GHC.RealWorld{-3s,W-})
        {-# L #-}
-       ds_d12a =
-           \ ds_d12g  :: 
-                 STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
+       ds_dX0 =
+           \ ds_dX6  ::  STBase.State{-3M,W-} GHC.RealWorld{-3s,W-}
              {-# L #-}
-             ds_d12g ->
-               case ds_d12g of { STBase.S#{-5D,p-}{i} ds_d12r  ->
+             ds_dX6 ->
+               case ds_dX6 of { STBase.S#{-5D,w-}{i} ds_dXh  ->
                case
-                   _ccall_ b [(STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-})]!
-                       ds_d12r
+                   _ccall_ b [(STBase.StateAndInt#{-3D,W-} GHC.RealWorld{-3s,W-}) (GHC.State#{-3L,W-} GHC.RealWorld{-3s,W-})]!
+                       ds_dXh
                of {
-               STBase.StateAndInt#{-5v,p-}{i} ds_d12U ds_d12S  ->
+               STBase.StateAndInt#{-5v,w-}{i} ds_dXK ds_dXI  ->
                let {
-                 ds_d12J  :: 
-                     PrelBase.Int{-3g,p-}
+                 ds_dXz  ::  PrelBase.Int{-3g,W-}
                  {-# L #-}
-                 ds_d12J =
-                     PrelBase.I#{-5b,p-}{i}
-                         {ds_d12S} } in
+                 ds_dXz =
+                     PrelBase.I#{-5b,w-}{i} {ds_dXI} } in
                let {
-                 ds_d12N  :: 
-                     STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
+                 ds_dXD  ::  STBase.State{-3M,W-} GHC.RealWorld{-3s,W-}
                  {-# L #-}
-                 ds_d12N =
-                     STBase.S#{-5D,p-}{i}
-                         {_@_ GHC.RealWorld{-3s,p-} ds_d12U}
+                 ds_dXD =
+                     STBase.S#{-5D,w-}{i} {_@_ GHC.RealWorld{-3s,W-} ds_dXK}
                } in 
-                 PrelTup.(,){-62,p-}{i}
-                     {_@_ PrelBase.Int{-3g,p-}
-                      _@_ (STBase.State{-3M,p-} GHC.RealWorld{-3s,p-})
-                      ds_d12J
-                      ds_d12N};};}
+                 PrelTup.(,){-62,w-}{i}
+                     {_@_ PrelBase.Int{-3g,W-}
+                      _@_ (STBase.State{-3M,W-} GHC.RealWorld{-3s,W-})
+                      ds_dXz
+                      ds_dXD};};}
       } in 
-       STBase.ST{-5G,p-}{i}
-           _@_ GHC.RealWorld{-3s,p-} _@_ PrelBase.Int{-3g,p-} ds_d12a
+       STBase.ST{-5G,w-}{i}
+           _@_ GHC.RealWorld{-3s,W-} _@_ PrelBase.Int{-3g,W-} ds_dX0
     } in
     STBase.seqPrimIO{-r46,p-}
-       _@_ PrelBase.(){-40,p-} _@_ PrelBase.Int{-3g,p-} ds_d110 ds_d114
-fubar{-r1,x-}  :: 
-    STBase.PrimIO{-3P,p-} PrelBase.Int{-3g,p-}
+       _@_ PrelBase.(){-40,W-} _@_ PrelBase.Int{-3g,W-} ds_dVM ds_dVQ
+fubar{-r1,x-}  ::  STBase.PrimIO{-3P,W-} PrelBase.Int{-3g,W-}
 {-# L #-}
 fubar{-r1,x-} =
-    fubar_aZa
-
-NOTE: Simplifier still going after 4 iterations; bailing out.
+    fubar_aTQ
+end Rec }
index ed9f6bb..c86a6ae 100644 (file)
 
-NOTE: Simplifier still going after 4 iterations; bailing out.
-
 
 ================================================================================
 STG syntax:
-nrlit_s25b =
-     PrelNum.:%{-5l,p-}{i}! [PrelNum.integer_2{-8e,p-} PrelNum.integer_1{-8d,p-}];
-lit_a19u =
+$g0_g0 =
+     PrelNum.:%{-5l,p-}{i}! [PrelNum.integer_2{-8e,w-} PrelNum.integer_1{-8d,w-}];
+$g1_a15t =
     (False, True, False, False, True) [] \u []
        case
-           PrelNum.$d14{-rtM,p-} ::{PrelNum.Fractional{-26,p-} PrelBase.Double{-3a,p-}}
+           PrelNum.$d14{-rs6,p-} ::{PrelNum.Fractional{-26,p-} PrelBase.Double{-3a,W-}}
        of {
-           -- lvs: []; rhs lvs: []; uniq: c2b9
-         PrelTup.(,,,){-64,p-}{i} tpl_s1V1 tpl_s1V2 tpl_s1V3 tpl_s1V0 ->
-             tpl_s1V0
-                 nrlit_s25b;
+           -- lvs: []; rhs lvs: []; uniq: c1QY
+         PrelTup.(,,,){-64,w-}{i} $x0_s1En $x1_s1Eo $x2_s1Ep $x3_s1Em ->
+             $x3_s1Em $g0_g0;
        };
-nrlit_s25c =
-     PrelNum.:%{-5l,p-}{i}! [PrelNum.integer_1{-8d,p-} PrelNum.integer_1{-8d,p-}];
-lit_a19w =
+$g2_g2 =
+     PrelNum.:%{-5l,p-}{i}! [PrelNum.integer_1{-8d,w-} PrelNum.integer_1{-8d,w-}];
+$g3_a15r =
     (False, True, False, False, True) [] \u []
        case
-           PrelNum.$d23{-rtW,p-} ::{PrelNum.Fractional{-26,p-} PrelBase.Float{-3c,p-}}
+           PrelNum.$d23{-rsg,p-} ::{PrelNum.Fractional{-26,p-} PrelBase.Float{-3c,W-}}
        of {
-           -- lvs: []; rhs lvs: []; uniq: c2ba
-         PrelTup.(,,,){-64,p-}{i} tpl_s1Vt tpl_s1Vu tpl_s1Vv tpl_s1Vs ->
-             tpl_s1Vs
-                 nrlit_s25c;
-       };
-s_s1MF =
-     [] \r [ds_s1VJ]
-       case ds_s1VJ ::STBase.State{-3M,p-} GHC.RealWorld{-3s,p-} of {
-           -- lvs: [ds_s1VJ]; rhs lvs: []; uniq: c2bb
-         STBase.S#{-5D,p-}{i} ds_s1Wa ->
-             case
-                 _ccall_ a [(STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-})]# [ds_s1Wa] ::STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}
-             of {
-                 -- lvs: [ds_s1Wa]; rhs lvs: []; uniq: c2bc
-               STBase.StateAndInt#{-5v,p-}{i} ds_s1Wk ds_s1W9 ->
-                   let {
-                     ds_s1WA =
-                          PrelBase.I#{-5b,p-}{i}! [ds_s1W9]; } in
-                   let {
-                     ds_s1Wz =
-                          STBase.S#{-5D,p-}{i}! [ds_s1Wk];
-                   } in 
-                     PrelTup.(,){-62,p-}{i}! [ds_s1WA ds_s1Wz];
-             };
+           -- lvs: []; rhs lvs: []; uniq: c1QZ
+         PrelTup.(,,,){-64,w-}{i} $x0_s1EP $x1_s1EQ $x2_s1ER $x3_s1EO ->
+             $x3_s1EO $g2_g2;
        };
-s_s1Xu =
-     [] \r [ds_s1WI]
-       case ds_s1WI ::STBase.State{-3M,p-} GHC.RealWorld{-3s,p-} of {
-           -- lvs: [ds_s1WI]; rhs lvs: []; uniq: c2bd
-         STBase.S#{-5D,p-}{i} ds_s1X9 ->
+a{-r1,x-} =
+     [] \r [$x0_s1F9]
+       case $x0_s1F9 ::STBase.State{-3M,W-} GHC.RealWorld{-3s,W-} of {
+           -- lvs: [$x0_s1F9]; rhs lvs: []; uniq: c1R0
+         STBase.S#{-5D,w-}{i} $x1_s1FA ->
              case
-                 _ccall_ a [(STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-})]# [ds_s1X9] ::STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}
+                 _ccall_ a [(STBase.StateAndInt#{-3D,W-} GHC.RealWorld{-3s,W-}) (GHC.State#{-3L,W-} GHC.RealWorld{-3s,W-})]# [$x1_s1FA] ::STBase.StateAndInt#{-3D,W-} GHC.RealWorld{-3s,W-}
              of {
-                 -- lvs: [ds_s1X9]; rhs lvs: []; uniq: c2be
-               STBase.StateAndInt#{-5v,p-}{i} ds_s1Xj ds_s1X8 ->
-                   let {
-                     ds_s1XP =
-                          PrelBase.I#{-5b,p-}{i}! [ds_s1X8]; } in
-                   let {
-                     ds_s1XO =
-                          STBase.S#{-5D,p-}{i}! [ds_s1Xj];
-                   } in 
-                     PrelTup.(,){-62,p-}{i}! [ds_s1XP ds_s1XO];
+                 -- lvs: [$x1_s1FA]; rhs lvs: []; uniq: c1R1
+               STBase.StateAndInt#{-5v,w-}{i} $x2_s1FK $x3_s1Fz ->
+                   let { $x4_s1Gc =  PrelBase.I#{-5b,w-}{i}! [$x3_s1Fz]; } in
+                   let { $x5_s1Gb =  STBase.S#{-5D,w-}{i}! [$x2_s1FK];
+                   } in  PrelTup.(,){-62,w-}{i}! [$x4_s1Gc $x5_s1Gb];
              };
        };
-a{-r1,x-} =
-     [] \u []
-       s_s1Xu;
 b{-r3,x-} =
-     [] \r [x_s1XY]
+     [] \r [$x0_s1Gl]
        let {
-         stg_c2ac =
-             (False, True, False, False, True) [x_s1XY] \r [ds_s1XN]
+         stg_c1Qp =
+             (False, True, False, False, True) [$x0_s1Gl] \r [$x1_s1Ga]
                  case
-                     ds_s1XN{-lvs:x_s1XY-} ::STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
+                     $x1_s1Ga{-lvs:$x0_s1Gl-} ::STBase.State{-3M,W-} GHC.RealWorld{-3s,W-}
                  of {
-                     -- lvs: [ds_s1XN x_s1XY]; rhs lvs: [x_s1XY]; uniq: c2bf
-                   STBase.S#{-5D,p-}{i} ds_s1XZ ->
-                       case x_s1XY{-lvs:ds_s1XZ-} ::PrelBase.Int{-3g,p-} of {
-                           -- lvs: [x_s1XY ds_s1XZ]; rhs lvs: [ds_s1XZ]; uniq: c2bg
-                         PrelBase.I#{-5b,p-}{i} ds_s1Yp ->
+                     -- lvs: [$x1_s1Ga $x0_s1Gl]; rhs lvs: [$x0_s1Gl]; uniq: c1R2
+                   STBase.S#{-5D,w-}{i} $x2_s1Gm ->
+                       case $x0_s1Gl{-lvs:$x2_s1Gm-} ::PrelBase.Int{-3g,W-} of {
+                           -- lvs: [$x0_s1Gl $x2_s1Gm]; rhs lvs: [$x2_s1Gm]; uniq: c1R3
+                         PrelBase.I#{-5b,w-}{i} $x3_s1GM ->
                              case
-                                 _ccall_ b [(STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-}) GHC.Int#{-3f,p-}]# [ds_s1XZ ds_s1Yp] ::STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}
+                                 _ccall_ b [(STBase.StateAndInt#{-3D,W-} GHC.RealWorld{-3s,W-}) (GHC.State#{-3L,W-} GHC.RealWorld{-3s,W-}) GHC.Int#{-3f,W-}]# [$x2_s1Gm $x3_s1GM] ::STBase.StateAndInt#{-3D,W-} GHC.RealWorld{-3s,W-}
                              of {
-                                 -- lvs: [ds_s1XZ ds_s1Yp]; rhs lvs: []; uniq: c2bh
-                               STBase.StateAndInt#{-5v,p-}{i} ds_s1YA ds_s1Yq ->
-                                   let {
-                                     ds_s1Za =
-                                          PrelBase.I#{-5b,p-}{i}! [ds_s1Yq]; } in
-                                   let {
-                                     ds_s1Z9 =
-                                          STBase.S#{-5D,p-}{i}! [ds_s1YA];
-                                   } in 
-                                     PrelTup.(,){-62,p-}{i}! [ds_s1Za ds_s1Z9];
+                                 -- lvs: [$x2_s1Gm $x3_s1GM]; rhs lvs: []; uniq: c1R4
+                               STBase.StateAndInt#{-5v,w-}{i} $x4_s1GX $x5_s1GN ->
+                                   let { $x6_s1Hx =  PrelBase.I#{-5b,w-}{i}! [$x5_s1GN]; } in
+                                   let { $x7_s1Hw =  STBase.S#{-5D,w-}{i}! [$x4_s1GX];
+                                   } in  PrelTup.(,){-62,w-}{i}! [$x6_s1Hx $x7_s1Hw];
                              };
                        };
                  };
-       } in 
-         stg_c2ac;
+       } in  stg_c1Qp;
 c{-r5,x-} =
-     [] \r [x1_s1Zj x2_s1Zt x3_s1ZD x4_s1ZN]
+     [] \r [$x0_s1HG $x1_s1HQ $x2_s1I0 $x3_s1Ia]
        let {
-         stg_c29C =
-             (False, True, False, False, True) [x1_s1Zj x2_s1Zt x3_s1ZD x4_s1ZN] \r [ds_s1Z8]
+         stg_c1PP =
+             (False, True, False, False, True) [$x0_s1HG $x1_s1HQ $x2_s1I0 $x3_s1Ia] \r [$x4_s1Hv]
                  case
-                     ds_s1Z8{-lvs:x1_s1Zj, x2_s1Zt, x3_s1ZD, x4_s1ZN-} ::STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
+                     $x4_s1Hv{-lvs:$x0_s1HG, $x1_s1HQ, $x2_s1I0, $x3_s1Ia-} ::STBase.State{-3M,W-} GHC.RealWorld{-3s,W-}
                  of {
-                     -- lvs: [ds_s1Z8 x1_s1Zj x2_s1Zt x3_s1ZD x4_s1ZN]; rhs lvs: [x1_s1Zj x2_s1Zt x3_s1ZD x4_s1ZN]; uniq: c2bi
-                   STBase.S#{-5D,p-}{i} ds_s1Zk ->
+                     -- lvs: [$x4_s1Hv $x0_s1HG $x1_s1HQ $x2_s1I0 $x3_s1Ia]; rhs lvs: [$x0_s1HG $x1_s1HQ $x2_s1I0 $x3_s1Ia]; uniq: c1R5
+                   STBase.S#{-5D,w-}{i} $x5_s1HH ->
                        case
-                           x1_s1Zj{-lvs:ds_s1Zk, x2_s1Zt, x3_s1ZD, x4_s1ZN-} ::PrelBase.Int{-3g,p-}
+                           $x0_s1HG{-lvs:$x5_s1HH, $x1_s1HQ, $x2_s1I0, $x3_s1Ia-} ::PrelBase.Int{-3g,W-}
                        of {
-                           -- lvs: [x1_s1Zj ds_s1Zk x2_s1Zt x3_s1ZD x4_s1ZN]; rhs lvs: [ds_s1Zk x2_s1Zt x3_s1ZD x4_s1ZN]; uniq: c2bj
-                         PrelBase.I#{-5b,p-}{i} ds_s1Zu ->
+                           -- lvs: [$x0_s1HG $x5_s1HH $x1_s1HQ $x2_s1I0 $x3_s1Ia]; rhs lvs: [$x5_s1HH $x1_s1HQ $x2_s1I0 $x3_s1Ia]; uniq: c1R6
+                         PrelBase.I#{-5b,w-}{i} $x6_s1HR ->
                              case
-                                 x2_s1Zt{-lvs:ds_s1Zk, ds_s1Zu, x3_s1ZD, x4_s1ZN-} ::PrelBase.Char{-38,p-}
+                                 $x1_s1HQ{-lvs:$x5_s1HH, $x6_s1HR, $x2_s1I0, $x3_s1Ia-} ::PrelBase.Char{-38,W-}
                              of {
-                                 -- lvs: [ds_s1Zk x2_s1Zt ds_s1Zu x3_s1ZD x4_s1ZN]; rhs lvs: [ds_s1Zk ds_s1Zu x3_s1ZD x4_s1ZN]; uniq: c2bk
-                               PrelBase.C#{-54,p-}{i} ds_s1ZE ->
+                                 -- lvs: [$x5_s1HH $x1_s1HQ $x6_s1HR $x2_s1I0 $x3_s1Ia]; rhs lvs: [$x5_s1HH $x6_s1HR $x2_s1I0 $x3_s1Ia]; uniq: c1R7
+                               PrelBase.C#{-54,w-}{i} $x7_s1I1 ->
                                    case
-                                       x3_s1ZD{-lvs:ds_s1Zk, ds_s1Zu, ds_s1ZE, x4_s1ZN-} ::PrelBase.Float{-3c,p-}
+                                       $x2_s1I0{-lvs:$x5_s1HH, $x6_s1HR, $x7_s1I1, $x3_s1Ia-} ::PrelBase.Float{-3c,W-}
                                    of {
-                                       -- lvs: [ds_s1Zk ds_s1Zu x3_s1ZD ds_s1ZE x4_s1ZN]; rhs lvs: [ds_s1Zk ds_s1Zu ds_s1ZE x4_s1ZN]; uniq: c2bl
-                                     PrelBase.F#{-59,p-}{i} ds_s1ZO ->
+                                       -- lvs: [$x5_s1HH $x6_s1HR $x2_s1I0 $x7_s1I1 $x3_s1Ia]; rhs lvs: [$x5_s1HH $x6_s1HR $x7_s1I1 $x3_s1Ia]; uniq: c1R8
+                                     PrelBase.F#{-59,w-}{i} $x8_s1Ib ->
                                          case
-                                             x4_s1ZN{-lvs:ds_s1Zk, ds_s1Zu, ds_s1ZE, ds_s1ZO-} ::PrelBase.Double{-3a,p-}
+                                             $x3_s1Ia{-lvs:$x5_s1HH, $x6_s1HR, $x7_s1I1, $x8_s1Ib-} ::PrelBase.Double{-3a,W-}
                                          of {
-                                             -- lvs: [ds_s1Zk ds_s1Zu ds_s1ZE x4_s1ZN ds_s1ZO]; rhs lvs: [ds_s1Zk ds_s1Zu ds_s1ZE ds_s1ZO]; uniq: c2bm
-                                           PrelBase.D#{-56,p-}{i} ds_s20e ->
+                                             -- lvs: [$x5_s1HH $x6_s1HR $x7_s1I1 $x3_s1Ia $x8_s1Ib]; rhs lvs: [$x5_s1HH $x6_s1HR $x7_s1I1 $x8_s1Ib]; uniq: c1R9
+                                           PrelBase.D#{-56,w-}{i} $x9_s1IB ->
                                                case
-                                                   _ccall_ c [(STBase.StateAndFloat#{-3C,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-}) GHC.Int#{-3f,p-} GHC.Char#{-37,p-} GHC.Float#{-3b,p-} GHC.Double#{-39,p-}]# [ds_s1Zk ds_s1Zu ds_s1ZE ds_s1ZO ds_s20e] ::STBase.StateAndFloat#{-3C,p-} GHC.RealWorld{-3s,p-}
+                                                   _ccall_ c [(STBase.StateAndFloat#{-3C,W-} GHC.RealWorld{-3s,W-}) (GHC.State#{-3L,W-} GHC.RealWorld{-3s,W-}) GHC.Int#{-3f,W-} GHC.Char#{-37,W-} GHC.Float#{-3b,W-} GHC.Double#{-39,W-}]# [$x5_s1HH $x6_s1HR $x7_s1I1 $x8_s1Ib $x9_s1IB] ::STBase.StateAndFloat#{-3C,W-} GHC.RealWorld{-3s,W-}
                                                of {
-                                                   -- lvs: [ds_s1Zk ds_s1Zu ds_s1ZE ds_s1ZO ds_s20e]; rhs lvs: []; uniq: c2bn
-                                                 STBase.StateAndFloat#{-5u,p-}{i} ds_s20p ds_s20f ->
+                                                   -- lvs: [$x5_s1HH $x6_s1HR $x7_s1I1 $x8_s1Ib $x9_s1IB]; rhs lvs: []; uniq: c1Ra
+                                                 STBase.StateAndFloat#{-5u,w-}{i} $xa_s1IM $xb_s1IC ->
                                                      let {
-                                                       ds_s217 =
-                                                            PrelBase.F#{-59,p-}{i}! [ds_s20f]; } in
+                                                       $xc_s1Jy =
+                                                            PrelBase.F#{-59,w-}{i}! [$xb_s1IC]; } in
                                                      let {
-                                                       ds_s216 =
-                                                            STBase.S#{-5D,p-}{i}! [ds_s20p];
+                                                       $xd_s1Jx =
+                                                            STBase.S#{-5D,w-}{i}! [$xa_s1IM];
                                                      } in 
-                                                       PrelTup.(,){-62,p-}{i}! [ds_s217 ds_s216];
+                                                       PrelTup.(,){-62,w-}{i}! [$xc_s1Jy $xd_s1Jx];
                                                };
                                          };
                                    };
                              };
                        };
                  };
-       } in 
-         stg_c29C;
+       } in  stg_c1PP;
 d{-r7,x-} =
      [] \u []
        let {
-         ds_s258 =
-              [] \r [x_s21g]
-                 let { s_s22a =  [x_s21g] \r [ds_s215]
+         $xk_s1Ma =
+              [] \r [$x0_s1JH]
+                 let { $x8_s1KM =  [$x0_s1JH] \r [$x1_s1Jw]
                          case
-                             ds_s215{-lvs:x_s21g-} ::STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
+                             $x1_s1Jw{-lvs:$x0_s1JH-} ::STBase.State{-3M,W-} GHC.RealWorld{-3s,W-}
                          of {
-                             -- lvs: [ds_s215 x_s21g]; rhs lvs: [x_s21g]; uniq: c2bo
-                           STBase.S#{-5D,p-}{i} ds_s21h ->
-                               case x_s21g{-lvs:ds_s21h-} ::PrelBase.Int{-3g,p-} of {
-                                   -- lvs: [x_s21g ds_s21h]; rhs lvs: [ds_s21h]; uniq: c2bp
-                                 PrelBase.I#{-5b,p-}{i} ds_s21H ->
+                             -- lvs: [$x1_s1Jw $x0_s1JH]; rhs lvs: [$x0_s1JH]; uniq: c1Rb
+                           STBase.S#{-5D,w-}{i} $x2_s1JI ->
+                               case $x0_s1JH{-lvs:$x2_s1JI-} ::PrelBase.Int{-3g,W-} of {
+                                   -- lvs: [$x0_s1JH $x2_s1JI]; rhs lvs: [$x2_s1JI]; uniq: c1Rc
+                                 PrelBase.I#{-5b,w-}{i} $x3_s1K8 ->
                                      case
-                                         _ccall_ b [(STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-}) GHC.Int#{-3f,p-}]# [ds_s21h ds_s21H] ::STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}
+                                         _ccall_ b [(STBase.StateAndInt#{-3D,W-} GHC.RealWorld{-3s,W-}) (GHC.State#{-3L,W-} GHC.RealWorld{-3s,W-}) GHC.Int#{-3f,W-}]# [$x2_s1JI $x3_s1K8] ::STBase.StateAndInt#{-3D,W-} GHC.RealWorld{-3s,W-}
                                      of {
-                                         -- lvs: [ds_s21h ds_s21H]; rhs lvs: []; uniq: c2bq
-                                       STBase.StateAndInt#{-5v,p-}{i} ds_s21S ds_s21I ->
+                                         -- lvs: [$x2_s1JI $x3_s1K8]; rhs lvs: []; uniq: c1Rd
+                                       STBase.StateAndInt#{-5v,w-}{i} $x4_s1Kj $x5_s1K9 ->
                                            let {
-                                             ds_s22c =
-                                                  PrelBase.I#{-5b,p-}{i}! [ds_s21I]; } in
-                                           let {
-                                             ds_s22b =
-                                                  STBase.S#{-5D,p-}{i}! [ds_s21S];
-                                           } in 
-                                             PrelTup.(,){-62,p-}{i}! [ds_s22c ds_s22b];
-                                     };
-                               };
-                         } } in
-                 let { s_s23h =  [x_s21g] \r [ds_s22k]
-                         case
-                             ds_s22k{-lvs:x_s21g-} ::STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
-                         of {
-                             -- lvs: [x_s21g ds_s22k]; rhs lvs: [x_s21g]; uniq: c2br
-                           STBase.S#{-5D,p-}{i} ds_s22t ->
-                               case x_s21g{-lvs:ds_s22t-} ::PrelBase.Int{-3g,p-} of {
-                                   -- lvs: [x_s21g ds_s22t]; rhs lvs: [ds_s22t]; uniq: c2bs
-                                 PrelBase.I#{-5b,p-}{i} ds_s22T ->
-                                     case
-                                         _ccall_ b [(STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-}) GHC.Int#{-3f,p-}]# [ds_s22t ds_s22T] ::STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}
-                                     of {
-                                         -- lvs: [ds_s22t ds_s22T]; rhs lvs: []; uniq: c2bt
-                                       STBase.StateAndInt#{-5v,p-}{i} ds_s234 ds_s22U ->
-                                           let {
-                                             ds_s23A =
-                                                  PrelBase.I#{-5b,p-}{i}! [ds_s22U]; } in
-                                           let {
-                                             ds_s23z =
-                                                  STBase.S#{-5D,p-}{i}! [ds_s234];
-                                           } in 
-                                             PrelTup.(,){-62,p-}{i}! [ds_s23A ds_s23z];
+                                             $x6_s1KL =  PrelBase.I#{-5b,w-}{i}! [$x5_s1K9]; } in
+                                           let { $x7_s1KK =  STBase.S#{-5D,w-}{i}! [$x4_s1Kj];
+                                           } in  PrelTup.(,){-62,w-}{i}! [$x6_s1KL $x7_s1KK];
                                      };
                                };
                          } } in
                  let {
-                   ds_s24V =
-                        [] \r [y_s23K]
+                   $xj_s1M6 =
+                        [] \r [$x9_s1KV]
                            let {
-                             stg_c28E =
-                                 (False, True, False, False, True) [y_s23K] \r [ds_s23y]
+                             stg_c1OR =
+                                 (False, True, False, False, True) [$x9_s1KV] \r [$xa_s1KJ]
                                      case
-                                         ds_s23y{-lvs:y_s23K-} ::STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
+                                         $xa_s1KJ{-lvs:$x9_s1KV-} ::STBase.State{-3M,W-} GHC.RealWorld{-3s,W-}
                                      of {
-                                         -- lvs: [ds_s23y y_s23K]; rhs lvs: [y_s23K]; uniq: c2bu
-                                       STBase.S#{-5D,p-}{i} ds_s23L ->
-                                           case y_s23K{-lvs:ds_s23L-} ::PrelBase.Int{-3g,p-} of {
-                                               -- lvs: [y_s23K ds_s23L]; rhs lvs: [ds_s23L]; uniq: c2bv
-                                             PrelBase.I#{-5b,p-}{i} ds_s23U ->
+                                         -- lvs: [$xa_s1KJ $x9_s1KV]; rhs lvs: [$x9_s1KV]; uniq: c1Re
+                                       STBase.S#{-5D,w-}{i} $xb_s1KW ->
+                                           case
+                                               $x9_s1KV{-lvs:$xb_s1KW-} ::PrelBase.Int{-3g,W-}
+                                           of {
+                                               -- lvs: [$x9_s1KV $xb_s1KW]; rhs lvs: [$xb_s1KW]; uniq: c1Rf
+                                             PrelBase.I#{-5b,w-}{i} $xc_s1L5 ->
                                                  case
-                                                     lit_a19w{-lvs:ds_s23L, ds_s23U-} ::PrelBase.Float{-3c,p-}
+                                                     $g3_a15r{-lvs:$xb_s1KW, $xc_s1L5-} ::PrelBase.Float{-3c,W-}
                                                  of {
-                                                     -- lvs: [ds_s23L ds_s23U]; rhs lvs: [ds_s23L ds_s23U]; uniq: c2bw
-                                                   PrelBase.F#{-59,p-}{i} ds_s243 ->
+                                                     -- lvs: [$xb_s1KW $xc_s1L5]; rhs lvs: [$xb_s1KW $xc_s1L5]; uniq: c1Rg
+                                                   PrelBase.F#{-59,w-}{i} $xd_s1Le ->
                                                        case
-                                                           lit_a19u{-lvs:ds_s23L, ds_s23U, ds_s243-} ::PrelBase.Double{-3a,p-}
+                                                           $g1_a15t{-lvs:$xb_s1KW, $xc_s1L5, $xd_s1Le-} ::PrelBase.Double{-3a,W-}
                                                        of {
-                                                           -- lvs: [ds_s23L ds_s23U ds_s243]; rhs lvs: [ds_s23L ds_s23U ds_s243]; uniq: c2bx
-                                                         PrelBase.D#{-56,p-}{i} ds_s24t ->
+                                                           -- lvs: [$xb_s1KW $xc_s1L5 $xd_s1Le]; rhs lvs: [$xb_s1KW $xc_s1L5 $xd_s1Le]; uniq: c1Rh
+                                                         PrelBase.D#{-56,w-}{i} $xe_s1LE ->
                                                              case
-                                                                 _ccall_ c [(STBase.StateAndFloat#{-3C,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-}) GHC.Int#{-3f,p-} GHC.Char#{-37,p-} GHC.Float#{-3b,p-} GHC.Double#{-39,p-}]# [ds_s23L ds_s23U 'f' ds_s243 ds_s24t] ::STBase.StateAndFloat#{-3C,p-} GHC.RealWorld{-3s,p-}
+                                                                 _ccall_ c [(STBase.StateAndFloat#{-3C,W-} GHC.RealWorld{-3s,W-}) (GHC.State#{-3L,W-} GHC.RealWorld{-3s,W-}) GHC.Int#{-3f,W-} GHC.Char#{-37,W-} GHC.Float#{-3b,W-} GHC.Double#{-39,W-}]# [$xb_s1KW $xc_s1L5 'f' $xd_s1Le $xe_s1LE] ::STBase.StateAndFloat#{-3C,W-} GHC.RealWorld{-3s,W-}
                                                              of {
-                                                                 -- lvs: [ds_s23L ds_s23U ds_s243 ds_s24t]; rhs lvs: []; uniq: c2by
-                                                               STBase.StateAndFloat#{-5u,p-}{i} ds_s24E ds_s24u ->
+                                                                 -- lvs: [$xb_s1KW $xc_s1L5 $xd_s1Le $xe_s1LE]; rhs lvs: []; uniq: c1Ri
+                                                               STBase.StateAndFloat#{-5u,w-}{i} $xf_s1LP $xg_s1LF ->
                                                                    let {
-                                                                     ds_s24U =
-                                                                          PrelBase.F#{-59,p-}{i}! [ds_s24u]; } in
+                                                                     $xh_s1M5 =
+                                                                          PrelBase.F#{-59,w-}{i}! [$xg_s1LF]; } in
                                                                    let {
-                                                                     ds_s24T =
-                                                                          STBase.S#{-5D,p-}{i}! [ds_s24E];
+                                                                     $xi_s1M4 =
+                                                                          STBase.S#{-5D,w-}{i}! [$xf_s1LP];
                                                                    } in 
-                                                                     PrelTup.(,){-62,p-}{i}! [ds_s24U ds_s24T];
+                                                                     PrelTup.(,){-62,w-}{i}! [$xh_s1M5 $xi_s1M4];
                                                              };
                                                        };
                                                  };
                                            };
                                      };
-                           } in 
-                             stg_c28E;
-                 } in 
-                   STBase.thenPrimIO{-r4w,p-}
-                       s_s23h ds_s24V;
-       } in 
-         STBase.thenPrimIO{-r4w,p-}
-             s_s1Xu ds_s258;
+                           } in  stg_c1OR;
+                 } in  STBase.thenPrimIO{-r4t,p-} $x8_s1KM $xj_s1M6;
+       } in  STBase.thenPrimIO{-r4t,p-} a{-r1,x-} $xk_s1Ma;
 
 
 ================================================================================
 Flat Abstract C:
 ED_(PrelNum_integerZu2_closure);
 ED_(PrelNum_integerZu1_closure);
-SET_STATIC_HDR(s25b_closure,PrelNum_ZcZ37_static_info,0,static ,ED_RO_)
+SET_STATIC_HDR(g0_closure,PrelNum_ZcZ37_static_info,0,static ,ED_RO_)
   , (W_)PrelNum_integerZu2_closure, (W_)PrelNum_integerZu1_closure
 };
-IFN_(ret_c2b9) {
-ID_(s25b_closure);
+IFN_(ret_c1QY) {
+ID_(g0_closure);
        FB_
-       SpA[-1]=s25b_closure;
+       SpA[-1]=g0_closure;
        RetReg=StdUpdRetVecReg;
        R1=R6;
        SpA=SpA-1;
@@ -280,10 +209,9 @@ ID_(s25b_closure);
        JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-UNVECTBL(static,vtbl_c2b9,ret_c2b9)
-STATIC_ITBL(a19u_info,a19u_entry,StdErrorCode,1,-1,(STATIC_VHS+
-                                                   2),0,static const,IF_,0,0,0);
-IFN_(a19u_entry) {
+UNVECTBL(static,vtbl_c1QY,ret_c1QY)
+STATIC_ITBL(a15t_info,a15t_entry,StdErrorCode,1,-1,(STATIC_VHS+2),0,static const,IF_,0,0,0);
+IFN_(a15t_entry) {
 ED_(PrelNum_Z36d14_closure);
        FB_
        STK_CHK(1,1,5,0,0,0,1);
@@ -291,7 +219,7 @@ ED_(PrelNum_Z36d14_closure);
        SET_BH_HDR(Hp-(BH_HS+1),BH_UPD_info,0,(BH_VHS+2),0);
        UPD_CAF(R1.p,Hp-(BH_HS+1));
        PUSH_STD_UPD_FRAME(Hp-(BH_HS+1),0,0);
-       RetReg=(StgRetAddr)UNVEC(ret_c2b9,vtbl_c2b9);
+       RetReg=(StgRetAddr)UNVEC(ret_c1QY,vtbl_c1QY);
        R1.p=PrelNum_Z36d14_closure;
        SpB=SpB+5;
        ENT_VIA_NODE();
@@ -299,17 +227,17 @@ ED_(PrelNum_Z36d14_closure);
        JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-SET_STATIC_HDR(a19u_closure,a19u_info,0,static ,ID_RO_)
+SET_STATIC_HDR(a15t_closure,a15t_info,0,static ,ID_RO_)
   , (W_)0, (W_)0
 };
 ED_(PrelNum_integerZu1_closure);
-SET_STATIC_HDR(s25c_closure,PrelNum_ZcZ37_static_info,0,static ,ED_RO_)
+SET_STATIC_HDR(g2_closure,PrelNum_ZcZ37_static_info,0,static ,ED_RO_)
   , (W_)PrelNum_integerZu1_closure, (W_)PrelNum_integerZu1_closure
 };
-IFN_(ret_c2ba) {
-ID_(s25c_closure);
+IFN_(ret_c1QZ) {
+ID_(g2_closure);
        FB_
-       SpA[-1]=s25c_closure;
+       SpA[-1]=g2_closure;
        RetReg=StdUpdRetVecReg;
        R1=R6;
        SpA=SpA-1;
@@ -319,10 +247,9 @@ ID_(s25c_closure);
        JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-UNVECTBL(static,vtbl_c2ba,ret_c2ba)
-STATIC_ITBL(a19w_info,a19w_entry,StdErrorCode,1,-1,(STATIC_VHS+
-                                                   2),0,static const,IF_,0,0,0);
-IFN_(a19w_entry) {
+UNVECTBL(static,vtbl_c1QZ,ret_c1QZ)
+STATIC_ITBL(a15r_info,a15r_entry,StdErrorCode,1,-1,(STATIC_VHS+2),0,static const,IF_,0,0,0);
+IFN_(a15r_entry) {
 ED_(PrelNum_Z36d23_closure);
        FB_
        STK_CHK(1,1,5,0,0,0,1);
@@ -330,7 +257,7 @@ ED_(PrelNum_Z36d23_closure);
        SET_BH_HDR(Hp-(BH_HS+1),BH_UPD_info,0,(BH_VHS+2),0);
        UPD_CAF(R1.p,Hp-(BH_HS+1));
        PUSH_STD_UPD_FRAME(Hp-(BH_HS+1),0,0);
-       RetReg=(StgRetAddr)UNVEC(ret_c2ba,vtbl_c2ba);
+       RetReg=(StgRetAddr)UNVEC(ret_c1QZ,vtbl_c1QZ);
        R1.p=PrelNum_Z36d23_closure;
        SpB=SpB+5;
        ENT_VIA_NODE();
@@ -338,80 +265,14 @@ ED_(PrelNum_Z36d23_closure);
        JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-SET_STATIC_HDR(a19w_closure,a19w_info,0,static ,ID_RO_)
+SET_STATIC_HDR(a15r_closure,a15r_info,0,static ,ID_RO_)
   , (W_)0, (W_)0
 };
-IFN_(ret_c2bb) {
-ED_RO_(PrelBase_IZh_con_info);
-ED_(STBase_SZh_static_closure);
-ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
-I_ s1W9;
-       FB_
-       HEAP_CHK(0,(_FHS+1),0);
-       {
-       I_ _ccall_result;
-       CALLER_SAVE_Base
-       CALLER_SAVE_SpA
-       CALLER_SAVE_SuA
-       CALLER_SAVE_SpB
-       CALLER_SAVE_SuB
-       CALLER_SAVE_Ret
-       CALLER_SAVE_Hp
-       CALLER_SAVE_HpLim
-       _ccall_result = (a());
-       CALLER_RESTORE_Base
-       CALLER_RESTORE_SpA
-       CALLER_RESTORE_SuA
-       CALLER_RESTORE_SpB
-       CALLER_RESTORE_SuB
-       CALLER_RESTORE_Ret
-       CALLER_RESTORE_Hp
-       CALLER_RESTORE_HpLim
-       CALLER_RESTORE_StdUpdRetVec
-       CALLER_RESTORE_StkStub
-       s1W9=_ccall_result;
-       }
-       SET_SPEC_HDR(Hp-_FHS,PrelBase_IZh_con_info,0,1,0);
-       *Hp=(W_)(s1W9);
-       R4.p=STBase_SZh_static_closure;
-       R3.p=Hp-_FHS;
-       SpB=SpB-1;
-       R2.d=PrelTup_Z40Z44Z41_inregs_info;
-       GRAN_EXEC(10,2,21,22,0);
-       JMP_(DIRECT((StgRetAddr)(SpB[1])));
-       FE_
-}
-UNVECTBL(static,vtbl_c2bb,ret_c2bb)
-STATIC_ITBL(s1MF_info,s1MF_entry,StdErrorCode,1,-1,STATIC_VHS,0,static const,IF_,0,0,0);
-IFN_(s1MF_entry) {
-ID_(s1MF_closure);
-IF_(s1MF_fast1);
-       FB_
-       ARGS_CHK_A_LOAD_NODE(1,s1MF_closure);
-       R1.p=*SpA;
-       SpA=SpA+1;
-       GRAN_EXEC(5,2,1,0,0);
-       JMP_(s1MF_fast1);
-       FE_
-}
-IFN_(s1MF_fast1) {
-       FB_
-       STK_CHK(1,0,1,0,0,0,0);
-       SpB[1]=(W_)(RetReg);
-       RetReg=(StgRetAddr)UNVEC(ret_c2bb,vtbl_c2bb);
-       SpB=SpB+1;
-       ENT_VIA_NODE();
-       GRAN_EXEC(3,1,1,1,0);
-       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
-       FE_
-}
-SET_STATIC_HDR(s1MF_closure,s1MF_info,0,static ,ID_RO_)
-};
-IFN_(ret_c2bd) {
+IFN_(ret_c1R0) {
 ED_RO_(PrelBase_IZh_con_info);
 ED_(STBase_SZh_static_closure);
 ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
-I_ s1X8;
+I_ s1Fz_;
        FB_
        HEAP_CHK(0,(_FHS+1),0);
        {
@@ -435,10 +296,10 @@ I_ s1X8;
        CALLER_RESTORE_HpLim
        CALLER_RESTORE_StdUpdRetVec
        CALLER_RESTORE_StkStub
-       s1X8=_ccall_result;
+       s1Fz_=_ccall_result;
        }
        SET_SPEC_HDR(Hp-_FHS,PrelBase_IZh_con_info,0,1,0);
-       *Hp=(W_)(s1X8);
+       *Hp=(W_)(s1Fz_);
        R4.p=STBase_SZh_static_closure;
        R3.p=Hp-_FHS;
        SpB=SpB-1;
@@ -447,56 +308,37 @@ I_ s1X8;
        JMP_(DIRECT((StgRetAddr)(SpB[1])));
        FE_
 }
-UNVECTBL(static,vtbl_c2bd,ret_c2bd)
-STATIC_ITBL(s1Xu_info,s1Xu_entry,StdErrorCode,1,-1,STATIC_VHS,0,static const,IF_,0,0,0);
-IFN_(s1Xu_entry) {
-ID_(s1Xu_closure);
-IF_(s1Xu_fast1);
+UNVECTBL(static,vtbl_c1R0,ret_c1R0)
+STATIC_ITBL(Test_a_info,Test_a_entry,StdErrorCode,1,-1,STATIC_VHS,0,const,EF_,0,0,0);
+FN_(Test_a_entry) {
+ED_(Test_a_closure);
+EF_(Test_a_fast1);
        FB_
-       ARGS_CHK_A_LOAD_NODE(1,s1Xu_closure);
+       ARGS_CHK_A_LOAD_NODE(1,Test_a_closure);
        R1.p=*SpA;
        SpA=SpA+1;
        GRAN_EXEC(5,2,1,0,0);
-       JMP_(s1Xu_fast1);
+       JMP_(Test_a_fast1);
        FE_
 }
-IFN_(s1Xu_fast1) {
+FN_(Test_a_fast1) {
        FB_
        STK_CHK(1,0,1,0,0,0,0);
        SpB[1]=(W_)(RetReg);
-       RetReg=(StgRetAddr)UNVEC(ret_c2bd,vtbl_c2bd);
+       RetReg=(StgRetAddr)UNVEC(ret_c1R0,vtbl_c1R0);
        SpB=SpB+1;
        ENT_VIA_NODE();
        GRAN_EXEC(3,1,1,1,0);
        JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-SET_STATIC_HDR(s1Xu_closure,s1Xu_info,0,static ,ID_RO_)
-};
-STATIC_ITBL(Test_a_info,Test_a_entry,StdErrorCode,1,-1,(STATIC_VHS+
-                                                       2),0,const,EF_,0,0,0);
-FN_(Test_a_entry) {
-IF_(s1Xu_entry);
-       FB_
-       STK_CHK(1,0,4,0,0,0,1);
-       HEAP_CHK(1,(BH_HS+2),1);
-       SET_BH_HDR(Hp-(BH_HS+1),BH_UPD_info,0,(BH_VHS+2),0);
-       UPD_CAF(R1.p,Hp-(BH_HS+1));
-       PUSH_STD_UPD_FRAME(Hp-(BH_HS+1),0,0);
-       RetReg=StdUpdRetVecReg;
-       SpB=SpB+4;
-       GRAN_EXEC(16,2,1,8,0);
-       JMP_(s1Xu_entry);
-       FE_
-}
 SET_STATIC_HDR(Test_a_closure,Test_a_info,0,,ED_RO_)
-  , (W_)0, (W_)0
 };
-IFN_(ret_c2bg) {
+IFN_(ret_c1R3) {
 ED_RO_(PrelBase_IZh_con_info);
 ED_(STBase_SZh_static_closure);
 ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
-I_ s1Yq;
+I_ s1GN_;
        FB_
        HEAP_CHK(0,(_FHS+1),0);
        {
@@ -521,10 +363,10 @@ I_ s1Yq;
        CALLER_RESTORE_HpLim
        CALLER_RESTORE_StdUpdRetVec
        CALLER_RESTORE_StkStub
-       s1Yq=_ccall_result;
+       s1GN_=_ccall_result;
        }
        SET_SPEC_HDR(Hp-_FHS,PrelBase_IZh_con_info,0,1,0);
-       *Hp=(W_)(s1Yq);
+       *Hp=(W_)(s1GN_);
        R4.p=STBase_SZh_static_closure;
        R3.p=Hp-_FHS;
        SpB=SpB-1;
@@ -533,10 +375,10 @@ I_ s1Yq;
        JMP_(DIRECT((StgRetAddr)(SpB[1])));
        FE_
 }
-UNVECTBL(static,vtbl_c2bg,ret_c2bg)
-IFN_(ret_c2bf) {
+UNVECTBL(static,vtbl_c1R3,ret_c1R3)
+IFN_(ret_c1R2) {
        FB_
-       RetReg=(StgRetAddr)UNVEC(ret_c2bg,vtbl_c2bg);
+       RetReg=(StgRetAddr)UNVEC(ret_c1R3,vtbl_c1R3);
        R1.p=*SpA;
        SpA=SpA+1;
        ENT_VIA_NODE();
@@ -544,23 +386,23 @@ IFN_(ret_c2bf) {
        JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-UNVECTBL(static,vtbl_c2bf,ret_c2bf)
-SPEC_N_ITBL(c2ac_info,c2ac_entry,StdErrorCode,1,-1,1,1,static const,IF_,0,0,0);
-IFN_(c2ac_entry) {
-IF_(c2ac_fast1);
+UNVECTBL(static,vtbl_c1R2,ret_c1R2)
+SPEC_N_ITBL(c1Qp_info,c1Qp_entry,StdErrorCode,1,-1,1,1,static const,IF_,0,0,0);
+IFN_(c1Qp_entry) {
+IF_(c1Qp_fast1);
        FB_
        ARGS_CHK_A(1);
        R2.p=*SpA;
        SpA=SpA+1;
        GRAN_EXEC(5,2,1,0,0);
-       JMP_(c2ac_fast1);
+       JMP_(c1Qp_fast1);
        FE_
 }
-IFN_(c2ac_fast1) {
+IFN_(c1Qp_fast1) {
        FB_
        STK_CHK(3,1,1,0,0,0,1);
        SpB[1]=(W_)(RetReg);
-       RetReg=(StgRetAddr)UNVEC(ret_c2bf,vtbl_c2bf);
+       RetReg=(StgRetAddr)UNVEC(ret_c1R2,vtbl_c1R2);
        SpA[-1]=(P_)(R1.p[_FHS]);
        R1=R2;
        SpA=SpA-1;
@@ -583,24 +425,24 @@ EF_(Test_b_fast1);
        FE_
 }
 FN_(Test_b_fast1) {
-ID_RO_(c2ac_info);
-IF_(c2ac_entry);
+ID_RO_(c1Qp_info);
+IF_(c1Qp_entry);
        FB_
        HEAP_CHK(1,(_FHS+1),0);
-       SET_SPEC_HDR(Hp-_FHS,c2ac_info,0,1,1);
+       SET_SPEC_HDR(Hp-_FHS,c1Qp_info,0,1,1);
        *Hp=(W_)(R1.p);
        R1.p=Hp-_FHS;
        GRAN_EXEC(5,2,0,2,0);
-       JMP_(c2ac_entry);
+       JMP_(c1Qp_entry);
        FE_
 }
 SET_STATIC_HDR(Test_b_closure,Test_b_info,0,,ED_RO_)
 };
-IFN_(ret_c2bm) {
+IFN_(ret_c1R9) {
 ED_RO_(PrelBase_FZh_con_info);
 ED_(STBase_SZh_static_closure);
 ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
-StgFloat s20f;
+StgFloat s1IC_;
        FB_
        HEAP_CHK(0,(_FHS+1),0);
        {
@@ -628,10 +470,10 @@ StgFloat s20f;
        CALLER_RESTORE_HpLim
        CALLER_RESTORE_StdUpdRetVec
        CALLER_RESTORE_StkStub
-       s20f=_ccall_result;
+       s1IC_=_ccall_result;
        }
        SET_SPEC_HDR(Hp-_FHS,PrelBase_FZh_con_info,0,1,0);
-       ASSIGN_FLT(Hp,s20f);
+       ASSIGN_FLT(Hp,s1IC_);
        R4.p=STBase_SZh_static_closure;
        R3.p=Hp-_FHS;
        SpB=SpB-4;
@@ -640,10 +482,10 @@ StgFloat s20f;
        JMP_(DIRECT((StgRetAddr)(SpB[1])));
        FE_
 }
-UNVECTBL(static,vtbl_c2bm,ret_c2bm)
-IFN_(ret_c2bl) {
+UNVECTBL(static,vtbl_c1R9,ret_c1R9)
+IFN_(ret_c1R8) {
        FB_
-       RetReg=(StgRetAddr)UNVEC(ret_c2bm,vtbl_c2bm);
+       RetReg=(StgRetAddr)UNVEC(ret_c1R9,vtbl_c1R9);
        R1.p=*SpA;
        ASSIGN_FLT(SpB+1,FltReg1);
        SpA=SpA+4;
@@ -653,10 +495,10 @@ IFN_(ret_c2bl) {
        JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-UNVECTBL(static,vtbl_c2bl,ret_c2bl)
-IFN_(ret_c2bk) {
+UNVECTBL(static,vtbl_c1R8,ret_c1R8)
+IFN_(ret_c1R7) {
        FB_
-       RetReg=(StgRetAddr)UNVEC(ret_c2bl,vtbl_c2bl);
+       RetReg=(StgRetAddr)UNVEC(ret_c1R8,vtbl_c1R8);
        R1.p=SpA[1];
        SpB[1]=(W_)(R3.c);
        SpA[1]=StkStubReg;
@@ -666,10 +508,10 @@ IFN_(ret_c2bk) {
        JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-UNVECTBL(static,vtbl_c2bk,ret_c2bk)
-IFN_(ret_c2bj) {
+UNVECTBL(static,vtbl_c1R7,ret_c1R7)
+IFN_(ret_c1R6) {
        FB_
-       RetReg=(StgRetAddr)UNVEC(ret_c2bk,vtbl_c2bk);
+       RetReg=(StgRetAddr)UNVEC(ret_c1R7,vtbl_c1R7);
        R1.p=SpA[2];
        SpB[1]=(W_)(R3.i);
        SpA[2]=StkStubReg;
@@ -679,10 +521,10 @@ IFN_(ret_c2bj) {
        JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-UNVECTBL(static,vtbl_c2bj,ret_c2bj)
-IFN_(ret_c2bi) {
+UNVECTBL(static,vtbl_c1R6,ret_c1R6)
+IFN_(ret_c1R5) {
        FB_
-       RetReg=(StgRetAddr)UNVEC(ret_c2bj,vtbl_c2bj);
+       RetReg=(StgRetAddr)UNVEC(ret_c1R6,vtbl_c1R6);
        R1.p=SpA[3];
        SpA[3]=StkStubReg;
        ENT_VIA_NODE();
@@ -690,23 +532,23 @@ IFN_(ret_c2bi) {
        JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-UNVECTBL(static,vtbl_c2bi,ret_c2bi)
-SPEC_N_ITBL(c29C_info,c29C_entry,StdErrorCode,1,-1,4,4,static const,IF_,0,0,0);
-IFN_(c29C_entry) {
-IF_(c29C_fast1);
+UNVECTBL(static,vtbl_c1R5,ret_c1R5)
+SPEC_N_ITBL(c1PP_info,c1PP_entry,StdErrorCode,1,-1,4,4,static const,IF_,0,0,0);
+IFN_(c1PP_entry) {
+IF_(c1PP_fast1);
        FB_
        ARGS_CHK_A(1);
        R2.p=*SpA;
        SpA=SpA+1;
        GRAN_EXEC(5,2,1,0,0);
-       JMP_(c29C_fast1);
+       JMP_(c1PP_fast1);
        FE_
 }
-IFN_(c29C_fast1) {
+IFN_(c1PP_fast1) {
        FB_
        STK_CHK(3,4,4,0,0,0,1);
        SpB[1]=(W_)(RetReg);
-       RetReg=(StgRetAddr)UNVEC(ret_c2bi,vtbl_c2bi);
+       RetReg=(StgRetAddr)UNVEC(ret_c1R5,vtbl_c1R5);
        SpA[-4]=(P_)(R1.p[(_FHS+3)]);
        SpA[-3]=(P_)(R1.p[(_FHS+2)]);
        SpA[-2]=(P_)(R1.p[(_FHS+1)]);
@@ -735,105 +577,27 @@ EF_(Test_c_fast4);
        FE_
 }
 FN_(Test_c_fast4) {
-ID_RO_(c29C_info);
-IF_(c29C_entry);
+ID_RO_(c1PP_info);
+IF_(c1PP_entry);
        FB_
        HEAP_CHK(15,(_FHS+4),0);
-       SET_SPEC_HDR(Hp-(_FHS+3),c29C_info,0,4,4);
+       SET_SPEC_HDR(Hp-(_FHS+3),c1PP_info,0,4,4);
        Hp[-3]=(W_)(R1.p);
        Hp[-2]=(W_)(R2.p);
        Hp[-1]=(W_)(R3.p);
        *Hp=(W_)(R4.p);
        R1.p=Hp-(_FHS+3);
        GRAN_EXEC(5,2,0,5,0);
-       JMP_(c29C_entry);
+       JMP_(c1PP_entry);
        FE_
 }
 SET_STATIC_HDR(Test_c_closure,Test_c_info,0,,ED_RO_)
 };
-IFN_(ret_c2bp) {
-ED_RO_(PrelBase_IZh_con_info);
-ED_(STBase_SZh_static_closure);
-ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
-I_ s21I;
-       FB_
-       HEAP_CHK(0,(_FHS+1),0);
-       {
-       I_ _ccall_result;
-       I_ _ccall_arg1=R3.i;
-       CALLER_SAVE_Base
-       CALLER_SAVE_SpA
-       CALLER_SAVE_SuA
-       CALLER_SAVE_SpB
-       CALLER_SAVE_SuB
-       CALLER_SAVE_Ret
-       CALLER_SAVE_Hp
-       CALLER_SAVE_HpLim
-       _ccall_result = (b((_ccall_arg1)));
-       CALLER_RESTORE_Base
-       CALLER_RESTORE_SpA
-       CALLER_RESTORE_SuA
-       CALLER_RESTORE_SpB
-       CALLER_RESTORE_SuB
-       CALLER_RESTORE_Ret
-       CALLER_RESTORE_Hp
-       CALLER_RESTORE_HpLim
-       CALLER_RESTORE_StdUpdRetVec
-       CALLER_RESTORE_StkStub
-       s21I=_ccall_result;
-       }
-       SET_SPEC_HDR(Hp-_FHS,PrelBase_IZh_con_info,0,1,0);
-       *Hp=(W_)(s21I);
-       R4.p=STBase_SZh_static_closure;
-       R3.p=Hp-_FHS;
-       SpB=SpB-1;
-       R2.d=PrelTup_Z40Z44Z41_inregs_info;
-       GRAN_EXEC(10,2,22,22,0);
-       JMP_(DIRECT((StgRetAddr)(SpB[1])));
-       FE_
-}
-UNVECTBL(static,vtbl_c2bp,ret_c2bp)
-IFN_(ret_c2bo) {
-       FB_
-       RetReg=(StgRetAddr)UNVEC(ret_c2bp,vtbl_c2bp);
-       R1.p=*SpA;
-       SpA=SpA+1;
-       ENT_VIA_NODE();
-       GRAN_EXEC(3,1,2,1,0);
-       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
-       FE_
-}
-UNVECTBL(static,vtbl_c2bo,ret_c2bo)
-SPEC_N_ITBL(s22a_info,s22a_entry,StdErrorCode,1,-1,1,1,static const,IF_,0,0,0);
-IFN_(s22a_entry) {
-IF_(s22a_fast1);
-       FB_
-       ARGS_CHK_A(1);
-       R2.p=*SpA;
-       SpA=SpA+1;
-       GRAN_EXEC(5,2,1,0,0);
-       JMP_(s22a_fast1);
-       FE_
-}
-IFN_(s22a_fast1) {
-       FB_
-       STK_CHK(3,1,1,0,0,0,1);
-       SpB[1]=(W_)(RetReg);
-       RetReg=(StgRetAddr)UNVEC(ret_c2bo,vtbl_c2bo);
-       SpA[-1]=(P_)(R1.p[_FHS]);
-       R1=R2;
-       SpA=SpA-1;
-       SpB=SpB+1;
-       ENT_VIA_NODE();
-       GRAN_EXEC(5,1,2,2,0);
-       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
-       FE_
-}
-IFN_(ret_c2bs) {
+IFN_(ret_c1Rc) {
 ED_RO_(PrelBase_IZh_con_info);
 ED_(STBase_SZh_static_closure);
 ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
-I_ s22U;
+I_ s1K9_;
        FB_
        HEAP_CHK(0,(_FHS+1),0);
        {
@@ -858,10 +622,10 @@ I_ s22U;
        CALLER_RESTORE_HpLim
        CALLER_RESTORE_StdUpdRetVec
        CALLER_RESTORE_StkStub
-       s22U=_ccall_result;
+       s1K9_=_ccall_result;
        }
        SET_SPEC_HDR(Hp-_FHS,PrelBase_IZh_con_info,0,1,0);
-       *Hp=(W_)(s22U);
+       *Hp=(W_)(s1K9_);
        R4.p=STBase_SZh_static_closure;
        R3.p=Hp-_FHS;
        SpB=SpB-1;
@@ -870,10 +634,10 @@ I_ s22U;
        JMP_(DIRECT((StgRetAddr)(SpB[1])));
        FE_
 }
-UNVECTBL(static,vtbl_c2bs,ret_c2bs)
-IFN_(ret_c2br) {
+UNVECTBL(static,vtbl_c1Rc,ret_c1Rc)
+IFN_(ret_c1Rb) {
        FB_
-       RetReg=(StgRetAddr)UNVEC(ret_c2bs,vtbl_c2bs);
+       RetReg=(StgRetAddr)UNVEC(ret_c1Rc,vtbl_c1Rc);
        R1.p=*SpA;
        SpA=SpA+1;
        ENT_VIA_NODE();
@@ -881,23 +645,23 @@ IFN_(ret_c2br) {
        JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-UNVECTBL(static,vtbl_c2br,ret_c2br)
-SPEC_N_ITBL(s23h_info,s23h_entry,StdErrorCode,1,-1,1,1,static const,IF_,0,0,0);
-IFN_(s23h_entry) {
-IF_(s23h_fast1);
+UNVECTBL(static,vtbl_c1Rb,ret_c1Rb)
+SPEC_N_ITBL(s1KM_info,s1KM_entry,StdErrorCode,1,-1,1,1,static const,IF_,0,0,0);
+IFN_(s1KM_entry) {
+IF_(s1KM_fast1);
        FB_
        ARGS_CHK_A(1);
        R2.p=*SpA;
        SpA=SpA+1;
        GRAN_EXEC(5,2,1,0,0);
-       JMP_(s23h_fast1);
+       JMP_(s1KM_fast1);
        FE_
 }
-IFN_(s23h_fast1) {
+IFN_(s1KM_fast1) {
        FB_
        STK_CHK(3,1,1,0,0,0,1);
        SpB[1]=(W_)(RetReg);
-       RetReg=(StgRetAddr)UNVEC(ret_c2br,vtbl_c2br);
+       RetReg=(StgRetAddr)UNVEC(ret_c1Rb,vtbl_c1Rb);
        SpA[-1]=(P_)(R1.p[_FHS]);
        R1=R2;
        SpA=SpA-1;
@@ -907,11 +671,11 @@ IFN_(s23h_fast1) {
        JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-IFN_(ret_c2bx) {
+IFN_(ret_c1Rh) {
 ED_RO_(PrelBase_FZh_con_info);
 ED_(STBase_SZh_static_closure);
 ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
-StgFloat s24u;
+StgFloat s1LF_;
        FB_
        HEAP_CHK(0,(_FHS+1),0);
        {
@@ -939,10 +703,10 @@ StgFloat s24u;
        CALLER_RESTORE_HpLim
        CALLER_RESTORE_StdUpdRetVec
        CALLER_RESTORE_StkStub
-       s24u=_ccall_result;
+       s1LF_=_ccall_result;
        }
        SET_SPEC_HDR(Hp-_FHS,PrelBase_FZh_con_info,0,1,0);
-       ASSIGN_FLT(Hp,s24u);
+       ASSIGN_FLT(Hp,s1LF_);
        R4.p=STBase_SZh_static_closure;
        R3.p=Hp-_FHS;
        SpB=SpB-3;
@@ -951,12 +715,12 @@ StgFloat s24u;
        JMP_(DIRECT((StgRetAddr)(SpB[1])));
        FE_
 }
-UNVECTBL(static,vtbl_c2bx,ret_c2bx)
-IFN_(ret_c2bw) {
-ID_(a19u_closure);
+UNVECTBL(static,vtbl_c1Rh,ret_c1Rh)
+IFN_(ret_c1Rg) {
+ID_(a15t_closure);
        FB_
-       RetReg=(StgRetAddr)UNVEC(ret_c2bx,vtbl_c2bx);
-       R1.p=a19u_closure;
+       RetReg=(StgRetAddr)UNVEC(ret_c1Rh,vtbl_c1Rh);
+       R1.p=a15t_closure;
        ASSIGN_FLT(SpB+1,FltReg1);
        SpB=SpB+1;
        ENT_VIA_NODE();
@@ -964,12 +728,12 @@ ID_(a19u_closure);
        JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-UNVECTBL(static,vtbl_c2bw,ret_c2bw)
-IFN_(ret_c2bv) {
-ID_(a19w_closure);
+UNVECTBL(static,vtbl_c1Rg,ret_c1Rg)
+IFN_(ret_c1Rf) {
+ID_(a15r_closure);
        FB_
-       RetReg=(StgRetAddr)UNVEC(ret_c2bw,vtbl_c2bw);
-       R1.p=a19w_closure;
+       RetReg=(StgRetAddr)UNVEC(ret_c1Rg,vtbl_c1Rg);
+       R1.p=a15r_closure;
        SpB[1]=(W_)(R3.i);
        SpB=SpB+1;
        ENT_VIA_NODE();
@@ -977,10 +741,10 @@ ID_(a19w_closure);
        JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-UNVECTBL(static,vtbl_c2bv,ret_c2bv)
-IFN_(ret_c2bu) {
+UNVECTBL(static,vtbl_c1Rf,ret_c1Rf)
+IFN_(ret_c1Re) {
        FB_
-       RetReg=(StgRetAddr)UNVEC(ret_c2bv,vtbl_c2bv);
+       RetReg=(StgRetAddr)UNVEC(ret_c1Rf,vtbl_c1Rf);
        R1.p=*SpA;
        SpA=SpA+1;
        ENT_VIA_NODE();
@@ -988,23 +752,23 @@ IFN_(ret_c2bu) {
        JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-UNVECTBL(static,vtbl_c2bu,ret_c2bu)
-SPEC_N_ITBL(c28E_info,c28E_entry,StdErrorCode,1,-1,1,1,static const,IF_,0,0,0);
-IFN_(c28E_entry) {
-IF_(c28E_fast1);
+UNVECTBL(static,vtbl_c1Re,ret_c1Re)
+SPEC_N_ITBL(c1OR_info,c1OR_entry,StdErrorCode,1,-1,1,1,static const,IF_,0,0,0);
+IFN_(c1OR_entry) {
+IF_(c1OR_fast1);
        FB_
        ARGS_CHK_A(1);
        R2.p=*SpA;
        SpA=SpA+1;
        GRAN_EXEC(5,2,1,0,0);
-       JMP_(c28E_fast1);
+       JMP_(c1OR_fast1);
        FE_
 }
-IFN_(c28E_fast1) {
+IFN_(c1OR_fast1) {
        FB_
        STK_CHK(3,1,3,0,0,0,1);
        SpB[1]=(W_)(RetReg);
-       RetReg=(StgRetAddr)UNVEC(ret_c2bu,vtbl_c2bu);
+       RetReg=(StgRetAddr)UNVEC(ret_c1Re,vtbl_c1Re);
        SpA[-1]=(P_)(R1.p[_FHS]);
        R1=R2;
        SpA=SpA-1;
@@ -1014,67 +778,63 @@ IFN_(c28E_fast1) {
        JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-SPEC_N_ITBL(s24V_info,s24V_entry,StdErrorCode,1,-1,1,0,static const,IF_,0,0,0);
-IFN_(s24V_entry) {
-IF_(s24V_fast1);
+SPEC_N_ITBL(s1M6_info,s1M6_entry,StdErrorCode,1,-1,1,0,static const,IF_,0,0,0);
+IFN_(s1M6_entry) {
+IF_(s1M6_fast1);
        FB_
        ARGS_CHK_A(1);
        R2.p=*SpA;
        SpA=SpA+1;
        GRAN_EXEC(5,2,1,0,0);
-       JMP_(s24V_fast1);
+       JMP_(s1M6_fast1);
        FE_
 }
-IFN_(s24V_fast1) {
-ID_RO_(c28E_info);
-IF_(c28E_entry);
+IFN_(s1M6_fast1) {
+ID_RO_(c1OR_info);
+IF_(c1OR_entry);
        FB_
        HEAP_CHK(3,(_FHS+1),1);
-       SET_SPEC_HDR(Hp-_FHS,c28E_info,0,1,1);
+       SET_SPEC_HDR(Hp-_FHS,c1OR_info,0,1,1);
        *Hp=(W_)(R2.p);
        R1.p=Hp-_FHS;
        GRAN_EXEC(5,2,0,2,0);
-       JMP_(c28E_entry);
+       JMP_(c1OR_entry);
        FE_
 }
-SPEC_N_ITBL(s258_info,s258_entry,StdErrorCode,1,-1,1,0,static const,IF_,0,0,0);
-IFN_(s258_entry) {
-IF_(s258_fast1);
+SPEC_N_ITBL(s1Ma_info,s1Ma_entry,StdErrorCode,1,-1,1,0,static const,IF_,0,0,0);
+IFN_(s1Ma_entry) {
+IF_(s1Ma_fast1);
        FB_
        ARGS_CHK_A(1);
        R2.p=*SpA;
        SpA=SpA+1;
        GRAN_EXEC(5,2,1,0,0);
-       JMP_(s258_fast1);
+       JMP_(s1Ma_fast1);
        FE_
 }
-IFN_(s258_fast1) {
-ID_RO_(s22a_info);
-ID_RO_(s23h_info);
-ID_RO_(s24V_info);
+IFN_(s1Ma_fast1) {
+ID_RO_(s1KM_info);
+ID_RO_(s1M6_info);
 ED_(STBase_thenPrimIO_closure);
        FB_
        STK_CHK(3,2,0,0,0,0,1);
-       HEAP_CHK(3,((_FHS*3)+3),1);
-       SET_SPEC_HDR(Hp-((_FHS*3)+2),s22a_info,0,1,1);
-       Hp[-((_FHS*2)+2)]=(W_)(R2.p);
-       SET_SPEC_HDR(Hp-((_FHS*2)+1),s23h_info,0,1,1);
+       HEAP_CHK(3,((_FHS*2)+2),1);
+       SET_SPEC_HDR(Hp-((_FHS*2)+1),s1KM_info,0,1,1);
        Hp[-(_FHS+1)]=(W_)(R2.p);
-       SET_SPEC_HDR(Hp-_FHS,s24V_info,0,1,0);
+       SET_SPEC_HDR(Hp-_FHS,s1M6_info,0,1,0);
        SpA[-1]=Hp-_FHS;
        SpA[-2]=Hp-((_FHS*2)+1);
        R1.p=STBase_thenPrimIO_closure;
        SpA=SpA-2;
        ENT_VIA_NODE();
-       GRAN_EXEC(11,2,3,7,0);
+       GRAN_EXEC(9,2,3,5,0);
        JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-STATIC_ITBL(Test_d_info,Test_d_entry,StdErrorCode,1,-1,(STATIC_VHS+
-                                                       2),0,const,EF_,0,0,0);
+STATIC_ITBL(Test_d_info,Test_d_entry,StdErrorCode,1,-1,(STATIC_VHS+2),0,const,EF_,0,0,0);
 FN_(Test_d_entry) {
-ID_RO_(s258_info);
-ID_(s1Xu_closure);
+ID_RO_(s1Ma_info);
+ED_(Test_a_closure);
 ED_(STBase_thenPrimIO_closure);
        FB_
        STK_CHK(1,2,4,0,0,0,1);
@@ -1082,9 +842,9 @@ ED_(STBase_thenPrimIO_closure);
        SET_BH_HDR(Hp-(BH_HS+_FHS+2),BH_UPD_info,0,(BH_VHS+2),0);
        UPD_CAF(R1.p,Hp-(BH_HS+_FHS+2));
        PUSH_STD_UPD_FRAME(Hp-(BH_HS+_FHS+2),0,0);
-       SET_SPEC_HDR(Hp-_FHS,s258_info,0,1,0);
+       SET_SPEC_HDR(Hp-_FHS,s1Ma_info,0,1,0);
        SpA[-1]=Hp-_FHS;
-       SpA[-2]=s1Xu_closure;
+       SpA[-2]=Test_a_closure;
        RetReg=StdUpdRetVecReg;
        R1.p=STBase_thenPrimIO_closure;
        SpA=SpA-2;
index df765d7..8717e5c 100644 (file)
 
-NOTE: Simplifier still going after 4 iterations; bailing out.
-
 
 ================================================================================
 STG syntax:
-d{-r5y,x-} =
-     [] \r [x_s1vw]
+a{-r5u,x-} =
+     [] \r [$x0_s1iK]
+       case $x0_s1iK ::STBase.State{-3M,W-} GHC.RealWorld{-3s,W-} of {
+           -- lvs: [$x0_s1iK]; rhs lvs: []; uniq: c1pz
+         STBase.S#{-5D,w-}{i} $x1_s1jb ->
+             case
+                 _ccall_ a [(STBase.StateAndInt#{-3D,W-} GHC.RealWorld{-3s,W-}) (GHC.State#{-3L,W-} GHC.RealWorld{-3s,W-})]# [$x1_s1jb] ::STBase.StateAndInt#{-3D,W-} GHC.RealWorld{-3s,W-}
+             of {
+                 -- lvs: [$x1_s1jb]; rhs lvs: []; uniq: c1pA
+               STBase.StateAndInt#{-5v,w-}{i} $x2_s1jl $x3_s1ja ->
+                   let { $x4_s1jL =  PrelBase.I#{-5b,w-}{i}! [$x3_s1ja]; } in
+                   let { $x5_s1jK =  STBase.S#{-5D,w-}{i}! [$x2_s1jl];
+                   } in  PrelTup.(,){-62,w-}{i}! [$x4_s1jL $x5_s1jK];
+             };
+       };
+b{-r5v,x-} =
+     [] \r [$x0_s1jJ]
+       case $x0_s1jJ ::STBase.State{-3M,W-} GHC.RealWorld{-3s,W-} of {
+           -- lvs: [$x0_s1jJ]; rhs lvs: []; uniq: c1pB
+         STBase.S#{-5D,w-}{i} $x1_s1kc ->
+             case
+                 _ccall_ b [(Foreign.StateAndStablePtr#{-3J,W-} GHC.RealWorld{-3s,W-} PrelBase.Int{-3g,W-}) (GHC.State#{-3L,W-} GHC.RealWorld{-3s,W-})]# [$x1_s1kc] ::Foreign.StateAndStablePtr#{-3J,W-} GHC.RealWorld{-3s,W-} PrelBase.Int{-3g,W-}
+             of {
+                 -- lvs: [$x1_s1kc]; rhs lvs: []; uniq: c1pC
+               Foreign.StateAndStablePtr#{-5B,w-}{i} $x2_s1km $x3_s1kb ->
+                   let { $x4_s1kO =  Foreign.StablePtr{-5o,w-}{i}! [$x3_s1kb]; } in
+                   let { $x5_s1kN =  STBase.S#{-5D,w-}{i}! [$x2_s1km];
+                   } in  PrelTup.(,){-62,w-}{i}! [$x4_s1kO $x5_s1kN];
+             };
+       };
+c{-r5w,x-} =
+     [] \r [$x0_s1kX]
        let {
-         stg_c1Fh =
-             (False, True, False, False, True) [x_s1vw] \r [ds_s1vn]
+         stg_c1oM =
+             (False, True, False, False, True) [$x0_s1kX] \r [$x1_s1kM]
                  case
-                     ds_s1vn{-lvs:x_s1vw-} ::STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
+                     $x1_s1kM{-lvs:$x0_s1kX-} ::STBase.State{-3M,W-} GHC.RealWorld{-3s,W-}
                  of {
-                     -- lvs: [ds_s1vn x_s1vw]; rhs lvs: [x_s1vw]; uniq: c1Fi
-                   STBase.S#{-5D,p-}{i} ds_s1vx ->
-                       case
-                           x_s1vw{-lvs:ds_s1vx-} ::Foreign.StablePtr{-3w,p-} PrelBase.Int{-3g,p-}
-                       of {
-                           -- lvs: [x_s1vw ds_s1vx]; rhs lvs: [ds_s1vx]; uniq: c1Fj
-                         Foreign.StablePtr{-5o,p-}{i} ds_s1vX ->
+                     -- lvs: [$x1_s1kM $x0_s1kX]; rhs lvs: [$x0_s1kX]; uniq: c1pD
+                   STBase.S#{-5D,w-}{i} $x2_s1kY ->
+                       case $x0_s1kX{-lvs:$x2_s1kY-} ::Foreign.ForeignObj{-3l,W-} of {
+                           -- lvs: [$x0_s1kX $x2_s1kY]; rhs lvs: [$x2_s1kY]; uniq: c1pE
+                         Foreign.ForeignObj{-5f,w-}{i} $x3_s1lo ->
                              case
-                                 _ccall_ d [(STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-}) (GHC.StablePtr#{-3v,p-} PrelBase.Int{-3g,p-})]# [ds_s1vx ds_s1vX] ::STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}
+                                 _ccall_ c [(STBase.StateAndInt#{-3D,W-} GHC.RealWorld{-3s,W-}) (GHC.State#{-3L,W-} GHC.RealWorld{-3s,W-}) GHC.ForeignObj#{-3k,W-}]# [$x2_s1kY $x3_s1lo] ::STBase.StateAndInt#{-3D,W-} GHC.RealWorld{-3s,W-}
                              of {
-                                 -- lvs: [ds_s1vx ds_s1vX]; rhs lvs: []; uniq: c1Fk
-                               STBase.StateAndInt#{-5v,p-}{i} ds_s1w8 ds_s1vY ->
-                                   let {
-                                     ds_s1wC =
-                                          PrelBase.I#{-5b,p-}{i}! [ds_s1vY]; } in
-                                   let {
-                                     ds_s1wB =
-                                          STBase.S#{-5D,p-}{i}! [ds_s1w8];
-                                   } in 
-                                     PrelTup.(,){-62,p-}{i}! [ds_s1wC ds_s1wB];
+                                 -- lvs: [$x2_s1kY $x3_s1lo]; rhs lvs: []; uniq: c1pF
+                               STBase.StateAndInt#{-5v,w-}{i} $x4_s1lz $x5_s1lp ->
+                                   let { $x6_s1m3 =  PrelBase.I#{-5b,w-}{i}! [$x5_s1lp]; } in
+                                   let { $x7_s1m2 =  STBase.S#{-5D,w-}{i}! [$x4_s1lz];
+                                   } in  PrelTup.(,){-62,w-}{i}! [$x6_s1m3 $x7_s1m2];
                              };
                        };
                  };
-       } in 
-         stg_c1Fh;
-c{-r5x,x-} =
-     [] \r [x_s1wL]
+       } in  stg_c1oM;
+d{-r5x,x-} =
+     [] \r [$x0_s1mc]
        let {
-         stg_c1EH =
-             (False, True, False, False, True) [x_s1wL] \r [ds_s1wA]
+         stg_c1oc =
+             (False, True, False, False, True) [$x0_s1mc] \r [$x1_s1m1]
                  case
-                     ds_s1wA{-lvs:x_s1wL-} ::STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
+                     $x1_s1m1{-lvs:$x0_s1mc-} ::STBase.State{-3M,W-} GHC.RealWorld{-3s,W-}
                  of {
-                     -- lvs: [ds_s1wA x_s1wL]; rhs lvs: [x_s1wL]; uniq: c1Fl
-                   STBase.S#{-5D,p-}{i} ds_s1wM ->
-                       case x_s1wL{-lvs:ds_s1wM-} ::Foreign.ForeignObj{-3l,p-} of {
-                           -- lvs: [x_s1wL ds_s1wM]; rhs lvs: [ds_s1wM]; uniq: c1Fm
-                         Foreign.ForeignObj{-5f,p-}{i} ds_s1xc ->
+                     -- lvs: [$x1_s1m1 $x0_s1mc]; rhs lvs: [$x0_s1mc]; uniq: c1pG
+                   STBase.S#{-5D,w-}{i} $x2_s1md ->
+                       case
+                           $x0_s1mc{-lvs:$x2_s1md-} ::Foreign.StablePtr{-3w,W-} PrelBase.Int{-3g,W-}
+                       of {
+                           -- lvs: [$x0_s1mc $x2_s1md]; rhs lvs: [$x2_s1md]; uniq: c1pH
+                         Foreign.StablePtr{-5o,w-}{i} $x3_s1mD ->
                              case
-                                 _ccall_ c [(STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-}) GHC.ForeignObj#{-3k,p-}]# [ds_s1wM ds_s1xc] ::STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}
+                                 _ccall_ d [(STBase.StateAndInt#{-3D,W-} GHC.RealWorld{-3s,W-}) (GHC.State#{-3L,W-} GHC.RealWorld{-3s,W-}) (GHC.StablePtr#{-3v,W-} PrelBase.Int{-3g,W-})]# [$x2_s1md $x3_s1mD] ::STBase.StateAndInt#{-3D,W-} GHC.RealWorld{-3s,W-}
                              of {
-                                 -- lvs: [ds_s1wM ds_s1xc]; rhs lvs: []; uniq: c1Fn
-                               STBase.StateAndInt#{-5v,p-}{i} ds_s1xn ds_s1xd ->
-                                   let {
-                                     ds_s1xL =
-                                          PrelBase.I#{-5b,p-}{i}! [ds_s1xd]; } in
-                                   let {
-                                     ds_s1xK =
-                                          STBase.S#{-5D,p-}{i}! [ds_s1xn];
-                                   } in 
-                                     PrelTup.(,){-62,p-}{i}! [ds_s1xL ds_s1xK];
+                                 -- lvs: [$x2_s1md $x3_s1mD]; rhs lvs: []; uniq: c1pI
+                               STBase.StateAndInt#{-5v,w-}{i} $x4_s1mO $x5_s1mE ->
+                                   let { $x6_s1n5 =  PrelBase.I#{-5b,w-}{i}! [$x5_s1mE]; } in
+                                   let { $x7_s1n6 =  STBase.S#{-5D,w-}{i}! [$x4_s1mO];
+                                   } in  PrelTup.(,){-62,w-}{i}! [$x6_s1n5 $x7_s1n6];
                              };
                        };
                  };
-       } in 
-         stg_c1EH;
-s_s1sE =
-     [] \r [ds_s1xJ]
-       case ds_s1xJ ::STBase.State{-3M,p-} GHC.RealWorld{-3s,p-} of {
-           -- lvs: [ds_s1xJ]; rhs lvs: []; uniq: c1Fo
-         STBase.S#{-5D,p-}{i} ds_s1yc ->
-             case
-                 _ccall_ b [(Foreign.StateAndStablePtr#{-3J,p-} GHC.RealWorld{-3s,p-} PrelBase.Int{-3g,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-})]# [ds_s1yc] ::Foreign.StateAndStablePtr#{-3J,p-} GHC.RealWorld{-3s,p-} PrelBase.Int{-3g,p-}
-             of {
-                 -- lvs: [ds_s1yc]; rhs lvs: []; uniq: c1Fp
-               Foreign.StateAndStablePtr#{-5B,p-}{i} ds_s1ym ds_s1yb ->
-                   let {
-                     ds_s1yC =
-                          Foreign.StablePtr{-5o,p-}{i}! [ds_s1yb]; } in
-                   let {
-                     ds_s1yB =
-                          STBase.S#{-5D,p-}{i}! [ds_s1ym];
-                   } in 
-                     PrelTup.(,){-62,p-}{i}! [ds_s1yC ds_s1yB];
-             };
-       };
-s_s1zw =
-    (False, True, False, False, True) [] \r [ds_s1yK]
-       case ds_s1yK ::STBase.State{-3M,p-} GHC.RealWorld{-3s,p-} of {
-           -- lvs: [ds_s1yK]; rhs lvs: []; uniq: c1Fq
-         STBase.S#{-5D,p-}{i} ds_s1zb ->
-             case
-                 _ccall_ b [(Foreign.StateAndStablePtr#{-3J,p-} GHC.RealWorld{-3s,p-} PrelBase.Int{-3g,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-})]# [ds_s1zb] ::Foreign.StateAndStablePtr#{-3J,p-} GHC.RealWorld{-3s,p-} PrelBase.Int{-3g,p-}
-             of {
-                 -- lvs: [ds_s1zb]; rhs lvs: []; uniq: c1Fr
-               Foreign.StateAndStablePtr#{-5B,p-}{i} ds_s1zl ds_s1za ->
-                   let {
-                     ds_s1zL =
-                          Foreign.StablePtr{-5o,p-}{i}! [ds_s1za]; } in
-                   let {
-                     ds_s1zK =
-                          STBase.S#{-5D,p-}{i}! [ds_s1zl];
-                   } in 
-                     PrelTup.(,){-62,p-}{i}! [ds_s1zL ds_s1zK];
-             };
-       };
-b{-r5w,x-} =
-     [] \u []
-       s_s1zw;
-s_s1uE =
-     [] \r [ds_s1zJ]
-       case ds_s1zJ ::STBase.State{-3M,p-} GHC.RealWorld{-3s,p-} of {
-           -- lvs: [ds_s1zJ]; rhs lvs: []; uniq: c1Fs
-         STBase.S#{-5D,p-}{i} ds_s1Ac ->
-             case
-                 _ccall_ a [(STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-})]# [ds_s1Ac] ::STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}
-             of {
-                 -- lvs: [ds_s1Ac]; rhs lvs: []; uniq: c1Ft
-               STBase.StateAndInt#{-5v,p-}{i} ds_s1Am ds_s1Ab ->
-                   let {
-                     ds_s1AC =
-                          PrelBase.I#{-5b,p-}{i}! [ds_s1Ab]; } in
-                   let {
-                     ds_s1AB =
-                          STBase.S#{-5D,p-}{i}! [ds_s1Am];
-                   } in 
-                     PrelTup.(,){-62,p-}{i}! [ds_s1AC ds_s1AB];
-             };
-       };
-s_s1Bw =
-    (False, True, False, False, True) [] \r [ds_s1AK]
-       case ds_s1AK ::STBase.State{-3M,p-} GHC.RealWorld{-3s,p-} of {
-           -- lvs: [ds_s1AK]; rhs lvs: []; uniq: c1Fu
-         STBase.S#{-5D,p-}{i} ds_s1Bb ->
-             case
-                 _ccall_ a [(STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-})]# [ds_s1Bb] ::STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}
-             of {
-                 -- lvs: [ds_s1Bb]; rhs lvs: []; uniq: c1Fv
-               STBase.StateAndInt#{-5v,p-}{i} ds_s1Bl ds_s1Ba ->
-                   let {
-                     ds_s1BE =
-                          PrelBase.I#{-5b,p-}{i}! [ds_s1Ba]; } in
-                   let {
-                     ds_s1BF =
-                          STBase.S#{-5D,p-}{i}! [ds_s1Bl];
-                   } in 
-                     PrelTup.(,){-62,p-}{i}! [ds_s1BE ds_s1BF];
-             };
-       };
-a{-r5v,x-} =
-     [] \u []
-       s_s1Bw;
+       } in  stg_c1oc;
 
 
 ================================================================================
 Flat Abstract C:
-IFN_(ret_c1Fj) {
+IFN_(ret_c1pz) {
 ED_RO_(PrelBase_IZh_con_info);
 ED_(STBase_SZh_static_closure);
 ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
-I_ s1vY;
+I_ s1ja_;
        FB_
        HEAP_CHK(0,(_FHS+1),0);
        {
        I_ _ccall_result;
-       StgStablePtr _ccall_arg1=R3.i;
        CALLER_SAVE_Base
        CALLER_SAVE_SpA
        CALLER_SAVE_SuA
@@ -176,111 +105,7 @@ I_ s1vY;
        CALLER_SAVE_Ret
        CALLER_SAVE_Hp
        CALLER_SAVE_HpLim
-       _ccall_result = (d((_ccall_arg1)));
-       CALLER_RESTORE_Base
-       CALLER_RESTORE_SpA
-       CALLER_RESTORE_SuA
-       CALLER_RESTORE_SpB
-       CALLER_RESTORE_SuB
-       CALLER_RESTORE_Ret
-       CALLER_RESTORE_Hp
-       CALLER_RESTORE_HpLim
-       CALLER_RESTORE_StdUpdRetVec
-       CALLER_RESTORE_StkStub
-       s1vY=_ccall_result;
-       }
-       SET_SPEC_HDR(Hp-_FHS,PrelBase_IZh_con_info,0,1,0);
-       *Hp=(W_)(s1vY);
-       R4.p=STBase_SZh_static_closure;
-       R3.p=Hp-_FHS;
-       SpB=SpB-1;
-       R2.d=PrelTup_Z40Z44Z41_inregs_info;
-       GRAN_EXEC(10,2,22,22,0);
-       JMP_(DIRECT((StgRetAddr)(SpB[1])));
-       FE_
-}
-UNVECTBL(static,vtbl_c1Fj,ret_c1Fj)
-IFN_(ret_c1Fi) {
-       FB_
-       RetReg=(StgRetAddr)UNVEC(ret_c1Fj,vtbl_c1Fj);
-       R1.p=*SpA;
-       SpA=SpA+1;
-       ENT_VIA_NODE();
-       GRAN_EXEC(3,1,2,1,0);
-       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
-       FE_
-}
-UNVECTBL(static,vtbl_c1Fi,ret_c1Fi)
-SPEC_N_ITBL(c1Fh_info,c1Fh_entry,StdErrorCode,1,-1,1,1,static const,IF_,0,0,0);
-IFN_(c1Fh_entry) {
-IF_(c1Fh_fast1);
-       FB_
-       ARGS_CHK_A(1);
-       R2.p=*SpA;
-       SpA=SpA+1;
-       GRAN_EXEC(5,2,1,0,0);
-       JMP_(c1Fh_fast1);
-       FE_
-}
-IFN_(c1Fh_fast1) {
-       FB_
-       STK_CHK(3,1,1,0,0,0,1);
-       SpB[1]=(W_)(RetReg);
-       RetReg=(StgRetAddr)UNVEC(ret_c1Fi,vtbl_c1Fi);
-       SpA[-1]=(P_)(R1.p[_FHS]);
-       R1=R2;
-       SpA=SpA-1;
-       SpB=SpB+1;
-       ENT_VIA_NODE();
-       GRAN_EXEC(5,1,2,2,0);
-       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
-       FE_
-}
-STATIC_ITBL(Test_d_info,Test_d_entry,StdErrorCode,1,-1,STATIC_VHS,0,const,EF_,0,0,0);
-FN_(Test_d_entry) {
-ED_(Test_d_closure);
-EF_(Test_d_fast1);
-       FB_
-       ARGS_CHK_A_LOAD_NODE(1,Test_d_closure);
-       R1.p=*SpA;
-       SpA=SpA+1;
-       GRAN_EXEC(5,2,1,0,0);
-       JMP_(Test_d_fast1);
-       FE_
-}
-FN_(Test_d_fast1) {
-ID_RO_(c1Fh_info);
-IF_(c1Fh_entry);
-       FB_
-       HEAP_CHK(1,(_FHS+1),0);
-       SET_SPEC_HDR(Hp-_FHS,c1Fh_info,0,1,1);
-       *Hp=(W_)(R1.p);
-       R1.p=Hp-_FHS;
-       GRAN_EXEC(5,2,0,2,0);
-       JMP_(c1Fh_entry);
-       FE_
-}
-SET_STATIC_HDR(Test_d_closure,Test_d_info,0,,ED_RO_)
-};
-IFN_(ret_c1Fm) {
-ED_RO_(PrelBase_IZh_con_info);
-ED_(STBase_SZh_static_closure);
-ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
-I_ s1xd;
-       FB_
-       HEAP_CHK(4,(_FHS+1),0);
-       {
-       I_ _ccall_result;
-       StgForeignObj _ccall_arg1=ForeignObj_CLOSURE_DATA(R3.p);
-       CALLER_SAVE_Base
-       CALLER_SAVE_SpA
-       CALLER_SAVE_SuA
-       CALLER_SAVE_SpB
-       CALLER_SAVE_SuB
-       CALLER_SAVE_Ret
-       CALLER_SAVE_Hp
-       CALLER_SAVE_HpLim
-       _ccall_result = (c((_ccall_arg1)));
+       _ccall_result = (a());
        CALLER_RESTORE_Base
        CALLER_RESTORE_SpA
        CALLER_RESTORE_SuA
@@ -291,86 +116,49 @@ I_ s1xd;
        CALLER_RESTORE_HpLim
        CALLER_RESTORE_StdUpdRetVec
        CALLER_RESTORE_StkStub
-       s1xd=_ccall_result;
+       s1ja_=_ccall_result;
        }
        SET_SPEC_HDR(Hp-_FHS,PrelBase_IZh_con_info,0,1,0);
-       *Hp=(W_)(s1xd);
+       *Hp=(W_)(s1ja_);
        R4.p=STBase_SZh_static_closure;
        R3.p=Hp-_FHS;
        SpB=SpB-1;
        R2.d=PrelTup_Z40Z44Z41_inregs_info;
-       GRAN_EXEC(10,2,22,22,0);
+       GRAN_EXEC(10,2,21,22,0);
        JMP_(DIRECT((StgRetAddr)(SpB[1])));
        FE_
 }
-UNVECTBL(static,vtbl_c1Fm,ret_c1Fm)
-IFN_(ret_c1Fl) {
+UNVECTBL(static,vtbl_c1pz,ret_c1pz)
+STATIC_ITBL(Test_a_info,Test_a_entry,StdErrorCode,1,-1,STATIC_VHS,0,const,EF_,0,0,0);
+FN_(Test_a_entry) {
+ED_(Test_a_closure);
+EF_(Test_a_fast1);
        FB_
-       RetReg=(StgRetAddr)UNVEC(ret_c1Fm,vtbl_c1Fm);
+       ARGS_CHK_A_LOAD_NODE(1,Test_a_closure);
        R1.p=*SpA;
        SpA=SpA+1;
-       ENT_VIA_NODE();
-       GRAN_EXEC(3,1,2,1,0);
-       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
-       FE_
-}
-UNVECTBL(static,vtbl_c1Fl,ret_c1Fl)
-SPEC_N_ITBL(c1EH_info,c1EH_entry,StdErrorCode,1,-1,1,1,static const,IF_,0,0,0);
-IFN_(c1EH_entry) {
-IF_(c1EH_fast1);
-       FB_
-       ARGS_CHK_A(1);
-       R2.p=*SpA;
-       SpA=SpA+1;
        GRAN_EXEC(5,2,1,0,0);
-       JMP_(c1EH_fast1);
+       JMP_(Test_a_fast1);
        FE_
 }
-IFN_(c1EH_fast1) {
+FN_(Test_a_fast1) {
        FB_
-       STK_CHK(3,1,1,0,0,0,1);
+       STK_CHK(1,0,1,0,0,0,0);
        SpB[1]=(W_)(RetReg);
-       RetReg=(StgRetAddr)UNVEC(ret_c1Fl,vtbl_c1Fl);
-       SpA[-1]=(P_)(R1.p[_FHS]);
-       R1=R2;
-       SpA=SpA-1;
+       RetReg=(StgRetAddr)UNVEC(ret_c1pz,vtbl_c1pz);
        SpB=SpB+1;
        ENT_VIA_NODE();
-       GRAN_EXEC(5,1,2,2,0);
+       GRAN_EXEC(3,1,1,1,0);
        JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-STATIC_ITBL(Test_c_info,Test_c_entry,StdErrorCode,1,-1,STATIC_VHS,0,const,EF_,0,0,0);
-FN_(Test_c_entry) {
-ED_(Test_c_closure);
-EF_(Test_c_fast1);
-       FB_
-       ARGS_CHK_A_LOAD_NODE(1,Test_c_closure);
-       R1.p=*SpA;
-       SpA=SpA+1;
-       GRAN_EXEC(5,2,1,0,0);
-       JMP_(Test_c_fast1);
-       FE_
-}
-FN_(Test_c_fast1) {
-ID_RO_(c1EH_info);
-IF_(c1EH_entry);
-       FB_
-       HEAP_CHK(1,(_FHS+1),0);
-       SET_SPEC_HDR(Hp-_FHS,c1EH_info,0,1,1);
-       *Hp=(W_)(R1.p);
-       R1.p=Hp-_FHS;
-       GRAN_EXEC(5,2,0,2,0);
-       JMP_(c1EH_entry);
-       FE_
-}
-SET_STATIC_HDR(Test_c_closure,Test_c_info,0,,ED_RO_)
+SET_STATIC_HDR(Test_a_closure,Test_a_info,0,,ED_RO_)
 };
-IFN_(ret_c1Fo) {
+IFN_(ret_c1pB) {
 ED_RO_(Foreign_StablePtr_con_info);
 ED_(STBase_SZh_static_closure);
 ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
-StgStablePtr s1yb;
+StgStablePtr s1kb_;
        FB_
        HEAP_CHK(0,(_FHS+1),0);
        {
@@ -394,10 +182,10 @@ StgStablePtr s1yb;
        CALLER_RESTORE_HpLim
        CALLER_RESTORE_StdUpdRetVec
        CALLER_RESTORE_StkStub
-       s1yb=_ccall_result;
+       s1kb_=_ccall_result;
        }
        SET_SPEC_HDR(Hp-_FHS,Foreign_StablePtr_con_info,0,1,0);
-       *Hp=(W_)(s1yb);
+       *Hp=(W_)(s1kb_);
        R4.p=STBase_SZh_static_closure;
        R3.p=Hp-_FHS;
        SpB=SpB-1;
@@ -406,41 +194,42 @@ StgStablePtr s1yb;
        JMP_(DIRECT((StgRetAddr)(SpB[1])));
        FE_
 }
-UNVECTBL(static,vtbl_c1Fo,ret_c1Fo)
-STATIC_ITBL(s1sE_info,s1sE_entry,StdErrorCode,1,-1,STATIC_VHS,0,static const,IF_,0,0,0);
-IFN_(s1sE_entry) {
-ID_(s1sE_closure);
-IF_(s1sE_fast1);
+UNVECTBL(static,vtbl_c1pB,ret_c1pB)
+STATIC_ITBL(Test_b_info,Test_b_entry,StdErrorCode,1,-1,STATIC_VHS,0,const,EF_,0,0,0);
+FN_(Test_b_entry) {
+ED_(Test_b_closure);
+EF_(Test_b_fast1);
        FB_
-       ARGS_CHK_A_LOAD_NODE(1,s1sE_closure);
+       ARGS_CHK_A_LOAD_NODE(1,Test_b_closure);
        R1.p=*SpA;
        SpA=SpA+1;
        GRAN_EXEC(5,2,1,0,0);
-       JMP_(s1sE_fast1);
+       JMP_(Test_b_fast1);
        FE_
 }
-IFN_(s1sE_fast1) {
+FN_(Test_b_fast1) {
        FB_
        STK_CHK(1,0,1,0,0,0,0);
        SpB[1]=(W_)(RetReg);
-       RetReg=(StgRetAddr)UNVEC(ret_c1Fo,vtbl_c1Fo);
+       RetReg=(StgRetAddr)UNVEC(ret_c1pB,vtbl_c1pB);
        SpB=SpB+1;
        ENT_VIA_NODE();
        GRAN_EXEC(3,1,1,1,0);
        JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-SET_STATIC_HDR(s1sE_closure,s1sE_info,0,static ,ID_RO_)
+SET_STATIC_HDR(Test_b_closure,Test_b_info,0,,ED_RO_)
 };
-IFN_(ret_c1Fq) {
-ED_RO_(Foreign_StablePtr_con_info);
+IFN_(ret_c1pE) {
+ED_RO_(PrelBase_IZh_con_info);
 ED_(STBase_SZh_static_closure);
 ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
-StgStablePtr s1za;
+I_ s1lp_;
        FB_
-       HEAP_CHK(0,(_FHS+1),0);
+       HEAP_CHK(4,(_FHS+1),0);
        {
-       StgStablePtr _ccall_result;
+       I_ _ccall_result;
+       StgForeignObj _ccall_arg1=ForeignObj_CLOSURE_DATA(R3.p);
        CALLER_SAVE_Base
        CALLER_SAVE_SpA
        CALLER_SAVE_SuA
@@ -449,7 +238,7 @@ StgStablePtr s1za;
        CALLER_SAVE_Ret
        CALLER_SAVE_Hp
        CALLER_SAVE_HpLim
-       _ccall_result = (b());
+       _ccall_result = (c((_ccall_arg1)));
        CALLER_RESTORE_Base
        CALLER_RESTORE_SpA
        CALLER_RESTORE_SuA
@@ -460,138 +249,91 @@ StgStablePtr s1za;
        CALLER_RESTORE_HpLim
        CALLER_RESTORE_StdUpdRetVec
        CALLER_RESTORE_StkStub
-       s1za=_ccall_result;
+       s1lp_=_ccall_result;
        }
-       SET_SPEC_HDR(Hp-_FHS,Foreign_StablePtr_con_info,0,1,0);
-       *Hp=(W_)(s1za);
+       SET_SPEC_HDR(Hp-_FHS,PrelBase_IZh_con_info,0,1,0);
+       *Hp=(W_)(s1lp_);
        R4.p=STBase_SZh_static_closure;
        R3.p=Hp-_FHS;
        SpB=SpB-1;
        R2.d=PrelTup_Z40Z44Z41_inregs_info;
-       GRAN_EXEC(10,2,21,22,0);
+       GRAN_EXEC(10,2,22,22,0);
        JMP_(DIRECT((StgRetAddr)(SpB[1])));
        FE_
 }
-UNVECTBL(static,vtbl_c1Fq,ret_c1Fq)
-STATIC_ITBL(s1zw_info,s1zw_entry,StdErrorCode,1,-1,STATIC_VHS,0,static const,IF_,0,0,0);
-IFN_(s1zw_entry) {
-ID_(s1zw_closure);
-IF_(s1zw_fast1);
+UNVECTBL(static,vtbl_c1pE,ret_c1pE)
+IFN_(ret_c1pD) {
        FB_
-       ARGS_CHK_A_LOAD_NODE(1,s1zw_closure);
+       RetReg=(StgRetAddr)UNVEC(ret_c1pE,vtbl_c1pE);
        R1.p=*SpA;
        SpA=SpA+1;
-       GRAN_EXEC(5,2,1,0,0);
-       JMP_(s1zw_fast1);
-       FE_
-}
-IFN_(s1zw_fast1) {
-       FB_
-       STK_CHK(1,0,1,0,0,0,0);
-       SpB[1]=(W_)(RetReg);
-       RetReg=(StgRetAddr)UNVEC(ret_c1Fq,vtbl_c1Fq);
-       SpB=SpB+1;
        ENT_VIA_NODE();
-       GRAN_EXEC(3,1,1,1,0);
+       GRAN_EXEC(3,1,2,1,0);
        JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-SET_STATIC_HDR(s1zw_closure,s1zw_info,0,static ,ID_RO_)
-};
-STATIC_ITBL(Test_b_info,Test_b_entry,StdErrorCode,1,-1,(STATIC_VHS+
-                                                       2),0,const,EF_,0,0,0);
-FN_(Test_b_entry) {
-IF_(s1zw_entry);
+UNVECTBL(static,vtbl_c1pD,ret_c1pD)
+SPEC_N_ITBL(c1oM_info,c1oM_entry,StdErrorCode,1,-1,1,1,static const,IF_,0,0,0);
+IFN_(c1oM_entry) {
+IF_(c1oM_fast1);
        FB_
-       STK_CHK(1,0,4,0,0,0,1);
-       HEAP_CHK(1,(BH_HS+2),1);
-       SET_BH_HDR(Hp-(BH_HS+1),BH_UPD_info,0,(BH_VHS+2),0);
-       UPD_CAF(R1.p,Hp-(BH_HS+1));
-       PUSH_STD_UPD_FRAME(Hp-(BH_HS+1),0,0);
-       RetReg=StdUpdRetVecReg;
-       SpB=SpB+4;
-       GRAN_EXEC(16,2,1,8,0);
-       JMP_(s1zw_entry);
+       ARGS_CHK_A(1);
+       R2.p=*SpA;
+       SpA=SpA+1;
+       GRAN_EXEC(5,2,1,0,0);
+       JMP_(c1oM_fast1);
        FE_
 }
-SET_STATIC_HDR(Test_b_closure,Test_b_info,0,,ED_RO_)
-  , (W_)0, (W_)0
-};
-IFN_(ret_c1Fs) {
-ED_RO_(PrelBase_IZh_con_info);
-ED_(STBase_SZh_static_closure);
-ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
-I_ s1Ab;
+IFN_(c1oM_fast1) {
        FB_
-       HEAP_CHK(0,(_FHS+1),0);
-       {
-       I_ _ccall_result;
-       CALLER_SAVE_Base
-       CALLER_SAVE_SpA
-       CALLER_SAVE_SuA
-       CALLER_SAVE_SpB
-       CALLER_SAVE_SuB
-       CALLER_SAVE_Ret
-       CALLER_SAVE_Hp
-       CALLER_SAVE_HpLim
-       _ccall_result = (a());
-       CALLER_RESTORE_Base
-       CALLER_RESTORE_SpA
-       CALLER_RESTORE_SuA
-       CALLER_RESTORE_SpB
-       CALLER_RESTORE_SuB
-       CALLER_RESTORE_Ret
-       CALLER_RESTORE_Hp
-       CALLER_RESTORE_HpLim
-       CALLER_RESTORE_StdUpdRetVec
-       CALLER_RESTORE_StkStub
-       s1Ab=_ccall_result;
-       }
-       SET_SPEC_HDR(Hp-_FHS,PrelBase_IZh_con_info,0,1,0);
-       *Hp=(W_)(s1Ab);
-       R4.p=STBase_SZh_static_closure;
-       R3.p=Hp-_FHS;
-       SpB=SpB-1;
-       R2.d=PrelTup_Z40Z44Z41_inregs_info;
-       GRAN_EXEC(10,2,21,22,0);
-       JMP_(DIRECT((StgRetAddr)(SpB[1])));
+       STK_CHK(3,1,1,0,0,0,1);
+       SpB[1]=(W_)(RetReg);
+       RetReg=(StgRetAddr)UNVEC(ret_c1pD,vtbl_c1pD);
+       SpA[-1]=(P_)(R1.p[_FHS]);
+       R1=R2;
+       SpA=SpA-1;
+       SpB=SpB+1;
+       ENT_VIA_NODE();
+       GRAN_EXEC(5,1,2,2,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-UNVECTBL(static,vtbl_c1Fs,ret_c1Fs)
-STATIC_ITBL(s1uE_info,s1uE_entry,StdErrorCode,1,-1,STATIC_VHS,0,static const,IF_,0,0,0);
-IFN_(s1uE_entry) {
-ID_(s1uE_closure);
-IF_(s1uE_fast1);
+STATIC_ITBL(Test_c_info,Test_c_entry,StdErrorCode,1,-1,STATIC_VHS,0,const,EF_,0,0,0);
+FN_(Test_c_entry) {
+ED_(Test_c_closure);
+EF_(Test_c_fast1);
        FB_
-       ARGS_CHK_A_LOAD_NODE(1,s1uE_closure);
+       ARGS_CHK_A_LOAD_NODE(1,Test_c_closure);
        R1.p=*SpA;
        SpA=SpA+1;
        GRAN_EXEC(5,2,1,0,0);
-       JMP_(s1uE_fast1);
+       JMP_(Test_c_fast1);
        FE_
 }
-IFN_(s1uE_fast1) {
+FN_(Test_c_fast1) {
+ID_RO_(c1oM_info);
+IF_(c1oM_entry);
        FB_
-       STK_CHK(1,0,1,0,0,0,0);
-       SpB[1]=(W_)(RetReg);
-       RetReg=(StgRetAddr)UNVEC(ret_c1Fs,vtbl_c1Fs);
-       SpB=SpB+1;
-       ENT_VIA_NODE();
-       GRAN_EXEC(3,1,1,1,0);
-       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       HEAP_CHK(1,(_FHS+1),0);
+       SET_SPEC_HDR(Hp-_FHS,c1oM_info,0,1,1);
+       *Hp=(W_)(R1.p);
+       R1.p=Hp-_FHS;
+       GRAN_EXEC(5,2,0,2,0);
+       JMP_(c1oM_entry);
        FE_
 }
-SET_STATIC_HDR(s1uE_closure,s1uE_info,0,static ,ID_RO_)
+SET_STATIC_HDR(Test_c_closure,Test_c_info,0,,ED_RO_)
 };
-IFN_(ret_c1Fu) {
+IFN_(ret_c1pH) {
 ED_RO_(PrelBase_IZh_con_info);
 ED_(STBase_SZh_static_closure);
 ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
-I_ s1Ba;
+I_ s1mE_;
        FB_
        HEAP_CHK(0,(_FHS+1),0);
        {
        I_ _ccall_result;
+       StgStablePtr _ccall_arg1=R3.i;
        CALLER_SAVE_Base
        CALLER_SAVE_SpA
        CALLER_SAVE_SuA
@@ -600,7 +342,7 @@ I_ s1Ba;
        CALLER_SAVE_Ret
        CALLER_SAVE_Hp
        CALLER_SAVE_HpLim
-       _ccall_result = (a());
+       _ccall_result = (d((_ccall_arg1)));
        CALLER_RESTORE_Base
        CALLER_RESTORE_SpA
        CALLER_RESTORE_SuA
@@ -611,61 +353,79 @@ I_ s1Ba;
        CALLER_RESTORE_HpLim
        CALLER_RESTORE_StdUpdRetVec
        CALLER_RESTORE_StkStub
-       s1Ba=_ccall_result;
+       s1mE_=_ccall_result;
        }
        SET_SPEC_HDR(Hp-_FHS,PrelBase_IZh_con_info,0,1,0);
-       *Hp=(W_)(s1Ba);
+       *Hp=(W_)(s1mE_);
        R4.p=STBase_SZh_static_closure;
        R3.p=Hp-_FHS;
        SpB=SpB-1;
        R2.d=PrelTup_Z40Z44Z41_inregs_info;
-       GRAN_EXEC(10,2,21,22,0);
+       GRAN_EXEC(10,2,22,22,0);
        JMP_(DIRECT((StgRetAddr)(SpB[1])));
        FE_
 }
-UNVECTBL(static,vtbl_c1Fu,ret_c1Fu)
-STATIC_ITBL(s1Bw_info,s1Bw_entry,StdErrorCode,1,-1,STATIC_VHS,0,static const,IF_,0,0,0);
-IFN_(s1Bw_entry) {
-ID_(s1Bw_closure);
-IF_(s1Bw_fast1);
+UNVECTBL(static,vtbl_c1pH,ret_c1pH)
+IFN_(ret_c1pG) {
        FB_
-       ARGS_CHK_A_LOAD_NODE(1,s1Bw_closure);
+       RetReg=(StgRetAddr)UNVEC(ret_c1pH,vtbl_c1pH);
        R1.p=*SpA;
        SpA=SpA+1;
+       ENT_VIA_NODE();
+       GRAN_EXEC(3,1,2,1,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       FE_
+}
+UNVECTBL(static,vtbl_c1pG,ret_c1pG)
+SPEC_N_ITBL(c1oc_info,c1oc_entry,StdErrorCode,1,-1,1,1,static const,IF_,0,0,0);
+IFN_(c1oc_entry) {
+IF_(c1oc_fast1);
+       FB_
+       ARGS_CHK_A(1);
+       R2.p=*SpA;
+       SpA=SpA+1;
        GRAN_EXEC(5,2,1,0,0);
-       JMP_(s1Bw_fast1);
+       JMP_(c1oc_fast1);
        FE_
 }
-IFN_(s1Bw_fast1) {
+IFN_(c1oc_fast1) {
        FB_
-       STK_CHK(1,0,1,0,0,0,0);
+       STK_CHK(3,1,1,0,0,0,1);
        SpB[1]=(W_)(RetReg);
-       RetReg=(StgRetAddr)UNVEC(ret_c1Fu,vtbl_c1Fu);
+       RetReg=(StgRetAddr)UNVEC(ret_c1pG,vtbl_c1pG);
+       SpA[-1]=(P_)(R1.p[_FHS]);
+       R1=R2;
+       SpA=SpA-1;
        SpB=SpB+1;
        ENT_VIA_NODE();
-       GRAN_EXEC(3,1,1,1,0);
+       GRAN_EXEC(5,1,2,2,0);
        JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-SET_STATIC_HDR(s1Bw_closure,s1Bw_info,0,static ,ID_RO_)
-};
-STATIC_ITBL(Test_a_info,Test_a_entry,StdErrorCode,1,-1,(STATIC_VHS+
-                                                       2),0,const,EF_,0,0,0);
-FN_(Test_a_entry) {
-IF_(s1Bw_entry);
+STATIC_ITBL(Test_d_info,Test_d_entry,StdErrorCode,1,-1,STATIC_VHS,0,const,EF_,0,0,0);
+FN_(Test_d_entry) {
+ED_(Test_d_closure);
+EF_(Test_d_fast1);
        FB_
-       STK_CHK(1,0,4,0,0,0,1);
-       HEAP_CHK(1,(BH_HS+2),1);
-       SET_BH_HDR(Hp-(BH_HS+1),BH_UPD_info,0,(BH_VHS+2),0);
-       UPD_CAF(R1.p,Hp-(BH_HS+1));
-       PUSH_STD_UPD_FRAME(Hp-(BH_HS+1),0,0);
-       RetReg=StdUpdRetVecReg;
-       SpB=SpB+4;
-       GRAN_EXEC(16,2,1,8,0);
-       JMP_(s1Bw_entry);
+       ARGS_CHK_A_LOAD_NODE(1,Test_d_closure);
+       R1.p=*SpA;
+       SpA=SpA+1;
+       GRAN_EXEC(5,2,1,0,0);
+       JMP_(Test_d_fast1);
        FE_
 }
-SET_STATIC_HDR(Test_a_closure,Test_a_info,0,,ED_RO_)
-  , (W_)0, (W_)0
+FN_(Test_d_fast1) {
+ID_RO_(c1oc_info);
+IF_(c1oc_entry);
+       FB_
+       HEAP_CHK(1,(_FHS+1),0);
+       SET_SPEC_HDR(Hp-_FHS,c1oc_info,0,1,1);
+       *Hp=(W_)(R1.p);
+       R1.p=Hp-_FHS;
+       GRAN_EXEC(5,2,0,2,0);
+       JMP_(c1oc_entry);
+       FE_
+}
+SET_STATIC_HDR(Test_d_closure,Test_d_info,0,,ED_RO_)
 };
 ghc: module version changed to 1; reason: no old .hi file
diff --git a/ghc/tests/ccall/should_compile/cc007.hs b/ghc/tests/ccall/should_compile/cc007.hs
deleted file mode 100644 (file)
index 42d1260..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
---!!! cc007 -- ccall with synonyms, polymorphic type variables and user type variables.
-module Test where
-
-import GlaExts
-
--- Since I messed up the handling of polymorphism originally, I'll
--- explicitly test code with UserSysTyVar (ie an explicit polymorphic
--- signature)
-
-foo = _ccall_ f        `thenADR` \ a -> returnPrimIO (a + 1)
- where 
-   thenADR :: PrimIO a -> (a -> PrimIO b) -> PrimIO b
-   thenADR = thenPrimIO
-
--- and with a PolySysTyVar (ie no explicit signature)
-
-bar = _ccall_ f        `thenADR` \ a -> returnPrimIO (a + 1)
- where 
-   -- thenADR :: PrimIO a -> (a -> PrimIO b) -> PrimIO b
-   thenADR = thenPrimIO
-
--- and with a type synonym
-
-type INT = Int
-barfu :: PrimIO INT
-barfu = _ccall_ b
-
diff --git a/ghc/tests/ccall/should_compile/cc007.stderr b/ghc/tests/ccall/should_compile/cc007.stderr
deleted file mode 100644 (file)
index a5da32e..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-cc007.hs:2: Cannot generalise these overloadings (in a _ccall_):
-               `Foreign.CReturnable t{-a12t-}'
-cc007.hs:2: Cannot generalise these overloadings (in a _ccall_):
-               `Foreign.CReturnable t{-a13c-}'
-
-
-Compilation had errors
diff --git a/ghc/tests/ccall/should_fail/Makefile b/ghc/tests/ccall/should_fail/Makefile
new file mode 100644 (file)
index 0000000..0bcc375
--- /dev/null
@@ -0,0 +1,7 @@
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/should_fail.mk
+
+HC_OPTS += -noC -fglasgow-exts
+
+include $(TOP)/mk/target.mk
diff --git a/ghc/tests/ccall/should_fail/cc002.stderr b/ghc/tests/ccall/should_fail/cc002.stderr
new file mode 100644 (file)
index 0000000..d74a23c
--- /dev/null
@@ -0,0 +1,7 @@
+cc002.hs:11: No instance for: `Foreign.CReturnable Foreign.ForeignObj'
+    arising from the result of the _ccall_ to a at cc002.hs:11
+    When checking signature(s) for: `a'
+
+
+Compilation had errors
similarity index 70%
rename from ghc/tests/ccall/should_compile/cc004.stderr
rename to ghc/tests/ccall/should_fail/cc004.stderr
index b8cd850..bb07155 100644 (file)
@@ -1,9 +1,9 @@
  
 cc004.hs:2: Cannot generalise these overloadings (in a _ccall_):
-               `Foreign.CReturnable t{-a12p-}'
+               `Foreign.CReturnable taWQ'
  
 cc004.hs:2: Cannot generalise these overloadings (in a _ccall_):
-               `Foreign.CReturnable t{-a138-}'
+               `Foreign.CReturnable taXx'
 
 
 Compilation had errors
diff --git a/ghc/tests/codeGen/Makefile b/ghc/tests/codeGen/Makefile
new file mode 100644 (file)
index 0000000..1d1e930
--- /dev/null
@@ -0,0 +1,8 @@
+TOP = ..
+include $(TOP)/mk/boilerplate.mk
+
+SUBDIRS = should_compile
+
+include $(TOP)/mk/target.mk
+
+
diff --git a/ghc/tests/codeGen/cg018.stdout b/ghc/tests/codeGen/cg018.stdout
deleted file mode 100644 (file)
index 441d36b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-0.4692
diff --git a/ghc/tests/codeGen/cg034.hs b/ghc/tests/codeGen/cg034.hs
deleted file mode 100644 (file)
index 2f01c9b..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-import Ratio -- 1.3
-
-main = putStr (
-   shows tinyFloat  ( '\n'
- : shows t_f       ( '\n'
- : shows hugeFloat  ( '\n'
- : shows h_f       ( '\n'
- : shows tinyDouble ( '\n'
- : shows t_d       ( '\n'
- : shows hugeDouble ( '\n'
- : shows h_d       ( '\n'
- : shows x_f       ( '\n'
- : shows x_d       ( '\n'
- : shows y_f       ( '\n'
- : shows y_d       ( "\n"
- )))))))))))))
-  where
-    t_f :: Float
-    t_d :: Double
-    h_f :: Float
-    h_d :: Double
-    x_f :: Float
-    x_d :: Double
-    y_f :: Float
-    y_d :: Double
-    t_f = fromRationalX (toRational tinyFloat)
-    t_d = fromRationalX (toRational tinyDouble)
-    h_f = fromRationalX (toRational hugeFloat)
-    h_d = fromRationalX (toRational hugeDouble)
-    x_f = fromRationalX (1.82173691287639817263897126389712638972163e-300 :: Rational)
-    x_d = fromRationalX (1.82173691287639817263897126389712638972163e-300 :: Rational)
-    y_f = 1.82173691287639817263897126389712638972163e-300
-    y_d = 1.82173691287639817263897126389712638972163e-300
-
---!! fromRational woes
-
-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 (rationalToRealFloat {-fromRational-} r')
-       in  x
-
-{-
-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
-
-{-
-[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
--}
-
-
-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))
-
diff --git a/ghc/tests/codeGen/cg035.stdout b/ghc/tests/codeGen/cg035.stdout
deleted file mode 100644 (file)
index a00e9a2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-0.9727648049862613
diff --git a/ghc/tests/codeGen/cg041.hs b/ghc/tests/codeGen/cg041.hs
deleted file mode 100644 (file)
index 09ae099..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-{- 
-Date: Thu, 15 May 1997 14:20:29 +0100 (BST)
-From: Alex Ferguson <abf@cs.ucc.ie>
-The following erroneous fragment erroneously compiles.
-
-And then promptly falls over in the assembler, of all places.
--}
-
-data Token
-     =  TokNewline
-     |  TokLiteral
-     |  TokCount
-     |  TokCheck
-     |  TokIs
-     |  TokDeref
-     |  TokFind
-     |  TokLiteral             -- Duplicated!
-     |  TokThe
-
-      deriving Show
-
-main = print TokCount
diff --git a/ghc/tests/codeGen/should_run/Makefile b/ghc/tests/codeGen/should_run/Makefile
new file mode 100644 (file)
index 0000000..8f072b0
--- /dev/null
@@ -0,0 +1,35 @@
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+HS_SRCS = $(wildcard *.hs)
+BINS = $(patsubst %.o,%,$(HS_OBJS))
+RUNTESTS = $(patsubst %,%.run,$(BINS))
+
+SRC_RUNTEST_OPTS += -o1 $*.stdout -o2 $*.stderr -x 0
+HC_OPTS += -dcore-lint
+
+all :: $(BINS) $(RUNTESTS)
+
+%.run : %
+       $(RUNTEST) $< $(RUNTEST_OPTS)
+
+% : %.o
+       $(HC) $(HC_OPTS) $< -o $@
+
+cg012_HC_OPTS = -fglasgow-exts
+cg015_HC_OPTS = -fglasgow-exts
+cg018_HC_OPTS = -fglasgow-exts
+cg026_HC_OPTS = -fglasgow-exts
+cg029_HC_OPTS = -fglasgow-exts
+cg030_HC_OPTS = -fglasgow-exts
+cg031_HC_OPTS = -fglasgow-exts
+cg032_HC_OPTS = -fglasgow-exts
+cg033_HC_OPTS = -fglasgow-exts
+cg035_HC_OPTS = -fglasgow-exts
+cg042_HC_OPTS = -fglasgow-exts
+
+cg016_RUNTEST_OPTS = -x 1      # should override the -x 0 above.
+cg021_RUNTEST_OPTS = +RTS -K2m
+cg025_RUNTEST_OPTS = -x 1 cg025.hs
+
+include $(TOP)/mk/target.mk
diff --git a/ghc/tests/codeGen/should_run/cg016.stderr b/ghc/tests/codeGen/should_run/cg016.stderr
new file mode 100644 (file)
index 0000000..8a4e211
--- /dev/null
@@ -0,0 +1,12 @@
+
+Fail: 1st call to error
+
+Fail: 2nd call to error
+
+Fail: 3rd call to error
+
+Fail: 4th call to error
+
+Fail: 5th call to error
+
+Fail: 6th call to error
\ No newline at end of file
diff --git a/ghc/tests/codeGen/should_run/cg018.stdout b/ghc/tests/codeGen/should_run/cg018.stdout
new file mode 100644 (file)
index 0000000..805ee30
--- /dev/null
@@ -0,0 +1 @@
+0.46920002
similarity index 56%
rename from ghc/tests/codeGen/cg025.stdout
rename to ghc/tests/codeGen/should_run/cg025.stderr
index 6b2a820..37d409b 100644 (file)
@@ -1,3 +1,6 @@
+"cg025"
+["cg025.hs"]
+"/bin:/usr/bin:/users/ets/simonm/bin:/users/ets/simonm/bin/i386-unknown-freebsd2.2:/usr/local/bin:/usr/X11R6/bin:/usr/local/X11R6/bin:/local/fp/bin:/local/fp/bin/i386-unknown-freebsd2.2:/local/ets/go/i386-unknown-freebsd2.2:/local/fp/bin/i386-unknown-freebsd2.1.0:/local/ets/go/i386-unknown-freebsd2.1.0:/usr/local/teTeX/bin:/sbin:/usr/sbin"
 --!!! test various I/O Requests
 --
 --
@@ -19,3 +22,8 @@ main = do
     hPutStr  stderr file_cts
     trace "hello, trace" $
       catch (getEnv "__WURBLE__" >> return ()) (\ e -> error "hello, error\n")
+Trace On:
+hello, trace
+Trace Off.
+
+Fail: hello, error
similarity index 90%
rename from ghc/tests/codeGen/cg035.hs
rename to ghc/tests/codeGen/should_run/cg035.hs
index 947dc95..6e6cbab 100644 (file)
@@ -1,8 +1,7 @@
 module Main (main) where
 
 --import PreludeGlaST
-import ST
-import STBase
+import GlaExts
 
 po :: Double -> Double
 po rd = 0.5 + 0.5 * erf ((rd / 1.04) / sqrt 2)
diff --git a/ghc/tests/codeGen/should_run/cg035.stdout b/ghc/tests/codeGen/should_run/cg035.stdout
new file mode 100644 (file)
index 0000000..e162ee4
--- /dev/null
@@ -0,0 +1 @@
+256.5
diff --git a/ghc/tests/codeGen/should_run/cg042.stdout b/ghc/tests/codeGen/should_run/cg042.stdout
new file mode 100644 (file)
index 0000000..c06d217
--- /dev/null
@@ -0,0 +1 @@
+[131.94689145077132, 135.0884841043611, 138.23007675795088, 141.3716694115407, 144.51326206513048, 147.6548547187203, 150.79644737231007, 153.93804002589985, 157.07963267948966, 160.22122533307945, 163.36281798666926, 166.50441064025904, 169.64600329384882, 172.78759594743863, 175.92918860102841, 179.0707812546182, 182.212373908208, 185.3539665617978, 188.49555921538757, 191.63715186897738, 194.77874452256717, 197.92033717615698, 201.06192982974676, 204.20352248333654, 207.34511513692635, 210.48670779051614, 213.62830044410595, 216.76989309769573, 219.9114857512855, 223.05307840487532, 226.1946710584651, 229.3362637120549, 232.4778563656447, 235.61944901923448, 238.76104167282426, 241.90263432641407, 245.04422698000386, 248.18581963359367, 251.32741228718345, 254.46900494077323, 257.610597594363, 260.75219024795285, 263.89378290154264, 267.0353755551324, 270.1769682087222, 273.318560862312, 276.46015351590177, 279.6017461694916, 282.7433388230814, 285.88493147667117, 289.02652413026095, 292.16811678385073, 295.3097094374406, 298.45130209103036, 301.59289474462014, 304.7344873982099, 307.8760800517997, 311.01767270538954, 314.1592653589793, 317.3008580125691, 320.4424506661589, 323.5840433197487, 326.7256359733385, 329.8672286269283, 333.0088212805181, 336.15041393410786, 339.29200658769764, 342.4335992412874, 345.57519189487726, 348.71678454846705, 351.85837720205683, 354.9999698556466, 358.1415625092364, 361.28315516282623, 364.424747816416, 367.5663404700058, 370.7079331235956, 373.84952577718536, 376.99111843077515, 380.132711084365, 383.27430373795477, 386.41589639154455, 389.55748904513433, 392.6990816987241, 395.84067435231395, 398.98226700590374, 402.1238596594935, 405.2654523130833, 408.4070449666731, 411.5486376202629, 414.6902302738527, 417.8318229274425, 420.97341558103227, 424.11500823462205, 427.2566008882119, 430.3981935418017, 433.53978619539146, 436.68137884898124, 439.822971502571, 442.9645641561608, 446.10615680975064, 449.2477494633404, 452.3893421169302, 455.53093477052, 458.6725274241098, 461.8141200776996, 464.9557127312894, 468.0973053848792, 471.23889803846896, 474.38049069205874, 477.5220833456485, 480.66367599923836, 483.80526865282815, 486.94686130641793, 490.0884539600077, 493.2300466135975, 496.37163926718733, 499.5132319207771, 502.6548245743669, 505.7964172279567, 508.93800988154646, 512.0796025351362, 515.221195188726, 518.3627878423158, 521.5043804959057, 524.6459731494955, 527.7875658030853, 530.929158456675, 534.0707511102648, 537.2123437638546, 540.3539364174444, 543.4955290710342, 546.637121724624, 549.7787143782137, 552.9203070318035, 556.0618996853934, 559.2034923389832, 562.345084992573, 565.4866776461628, 568.6282702997526, 571.7698629533423, 574.9114556069321, 578.0530482605219, 581.1946409141117, 584.3362335677015, 587.4778262212914, 590.6194188748811, 593.7610115284709, 596.9026041820607, 600.0441968356505, 603.1857894892403, 606.3273821428301, 609.4689747964198, 612.6105674500096, 615.7521601035994, 618.8937527571892, 622.0353454107791, 625.1769380643689, 628.3185307179587, 631.4601233715484, 634.6017160251382, 637.743308678728, 640.8849013323178, 644.0264939859076, 647.1680866394973, 650.3096792930871, 653.451271946677, 656.5928646002668, 659.7344572538566, 662.8760499074464, 666.0176425610362, 669.1592352146259, 672.3008278682157, 675.4424205218055, 678.5840131753953, 681.7256058289851, 684.8671984825748, 688.0087911361647, 691.1503837897545, 694.2919764433443, 697.4335690969341, 700.5751617505239, 703.7167544041137, 706.8583470577034, 709.9999397112932, 713.141532364883, 716.2831250184728, 719.4247176720626, 722.5663103256525, 725.7079029792422, 728.849495632832, 731.9910882864218, 735.1326809400116, 738.2742735936014, 741.4158662471912, 744.557458900781, 747.6990515543707, 750.8406442079605, 753.9822368615503, 757.1238295151402, 760.26542216873, 763.4070148223198, 766.5486074759095, 769.6902001294993, 772.8317927830891, 775.9733854366789, 779.1149780902687, 782.2565707438584, 785.3981633974482, 788.5397560510381, 791.6813487046279, 794.8229413582177, 797.9645340118075, 801.1061266653973, 804.247719318987, 807.3893119725768, 810.5309046261666, 813.6724972797564, 816.8140899333462, 819.955682586936, 823.0972752405258, 826.2388678941156, 829.3804605477054, 832.5220532012952, 835.663645854885, 838.8052385084748, 841.9468311620645, 845.0884238156543, 848.2300164692441, 851.3716091228339, 854.5132017764238, 857.6547944300136, 860.7963870836033, 863.9379797371931, 867.0795723907829, 870.2211650443727, 873.3627576979625, 876.5043503515523, 879.645943005142, 882.7875356587318, 885.9291283123216, 889.0707209659115, 892.2123136195013, 895.3539062730911, 898.4954989266809, 901.6370915802706, 904.7786842338604, 907.9202768874502, 911.06186954104, 914.2034621946298, 917.3450548482195, 920.4866475018093, 923.6282401553992, 926.769832808989, 929.9114254625788, 933.0530181161686, 936.1946107697584, 939.3362034233481, 942.4777960769379, 945.6193887305277, 948.7609813841175, 951.9025740377073, 955.044166691297, 958.185759344887, 961.3273519984767, 964.4689446520665, 967.6105373056563, 970.7521299592461, 973.8937226128359, 977.0353152664256, 980.1769079200154, 983.3185005736052, 986.460093227195, 989.6016858807849, 992.7432785343747, 995.8848711879644, 999.0264638415542, 1002.168056495144, 1005.3096491487338, 1008.4512418023236, 1011.5928344559134, 1014.7344271095031, 1017.8760197630929, 1021.0176124166827, 1024.1592050702725, 1027.3007977238624, 1030.442390377452, 1033.583983031042, 1036.7255756846316, 1039.8671683382215, 1043.0087609918114, 1046.150353645401, 1049.291946298991, 1052.4335389525806, 1055.5751316061705, 1058.7167242597602, 1061.85831691335, 1064.9999095669398, 1068.1415022205297, 1071.2830948741193, 1074.4246875277092, 1077.5662801812991, 1080.7078728348888, 1083.8494654884787, 1086.9910581420684, 1090.1326507956583, 1093.274243449248, 1096.4158361028378, 1099.5574287564275, 1102.6990214100174, 1105.840614063607, 1108.982206717197, 1112.1237993707869, 1115.2653920243765, 1118.4069846779664, 1121.548577331556, 1124.690169985146, 1127.8317626387357, 1130.9733552923256, 1134.1149479459152, 1137.2565405995051, 1140.398133253095, 1143.5397259066847, 1146.6813185602746, 1149.8229112138642, 1152.9645038674541, 1156.1060965210438, 1159.2476891746337, 1162.3892818282234, 1165.5308744818133, 1168.672467135403, 1171.8140597889928, 1174.9556524425827, 1178.0972450961724, 1181.2388377497623, 1184.380430403352, 1187.5220230569419, 1190.6636157105315, 1193.8052083641214, 1196.946801017711, 1200.088393671301, 1203.2299863248907, 1206.3715789784806, 1209.5131716320705, 1212.6547642856601, 1215.79635693925, 1218.9379495928397, 1222.0795422464296, 1225.2211349000193, 1228.3627275536091, 1231.5043202071988, 1234.6459128607887, 1237.7875055143784, 1240.9290981679683, 1244.0706908215582, 1247.2122834751478, 1250.3538761287377, 1253.4954687823274, 1256.6370614359173, 1259.778654089507, 1262.9202467430969, 1266.0618393966865, 1269.2034320502764, 1272.345024703866, 1275.486617357456, 1278.628210011046, 1281.7698026646356, 1284.9113953182255, 1288.0529879718151, 1291.194580625405, 1294.3361732789947, 1297.4777659325846, 1300.6193585861743, 1303.7609512397642, 1306.902543893354]
index e1bca8d..d99249d 100644 (file)
@@ -1,17 +1,10 @@
 TOP = ../../../..
 include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/should_compile.mk
 
-HS_SRCS = $(wildcard *.hs)
+HC_OPTS += -noC -dcore-lint -ddump-ds
 
-SRC_RUNTEST_OPTS += -o1 $*.stdout -o2 $*.stderr -x 0
-HC_OPTS += -noC -dcore-lint
-
-rn017_HC_OPTS = -hi
-
-%.o : %.hs
-       $(RUNTEST) $(HC) $(RUNTEST_OPTS) -- $(HC_OPTS) -c $< -o $@
-
-all :: $(HS_OBJS)
+ds035_HC_OPTS = -fglasgow-exts
 
 include $(TOP)/mk/target.mk
 
index 07da869..e65a5e1 100644 (file)
@@ -3,17 +3,14 @@
 ================================================================================
 Desugared:
 Rec {
-x{-r1,x-}  :: 
-    _forall_ [t{-amE-}] => t{-amE-}
+x{-r1,x-}  ::  _forall_ [tak4] => tak4
 {-# L #-}
 x{-r1,x-} =
-    _/\_ t{-amE-} ->
+    _/\_ tak4 ->
        _letrec_ {
-         x_amC  :: 
-             t{-amE-}
+         x_ak2  ::  tak4
          {-# L #-}
-         x_amC =
-             x_amC;
-       } in 
-         x_amC
+         x_ak2 =
+             x_ak2;
+       } in  x_ak2
 end Rec }
index cc34719..853165b 100644 (file)
 ================================================================================
 Desugared:
 Rec {
-c{-r3I,x-}  :: 
-    _forall_ [t{-ang-}] => t{-ang-}
+c{-r3B,x-}  ::  _forall_ [takz] => takz
 {-# L #-}
-c{-r3I,x-} =
-    _/\_ t{-ang-} ->
+c{-r3B,x-} =
+    _/\_ takz ->
        _letrec_ {
-         c_ane  :: 
-             t{-ang-}
+         c_akx  ::  takz
          {-# L #-}
-         c_ane =
-             c_ane;
-       } in 
-         c_ane
-end Rec }
-h{-r3L,x-}  :: 
-    _forall_
-    [t{-anG-} t{-anC-} t{-anE-}]
-    =>
-    t{-anG-} -> t{-anC-} -> t{-anE-} -> t{-anC-}
+         c_akx =
+             c_akx;
+       } in  c_akx
+h{-r3E,x-}  ::  _forall_
+               [talc tal8 tala]
+               =>
+               talc -> tala -> tal8 -> tala
 {-# L #-}
-h{-r3L,x-} =
-    _/\_ t{-anG-} t{-anC-} t{-anE-} -> \ x_r3z  :: 
-                                            t{-anG-}
-                                        {-# L #-}
-                                        x_r3z y_r3B  :: 
-                                                  t{-anC-}
-                                              {-# L #-}
-                                              y_r3B ->
-       let {
-         f_r3D  :: 
-             _forall_ [t{-any-} t{-anA-}] => t{-any-} -> t{-anA-} -> t{-any-}
+h{-r3E,x-} =
+    _/\_ talc tal8 tala ->
+       _letrec_ {
+         h_akB  ::  talc -> tala -> tal8 -> tala
          {-# L #-}
-         f_r3D =
-             _/\_ t{-any-} t{-anA-} -> \ a_r3F  :: 
-                                             t{-any-}
-                                         {-# L #-}
-                                         a_r3F b_r3H  :: 
-                                                   t{-anA-}
-                                               {-# L #-}
-                                               b_r3H ->
-                 a_r3F
-       } in 
-         f_r3D
-             _@_ t{-anC-} _@_ t{-anE-} y_r3B
-f{-r3O,x-}  :: 
-    _forall_ [t{-anO-}] => t{-anO-} -> t{-anO-}
+         h_akB =
+             \ x_r3u  ::  talc
+               {-# L #-}
+               x_r3u y_r3v  ::  tala
+                     {-# L #-}
+                     y_r3v ->
+                 let {
+                   f_r3x  ::  _forall_ [tal4 tal6] => tal6 -> tal4 -> tal6
+                   {-# L #-}
+                   f_r3x =
+                       _/\_ tal4 tal6 -> \ a_r3z  ::  tal6
+                                           {-# L #-}
+                                           a_r3z b_r3A  ::  tal4
+                                                 {-# L #-}
+                                                 b_r3A ->
+                           a_r3z
+                 } in  f_r3x _@_ tal8 _@_ tala y_r3v;
+       } in  h_akB
+f{-r3H,x-}  ::  _forall_ [taln] => taln -> taln
 {-# L #-}
-f{-r3O,x-} =
-    _/\_ t{-anO-} -> \ x_r3j  :: 
-                          t{-anO-}
-                      {-# L #-}
-                      x_r3j ->
-       x_r3j
-g{-r3N,x-}  :: 
-    _forall_
-    [t{-anW-} t{-ao2-} t{-ao4-}]
-    =>
-    t{-ao2-} -> t{-ao4-} -> t{-anW-} -> t{-anW-}
+f{-r3H,x-} =
+    _/\_ taln ->
+       _letrec_ {
+         f_ale  ::  taln -> taln
+         {-# L #-}
+         f_ale =
+             \ x_r3j  ::  taln
+               {-# L #-}
+               x_r3j ->
+                 x_r3j;
+       } in  f_ale
+g{-r3G,x-}  ::  _forall_
+               [talK talM talI]
+               =>
+               talK -> talM -> talI -> talI
 {-# L #-}
-g{-r3N,x-} =
-    _/\_ t{-anW-} t{-ao2-} t{-ao4-} -> \ x_r3l  :: 
-                                            t{-ao2-}
-                                        {-# L #-}
-                                        x_r3l y_r3n  :: 
-                                                  t{-ao4-}
-                                              {-# L #-}
-                                              y_r3n z_r3p  :: 
-                                                        t{-anW-}
-                                                    {-# L #-}
-                                                    z_r3p ->
-       f{-r3O,x-}
-           _@_ t{-anW-} z_r3p
-j{-r3M,x-}  :: 
-    _forall_
-    [t{-aoe-} t{-aoh-} t{-aoj-} t{-aoo-}]
-    =>
-    t{-aoe-} -> t{-aoh-} -> t{-aoo-} -> t{-aoj-} -> t{-aoj-}
+g{-r3G,x-} =
+    _/\_ talK talM talI ->
+       _letrec_ {
+         g_alp  ::  talK -> talM -> talI -> talI
+         {-# L #-}
+         g_alp =
+             \ x_r3l  ::  talK
+               {-# L #-}
+               x_r3l y_r3m  ::  talM
+                     {-# L #-}
+                     y_r3m z_r3n  ::  talI
+                           {-# L #-}
+                           z_r3n ->
+                 f{-r3H,x-} _@_ talI z_r3n;
+       } in  g_alp
+j{-r3F,x-}  ::  _forall_
+               [tami tame tamf tamg]
+               =>
+               tamf -> tamg -> tami -> tame -> tame
 {-# L #-}
-j{-r3M,x-} =
-    _/\_ t{-aoe-} t{-aoh-} t{-aoj-} t{-aoo-} -> \ w_r3r  :: 
-                                                     t{-aoe-}
-                                                 {-# L #-}
-                                                 w_r3r x_r3t  :: 
-                                                           t{-aoh-}
-                                                       {-# L #-}
-                                                       x_r3t y_r3v  :: 
-                                                                 t{-aoo-}
-                                                             {-# L #-}
-                                                             y_r3v z_r3x  :: 
-                                                                       t{-aoj-}
-                                                                   {-# L #-}
-                                                                   z_r3x ->
-       g{-r3N,x-}
-           _@_ t{-aoj-} _@_ t{-aoe-} _@_ t{-aoh-} w_r3r x_r3t z_r3x
-b{-r3J,x-}  :: 
-    _forall_ [t{-aou-}] => t{-aou-} -> t{-aou-}
+j{-r3F,x-} =
+    _/\_ tami tame tamf tamg ->
+       _letrec_ {
+         j_alO  ::  tamf -> tamg -> tami -> tame -> tame
+         {-# L #-}
+         j_alO =
+             \ w_r3p  ::  tamf
+               {-# L #-}
+               w_r3p x_r3q  ::  tamg
+                     {-# L #-}
+                     x_r3q y_r3r  ::  tami
+                           {-# L #-}
+                           y_r3r z_r3s  ::  tame
+                                 {-# L #-}
+                                 z_r3s ->
+                 g{-r3G,x-} _@_ tamf _@_ tamg _@_ tame w_r3p x_r3q z_r3s;
+       } in  j_alO
+b{-r3C,x-}  ::  _forall_ [tamo] => tamo -> tamo
 {-# L #-}
-b{-r3J,x-} =
-    _/\_ t{-aou-} ->
-       f{-r3O,x-}
-           _@_ t{-aou-}
-a{-r3K,x-}  :: 
-    _forall_ [t{-aoA-}] => t{-aoA-} -> t{-aoA-}
+b{-r3C,x-} =
+    _/\_ tamo ->
+       _letrec_ {
+         b_amk  ::  tamo -> tamo
+         {-# L #-}
+         b_amk =
+             f{-r3H,x-} _@_ tamo;
+       } in  b_amk
+a{-r3D,x-}  ::  _forall_ [tamu] => tamu -> tamu
 {-# L #-}
-a{-r3K,x-} =
-    _/\_ t{-aoA-} ->
-       b{-r3J,x-}
-           _@_ t{-aoA-}
+a{-r3D,x-} =
+    _/\_ tamu ->
+       _letrec_ {
+         a_amq  ::  tamu -> tamu
+         {-# L #-}
+         a_amq =
+             b{-r3C,x-} _@_ tamu;
+       } in  a_amq
+end Rec }
index 5e6aeeb..a2a91d0 100644 (file)
@@ -1,74 +1,74 @@
+ds002.hs:13: 
+    Warning: Possibly incomplete patterns
+       in the definition of function `g'
 ds002.hs:8: 
     Warning: Pattern match(es) completely overlapped
        in the definition of function `f'
 ds002.hs:9: 
     Warning: Pattern match(es) completely overlapped
        in the definition of function `f'
-ds002.hs:13: 
-    Warning: Possibly incomplete patterns
-       in the definition of function `g'
 
 
 ================================================================================
 Desugared:
-f{-r3w,x-}  :: 
-    _forall_ [t{-an6-}] => t{-an6-} -> t{-an6-}
+Rec {
+f{-r3s,x-}  ::  _forall_ [takv] => takv -> takv
 {-# L #-}
-f{-r3w,x-} =
-    _/\_ t{-an6-} -> \ x_r3e  :: 
-                          t{-an6-}
-                      {-# L #-}
-                      x_r3e ->
-       x_r3e
-g{-r3v,x-}  :: 
-    _forall_
-    [t{-anr-} t{-anA-} t{-anC-}]
-    =>
-    t{-anA-} -> t{-anC-} -> t{-anr-} -> t{-anr-}
+f{-r3s,x-} =
+    _/\_ takv ->
+       _letrec_ {
+         f_aki  ::  takv -> takv
+         {-# L #-}
+         f_aki =
+             \ x_r3e  ::  takv
+               {-# L #-}
+               x_r3e ->
+                 x_r3e;
+       } in  f_aki
+g{-r3r,x-}  ::  _forall_
+               [tale talg talc]
+               =>
+               tale -> talg -> talc -> talc
 {-# L #-}
-g{-r3v,x-} =
-    _/\_ t{-anr-} t{-anA-} t{-anC-} -> \ x_r3k  :: 
-                                            t{-anA-}
-                                        {-# L #-}
-                                        x_r3k y_r3m  :: 
-                                                  t{-anC-}
-                                              {-# L #-}
-                                              y_r3m z_r3o  :: 
-                                                        t{-anr-}
-                                                    {-# L #-}
-                                                    z_r3o ->
-       let {
-         fail_drB  :: 
-             t{-anr-}
+g{-r3r,x-} =
+    _/\_ tale talg talc ->
+       _letrec_ {
+         g_akx  ::  tale -> talg -> talc -> talc
          {-# L #-}
-         fail_drB =
-             GHCerr.patError{-8r,p-}
-                 _@_ t{-anr-} _string_ "ds002.hs:11|function `g'" } in
-       let { fail_drG  :: 
-                 t{-anr-}
-             {-# L #-}
-             fail_drG =
-         let {
-           z_r3u  :: 
-               t{-anr-}
-           {-# L #-}
-           z_r3u =
-               z_r3o } in
-         let {
-           y_r3s  :: 
-               t{-anC-}
-           {-# L #-}
-           y_r3s =
-               y_r3m } in
-         let {
-           x_r3q  :: 
-               t{-anA-}
-           {-# L #-}
-           x_r3q =
-               x_r3k
-         } in 
-           f{-r3w,x-}
-               _@_ t{-anr-} z_r3u
-       } in
-       f{-r3w,x-}
-           _@_ t{-anr-} z_r3o
+         g_akx =
+             \ x_r3k  ::  tale
+               {-# L #-}
+               x_r3k y_r3l  ::  talg
+                     {-# L #-}
+                     y_r3l z_r3m  ::  talc
+                           {-# L #-}
+                           z_r3m ->
+                 let {
+                   fail_dpC  ::  talc
+                   {-# L #-}
+                   fail_dpC =
+                       GHCerr.patError{-8r,w-}
+                           _@_ talc _string_ "ds002.hs:11|function `g'" } in
+                 let { fail_dpH  ::  talc
+                       {-# L #-}
+                       fail_dpH =
+                   let {
+                     z_r3q  ::  talc
+                     {-# L #-}
+                     z_r3q =
+                         z_r3m } in
+                   let {
+                     y_r3p  ::  talg
+                     {-# L #-}
+                     y_r3p =
+                         y_r3l } in
+                   let {
+                     x_r3o  ::  tale
+                     {-# L #-}
+                     x_r3o =
+                         x_r3k
+                   } in  f{-r3s,x-} _@_ talc z_r3q
+                 } in
+                 f{-r3s,x-} _@_ talc z_r3m;
+       } in  g_akx
+end Rec }
index a5f1cb9..7c06692 100644 (file)
@@ -2,63 +2,57 @@
 
 ================================================================================
 Desugared:
-f{-r3C,x-}  :: 
-    _forall_
-    [t{-aBt-} t{-aBF-} t{-aBI-} t{-aBS-}]
-    =>
-    [t{-aBt-}]
-    -> (t{-aBF-}, t{-aBI-})
-    -> PrelBase.Bool{-34,p-}
-    -> [t{-aBS-}]
+Rec {
+f{-r3v,x-}  ::  _forall_
+               [tayV taz7 taza tazl]
+               =>
+               [tayV] -> (taz7, taza) -> PrelBase.Bool{-34,W-} -> [tazl]
 {-# L #-}
-f{-r3C,x-} =
-    _/\_ t{-aBt-} t{-aBF-} t{-aBI-} t{-aBS-} -> \ ds_dGi  :: 
-                                                     [t{-aBt-}]
-                                                 {-# L #-}
-                                                 ds_dGi y_r3e  :: 
-                                                            (t{-aBF-}, t{-aBI-})
-                                                        {-# L #-}
-                                                        y_r3e ds_dGj  :: 
-                                                                  PrelBase.Bool{-34,p-}
-                                                              {-# L #-}
-                                                              ds_dGj ->
-       let {
-         fail_dGE  :: 
-             [t{-aBS-}]
+f{-r3v,x-} =
+    _/\_ tayV taz7 taza tazl ->
+       _letrec_ {
+         f_ayi  ::  [tayV]
+                    -> (taz7, taza)
+                    -> PrelBase.Bool{-34,W-}
+                    -> [tazl]
          {-# L #-}
-         fail_dGE =
-             case y_r3e of { PrelTup.(,){-62,p-}{i} y_r3k ys_r3l  ->
-             let {
-               z_r3n  :: 
-                   PrelBase.Bool{-34,p-}
+         f_ayi =
+             \ ds_dDX  ::  [tayV]
                {-# L #-}
-               z_r3n =
-                   ds_dGj } in
-             let {
-               a_r3j  :: 
-                   (t{-aBF-}, t{-aBI-})
-               {-# L #-}
-               a_r3j =
-                   y_r3e } in
-             let {
-               x_r3h  :: 
-                   [t{-aBt-}]
-               {-# L #-}
-               x_r3h =
-                   ds_dGi
-             } in 
-               PrelBase.[]{-5i,p-}{i}
-                   _@_ t{-aBS-};}
-       } in 
-         case ds_dGi of {
-           PrelBase.:{-55,p-}{i} ds_dGM ds_dGL ->
-               fail_dGE;
-           PrelBase.[]{-5i,p-}{i} ->
-               case ds_dGj of {
-                 PrelBase.False{-58,p-}{i} ->
-                     fail_dGE;
-                 PrelBase.True{-5E,p-}{i} ->
-                     PrelBase.[]{-5i,p-}{i}
-                         _@_ t{-aBS-};
-               };
-         }
+               ds_dDX y_r3d  ::  (taz7, taza)
+                      {-# L #-}
+                      y_r3d ds_dDY  ::  PrelBase.Bool{-34,W-}
+                            {-# L #-}
+                            ds_dDY ->
+                 let {
+                   fail_dEj  ::  [tazl]
+                   {-# L #-}
+                   fail_dEj =
+                       case y_r3d of { PrelTup.(,){-62,w-}{i} y_r3h ys_r3i  ->
+                       let {
+                         z_r3j  ::  PrelBase.Bool{-34,W-}
+                         {-# L #-}
+                         z_r3j =
+                             ds_dDY } in
+                       let {
+                         a_r3g  ::  (taz7, taza)
+                         {-# L #-}
+                         a_r3g =
+                             y_r3d } in
+                       let {
+                         x_r3f  ::  [tayV]
+                         {-# L #-}
+                         x_r3f =
+                             ds_dDX
+                       } in  PrelBase.[]{-5i,w-}{i} _@_ tazl;}
+                 } in 
+                   case ds_dDX of {
+                     PrelBase.:{-55,w-}{i} ds_dEq ds_dEr -> fail_dEj;
+                     PrelBase.[]{-5i,w-}{i} ->
+                         case ds_dDY of {
+                           PrelBase.False{-58,w-}{i} -> fail_dEj;
+                           PrelBase.True{-5E,w-}{i} -> PrelBase.[]{-5i,w-}{i} _@_ tazl;
+                         };
+                   };
+       } in  f_ayi
+end Rec }
index 342da36..3f3a8fa 100644 (file)
@@ -6,101 +6,73 @@ ds004.hs:6:
 ================================================================================
 Desugared:
 Rec {
-nodups{-r3j,x-}  :: 
-    _forall_
-    [t{-aGj-}]
-    =>
-    {PrelBase.Eq{-23,p-} t{-aGj-}} -> [t{-aGj-}] -> [t{-aGj-}]
+nodups{-r3j,x-}  ::  _forall_
+                    [taBn]
+                    =>
+                    {PrelBase.Eq{-23,p-} taBn} -> [taBn] -> [taBn]
 {-# L #-}
 nodups{-r3j,x-} =
-    _/\_ t{-aGj-} -> \ d.Eq_aGz  :: 
-                          {PrelBase.Eq{-23,p-} t{-aGj-}}
-                      {-# L #-}
-                      d.Eq_aGz ->
+    _/\_ taBn -> \ d.Eq_aBp  ::  {PrelBase.Eq{-23,p-} taBn}
+                  {-# L #-}
+                  d.Eq_aBp ->
        _letrec_ {
-         ==_aJI  :: 
-             t{-aGj-} -> t{-aGj-} -> PrelBase.Bool{-34,p-}
+         ==_aEE  ::  taBn -> taBn -> PrelBase.Bool{-34,W-}
          {-# L #-}
-         ==_aJI =
-             PrelBase.=={-8Y,p-}
-                 _@_ t{-aGj-} d.Eq_aGz;
-         nodups_aG4  :: 
-             [t{-aGj-}] -> [t{-aGj-}]
+         ==_aEE =
+             PrelBase.=={-8Y,p-} _@_ taBn d.Eq_aBp;
+         nodups_aAN  ::  [taBn] -> [taBn]
          {-# L #-}
-         nodups_aG4 =
-             \ ds_dK8  :: 
-                   [t{-aGj-}]
+         nodups_aAN =
+             \ ds_dF4  ::  [taBn]
                {-# L #-}
-               ds_dK8 ->
+               ds_dF4 ->
                  let {
-                   fail_dK9  :: 
-                       [t{-aGj-}]
+                   fail_dF5  ::  [taBn]
                    {-# L #-}
-                   fail_dK9 =
-                       GHCerr.patError{-8r,p-}
-                           _@_ [t{-aGj-}] _string_ "ds004.hs:6|function `nodups'"
+                   fail_dF5 =
+                       GHCerr.patError{-8r,w-}
+                           _@_ [taBn] _string_ "ds004.hs:6|function `nodups'"
                  } in 
-                   case ds_dK8 of {
-                     PrelBase.[]{-5i,p-}{i} ->
-                         PrelBase.[]{-5i,p-}{i}
-                             _@_ t{-aGj-};
-                     PrelBase.:{-55,p-}{i} x_r3e ds_dKq ->
-                         case ds_dKq of {
-                           PrelBase.[]{-5i,p-}{i} ->
+                   case ds_dF4 of {
+                     PrelBase.[]{-5i,w-}{i} -> PrelBase.[]{-5i,w-}{i} _@_ taBn;
+                     PrelBase.:{-55,w-}{i} x_r3e ds_dFm ->
+                         case ds_dFm of {
+                           PrelBase.[]{-5i,w-}{i} ->
                                let {
-                                 ds_dKG  :: 
-                                     [t{-aGj-}]
+                                 ds_dFC  ::  [taBn]
                                  {-# L #-}
-                                 ds_dKG =
-                                     PrelBase.[]{-5i,p-}{i}
-                                         {_@_ t{-aGj-}}
-                               } in 
-                                 PrelBase.:{-55,p-}{i}
-                                     {_@_ t{-aGj-} x_r3e ds_dKG};
-                           PrelBase.:{-55,p-}{i} x_r3h xs_r3i ->
+                                 ds_dFC =
+                                     PrelBase.[]{-5i,w-}{i} {_@_ taBn}
+                               } in  PrelBase.:{-55,w-}{i} {_@_ taBn x_r3e ds_dFC};
+                           PrelBase.:{-55,w-}{i} x_r3h xs_r3i ->
                                let {
-                                 y_r3g  :: 
-                                     t{-aGj-}
+                                 y_r3g  ::  taBn
                                  {-# L #-}
                                  y_r3g =
                                      x_r3e
                                } in 
-                                 case
-                                     ==_aJI
-                                         y_r3g x_r3h
-                                 of {
-                                   PrelBase.True{-5E,p-}{i} ->
+                                 case ==_aEE y_r3g x_r3h of {
+                                   PrelBase.True{-5E,w-}{i} ->
                                        let {
-                                         ds_dLd  :: 
-                                             [t{-aGj-}]
+                                         ds_dG9  ::  [taBn]
                                          {-# L #-}
-                                         ds_dLd =
-                                             PrelBase.:{-55,p-}{i}
-                                                 _@_ t{-aGj-} x_r3h xs_r3i
-                                       } in 
-                                         nodups_aG4
-                                             ds_dLd;
-                                   PrelBase.False{-58,p-}{i} ->
-                                       let { ds_dLF  :: 
-                                                 [t{-aGj-}]
+                                         ds_dG9 =
+                                             PrelBase.:{-55,w-}{i} _@_ taBn x_r3h xs_r3i
+                                       } in  nodups_aAN ds_dG9;
+                                   PrelBase.False{-58,w-}{i} ->
+                                       let { ds_dGB  ::  [taBn]
                                              {-# L #-}
-                                             ds_dLF =
+                                             ds_dGB =
                                          let {
-                                           ds_dLN  :: 
-                                               [t{-aGj-}]
+                                           ds_dGJ  ::  [taBn]
                                            {-# L #-}
-                                           ds_dLN =
-                                               PrelBase.:{-55,p-}{i}
-                                                   _@_ t{-aGj-} x_r3h xs_r3i
-                                         } in 
-                                           nodups_aG4
-                                               ds_dLN
+                                           ds_dGJ =
+                                               PrelBase.:{-55,w-}{i} _@_ taBn x_r3h xs_r3i
+                                         } in  nodups_aAN ds_dGJ
                                        } in
-                                       PrelBase.:{-55,p-}{i}
-                                           _@_ t{-aGj-} y_r3g ds_dLF;
+                                       PrelBase.:{-55,w-}{i} _@_ taBn y_r3g ds_dGB;
                                  };
                          };
                    };
-       } in 
-         nodups_aG4
+       } in  nodups_aAN
 end Rec }
index 75f16db..6b6de79 100644 (file)
@@ -6,200 +6,146 @@ ds005.hs:13:
 ================================================================================
 Desugared:
 Rec {
-mappairs'{-r3O,x-}  :: 
-    _forall_
-    [t{-anl-} t{-anv-} t{-anx-}]
-    =>
-    (t{-anl-} -> t{-anv-} -> t{-anx-})
-    -> [t{-anl-}]
-    -> [t{-anv-}]
-    -> [t{-anx-}]
+mappairs'{-r3C,x-}  ::  _forall_
+                       [tal0 tal6 tala]
+                       =>
+                       (tal0 -> tal6 -> tala) -> [tal0] -> [tal6] -> [tala]
 {-# L #-}
-mappairs'{-r3O,x-} =
-    _/\_ t{-anl-} t{-anv-} t{-anx-} ->
+mappairs'{-r3C,x-} =
+    _/\_ tal0 tal6 tala ->
        _letrec_ {
-         mappairs'_anf  :: 
-             (t{-anl-} -> t{-anv-} -> t{-anx-})
-             -> [t{-anl-}]
-             -> [t{-anv-}]
-             -> [t{-anx-}]
+         mappairs'_akt  ::  (tal0 -> tal6 -> tala)
+                            -> [tal0]
+                            -> [tal6]
+                            -> [tala]
          {-# L #-}
-         mappairs'_anf =
-             \ f_r3x  :: 
-                   t{-anl-} -> t{-anv-} -> t{-anx-}
+         mappairs'_akt =
+             \ f_r3r  ::  tal0 -> tal6 -> tala
                {-# L #-}
-               f_r3x ds_duS  :: 
-                         [t{-anl-}]
+               f_r3r ds_dsz  ::  [tal0]
                      {-# L #-}
-                     ds_duS ys_r3A  :: 
-                                [t{-anv-}]
+                     ds_dsz ys_r3s  ::  [tal6]
                             {-# L #-}
-                            ys_r3A ->
+                            ys_r3s ->
                  let {
-                   fail_duT  :: 
-                       [t{-anx-}]
+                   fail_dsE  ::  [tala]
                    {-# L #-}
-                   fail_duT =
-                       GHCerr.patError{-8r,p-}
-                           _@_ [t{-anx-}] _string_ "ds005.hs:13|function `mappairs''" } in
-                 let { fail_dwj  :: 
-                           [t{-anx-}]
+                   fail_dsE =
+                       GHCerr.patError{-8r,w-}
+                           _@_ [tala] _string_ "ds005.hs:13|function `mappairs''" } in
+                 let { fail_du4  ::  [tala]
                        {-# L #-}
-                       fail_dwj =
+                       fail_du4 =
                    let {
-                     fail_dvV  :: 
-                         [t{-anx-}]
+                     fail_dtG  ::  [tala]
                      {-# L #-}
-                     fail_dvV =
-                         case ds_duS of {
-                           PrelBase.[]{-5i,p-}{i} ->
-                               fail_duT;
-                           PrelBase.:{-55,p-}{i} x_r3J xs_r3K ->
-                               case ys_r3A of {
-                                 PrelBase.[]{-5i,p-}{i} ->
-                                     fail_duT;
-                                 PrelBase.:{-55,p-}{i} y_r3M ys_r3N ->
+                     fail_dtG =
+                         case ds_dsz of {
+                           PrelBase.[]{-5i,w-}{i} -> fail_dsE;
+                           PrelBase.:{-55,w-}{i} x_r3y xs_r3z ->
+                               case ys_r3s of {
+                                 PrelBase.[]{-5i,w-}{i} -> fail_dsE;
+                                 PrelBase.:{-55,w-}{i} y_r3A ys_r3B ->
                                      let {
-                                       f_r3H  :: 
-                                           t{-anl-} -> t{-anv-} -> t{-anx-}
+                                       f_r3x  ::  tal0 -> tal6 -> tala
                                        {-# L #-}
-                                       f_r3H =
-                                           f_r3x } in
+                                       f_r3x =
+                                           f_r3r } in
                                      let {
-                                       ds_dvr  :: 
-                                           t{-anx-}
+                                       ds_dtc  ::  tala
                                        {-# L #-}
-                                       ds_dvr =
-                                           f_r3H
-                                               x_r3J y_r3M } in
+                                       ds_dtc =
+                                           f_r3x x_r3y y_r3A } in
                                      let {
-                                       ds_dvv  :: 
-                                           [t{-anx-}]
+                                       ds_dtg  ::  [tala]
                                        {-# L #-}
-                                       ds_dvv =
-                                           mappairs'_anf
-                                               f_r3H xs_r3K ys_r3N
-                                     } in 
-                                       PrelBase.:{-55,p-}{i}
-                                           _@_ t{-anx-} ds_dvr ds_dvv;
+                                       ds_dtg =
+                                           mappairs'_akt f_r3x xs_r3z ys_r3B
+                                     } in  PrelBase.:{-55,w-}{i} _@_ tala ds_dtc ds_dtg;
                                };
                          }
                    } in 
-                     case ys_r3A of {
-                       PrelBase.:{-55,p-}{i} ds_dw3 ds_dw2 ->
-                           fail_dvV;
-                       PrelBase.[]{-5i,p-}{i} ->
+                     case ys_r3s of {
+                       PrelBase.:{-55,w-}{i} ds_dtN ds_dtO -> fail_dtG;
+                       PrelBase.[]{-5i,w-}{i} ->
                            let {
-                             x_r3E  :: 
-                                 [t{-anl-}]
+                             x_r3v  ::  [tal0]
                              {-# L #-}
-                             x_r3E =
-                                 ds_duS } in
+                             x_r3v =
+                                 ds_dsz } in
                            let {
-                             f_r3C  :: 
-                                 t{-anl-} -> t{-anv-} -> t{-anx-}
+                             f_r3u  ::  tal0 -> tal6 -> tala
                              {-# L #-}
-                             f_r3C =
-                                 f_r3x
-                           } in 
-                             PrelBase.[]{-5i,p-}{i}
-                                 _@_ t{-anx-};
+                             f_r3u =
+                                 f_r3r
+                           } in  PrelBase.[]{-5i,w-}{i} _@_ tala;
                      }
                  } in
-                 case ds_duS of {
-                   PrelBase.:{-55,p-}{i} ds_dwr ds_dwq ->
-                       fail_dwj;
-                   PrelBase.[]{-5i,p-}{i} ->
-                       PrelBase.[]{-5i,p-}{i}
-                           _@_ t{-anx-};
+                 case ds_dsz of {
+                   PrelBase.:{-55,w-}{i} ds_dub ds_duc -> fail_du4;
+                   PrelBase.[]{-5i,w-}{i} -> PrelBase.[]{-5i,w-}{i} _@_ tala;
                  };
-       } in 
-         mappairs'_anf
-end Rec }
-Rec {
-mappairs{-r3P,x-}  :: 
-    _forall_
-    [t{-aoc-} t{-aoh-} t{-aoj-}]
-    =>
-    (t{-aoc-} -> t{-aoh-} -> t{-aoj-})
-    -> [t{-aoc-}]
-    -> [t{-aoh-}]
-    -> [t{-aoj-}]
+       } in  mappairs'_akt
+mappairs{-r3D,x-}  ::  _forall_
+                      [talU tam0 tam4]
+                      =>
+                      (talU -> tam0 -> tam4) -> [talU] -> [tam0] -> [tam4]
 {-# L #-}
-mappairs{-r3P,x-} =
-    _/\_ t{-aoc-} t{-aoh-} t{-aoj-} ->
+mappairs{-r3D,x-} =
+    _/\_ talU tam0 tam4 ->
        _letrec_ {
-         mappairs_anX  :: 
-             (t{-aoc-} -> t{-aoh-} -> t{-aoj-})
-             -> [t{-aoc-}]
-             -> [t{-aoh-}]
-             -> [t{-aoj-}]
+         mappairs_alj  ::  (talU -> tam0 -> tam4)
+                           -> [talU]
+                           -> [tam0]
+                           -> [tam4]
          {-# L #-}
-         mappairs_anX =
-             \ f_r3e  :: 
-                   t{-aoc-} -> t{-aoh-} -> t{-aoj-}
+         mappairs_alj =
+             \ f_r3e  ::  talU -> tam0 -> tam4
                {-# L #-}
-               f_r3e ds_dx4  :: 
-                         [t{-aoc-}]
+               f_r3e ds_duF  ::  [talU]
                      {-# L #-}
-                     ds_dx4 ys_r3h  :: 
-                                [t{-aoh-}]
+                     ds_duF ys_r3f  ::  [tam0]
                             {-# L #-}
-                            ys_r3h ->
-                 case ds_dx4 of {
-                   PrelBase.[]{-5i,p-}{i} ->
-                       PrelBase.[]{-5i,p-}{i}
-                           _@_ t{-aoj-};
-                   PrelBase.:{-55,p-}{i} x_r3l xs_r3m ->
-                       case ys_r3h of {
-                         PrelBase.[]{-5i,p-}{i} ->
+                            ys_r3f ->
+                 case ds_duF of {
+                   PrelBase.[]{-5i,w-}{i} -> PrelBase.[]{-5i,w-}{i} _@_ tam4;
+                   PrelBase.:{-55,w-}{i} x_r3i xs_r3j ->
+                       case ys_r3f of {
+                         PrelBase.[]{-5i,w-}{i} ->
                              let {
-                               f_r3j  :: 
-                                   t{-aoc-} -> t{-aoh-} -> t{-aoj-}
+                               f_r3h  ::  talU -> tam0 -> tam4
                                {-# L #-}
-                               f_r3j =
+                               f_r3h =
                                    f_r3e
-                             } in 
-                               PrelBase.[]{-5i,p-}{i}
-                                   _@_ t{-aoj-};
-                         PrelBase.:{-55,p-}{i} y_r3u ys_r3v ->
+                             } in  PrelBase.[]{-5i,w-}{i} _@_ tam4;
+                         PrelBase.:{-55,w-}{i} y_r3o ys_r3p ->
                              let {
-                               xs_r3s  :: 
-                                   [t{-aoc-}]
+                               xs_r3n  ::  [talU]
                                {-# L #-}
-                               xs_r3s =
-                                   xs_r3m } in
+                               xs_r3n =
+                                   xs_r3j } in
                              let {
-                               x_r3r  :: 
-                                   t{-aoc-}
+                               x_r3m  ::  talU
                                {-# L #-}
-                               x_r3r =
-                                   x_r3l } in
+                               x_r3m =
+                                   x_r3i } in
                              let {
-                               f_r3p  :: 
-                                   t{-aoc-} -> t{-aoh-} -> t{-aoj-}
+                               f_r3l  ::  talU -> tam0 -> tam4
                                {-# L #-}
-                               f_r3p =
+                               f_r3l =
                                    f_r3e } in
                              let {
-                               ds_dxR  :: 
-                                   t{-aoj-}
+                               ds_dvs  ::  tam4
                                {-# L #-}
-                               ds_dxR =
-                                   f_r3p
-                                       x_r3r y_r3u } in
+                               ds_dvs =
+                                   f_r3l x_r3m y_r3o } in
                              let {
-                               ds_dxV  :: 
-                                   [t{-aoj-}]
+                               ds_dvw  ::  [tam4]
                                {-# L #-}
-                               ds_dxV =
-                                   mappairs_anX
-                                       f_r3p xs_r3s ys_r3v
-                             } in 
-                               PrelBase.:{-55,p-}{i}
-                                   _@_ t{-aoj-} ds_dxR ds_dxV;
+                               ds_dvw =
+                                   mappairs_alj f_r3l xs_r3n ys_r3p
+                             } in  PrelBase.:{-55,w-}{i} _@_ tam4 ds_dvs ds_dvw;
                        };
                  };
-       } in 
-         mappairs_anX
+       } in  mappairs_alj
 end Rec }
index c6358f3..588a5dd 100644 (file)
@@ -3,53 +3,26 @@
 ================================================================================
 Desugared:
 Rec {
-d.Num_aHu  :: 
-    {PrelBase.Num{-2c,p-} PrelBase.Int{-3g,p-}}
+v_aBI  ::  PrelBase.Int{-3g,W-}
 {-# L #-}
-d.Num_aHu =
-    PrelBase.$d3{-rb1,p-}
-+_aJy  :: 
-    PrelBase.Int{-3g,p-}
-    -> PrelBase.Int{-3g,p-}
-    -> PrelBase.Int{-3g,p-}
+v_aBI =
+    +_aDM v_aBI lit_aDN
+v{-r1,x-}  ::  PrelBase.Int{-3g,W-}
 {-# L #-}
-+_aJy =
-    PrelBase.+{-ras,p-}
-       _@_ PrelBase.Int{-3g,p-} d.Num_aHu
-d.Num_aHy  :: 
-    {PrelBase.Num{-2c,p-} PrelBase.Int{-3g,p-}}
-{-# L #-}
-d.Num_aHy =
-    d.Num_aHu
-fromInt_aJG  :: 
-    PrelBase.Int{-3g,p-} -> PrelBase.Int{-3g,p-}
-{-# L #-}
-fromInt_aJG =
-    PrelBase.fromInt{-8R,p-}
-       _@_ PrelBase.Int{-3g,p-} d.Num_aHy
-lit_aJF  :: 
-    PrelBase.Int{-3g,p-}
+v{-r1,x-} =
+    v_aBI
+d.Num_aC2  ::  {PrelBase.Num{-2c,p-} PrelBase.Int{-3g,W-}}
 {-# L #-}
-lit_aJF =
-    let {
-      ds_dKi  :: 
-         PrelBase.Int{-3g,p-}
-      {-# L #-}
-      ds_dKi =
-         PrelBase.I#{-5b,p-}{i}
-             1
-    } in 
-      fromInt_aJG
-         ds_dKi
-v_aHa  :: 
-    PrelBase.Int{-3g,p-}
+d.Num_aC2 =
+    PrelBase.$d4{-rao,p-}
++_aDM  ::  PrelBase.Int{-3g,W-}
+          -> PrelBase.Int{-3g,W-}
+          -> PrelBase.Int{-3g,W-}
 {-# L #-}
-v_aHa =
-    +_aJy
-       v_aHa lit_aJF
-v{-r1,x-}  :: 
-    PrelBase.Int{-3g,p-}
++_aDM =
+    PrelBase.+{-r9E,p-} _@_ PrelBase.Int{-3g,W-} d.Num_aC2
+lit_aDN  ::  PrelBase.Int{-3g,W-}
 {-# L #-}
-v{-r1,x-} =
-    v_aHa
+lit_aDN =
+    PrelBase.I#{-5b,w-}{i} 1
 end Rec }
index 32cef47..016812a 100644 (file)
@@ -2,27 +2,25 @@
 
 ================================================================================
 Desugared:
-w{-r3f,x-}  :: 
-    _forall_ [t{-amV-}] => [t{-amV-}]
+Rec {
+w{-r3f,x-}  ::  _forall_ [takl] => [takl]
 {-# L #-}
 w{-r3f,x-} =
-    _/\_ t{-amV-} ->
-       let {
-         y_r3e  :: 
-             _forall_ [t{-amM-}] => [t{-amM-}]
+    _/\_ takl ->
+       _letrec_ {
+         w_ak8  ::  [takl]
          {-# L #-}
-         y_r3e =
-             _/\_ t{-amM-} ->
-                 PrelBase.[]{-5i,p-}{i}
-                     _@_ t{-amM-} } in
-       let {
-         a_r3d  :: 
-             _forall_ [t{-amT-}] => [t{-amT-}]
-         {-# L #-}
-         a_r3d =
-             _/\_ t{-amT-} ->
-                 y_r3e
-                     _@_ t{-amT-}
-       } in 
-         a_r3d
-             _@_ t{-amV-}
+         w_ak8 =
+             let {
+               y_r3e  ::  _forall_ [takc] => [takc]
+               {-# L #-}
+               y_r3e =
+                   _/\_ takc -> PrelBase.[]{-5i,w-}{i} _@_ takc } in
+             let {
+               a_r3d  ::  _forall_ [takj] => [takj]
+               {-# L #-}
+               a_r3d =
+                   _/\_ takj -> y_r3e _@_ takj
+             } in  a_r3d _@_ takl;
+       } in  w_ak8
+end Rec }
index 7ca5532..efe8c70 100644 (file)
 ================================================================================
 Desugared:
 Rec {
-d.Num_aY4  :: 
-    {PrelBase.Num{-2c,p-} PrelBase.Int{-3g,p-}}
+f{-r3i,x-}  ::  _forall_ [taRU taRS] => taRU -> [taRS]
 {-# L #-}
-d.Num_aY4 =
-    PrelBase.$d3{-rbb,p-}
-fromInt_a117  :: 
-    PrelBase.Int{-3g,p-} -> PrelBase.Int{-3g,p-}
-{-# L #-}
-fromInt_a117 =
-    PrelBase.fromInt{-8R,p-}
-       _@_ PrelBase.Int{-3g,p-} d.Num_aY4
-lit_a11e  :: 
-    PrelBase.Int{-3g,p-}
-{-# L #-}
-lit_a11e =
-    let {
-      ds_d11D  :: 
-         PrelBase.Int{-3g,p-}
-      {-# L #-}
-      ds_d11D =
-         PrelBase.I#{-5b,p-}{i}
-             1
-    } in 
-      fromInt_a117
-         ds_d11D
-f{-r3m,x-}  :: 
-    _forall_ [t{-aXj-} t{-aXh-}] => t{-aXj-} -> [t{-aXh-}]
-{-# L #-}
-f{-r3m,x-} =
-    _/\_ t{-aXj-} t{-aXh-} -> \ x_r3f  :: 
-                                   t{-aXj-}
-                               {-# L #-}
-                               x_r3f ->
-       PrelBase.[]{-5i,p-}{i}
-           _@_ t{-aXh-}
-g{-r3l,x-}  :: 
-    _forall_
-    [t{-aXD-} t{-aXv-} t{-aXx-} t{-aXz-} t{-aXB-}]
-    =>
-    t{-aXD-} -> ([t{-aXv-}], [t{-aXx-}], [t{-aXz-}], [t{-aXB-}])
-{-# L #-}
-g{-r3l,x-} =
-    _/\_ t{-aXD-} t{-aXv-} t{-aXx-} t{-aXz-} t{-aXB-} -> \ x_r3h  :: 
-                                                              t{-aXD-}
-                                                          {-# L #-}
-                                                          x_r3h ->
-       let { ds_d12o  :: 
-                 [t{-aXv-}]
-             {-# L #-}
-             ds_d12o =
-         let {
-           ds_d12M  :: 
-               [GHC.Void{-3T,p-}]
-           {-# L #-}
-           ds_d12M =
-               PrelBase.[]{-5i,p-}{i}
-                   _@_ GHC.Void{-3T,p-}
-         } in 
-           f{-r3m,x-}
-               _@_ [GHC.Void{-3T,p-}] _@_ t{-aXv-} ds_d12M
-       } in
-       let {
-         ds_d12s  :: 
-             [t{-aXx-}]
+f{-r3i,x-} =
+    _/\_ taRU taRS ->
+       _letrec_ {
+         f_aRJ  ::  taRU -> [taRS]
          {-# L #-}
-         ds_d12s =
-             PrelBase.[]{-5i,p-}{i}
-                 _@_ t{-aXx-} } in
-       let {
-         ds_d12w  :: 
-             [t{-aXz-}]
+         f_aRJ =
+             \ x_r3f  ::  taRU
+               {-# L #-}
+               x_r3f ->
+                 PrelBase.[]{-5i,w-}{i} _@_ taRS;
+       } in  f_aRJ
+g{-r3m,x-}  ::  _forall_
+               [taSp taSe taSj taSl taSn]
+               =>
+               taSp -> ([taSe], [taSj], [taSl], [taSn])
+{-# L #-}
+g{-r3m,x-} =
+    _/\_ taSp taSe taSj taSl taSn ->
+       _letrec_ {
+         g_aRW  ::  taSp -> ([taSe], [taSj], [taSl], [taSn])
          {-# L #-}
-         ds_d12w =
-             PrelBase.[]{-5i,p-}{i}
-                 _@_ t{-aXz-} } in
-       let {
-         ds_d12A  :: 
-             [t{-aXB-}]
+         g_aRW =
+             \ x_r3h  ::  taSp
+               {-# L #-}
+               x_r3h ->
+                 let { ds_dWB  ::  [taSe]
+                       {-# L #-}
+                       ds_dWB =
+                   let {
+                     ds_dWZ  ::  [GHC.Void{-3T,W-}]
+                     {-# L #-}
+                     ds_dWZ =
+                         PrelBase.[]{-5i,w-}{i} _@_ GHC.Void{-3T,W-}
+                   } in  f{-r3i,x-} _@_ [GHC.Void{-3T,W-}] _@_ taSe ds_dWZ
+                 } in
+                 let {
+                   ds_dWF  ::  [taSj]
+                   {-# L #-}
+                   ds_dWF =
+                       PrelBase.[]{-5i,w-}{i} _@_ taSj } in
+                 let {
+                   ds_dWJ  ::  [taSl]
+                   {-# L #-}
+                   ds_dWJ =
+                       PrelBase.[]{-5i,w-}{i} _@_ taSl } in
+                 let {
+                   ds_dWN  ::  [taSn]
+                   {-# L #-}
+                   ds_dWN =
+                       PrelBase.[]{-5i,w-}{i} _@_ taSn
+                 } in 
+                   PrelTup.(,,,){-64,w-}{i}
+                       {_@_ [taSe]
+                        _@_ [taSj]
+                        _@_ [taSl]
+                        _@_ [taSn]
+                        ds_dWB
+                        ds_dWF
+                        ds_dWJ
+                        ds_dWN};
+       } in  g_aRW
+h{-r3l,x-}  ::  _forall_
+               [taSM taSB taSD taSF taSH]
+               =>
+               taSM -> ([taSB], [taSD], [taSF], [taSH])
+{-# L #-}
+h{-r3l,x-} =
+    _/\_ taSM taSB taSD taSF taSH ->
+       _letrec_ {
+         h_aSr  ::  taSM -> ([taSB], [taSD], [taSF], [taSH])
          {-# L #-}
-         ds_d12A =
-             PrelBase.[]{-5i,p-}{i}
-                 _@_ t{-aXB-}
-       } in 
-         PrelTup.(,,,){-64,p-}{i}
-             {_@_ [t{-aXv-}]
-              _@_ [t{-aXx-}]
-              _@_ [t{-aXz-}]
-              _@_ [t{-aXB-}]
-              ds_d12o
-              ds_d12s
-              ds_d12w
-              ds_d12A}
-h{-r3k,x-}  :: 
-    _forall_
-    [t{-aY0-} t{-aXS-} t{-aXT-} t{-aXU-} t{-aXV-}]
-    =>
-    t{-aY0-} -> ([t{-aXS-}], [t{-aXT-}], [t{-aXU-}], [t{-aXV-}])
+         h_aSr =
+             \ x_r3k  ::  taSM
+               {-# L #-}
+               x_r3k ->
+                 g{-r3m,x-}
+                     _@_ PrelBase.Int{-3g,W-}
+                     _@_ taSB
+                     _@_ taSD
+                     _@_ taSF
+                     _@_ taSH
+                     lit_aVP;
+       } in  h_aSr
+lit_aVP  ::  PrelBase.Int{-3g,W-}
 {-# L #-}
-h{-r3k,x-} =
-    _/\_ t{-aY0-} t{-aXS-} t{-aXT-} t{-aXU-} t{-aXV-} -> \ x_r3j  :: 
-                                                              t{-aY0-}
-                                                          {-# L #-}
-                                                          x_r3j ->
-       g{-r3l,x-}
-           _@_ PrelBase.Int{-3g,p-}
-           _@_ t{-aXS-}
-           _@_ t{-aXT-}
-           _@_ t{-aXU-}
-           _@_ t{-aXV-}
-           lit_a11e
+lit_aVP =
+    PrelBase.I#{-5b,w-}{i} 1
 end Rec }
index 22fcc6f..7e9749f 100644 (file)
 
 ================================================================================
 Desugared:
-j{-r3R,x-}  :: 
-    _forall_
-    [t{-aXD-} t{-aXG-} t{-aXJ-} t{-aXM-} a{-aXO-}]
-    =>
-    {PrelBase.Monad{-28,p-} a{-aXO-}}
-    -> a{-aXO-} (t{-aXD-}, t{-aXG-}, t{-aXJ-}, t{-aXM-})
-    -> a{-aXO-} (t{-aXD-}, t{-aXG-})
+Rec {
+j{-r3O,x-}  ::  _forall_
+               [taS7 taSa aaSb taSf taSh]
+               =>
+               {PrelBase.Monad{-28,p-} aaSb}
+               -> aaSb (taSf, taSh, taS7, taSa)
+               -> aaSb (taSf, taSh)
 {-# L #-}
-j{-r3R,x-} =
-    _/\_ t{-aXD-} t{-aXG-} t{-aXJ-} t{-aXM-} a{-aXO-} -> \ d.Monad_aXY  :: 
-                                                              {PrelBase.Monad{-28,p-} a{-aXO-}}
-                                                          {-# L #-}
-                                                          d.Monad_aXY ->
-       let {
-         >>=_a1c0  :: 
-             _forall_
-             [rjI{-a107-} rjJ{-a106-}]
-             =>
-             a{-aXO-} rjI{-a107-}
-             -> (rjI{-a107-} -> a{-aXO-} rjJ{-a106-})
-             -> a{-aXO-} rjJ{-a106-}
+j{-r3O,x-} =
+    _/\_ taS7 taSa aaSb taSf taSh -> \ d.Monad_aSr  ::  {PrelBase.Monad{-28,p-} aaSb}
+                                      {-# L #-}
+                                      d.Monad_aSr ->
+       _letrec_ {
+         >>=_a17B  ::  _forall_
+                       [taVi taVh]
+                       =>
+                       aaSb taVi -> (taVi -> aaSb taVh) -> aaSb taVh
          {-# L #-}
-         >>=_a1c0 =
-             PrelBase.>>={-811,p-}
-                 _@_ a{-aXO-} d.Monad_aXY } in
-       let {
-         d.Monad_aY0  :: 
-             {PrelBase.Monad{-28,p-} a{-aXO-}}
+         >>=_a17B =
+             PrelBase.>>={-811,p-} _@_ aaSb d.Monad_aSr;
+         d.Monad_aSt  ::  {PrelBase.Monad{-28,p-} aaSb}
          {-# L #-}
-         d.Monad_aY0 =
-             d.Monad_aXY } in
-       let {
-         return_a1bZ  :: 
-             _forall_ [rjQ{-a108-}] => rjQ{-a108-} -> a{-aXO-} rjQ{-a108-}
+         d.Monad_aSt =
+             d.Monad_aSr;
+         return_a17I  ::  _forall_ [taVj] => taVj -> aaSb taVj
          {-# L #-}
-         return_a1bZ =
-             PrelBase.return{-816,p-}
-                 _@_ a{-aXO-} d.Monad_aY0
-       } in 
-         \ xs_r3L  :: 
-               a{-aXO-} (t{-aXD-}, t{-aXG-}, t{-aXJ-}, t{-aXM-})
-           {-# L #-}
-           xs_r3L ->
-             let {
-               ds_d1cw  :: 
-                   (t{-aXD-}, t{-aXG-}, t{-aXJ-}, t{-aXM-})
-                   -> a{-aXO-} (t{-aXD-}, t{-aXG-})
+         return_a17I =
+             PrelBase.return{-816,p-} _@_ aaSb d.Monad_aSt;
+         j_aRN  ::  aaSb (taSf, taSh, taS7, taSa) -> aaSb (taSf, taSh)
+         {-# L #-}
+         j_aRN =
+             \ xs_r3I  ::  aaSb (taSf, taSh, taS7, taSa)
                {-# L #-}
-               ds_d1cw =
-                   \ ds_d1cC  :: 
-                         (t{-aXD-}, t{-aXG-}, t{-aXJ-}, t{-aXM-})
-                     {-# L #-}
-                     ds_d1cC ->
-                       case
-                           ds_d1cC
-                       of {
-                       PrelTup.(,,,){-64,p-}{i} a_r3N b_r3O c_r3P d_r3Q  ->
-                       let {
-                         ds_d1cQ  :: 
-                             (t{-aXD-}, t{-aXG-})
+               xs_r3I ->
+                 let {
+                   ds_d18A  ::  (taSf, taSh, taS7, taSa) -> aaSb (taSf, taSh)
+                   {-# L #-}
+                   ds_d18A =
+                       \ ds_d18G  ::  (taSf, taSh, taS7, taSa)
                          {-# L #-}
-                         ds_d1cQ =
-                             PrelTup.(,){-62,p-}{i}
-                                 {_@_ t{-aXD-} _@_ t{-aXG-} a_r3N b_r3O}
-                       } in 
-                         return_a1bZ
-                             _@_ (t{-aXD-}, t{-aXG-}) ds_d1cQ;}
-             } in 
-               >>=_a1c0
-                   _@_ (t{-aXD-}, t{-aXG-}, t{-aXJ-}, t{-aXM-})
-                   _@_ (t{-aXD-}, t{-aXG-})
-                   xs_r3L
-                   ds_d1cw
-i{-r3S,x-}  :: 
-    _forall_
-    [a{-aYh-} t{-aYm-} t{-aYo-}]
-    =>
-    {PrelBase.Eq{-23,p-} t{-aYm-}}
-    -> {PrelBase.Eq{-23,p-} t{-aYo-}}
-    -> {PrelBase.MonadZero{-29,p-} a{-aYh-}}
-    -> a{-aYh-} ([t{-aYm-}], [t{-aYo-}])
-    -> a{-aYh-} [t{-aYm-}]
+                         ds_d18G ->
+                           case
+                               ds_d18G
+                           of {
+                           PrelTup.(,,,){-64,w-}{i} a_r3K b_r3L c_r3M d_r3N  ->
+                           let {
+                             ds_d18U  ::  (taSf, taSh)
+                             {-# L #-}
+                             ds_d18U =
+                                 PrelTup.(,){-62,w-}{i} {_@_ taSf _@_ taSh a_r3K b_r3L}
+                           } in  return_a17I _@_ (taSf, taSh) ds_d18U;}
+                 } in 
+                   >>=_a17B
+                       _@_ (taSf, taSh, taS7, taSa) _@_ (taSf, taSh) xs_r3I ds_d18A;
+       } in  j_aRN
+i{-r3P,x-}  ::  _forall_
+               [aaSN taSX taSZ]
+               =>
+               {PrelBase.Eq{-23,p-} taSX}
+               -> {PrelBase.Eq{-23,p-} taSZ}
+               -> {PrelBase.MonadZero{-29,p-} aaSN}
+               -> aaSN ([taSX], [taSZ])
+               -> aaSN [taSX]
 {-# L #-}
-i{-r3S,x-} =
-    _/\_ a{-aYh-} t{-aYm-} t{-aYo-} -> \ d.Eq_aYC  :: 
-                                            {PrelBase.Eq{-23,p-} t{-aYm-}}
-                                        {-# L #-}
-                                        d.Eq_aYC d.Eq_aYF  :: 
-                                                     {PrelBase.Eq{-23,p-} t{-aYo-}}
-                                                 {-# L #-}
-                                                 d.Eq_aYF d.MonadZero_aYL  :: 
-                                                              {PrelBase.MonadZero{-29,p-} a{-aYh-}}
-                                                          {-# L #-}
-                                                          d.MonadZero_aYL ->
-       let {
-         d.Monad_aYH  :: 
-             {PrelBase.Monad{-28,p-} a{-aYh-}}
+i{-r3P,x-} =
+    _/\_ aaSN taSX taSZ -> \ d.Eq_aTf  ::  {PrelBase.Eq{-23,p-} taSX}
+                            {-# L #-}
+                            d.Eq_aTf d.Eq_aTi  ::  {PrelBase.Eq{-23,p-} taSZ}
+                                     {-# L #-}
+                                     d.Eq_aTi d.MonadZero_aTo  ::  {PrelBase.MonadZero{-29,p-} aaSN}
+                                              {-# L #-}
+                                              d.MonadZero_aTo ->
+       _letrec_ {
+         d.Monad_aTk  ::  {PrelBase.Monad{-28,p-} aaSN}
+         {-# L #-}
+         d.Monad_aTk =
+             PrelBase.scsel_MonadZeroPrelBaseMonad{-a19C,p-}
+                 _@_ aaSN d.MonadZero_aTo;
+         d.Eq_aTd  ::  {PrelBase.Eq{-23,p-} [taSX]}
          {-# L #-}
-         d.Monad_aYH =
-             PrelBase.scsel_MonadZeroPrelBaseMonad{-a1dR,p-}
-                 _@_ a{-aYh-} d.MonadZero_aYL } in
-       let {
-         d.Eq_aYA  :: 
-             {PrelBase.Eq{-23,p-} [t{-aYm-}]}
+         d.Eq_aTd =
+             PrelBase.$d28{-rpK,p-} _@_ taSX d.Eq_aTf;
+         d.Eq_aTg  ::  {PrelBase.Eq{-23,p-} [taSZ]}
          {-# L #-}
-         d.Eq_aYA =
-             PrelBase.$d27{-rqA,p-}
-                 _@_ t{-aYm-} d.Eq_aYC } in
-       let {
-         d.Eq_aYD  :: 
-             {PrelBase.Eq{-23,p-} [t{-aYo-}]}
+         d.Eq_aTg =
+             PrelBase.$d28{-rpK,p-} _@_ taSZ d.Eq_aTi;
+         d.Eq_aTb  ::  {PrelBase.Eq{-23,p-} ([taSX], [taSZ])}
          {-# L #-}
-         d.Eq_aYD =
-             PrelBase.$d27{-rqA,p-}
-                 _@_ t{-aYo-} d.Eq_aYF } in
-       let {
-         d.Eq_aYy  :: 
-             {PrelBase.Eq{-23,p-} ([t{-aYm-}], [t{-aYo-}])}
+         d.Eq_aTb =
+             PrelTup.$d9{-rpg,p-} _@_ [taSX] _@_ [taSZ] d.Eq_aTd d.Eq_aTg;
+         ==_a19w  ::  ([taSX], [taSZ])
+                      -> ([taSX], [taSZ])
+                      -> PrelBase.Bool{-34,W-}
          {-# L #-}
-         d.Eq_aYy =
-             PrelTup.$d9{-rq7,p-}
-                 _@_ [t{-aYm-}] _@_ [t{-aYo-}] d.Eq_aYA d.Eq_aYD } in
-       let {
-         ==_a1dH  :: 
-             ([t{-aYm-}], [t{-aYo-}])
-             -> ([t{-aYm-}], [t{-aYo-}])
-             -> PrelBase.Bool{-34,p-}
+         ==_a19w =
+             PrelBase.=={-8Y,p-} _@_ ([taSX], [taSZ]) d.Eq_aTb;
+         >>=_a19x  ::  _forall_
+                       [taVl taVk]
+                       =>
+                       aaSN taVl -> (taVl -> aaSN taVk) -> aaSN taVk
          {-# L #-}
-         ==_a1dH =
-             PrelBase.=={-8Y,p-}
-                 _@_ ([t{-aYm-}], [t{-aYo-}]) d.Eq_aYy } in
-       let {
-         >>=_a1dG  :: 
-             _forall_
-             [rjI{-a10a-} rjJ{-a109-}]
-             =>
-             a{-aYh-} rjI{-a10a-}
-             -> (rjI{-a10a-} -> a{-aYh-} rjJ{-a109-})
-             -> a{-aYh-} rjJ{-a109-}
+         >>=_a19x =
+             PrelBase.>>={-811,p-} _@_ aaSN d.Monad_aTk;
+         d.Monad_aTm  ::  {PrelBase.Monad{-28,p-} aaSN}
          {-# L #-}
-         >>=_a1dG =
-             PrelBase.>>={-811,p-}
-                 _@_ a{-aYh-} d.Monad_aYH } in
-       let {
-         d.Monad_aYJ  :: 
-             {PrelBase.Monad{-28,p-} a{-aYh-}}
+         d.Monad_aTm =
+             d.Monad_aTk;
+         return_a19y  ::  _forall_ [taVm] => taVm -> aaSN taVm
          {-# L #-}
-         d.Monad_aYJ =
-             d.Monad_aYH } in
-       let {
-         return_a1dF  :: 
-             _forall_ [rjQ{-a10b-}] => rjQ{-a10b-} -> a{-aYh-} rjQ{-a10b-}
+         return_a19y =
+             PrelBase.return{-816,p-} _@_ aaSN d.Monad_aTm;
+         zero_a19z  ::  _forall_ [taVn] => aaSN taVn
          {-# L #-}
-         return_a1dF =
-             PrelBase.return{-816,p-}
-                 _@_ a{-aYh-} d.Monad_aYJ } in
-       let {
-         zero_a1dE  :: 
-             _forall_ [rjD{-a10c-}] => a{-aYh-} rjD{-a10c-}
+         zero_a19z =
+             PrelBase.zero{-810,p-} _@_ aaSN d.MonadZero_aTo;
+         i_aSv  ::  aaSN ([taSX], [taSZ]) -> aaSN [taSX]
          {-# L #-}
-         zero_a1dE =
-             PrelBase.zero{-810,p-}
-                 _@_ a{-aYh-} d.MonadZero_aYL
-       } in 
-         \ xs_r3F  :: 
-               a{-aYh-} ([t{-aYm-}], [t{-aYo-}])
-           {-# L #-}
-           xs_r3F ->
-             let {
-               ds_d1f5  :: 
-                   ([t{-aYm-}], [t{-aYo-}]) -> a{-aYh-} [t{-aYm-}]
+         i_aSv =
+             \ xs_r3C  ::  aaSN ([taSX], [taSZ])
                {-# L #-}
-               ds_d1f5 =
-                   \ all_r3H  :: 
-                         ([t{-aYm-}], [t{-aYo-}])
-                     {-# L #-}
-                     all_r3H ->
-                       case all_r3H of { PrelTup.(,){-62,p-}{i} x_r3I y_r3J  ->
-                       case
-                           let { ds_d1fr  :: 
-                                     ([t{-aYm-}], [t{-aYo-}])
-                                 {-# L #-}
-                                 ds_d1fr =
-                             let {
-                               ds_d1fE  :: 
-                                   [t{-aYm-}]
-                               {-# L #-}
-                               ds_d1fE =
-                                   PrelBase.[]{-5i,p-}{i}
-                                       _@_ t{-aYm-} } in
-                             let {
-                               ds_d1fI  :: 
-                                   [t{-aYo-}]
-                               {-# L #-}
-                               ds_d1fI =
-                                   PrelBase.[]{-5i,p-}{i}
-                                       _@_ t{-aYo-}
-                             } in 
-                               PrelTup.(,){-62,p-}{i}
-                                   {_@_ [t{-aYm-}] _@_ [t{-aYo-}] ds_d1fE ds_d1fI}
-                           } in
-                           ==_a1dH
-                               all_r3H ds_d1fr
-                       of {
-                         PrelBase.True{-5E,p-}{i} ->
-                             return_a1dF
-                                 _@_ [t{-aYm-}] x_r3I;
-                         PrelBase.False{-58,p-}{i} ->
-                             zero_a1dE
-                                 _@_ [t{-aYm-}];
-                       };}
-             } in 
-               >>=_a1dG
-                   _@_ ([t{-aYm-}], [t{-aYo-}]) _@_ [t{-aYm-}] xs_r3F ds_d1f5
-h{-r3T,x-}  :: 
-    _forall_
-    [a{-aYU-} t{-aYZ-}]
-    =>
-    {PrelBase.MonadZero{-29,p-} a{-aYU-}}
-    -> a{-aYU-} t{-aYZ-}
-    -> a{-aYU-} t{-aYZ-}
-    -> a{-aYU-} [t{-aYZ-}]
+               xs_r3C ->
+                 let {
+                   ds_d1br  ::  ([taSX], [taSZ]) -> aaSN [taSX]
+                   {-# L #-}
+                   ds_d1br =
+                       \ all_r3E  ::  ([taSX], [taSZ])
+                         {-# L #-}
+                         all_r3E ->
+                           case all_r3E of { PrelTup.(,){-62,w-}{i} x_r3F y_r3G  ->
+                           case
+                               let { ds_d1bN  ::  ([taSX], [taSZ])
+                                     {-# L #-}
+                                     ds_d1bN =
+                                 let {
+                                   ds_d1c0  ::  [taSX]
+                                   {-# L #-}
+                                   ds_d1c0 =
+                                       PrelBase.[]{-5i,w-}{i} _@_ taSX } in
+                                 let {
+                                   ds_d1c4  ::  [taSZ]
+                                   {-# L #-}
+                                   ds_d1c4 =
+                                       PrelBase.[]{-5i,w-}{i} _@_ taSZ
+                                 } in 
+                                   PrelTup.(,){-62,w-}{i} {_@_ [taSX] _@_ [taSZ] ds_d1c0 ds_d1c4}
+                               } in
+                               ==_a19w all_r3E ds_d1bN
+                           of {
+                             PrelBase.True{-5E,w-}{i} -> return_a19y _@_ [taSX] x_r3F;
+                             PrelBase.False{-58,w-}{i} -> zero_a19z _@_ [taSX];
+                           };}
+                 } in  >>=_a19x _@_ ([taSX], [taSZ]) _@_ [taSX] xs_r3C ds_d1br;
+       } in  i_aSv
+h{-r3Q,x-}  ::  _forall_
+               [aaTE taTN]
+               =>
+               {PrelBase.MonadZero{-29,p-} aaTE}
+               -> aaTE taTN
+               -> aaTE taTN
+               -> aaTE [taTN]
 {-# L #-}
-h{-r3T,x-} =
-    _/\_ a{-aYU-} t{-aYZ-} -> \ d.MonadZero_aZd  :: 
-                                   {PrelBase.MonadZero{-29,p-} a{-aYU-}}
-                               {-# L #-}
-                               d.MonadZero_aZd ->
-       let {
-         d.Monad_aZ9  :: 
-             {PrelBase.Monad{-28,p-} a{-aYU-}}
+h{-r3Q,x-} =
+    _/\_ aaTE taTN -> \ d.MonadZero_aU1  ::  {PrelBase.MonadZero{-29,p-} aaTE}
+                       {-# L #-}
+                       d.MonadZero_aU1 ->
+       _letrec_ {
+         d.Monad_aTX  ::  {PrelBase.Monad{-28,p-} aaTE}
+         {-# L #-}
+         d.Monad_aTX =
+             PrelBase.scsel_MonadZeroPrelBaseMonad{-a19C,p-}
+                 _@_ aaTE d.MonadZero_aU1;
+         >>=_a1cX  ::  _forall_
+                       [taVp taVo]
+                       =>
+                       aaTE taVp -> (taVp -> aaTE taVo) -> aaTE taVo
          {-# L #-}
-         d.Monad_aZ9 =
-             PrelBase.scsel_MonadZeroPrelBaseMonad{-a1dR,p-}
-                 _@_ a{-aYU-} d.MonadZero_aZd } in
-       let {
-         >>=_a1gH  :: 
-             _forall_
-             [rjI{-a10e-} rjJ{-a10d-}]
-             =>
-             a{-aYU-} rjI{-a10e-}
-             -> (rjI{-a10e-} -> a{-aYU-} rjJ{-a10d-})
-             -> a{-aYU-} rjJ{-a10d-}
+         >>=_a1cX =
+             PrelBase.>>={-811,p-} _@_ aaTE d.Monad_aTX;
+         d.Monad_aTZ  ::  {PrelBase.Monad{-28,p-} aaTE}
          {-# L #-}
-         >>=_a1gH =
-             PrelBase.>>={-811,p-}
-                 _@_ a{-aYU-} d.Monad_aZ9 } in
-       let {
-         d.Monad_aZb  :: 
-             {PrelBase.Monad{-28,p-} a{-aYU-}}
+         d.Monad_aTZ =
+             d.Monad_aTX;
+         return_a1cY  ::  _forall_ [taVq] => taVq -> aaTE taVq
          {-# L #-}
-         d.Monad_aZb =
-             d.Monad_aZ9 } in
-       let {
-         return_a1gG  :: 
-             _forall_ [rjQ{-a10f-}] => rjQ{-a10f-} -> a{-aYU-} rjQ{-a10f-}
+         return_a1cY =
+             PrelBase.return{-816,p-} _@_ aaTE d.Monad_aTZ;
+         zero_a1cZ  ::  _forall_ [taVr] => aaTE taVr
          {-# L #-}
-         return_a1gG =
-             PrelBase.return{-816,p-}
-                 _@_ a{-aYU-} d.Monad_aZb } in
-       let {
-         zero_a1gF  :: 
-             _forall_ [rjD{-a10g-}] => a{-aYU-} rjD{-a10g-}
+         zero_a1cZ =
+             PrelBase.zero{-810,p-} _@_ aaTE d.MonadZero_aU1;
+         h_aTr  ::  aaTE taTN -> aaTE taTN -> aaTE [taTN]
          {-# L #-}
-         zero_a1gF =
-             PrelBase.zero{-810,p-}
-                 _@_ a{-aYU-} d.MonadZero_aZd
-       } in 
-         \ xs_r3x  :: 
-               a{-aYU-} t{-aYZ-}
-           {-# L #-}
-           xs_r3x ys_r3z  :: 
-                      a{-aYU-} t{-aYZ-}
-                  {-# L #-}
-                  ys_r3z ->
-             let {
-               ds_d1hu  :: 
-                   t{-aYZ-} -> a{-aYU-} [t{-aYZ-}]
+         h_aTr =
+             \ xs_r3v  ::  aaTE taTN
                {-# L #-}
-               ds_d1hu =
-                   \ x_r3B  :: 
-                         t{-aYZ-}
-                     {-# L #-}
-                     x_r3B ->
-                       let {
-                         ds_d1hK  :: 
-                             t{-aYZ-} -> a{-aYU-} [t{-aYZ-}]
+               xs_r3v ys_r3w  ::  aaTE taTN
+                      {-# L #-}
+                      ys_r3w ->
+                 let {
+                   ds_d1e0  ::  taTN -> aaTE [taTN]
+                   {-# L #-}
+                   ds_d1e0 =
+                       \ x_r3y  ::  taTN
                          {-# L #-}
-                         ds_d1hK =
-                             \ y_r3D  :: 
-                                   t{-aYZ-}
-                               {-# L #-}
-                               y_r3D ->
-                                 zero_a1gF
-                                     _@_ [t{-aYZ-}]
-                       } in 
-                         >>=_a1gH
-                             _@_ t{-aYZ-} _@_ [t{-aYZ-}] ys_r3z ds_d1hK
-             } in 
-               >>=_a1gH
-                   _@_ t{-aYZ-} _@_ [t{-aYZ-}] xs_r3x ds_d1hu
-g{-r3U,x-}  :: 
-    _forall_
-    [a{-aZn-} t{-aZp-} t{-aZs-} t{-aZv-}]
-    =>
-    {PrelBase.MonadZero{-29,p-} a{-aZn-}}
-    -> a{-aZn-} t{-aZp-}
-    -> a{-aZn-} t{-aZs-}
-    -> a{-aZn-} t{-aZv-}
-    -> a{-aZn-} (t{-aZp-}, t{-aZs-}, t{-aZv-})
+                         x_r3y ->
+                           let {
+                             ds_d1eg  ::  taTN -> aaTE [taTN]
+                             {-# L #-}
+                             ds_d1eg =
+                                 \ y_r3A  ::  taTN
+                                   {-# L #-}
+                                   y_r3A ->
+                                     zero_a1cZ _@_ [taTN]
+                           } in  >>=_a1cX _@_ taTN _@_ [taTN] ys_r3w ds_d1eg
+                 } in  >>=_a1cX _@_ taTN _@_ [taTN] xs_r3v ds_d1e0;
+       } in  h_aTr
+g{-r3R,x-}  ::  _forall_
+               [aaUm taUx taUz taUB]
+               =>
+               {PrelBase.MonadZero{-29,p-} aaUm}
+               -> aaUm taUx
+               -> aaUm taUz
+               -> aaUm taUB
+               -> aaUm (taUx, taUz, taUB)
 {-# L #-}
-g{-r3U,x-} =
-    _/\_ a{-aZn-} t{-aZp-} t{-aZs-} t{-aZv-} -> \ d.MonadZero_aZJ  :: 
-                                                     {PrelBase.MonadZero{-29,p-} a{-aZn-}}
-                                                 {-# L #-}
-                                                 d.MonadZero_aZJ ->
-       let {
-         d.Monad_aZF  :: 
-             {PrelBase.Monad{-28,p-} a{-aZn-}}
+g{-r3R,x-} =
+    _/\_ aaUm taUx taUz taUB -> \ d.MonadZero_aUP  ::  {PrelBase.MonadZero{-29,p-} aaUm}
+                                 {-# L #-}
+                                 d.MonadZero_aUP ->
+       _letrec_ {
+         d.Monad_aUL  ::  {PrelBase.Monad{-28,p-} aaUm}
          {-# L #-}
-         d.Monad_aZF =
-             PrelBase.scsel_MonadZeroPrelBaseMonad{-a1dR,p-}
-                 _@_ a{-aZn-} d.MonadZero_aZJ } in
-       let {
-         >>=_a1im  :: 
-             _forall_
-             [rjI{-a10i-} rjJ{-a10h-}]
-             =>
-             a{-aZn-} rjI{-a10i-}
-             -> (rjI{-a10i-} -> a{-aZn-} rjJ{-a10h-})
-             -> a{-aZn-} rjJ{-a10h-}
+         d.Monad_aUL =
+             PrelBase.scsel_MonadZeroPrelBaseMonad{-a19C,p-}
+                 _@_ aaUm d.MonadZero_aUP;
+         >>=_a1eM  ::  _forall_
+                       [taVt taVs]
+                       =>
+                       aaUm taVt -> (taVt -> aaUm taVs) -> aaUm taVs
          {-# L #-}
-         >>=_a1im =
-             PrelBase.>>={-811,p-}
-                 _@_ a{-aZn-} d.Monad_aZF } in
-       let {
-         d.Monad_aZH  :: 
-             {PrelBase.Monad{-28,p-} a{-aZn-}}
+         >>=_a1eM =
+             PrelBase.>>={-811,p-} _@_ aaUm d.Monad_aUL;
+         d.Monad_aUN  ::  {PrelBase.Monad{-28,p-} aaUm}
          {-# L #-}
-         d.Monad_aZH =
-             d.Monad_aZF } in
-       let {
-         return_a1il  :: 
-             _forall_ [rjQ{-a10j-}] => rjQ{-a10j-} -> a{-aZn-} rjQ{-a10j-}
+         d.Monad_aUN =
+             d.Monad_aUL;
+         return_a1eN  ::  _forall_ [taVu] => taVu -> aaUm taVu
          {-# L #-}
-         return_a1il =
-             PrelBase.return{-816,p-}
-                 _@_ a{-aZn-} d.Monad_aZH } in
-       let {
-         zero_a1ik  :: 
-             _forall_ [rjD{-a10k-}] => a{-aZn-} rjD{-a10k-}
+         return_a1eN =
+             PrelBase.return{-816,p-} _@_ aaUm d.Monad_aUN;
+         zero_a1eO  ::  _forall_ [taVv] => aaUm taVv
          {-# L #-}
-         zero_a1ik =
-             PrelBase.zero{-810,p-}
-                 _@_ a{-aZn-} d.MonadZero_aZJ
-       } in 
-         \ xs_r3l  :: 
-               a{-aZn-} t{-aZp-}
-           {-# L #-}
-           xs_r3l ys_r3n  :: 
-                      a{-aZn-} t{-aZs-}
-                  {-# L #-}
-                  ys_r3n zs_r3p  :: 
-                             a{-aZn-} t{-aZv-}
-                         {-# L #-}
-                         zs_r3p ->
-             let {
-               ds_d1ja  :: 
-                   t{-aZp-} -> a{-aZn-} (t{-aZp-}, t{-aZs-}, t{-aZv-})
+         zero_a1eO =
+             PrelBase.zero{-810,p-} _@_ aaUm d.MonadZero_aUP;
+         g_aU4  ::  aaUm taUx
+                    -> aaUm taUz
+                    -> aaUm taUB
+                    -> aaUm (taUx, taUz, taUB)
+         {-# L #-}
+         g_aU4 =
+             \ xs_r3l  ::  aaUm taUx
                {-# L #-}
-               ds_d1ja =
-                   \ x_r3r  :: 
-                         t{-aZp-}
-                     {-# L #-}
-                     x_r3r ->
-                       let {
-                         ds_d1jq  :: 
-                             t{-aZs-} -> a{-aZn-} (t{-aZp-}, t{-aZs-}, t{-aZv-})
+               xs_r3l ys_r3m  ::  aaUm taUz
+                      {-# L #-}
+                      ys_r3m zs_r3n  ::  aaUm taUB
+                             {-# L #-}
+                             zs_r3n ->
+                 let {
+                   ds_d1fQ  ::  taUx -> aaUm (taUx, taUz, taUB)
+                   {-# L #-}
+                   ds_d1fQ =
+                       \ x_r3p  ::  taUx
                          {-# L #-}
-                         ds_d1jq =
-                             \ y_r3t  :: 
-                                   t{-aZs-}
-                               {-# L #-}
-                               y_r3t ->
-                                 let {
-                                   ds_d1jG  :: 
-                                       t{-aZv-} -> a{-aZn-} (t{-aZp-}, t{-aZs-}, t{-aZv-})
+                         x_r3p ->
+                           let {
+                             ds_d1g6  ::  taUz -> aaUm (taUx, taUz, taUB)
+                             {-# L #-}
+                             ds_d1g6 =
+                                 \ y_r3r  ::  taUz
                                    {-# L #-}
-                                   ds_d1jG =
-                                       \ z_r3v  :: 
-                                             t{-aZv-}
-                                         {-# L #-}
-                                         z_r3v ->
-                                           let {
-                                             ds_d1jR  :: 
-                                                 (t{-aZp-}, t{-aZs-}, t{-aZv-})
+                                   y_r3r ->
+                                     let {
+                                       ds_d1gm  ::  taUB -> aaUm (taUx, taUz, taUB)
+                                       {-# L #-}
+                                       ds_d1gm =
+                                           \ z_r3t  ::  taUB
                                              {-# L #-}
-                                             ds_d1jR =
-                                                 PrelTup.(,,){-63,p-}{i}
-                                                     {_@_ t{-aZp-}
-                                                      _@_ t{-aZs-}
-                                                      _@_ t{-aZv-}
-                                                      x_r3r
-                                                      y_r3t
-                                                      z_r3v}
-                                           } in 
-                                             return_a1il
-                                                 _@_ (t{-aZp-}, t{-aZs-}, t{-aZv-}) ds_d1jR
-                                 } in 
-                                   >>=_a1im
-                                       _@_ t{-aZv-}
-                                       _@_ (t{-aZp-}, t{-aZs-}, t{-aZv-})
-                                       zs_r3p
-                                       ds_d1jG
-                       } in 
-                         >>=_a1im
-                             _@_ t{-aZs-} _@_ (t{-aZp-}, t{-aZs-}, t{-aZv-}) ys_r3n ds_d1jq
-             } in 
-               >>=_a1im
-                   _@_ t{-aZp-} _@_ (t{-aZp-}, t{-aZs-}, t{-aZv-}) xs_r3l ds_d1ja
-f{-r3V,x-}  :: 
-    _forall_
-    [a{-aZR-} t{-aZT-}]
-    =>
-    {PrelBase.Monad{-28,p-} a{-aZR-}}
-    -> a{-aZR-} t{-aZT-}
-    -> a{-aZR-} t{-aZT-}
+                                             z_r3t ->
+                                               let {
+                                                 ds_d1gx  ::  (taUx, taUz, taUB)
+                                                 {-# L #-}
+                                                 ds_d1gx =
+                                                     PrelTup.(,,){-63,w-}{i}
+                                                         {_@_ taUx
+                                                          _@_ taUz
+                                                          _@_ taUB
+                                                          x_r3p
+                                                          y_r3r
+                                                          z_r3t}
+                                               } in  return_a1eN _@_ (taUx, taUz, taUB) ds_d1gx
+                                     } in  >>=_a1eM _@_ taUB _@_ (taUx, taUz, taUB) zs_r3n ds_d1gm
+                           } in  >>=_a1eM _@_ taUz _@_ (taUx, taUz, taUB) ys_r3m ds_d1g6
+                 } in  >>=_a1eM _@_ taUx _@_ (taUx, taUz, taUB) xs_r3l ds_d1fQ;
+       } in  g_aU4
+f{-r3S,x-}  ::  _forall_
+               [aaV0 taV2]
+               =>
+               {PrelBase.Monad{-28,p-} aaV0} -> aaV0 taV2 -> aaV0 taV2
 {-# L #-}
-f{-r3V,x-} =
-    _/\_ a{-aZR-} t{-aZT-} -> \ d.Monad_a103  :: 
-                                   {PrelBase.Monad{-28,p-} a{-aZR-}}
-                               {-# L #-}
-                               d.Monad_a103 ->
-       let {
-         >>=_a1ky  :: 
-             _forall_
-             [rjI{-a10m-} rjJ{-a10l-}]
-             =>
-             a{-aZR-} rjI{-a10m-}
-             -> (rjI{-a10m-} -> a{-aZR-} rjJ{-a10l-})
-             -> a{-aZR-} rjJ{-a10l-}
+f{-r3S,x-} =
+    _/\_ aaV0 taV2 -> \ d.Monad_aVe  ::  {PrelBase.Monad{-28,p-} aaV0}
+                       {-# L #-}
+                       d.Monad_aVe ->
+       _letrec_ {
+         >>=_a1h7  ::  _forall_
+                       [taVx taVw]
+                       =>
+                       aaV0 taVx -> (taVx -> aaV0 taVw) -> aaV0 taVw
          {-# L #-}
-         >>=_a1ky =
-             PrelBase.>>={-811,p-}
-                 _@_ a{-aZR-} d.Monad_a103 } in
-       let {
-         d.Monad_a105  :: 
-             {PrelBase.Monad{-28,p-} a{-aZR-}}
+         >>=_a1h7 =
+             PrelBase.>>={-811,p-} _@_ aaV0 d.Monad_aVe;
+         d.Monad_aVg  ::  {PrelBase.Monad{-28,p-} aaV0}
          {-# L #-}
-         d.Monad_a105 =
-             d.Monad_a103 } in
-       let {
-         return_a1kx  :: 
-             _forall_ [rjQ{-a10n-}] => rjQ{-a10n-} -> a{-aZR-} rjQ{-a10n-}
+         d.Monad_aVg =
+             d.Monad_aVe;
+         return_a1he  ::  _forall_ [taVy] => taVy -> aaV0 taVy
          {-# L #-}
-         return_a1kx =
-             PrelBase.return{-816,p-}
-                 _@_ a{-aZR-} d.Monad_a105
-       } in 
-         \ xs_r3h  :: 
-               a{-aZR-} t{-aZT-}
-           {-# L #-}
-           xs_r3h ->
-             let {
-               ds_d1l4  :: 
-                   t{-aZT-} -> a{-aZR-} t{-aZT-}
+         return_a1he =
+             PrelBase.return{-816,p-} _@_ aaV0 d.Monad_aVg;
+         f_aUS  ::  aaV0 taV2 -> aaV0 taV2
+         {-# L #-}
+         f_aUS =
+             \ xs_r3h  ::  aaV0 taV2
                {-# L #-}
-               ds_d1l4 =
-                   \ x_r3j  :: 
-                         t{-aZT-}
-                     {-# L #-}
-                     x_r3j ->
-                       return_a1kx
-                           _@_ t{-aZT-} x_r3j
-             } in 
-               >>=_a1ky
-                   _@_ t{-aZT-} _@_ t{-aZT-} xs_r3h ds_d1l4
+               xs_r3h ->
+                 let {
+                   ds_d1hQ  ::  taV2 -> aaV0 taV2
+                   {-# L #-}
+                   ds_d1hQ =
+                       \ x_r3j  ::  taV2
+                         {-# L #-}
+                         x_r3j ->
+                           return_a1he _@_ taV2 x_r3j
+                 } in  >>=_a1h7 _@_ taV2 _@_ taV2 xs_r3h ds_d1hQ;
+       } in  f_aUS
+end Rec }
index 35eedef..cf2d931 100644 (file)
 ================================================================================
 Desugared:
 Rec {
-d.Monad_aWF  :: 
-    {PrelBase.Monad{-28,p-} PrelBase.[]{-3j,p-}}
+z_aQq  ::  [(PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-})]
 {-# L #-}
-d.Monad_aWF =
-    PrelBase.$d24{-rq8,p-}
->>=_a11I  :: 
-    _forall_
-    [rjI{-aWJ-} rjJ{-aWK-}]
-    =>
-    [rjI{-aWJ-}] -> (rjI{-aWJ-} -> [rjJ{-aWK-}]) -> [rjJ{-aWK-}]
-{-# L #-}
->>=_a11I =
-    PrelBase.>>={-811,p-}
-       _@_ PrelBase.[]{-3j,p-} d.Monad_aWF
-d.Monad_aWI  :: 
-    {PrelBase.Monad{-28,p-} PrelBase.[]{-3j,p-}}
-{-# L #-}
-d.Monad_aWI =
-    d.Monad_aWF
-return_a11P  :: 
-    _forall_ [rjQ{-aWL-}] => rjQ{-aWL-} -> [rjQ{-aWL-}]
-{-# L #-}
-return_a11P =
-    PrelBase.return{-816,p-}
-       _@_ PrelBase.[]{-3j,p-} d.Monad_aWI
-z_aW0  :: 
-    [(PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-})]
-{-# L #-}
-z_aW0 =
+z_aQq =
     _letrec_ {
-      ds_d12r  :: 
-         [PrelBase.Char{-38,p-}]
-         -> [(PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-})]
+      ds_dWs  ::  [PrelBase.Char{-38,W-}]
+                 -> [(PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-})]
       {-# L #-}
-      ds_d12r =
-         \ ds_d12w  :: 
-               [PrelBase.Char{-38,p-}]
+      ds_dWs =
+         \ ds_dWx  ::  [PrelBase.Char{-38,W-}]
            {-# L #-}
-           ds_d12w ->
-             case ds_d12w of {
-               PrelBase.[]{-5i,p-}{i} ->
-                   PrelBase.[]{-5i,p-}{i}
-                       {_@_ (PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-})};
-               PrelBase.:{-55,p-}{i} ds_d12I ds_d12R ->
+           ds_dWx ->
+             case ds_dWx of {
+               PrelBase.[]{-5i,w-}{i} ->
+                   PrelBase.[]{-5i,w-}{i}
+                       {_@_ (PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-})};
+               PrelBase.:{-55,w-}{i} ds_dX5 ds_dXe ->
                    let {
-                     a_r3d  :: 
-                         PrelBase.Char{-38,p-}
+                     a_r3d  ::  PrelBase.Char{-38,W-}
                      {-# L #-}
                      a_r3d =
-                         ds_d12I } in
+                         ds_dX5 } in
                    _letrec_ {
-                     ds_d12X  :: 
-                         [PrelBase.Char{-38,p-}]
-                         -> [(PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-})]
+                     ds_dXk  ::  [PrelBase.Char{-38,W-}]
+                                 -> [(PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-})]
                      {-# L #-}
-                     ds_d12X =
-                         \ ds_d132  :: 
-                               [PrelBase.Char{-38,p-}]
+                     ds_dXk =
+                         \ ds_dXp  ::  [PrelBase.Char{-38,W-}]
                            {-# L #-}
-                           ds_d132 ->
-                             case ds_d132 of {
-                               PrelBase.[]{-5i,p-}{i} ->
-                                   ds_d12r
-                                       ds_d12R;
-                               PrelBase.:{-55,p-}{i} ds_d13h ds_d13q ->
+                           ds_dXp ->
+                             case ds_dXp of {
+                               PrelBase.[]{-5i,w-}{i} -> ds_dWs ds_dXe;
+                               PrelBase.:{-55,w-}{i} ds_dXE ds_dXN ->
                                    let {
-                                     b_r3f  :: 
-                                         PrelBase.Char{-38,p-}
+                                     b_r3f  ::  PrelBase.Char{-38,W-}
                                      {-# L #-}
                                      b_r3f =
-                                         ds_d13h } in
+                                         ds_dXE } in
                                    _letrec_ {
-                                     ds_d13w  :: 
-                                         [PrelBase.Char{-38,p-}]
-                                         -> [(PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-})]
+                                     ds_dXT  ::  [PrelBase.Char{-38,W-}]
+                                                 -> [(PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-})]
                                      {-# L #-}
-                                     ds_d13w =
-                                         \ ds_d13B  :: 
-                                               [PrelBase.Char{-38,p-}]
+                                     ds_dXT =
+                                         \ ds_dXY  ::  [PrelBase.Char{-38,W-}]
                                            {-# L #-}
-                                           ds_d13B ->
-                                             case ds_d13B of {
-                                               PrelBase.[]{-5i,p-}{i} ->
-                                                   ds_d12X
-                                                       ds_d13q;
-                                               PrelBase.:{-55,p-}{i} ds_d13Q ds_d13Z ->
+                                           ds_dXY ->
+                                             case ds_dXY of {
+                                               PrelBase.[]{-5i,w-}{i} -> ds_dXk ds_dXN;
+                                               PrelBase.:{-55,w-}{i} ds_dYd ds_dYm ->
                                                    let {
-                                                     c_r3h  :: 
-                                                         PrelBase.Char{-38,p-}
+                                                     c_r3h  ::  PrelBase.Char{-38,W-}
                                                      {-# L #-}
                                                      c_r3h =
-                                                         ds_d13Q } in
+                                                         ds_dYd } in
                                                    _letrec_ {
-                                                     ds_d145  :: 
-                                                         [PrelBase.Char{-38,p-}]
-                                                         -> [(PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-})]
+                                                     ds_dYs  ::  [PrelBase.Char{-38,W-}]
+                                                                 -> [(PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-})]
                                                      {-# L #-}
-                                                     ds_d145 =
-                                                         \ ds_d14a  :: 
-                                                               [PrelBase.Char{-38,p-}]
+                                                     ds_dYs =
+                                                         \ ds_dYx  ::  [PrelBase.Char{-38,W-}]
                                                            {-# L #-}
-                                                           ds_d14a ->
-                                                             case ds_d14a of {
-                                                               PrelBase.[]{-5i,p-}{i} ->
-                                                                   ds_d13w
-                                                                       ds_d13Z;
-                                                               PrelBase.:{-55,p-}{i} ds_d14p ds_d14y ->
+                                                           ds_dYx ->
+                                                             case ds_dYx of {
+                                                               PrelBase.[]{-5i,w-}{i} ->
+                                                                   ds_dXT ds_dYm;
+                                                               PrelBase.:{-55,w-}{i} ds_dYM ds_dYV ->
                                                                    let {
-                                                                     d_r3j  :: 
-                                                                         PrelBase.Char{-38,p-}
+                                                                     d_r3j  ::  PrelBase.Char{-38,W-}
                                                                      {-# L #-}
                                                                      d_r3j =
-                                                                         ds_d14p } in
+                                                                         ds_dYM } in
                                                                    _letrec_ {
-                                                                     ds_d14E  :: 
-                                                                         [PrelBase.Char{-38,p-}]
-                                                                         -> [(PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-})]
+                                                                     ds_dZ1  ::  [PrelBase.Char{-38,W-}]
+                                                                                 -> [(PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-})]
                                                                      {-# L #-}
-                                                                     ds_d14E =
-                                                                         \ ds_d14J  :: 
-                                                                               [PrelBase.Char{-38,p-}]
+                                                                     ds_dZ1 =
+                                                                         \ ds_dZ6  ::  [PrelBase.Char{-38,W-}]
                                                                            {-# L #-}
-                                                                           ds_d14J ->
-                                                                             case ds_d14J of {
-                                                                               PrelBase.[]{-5i,p-}{i} ->
-                                                                                   ds_d145
-                                                                                       ds_d14y;
-                                                                               PrelBase.:{-55,p-}{i} ds_d14Y ds_d157 ->
+                                                                           ds_dZ6 ->
+                                                                             case ds_dZ6 of {
+                                                                               PrelBase.[]{-5i,w-}{i} ->
+                                                                                   ds_dYs ds_dYV;
+                                                                               PrelBase.:{-55,w-}{i} ds_dZl ds_dZu ->
                                                                                    let {
-                                                                                     e_r3l  :: 
-                                                                                         PrelBase.Char{-38,p-}
+                                                                                     e_r3l  ::  PrelBase.Char{-38,W-}
                                                                                      {-# L #-}
                                                                                      e_r3l =
-                                                                                         ds_d14Y } in
+                                                                                         ds_dZl } in
                                                                                    _letrec_ {
-                                                                                     ds_d15d  :: 
-                                                                                         [PrelBase.Char{-38,p-}]
-                                                                                         -> [(PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-})]
+                                                                                     ds_dZA  ::  [PrelBase.Char{-38,W-}]
+                                                                                                 -> [(PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-})]
                                                                                      {-# L #-}
-                                                                                     ds_d15d =
-                                                                                         \ ds_d15i  :: 
-                                                                                               [PrelBase.Char{-38,p-}]
+                                                                                     ds_dZA =
+                                                                                         \ ds_dZF  ::  [PrelBase.Char{-38,W-}]
                                                                                            {-# L #-}
-                                                                                           ds_d15i ->
+                                                                                           ds_dZF ->
                                                                                              case
-                                                                                                 ds_d15i
+                                                                                                 ds_dZF
                                                                                              of {
-                                                                                               PrelBase.[]{-5i,p-}{i} ->
-                                                                                                   ds_d14E
-                                                                                                       ds_d157;
-                                                                                               PrelBase.:{-55,p-}{i} ds_d15x ds_d15G ->
+                                                                                               PrelBase.[]{-5i,w-}{i} ->
+                                                                                                   ds_dZ1
+                                                                                                       ds_dZu;
+                                                                                               PrelBase.:{-55,w-}{i} ds_dZU ds_d103 ->
                                                                                                    let {
-                                                                                                     f_r3n  :: 
-                                                                                                         PrelBase.Char{-38,p-}
+                                                                                                     f_r3n  ::  PrelBase.Char{-38,W-}
                                                                                                      {-# L #-}
                                                                                                      f_r3n =
-                                                                                                         ds_d15x } in
+                                                                                                         ds_dZU } in
                                                                                                    _letrec_ {
-                                                                                                     ds_d15M  :: 
-                                                                                                         [PrelBase.Char{-38,p-}]
-                                                                                                         -> [(PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-})]
+                                                                                                     ds_d109  ::  [PrelBase.Char{-38,W-}]
+                                                                                                                  -> [(PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-})]
                                                                                                      {-# L #-}
-                                                                                                     ds_d15M =
-                                                                                                         \ ds_d15R  :: 
-                                                                                                               [PrelBase.Char{-38,p-}]
+                                                                                                     ds_d109 =
+                                                                                                         \ ds_d10e  ::  [PrelBase.Char{-38,W-}]
                                                                                                            {-# L #-}
-                                                                                                           ds_d15R ->
+                                                                                                           ds_d10e ->
                                                                                                              case
-                                                                                                                 ds_d15R
+                                                                                                                 ds_d10e
                                                                                                              of {
-                                                                                                               PrelBase.[]{-5i,p-}{i} ->
-                                                                                                                   ds_d15d
-                                                                                                                       ds_d15G;
-                                                                                                               PrelBase.:{-55,p-}{i} ds_d166 ds_d16f ->
+                                                                                                               PrelBase.[]{-5i,w-}{i} ->
+                                                                                                                   ds_dZA
+                                                                                                                       ds_d103;
+                                                                                                               PrelBase.:{-55,w-}{i} ds_d10t ds_d10C ->
                                                                                                                    let {
-                                                                                                                     g_r3p  :: 
-                                                                                                                         PrelBase.Char{-38,p-}
+                                                                                                                     g_r3p  ::  PrelBase.Char{-38,W-}
                                                                                                                      {-# L #-}
                                                                                                                      g_r3p =
-                                                                                                                         ds_d166 } in
+                                                                                                                         ds_d10t } in
                                                                                                                    _letrec_ {
-                                                                                                                     ds_d16l  :: 
-                                                                                                                         [PrelBase.Char{-38,p-}]
-                                                                                                                         -> [(PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-})]
+                                                                                                                     ds_d10I  ::  [PrelBase.Char{-38,W-}]
+                                                                                                                                  -> [(PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-})]
                                                                                                                      {-# L #-}
-                                                                                                                     ds_d16l =
-                                                                                                                         \ ds_d16q  :: 
-                                                                                                                               [PrelBase.Char{-38,p-}]
+                                                                                                                     ds_d10I =
+                                                                                                                         \ ds_d10N  ::  [PrelBase.Char{-38,W-}]
                                                                                                                            {-# L #-}
-                                                                                                                           ds_d16q ->
+                                                                                                                           ds_d10N ->
                                                                                                                              case
-                                                                                                                                 ds_d16q
+                                                                                                                                 ds_d10N
                                                                                                                              of {
-                                                                                                                               PrelBase.[]{-5i,p-}{i} ->
-                                                                                                                                   ds_d15M
-                                                                                                                                       ds_d16f;
-                                                                                                                               PrelBase.:{-55,p-}{i} ds_d16F ds_d16O ->
+                                                                                                                               PrelBase.[]{-5i,w-}{i} ->
+                                                                                                                                   ds_d109
+                                                                                                                                       ds_d10C;
+                                                                                                                               PrelBase.:{-55,w-}{i} ds_d112 ds_d11b ->
                                                                                                                                    let {
-                                                                                                                                     h_r3r  :: 
-                                                                                                                                         PrelBase.Char{-38,p-}
+                                                                                                                                     h_r3r  ::  PrelBase.Char{-38,W-}
                                                                                                                                      {-# L #-}
                                                                                                                                      h_r3r =
-                                                                                                                                         ds_d16F } in
+                                                                                                                                         ds_d112 } in
                                                                                                                                    _letrec_ {
-                                                                                                                                     ds_d16U  :: 
-                                                                                                                                         [PrelBase.Char{-38,p-}]
-                                                                                                                                         -> [(PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-})]
+                                                                                                                                     ds_d11h  ::  [PrelBase.Char{-38,W-}]
+                                                                                                                                                  -> [(PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-})]
                                                                                                                                      {-# L #-}
-                                                                                                                                     ds_d16U =
-                                                                                                                                         \ ds_d16Z  :: 
-                                                                                                                                               [PrelBase.Char{-38,p-}]
+                                                                                                                                     ds_d11h =
+                                                                                                                                         \ ds_d11m  ::  [PrelBase.Char{-38,W-}]
                                                                                                                                            {-# L #-}
-                                                                                                                                           ds_d16Z ->
+                                                                                                                                           ds_d11m ->
                                                                                                                                              case
-                                                                                                                                                 ds_d16Z
+                                                                                                                                                 ds_d11m
                                                                                                                                              of {
-                                                                                                                                               PrelBase.[]{-5i,p-}{i} ->
-                                                                                                                                                   ds_d16l
-                                                                                                                                                       ds_d16O;
-                                                                                                                                               PrelBase.:{-55,p-}{i} ds_d17e ds_d17n ->
+                                                                                                                                               PrelBase.[]{-5i,w-}{i} ->
+                                                                                                                                                   ds_d10I
+                                                                                                                                                       ds_d11b;
+                                                                                                                                               PrelBase.:{-55,w-}{i} ds_d11B ds_d11K ->
                                                                                                                                                    let {
-                                                                                                                                                     i_r3t  :: 
-                                                                                                                                                         PrelBase.Char{-38,p-}
+                                                                                                                                                     i_r3t  ::  PrelBase.Char{-38,W-}
                                                                                                                                                      {-# L #-}
                                                                                                                                                      i_r3t =
-                                                                                                                                                         ds_d17e } in
+                                                                                                                                                         ds_d11B } in
                                                                                                                                                    _letrec_ {
-                                                                                                                                                     ds_d17t  :: 
-                                                                                                                                                         [PrelBase.Char{-38,p-}]
-                                                                                                                                                         -> [(PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-})]
+                                                                                                                                                     ds_d11Q  ::  [PrelBase.Char{-38,W-}]
+                                                                                                                                                                  -> [(PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-})]
                                                                                                                                                      {-# L #-}
-                                                                                                                                                     ds_d17t =
-                                                                                                                                                         \ ds_d17y  :: 
-                                                                                                                                                               [PrelBase.Char{-38,p-}]
+                                                                                                                                                     ds_d11Q =
+                                                                                                                                                         \ ds_d11V  ::  [PrelBase.Char{-38,W-}]
                                                                                                                                                            {-# L #-}
-                                                                                                                                                           ds_d17y ->
+                                                                                                                                                           ds_d11V ->
                                                                                                                                                              case
-                                                                                                                                                                 ds_d17y
+                                                                                                                                                                 ds_d11V
                                                                                                                                                              of {
-                                                                                                                                                               PrelBase.[]{-5i,p-}{i} ->
-                                                                                                                                                                   ds_d16U
-                                                                                                                                                                       ds_d17n;
-                                                                                                                                                               PrelBase.:{-55,p-}{i} ds_d17N ds_d186 ->
+                                                                                                                                                               PrelBase.[]{-5i,w-}{i} ->
+                                                                                                                                                                   ds_d11h
+                                                                                                                                                                       ds_d11K;
+                                                                                                                                                               PrelBase.:{-55,w-}{i} ds_d12a ds_d12t ->
                                                                                                                                                                    let {
-                                                                                                                                                                     j_r3v  :: 
-                                                                                                                                                                         PrelBase.Char{-38,p-}
+                                                                                                                                                                     j_r3v  ::  PrelBase.Char{-38,W-}
                                                                                                                                                                      {-# L #-}
                                                                                                                                                                      j_r3v =
-                                                                                                                                                                         ds_d17N } in
+                                                                                                                                                                         ds_d12a } in
                                                                                                                                                                    let {
-                                                                                                                                                                     ds_d17Z  :: 
-                                                                                                                                                                         (PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-})
+                                                                                                                                                                     ds_d12m  ::  (PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-})
                                                                                                                                                                      {-# L #-}
-                                                                                                                                                                     ds_d17Z =
-                                                                                                                                                                         PrelTup.(,,,,,,,,,){-6a,p-}{i}
-                                                                                                                                                                             {_@_ PrelBase.Char{-38,p-}
-                                                                                                                                                                              _@_ PrelBase.Char{-38,p-}
-                                                                                                                                                                              _@_ PrelBase.Char{-38,p-}
-                                                                                                                                                                              _@_ PrelBase.Char{-38,p-}
-                                                                                                                                                                              _@_ PrelBase.Char{-38,p-}
-                                                                                                                                                                              _@_ PrelBase.Char{-38,p-}
-                                                                                                                                                                              _@_ PrelBase.Char{-38,p-}
-                                                                                                                                                                              _@_ PrelBase.Char{-38,p-}
-                                                                                                                                                                              _@_ PrelBase.Char{-38,p-}
-                                                                                                                                                                              _@_ PrelBase.Char{-38,p-}
+                                                                                                                                                                     ds_d12m =
+                                                                                                                                                                         PrelTup.(,,,,,,,,,){-6a,w-}{i}
+                                                                                                                                                                             {_@_ PrelBase.Char{-38,W-}
+                                                                                                                                                                              _@_ PrelBase.Char{-38,W-}
+                                                                                                                                                                              _@_ PrelBase.Char{-38,W-}
+                                                                                                                                                                              _@_ PrelBase.Char{-38,W-}
+                                                                                                                                                                              _@_ PrelBase.Char{-38,W-}
+                                                                                                                                                                              _@_ PrelBase.Char{-38,W-}
+                                                                                                                                                                              _@_ PrelBase.Char{-38,W-}
+                                                                                                                                                                              _@_ PrelBase.Char{-38,W-}
+                                                                                                                                                                              _@_ PrelBase.Char{-38,W-}
+                                                                                                                                                                              _@_ PrelBase.Char{-38,W-}
                                                                                                                                                                               a_r3d
                                                                                                                                                                               b_r3f
                                                                                                                                                                               c_r3h
@@ -279,60 +216,67 @@ z_aW0 =
                                                                                                                                                                               i_r3t
                                                                                                                                                                               j_r3v} } in
                                                                                                                                                                    let {
-                                                                                                                                                                     ds_d183  :: 
-                                                                                                                                                                         [(PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-})]
+                                                                                                                                                                     ds_d12q  ::  [(PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-})]
                                                                                                                                                                      {-# L #-}
-                                                                                                                                                                     ds_d183 =
-                                                                                                                                                                         ds_d17t
-                                                                                                                                                                             ds_d186
+                                                                                                                                                                     ds_d12q =
+                                                                                                                                                                         ds_d11Q
+                                                                                                                                                                             ds_d12t
                                                                                                                                                                    } in 
-                                                                                                                                                                     PrelBase.:{-55,p-}{i}
-                                                                                                                                                                         {_@_ (PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-})
-                                                                                                                                                                          ds_d17Z
-                                                                                                                                                                          ds_d183};
+                                                                                                                                                                     PrelBase.:{-55,w-}{i}
+                                                                                                                                                                         {_@_ (PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-})
+                                                                                                                                                                          ds_d12m
+                                                                                                                                                                          ds_d12q};
                                                                                                                                                              };
                                                                                                                                                    } in 
-                                                                                                                                                     ds_d17t
+                                                                                                                                                     ds_d11Q
                                                                                                                                                          _string_ "12";
                                                                                                                                              };
                                                                                                                                    } in 
-                                                                                                                                     ds_d16U
+                                                                                                                                     ds_d11h
                                                                                                                                          _string_ "12";
                                                                                                                              };
                                                                                                                    } in 
-                                                                                                                     ds_d16l
+                                                                                                                     ds_d10I
                                                                                                                          _string_ "12";
                                                                                                              };
                                                                                                    } in 
-                                                                                                     ds_d15M
+                                                                                                     ds_d109
                                                                                                          _string_ "12";
                                                                                              };
                                                                                    } in 
-                                                                                     ds_d15d
+                                                                                     ds_dZA
                                                                                          _string_ "12";
                                                                              };
-                                                                   } in 
-                                                                     ds_d14E
-                                                                         _string_ "12";
+                                                                   } in  ds_dZ1 _string_ "12";
                                                              };
-                                                   } in 
-                                                     ds_d145
-                                                         _string_ "12";
+                                                   } in  ds_dYs _string_ "12";
                                              };
-                                   } in 
-                                     ds_d13w
-                                         _string_ "12";
+                                   } in  ds_dXT _string_ "12";
                              };
-                   } in 
-                     ds_d12X
-                         _string_ "12";
+                   } in  ds_dXk _string_ "12";
              };
-    } in 
-      ds_d12r
-         _string_ "12"
-z{-r3w,x-}  :: 
-    [(PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-})]
+    } in  ds_dWs _string_ "12"
+z{-r3w,x-}  ::  [(PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-})]
 {-# L #-}
 z{-r3w,x-} =
-    z_aW0
+    z_aQq
+d.Monad_aRh  ::  {PrelBase.Monad{-28,p-} PrelBase.[]{-3j,W-}}
+{-# L #-}
+d.Monad_aRh =
+    PrelBase.$d25{-rpl,p-}
+>>=_aWK  ::  _forall_
+            [taRl taRm]
+            =>
+            [taRl] -> (taRl -> [taRm]) -> [taRm]
+{-# L #-}
+>>=_aWK =
+    PrelBase.>>={-811,p-} _@_ PrelBase.[]{-3j,W-} d.Monad_aRh
+d.Monad_aRk  ::  {PrelBase.Monad{-28,p-} PrelBase.[]{-3j,W-}}
+{-# L #-}
+d.Monad_aRk =
+    d.Monad_aRh
+return_aWT  ::  _forall_ [taRn] => taRn -> [taRn]
+{-# L #-}
+return_aWT =
+    PrelBase.return{-816,p-} _@_ PrelBase.[]{-3j,W-} d.Monad_aRk
 end Rec }
index 6585333..86842d2 100644 (file)
@@ -2,69 +2,71 @@
 
 ================================================================================
 Desugared:
-i{-r4,x-}  :: 
-    _forall_ [t{-amO-}] => t{-amO-}
+Rec {
+i{-r4,x-}  ::  _forall_ [take] => take
 {-# L #-}
 i{-r4,x-} =
-    _/\_ t{-amO-} ->
-       IOBase.error{-87,p-}
-           _@_ t{-amO-} _string_ "foo"
-h{-r5,x-}  :: 
-    _forall_ [t{-amW-}] => t{-amW-}
+    _/\_ take ->
+       _letrec_ {
+         i_ak8  ::  take
+         {-# L #-}
+         i_ak8 =
+             IOBase.error{-87,w-} _@_ take _string_ "foo";
+       } in  i_ak8
+h{-r5,x-}  ::  _forall_ [takm] => takm
 {-# L #-}
 h{-r5,x-} =
-    _/\_ t{-amW-} ->
-       let { ds_dpe  :: 
-                 [PrelBase.Char{-38,p-}]
-             {-# L #-}
-             ds_dpe =
-         let {
-           ds_dpp  :: 
-               PrelBase.Char{-38,p-}
-           {-# L #-}
-           ds_dpp =
-               PrelBase.C#{-54,p-}{i}
-                   {'"'} } in
-         let {
-           ds_dpt  :: 
-               [PrelBase.Char{-38,p-}]
-           {-# L #-}
-           ds_dpt =
-               PrelBase.[]{-5i,p-}{i}
-                   {_@_ PrelBase.Char{-38,p-}}
-         } in 
-           PrelBase.:{-55,p-}{i}
-               {_@_ PrelBase.Char{-38,p-} ds_dpp ds_dpt}
-       } in
-       IOBase.error{-87,p-}
-           _@_ t{-amW-} ds_dpe
-g{-r6,x-}  :: 
-    _forall_ [t{-an4-}] => t{-an4-}
+    _/\_ takm ->
+       _letrec_ {
+         h_akg  ::  takm
+         {-# L #-}
+         h_akg =
+             let { ds_dn6  ::  [PrelBase.Char{-38,W-}]
+                   {-# L #-}
+                   ds_dn6 =
+               let {
+                 ds_dnh  ::  PrelBase.Char{-38,W-}
+                 {-# L #-}
+                 ds_dnh =
+                     PrelBase.C#{-54,w-}{i} {'"'} } in
+               let {
+                 ds_dnl  ::  [PrelBase.Char{-38,W-}]
+                 {-# L #-}
+                 ds_dnl =
+                     PrelBase.[]{-5i,w-}{i} {_@_ PrelBase.Char{-38,W-}}
+               } in 
+                 PrelBase.:{-55,w-}{i} {_@_ PrelBase.Char{-38,W-} ds_dnh ds_dnl}
+             } in
+             IOBase.error{-87,w-} _@_ takm ds_dn6;
+       } in  h_akg
+g{-r6,x-}  ::  _forall_ [taku] => taku
 {-# L #-}
 g{-r6,x-} =
-    _/\_ t{-an4-} ->
-       let {
-         ds_dpW  :: 
-             [PrelBase.Char{-38,p-}]
+    _/\_ taku ->
+       _letrec_ {
+         g_ako  ::  taku
          {-# L #-}
-         ds_dpW =
-             PrelBase.[]{-5i,p-}{i}
-                 {_@_ PrelBase.Char{-38,p-}}
-       } in 
-         IOBase.error{-87,p-}
-             _@_ t{-an4-} ds_dpW
-f{-r7,x-}  :: 
-    _forall_ [t{-and-}] => t{-and-}
+         g_ako =
+             let {
+               ds_dnO  ::  [PrelBase.Char{-38,W-}]
+               {-# L #-}
+               ds_dnO =
+                   PrelBase.[]{-5i,w-}{i} {_@_ PrelBase.Char{-38,W-}}
+             } in  IOBase.error{-87,w-} _@_ taku ds_dnO;
+       } in  g_ako
+f{-r7,x-}  ::  _forall_ [takD] => takD
 {-# L #-}
 f{-r7,x-} =
-    _/\_ t{-and-} ->
-       let {
-         ds_dqm  :: 
-             [PrelBase.Char{-38,p-}]
+    _/\_ takD ->
+       _letrec_ {
+         f_akw  ::  takD
          {-# L #-}
-         ds_dqm =
-             PrelBase.[]{-5i,p-}{i}
-                 _@_ PrelBase.Char{-38,p-}
-       } in 
-         IOBase.error{-87,p-}
-             _@_ t{-and-} ds_dqm
+         f_akw =
+             let {
+               ds_doe  ::  [PrelBase.Char{-38,W-}]
+               {-# L #-}
+               ds_doe =
+                   PrelBase.[]{-5i,w-}{i} _@_ PrelBase.Char{-38,W-}
+             } in  IOBase.error{-87,w-} _@_ takD ds_doe;
+       } in  f_akw
+end Rec }
index a562b3d..9d54b35 100644 (file)
 
 ================================================================================
 Desugared:
-h{-r3l,x-}  :: 
-    _forall_
-    [t{-aHu-} t{-aHz-}]
-    =>
-    {PrelBase.Num{-2c,p-} t{-aHu-}} -> t{-aHz-} -> t{-aHu-}
+Rec {
+h{-r3l,x-}  ::  _forall_
+               [taC6 taC1]
+               =>
+               {PrelBase.Num{-2c,p-} taC1} -> taC6 -> taC1
 {-# L #-}
 h{-r3l,x-} =
-    _/\_ t{-aHu-} t{-aHz-} -> \ d.Num_aHB  :: 
-                                   {PrelBase.Num{-2c,p-} t{-aHu-}}
-                               {-# L #-}
-                               d.Num_aHB ->
-       let {
-         +_aP0  :: 
-             t{-aHu-} -> t{-aHu-} -> t{-aHu-}
-         {-# L #-}
-         +_aP0 =
-             PrelBase.+{-r3k,p-}
-                 _@_ t{-aHu-} d.Num_aHB } in
-       let {
-         d.Num_aHE  :: 
-             {PrelBase.Num{-2c,p-} t{-aHu-}}
+    _/\_ taC6 taC1 -> \ d.Num_aC8  ::  {PrelBase.Num{-2c,p-} taC1}
+                       {-# L #-}
+                       d.Num_aC8 ->
+       _letrec_ {
+         +_aJx  ::  taC1 -> taC1 -> taC1
+         {-# L #-}
+         +_aJx =
+             PrelBase.+{-r3k,p-} _@_ taC1 d.Num_aC8;
+         d.Num_aCb  ::  {PrelBase.Num{-2c,p-} taC1}
+         {-# L #-}
+         d.Num_aCb =
+             d.Num_aC8;
+         fromInteger_aJE  ::  PrelBase.Integer{-3h,W-} -> taC1
+         {-# L #-}
+         fromInteger_aJE =
+             PrelBase.fromInteger{-8S,p-} _@_ taC1 d.Num_aCb;
+         lit_aJF  ::  taC1
+         {-# L #-}
+         lit_aJF =
+             fromInteger_aJE
+                 _integer_  111111111111111111111111111111111111111111111111111111111111;
+         fromInteger_aJG  ::  PrelBase.Integer{-3h,W-} -> taC1
+         {-# L #-}
+         fromInteger_aJG =
+             fromInteger_aJE;
+         lit_aJH  ::  taC1
+         {-# L #-}
+         lit_aJH =
+             fromInteger_aJG
+                 _integer_  222222222222222222222222222222222222222222222222222222222222;
+         h_aBS  ::  taC6 -> taC1
+         {-# L #-}
+         h_aBS =
+             \ x_r3j  ::  taC6
+               {-# L #-}
+               x_r3j ->
+                 +_aJx lit_aJF lit_aJH;
+       } in  h_aBS
+f{-r3n,x-}  ::  _forall_
+               [taCE taCz]
+               =>
+               {PrelBase.Num{-2c,p-} taCz} -> taCE -> taCz
+{-# L #-}
+f{-r3n,x-} =
+    _/\_ taCE taCz -> \ d.Num_aCG  ::  {PrelBase.Num{-2c,p-} taCz}
+                       {-# L #-}
+                       d.Num_aCG ->
+       _letrec_ {
+         +_aFs  ::  taCz -> taCz -> taCz
          {-# L #-}
-         d.Num_aHE =
-             d.Num_aHB } in
-       let {
-         fromInteger_aOZ  :: 
-             PrelBase.Integer{-3h,p-} -> t{-aHu-}
+         +_aFs =
+             PrelBase.+{-r3k,p-} _@_ taCz d.Num_aCG;
+         d.Num_aCI  ::  {PrelBase.Num{-2c,p-} taCz}
          {-# L #-}
-         fromInteger_aOZ =
-             PrelBase.fromInteger{-8S,p-}
-                 _@_ t{-aHu-} d.Num_aHE } in
-       let {
-         lit_aOY  :: 
-             t{-aHu-}
+         d.Num_aCI =
+             d.Num_aCG;
+         -_aFr  ::  taCz -> taCz -> taCz
          {-# L #-}
-         lit_aOY =
-             fromInteger_aOZ
-                 _integer_  111111111111111111111111111111111111111111111111111111111111 } in
-       let {
-         fromInteger_aOX  :: 
-             PrelBase.Integer{-3h,p-} -> t{-aHu-}
+         -_aFr =
+             PrelBase.-{-817,p-} _@_ taCz d.Num_aCI;
+         +_aFt  ::  taCz -> taCz -> taCz
          {-# L #-}
-         fromInteger_aOX =
-             fromInteger_aOZ } in
-       let {
-         lit_aOW  :: 
-             t{-aHu-}
+         +_aFt =
+             +_aFs;
+         d.Num_aCL  ::  {PrelBase.Num{-2c,p-} taCz}
          {-# L #-}
-         lit_aOW =
-             fromInteger_aOX
-                 _integer_  222222222222222222222222222222222222222222222222222222222222
-       } in 
-         \ x_r3j  :: 
-               t{-aHz-}
-           {-# L #-}
-           x_r3j ->
-             +_aP0
-                 lit_aOY lit_aOW
-f{-r3n,x-}  :: 
-    _forall_
-    [t{-aI9-} t{-aIe-}]
-    =>
-    {PrelBase.Num{-2c,p-} t{-aI9-}} -> t{-aIe-} -> t{-aI9-}
-{-# L #-}
-f{-r3n,x-} =
-    _/\_ t{-aI9-} t{-aIe-} -> \ d.Num_aIg  :: 
-                                   {PrelBase.Num{-2c,p-} t{-aI9-}}
-                               {-# L #-}
-                               d.Num_aIg ->
-       let {
-         +_aNl  :: 
-             t{-aI9-} -> t{-aI9-} -> t{-aI9-}
+         d.Num_aCL =
+             d.Num_aCG;
+         fromInt_aFu  ::  PrelBase.Int{-3g,W-} -> taCz
          {-# L #-}
-         +_aNl =
-             PrelBase.+{-r3k,p-}
-                 _@_ t{-aI9-} d.Num_aIg } in
-       let {
-         d.Num_aIi  :: 
-             {PrelBase.Num{-2c,p-} t{-aI9-}}
+         fromInt_aFu =
+             PrelBase.fromInt{-8R,p-} _@_ taCz d.Num_aCL;
+         lit_aFv  ::  taCz
          {-# L #-}
-         d.Num_aIi =
-             d.Num_aIg } in
-       let {
-         -_aNk  :: 
-             t{-aI9-} -> t{-aI9-} -> t{-aI9-}
-         {-# L #-}
-         -_aNk =
-             PrelBase.-{-817,p-}
-                 _@_ t{-aI9-} d.Num_aIi } in
-       let {
-         +_aN8  :: 
-             t{-aI9-} -> t{-aI9-} -> t{-aI9-}
+         lit_aFv =
+             let {
+               ds_dMB  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_dMB =
+                   PrelBase.I#{-5b,w-}{i} 1
+             } in  fromInt_aFu ds_dMB;
+         fromInt_aFw  ::  PrelBase.Int{-3g,W-} -> taCz
          {-# L #-}
-         +_aN8 =
-             +_aNl } in
-       let {
-         d.Num_aIl  :: 
-             {PrelBase.Num{-2c,p-} t{-aI9-}}
+         fromInt_aFw =
+             fromInt_aFu;
+         lit_aFx  ::  taCz
          {-# L #-}
-         d.Num_aIl =
-             d.Num_aIg } in
-       let {
-         fromInt_aNj  :: 
-             PrelBase.Int{-3g,p-} -> t{-aI9-}
+         lit_aFx =
+             let {
+               ds_dMQ  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_dMQ =
+                   PrelBase.I#{-5b,w-}{i} 2
+             } in  fromInt_aFw ds_dMQ;
+         fromInt_aFy  ::  PrelBase.Int{-3g,W-} -> taCz
          {-# L #-}
-         fromInt_aNj =
-             PrelBase.fromInt{-8R,p-}
-                 _@_ t{-aI9-} d.Num_aIl } in
-       let { lit_aNi  :: 
-                 t{-aI9-}
-             {-# L #-}
-             lit_aNi =
-         let {
-           ds_dQX  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_dQX =
-               PrelBase.I#{-5b,p-}{i}
-                   1
-         } in 
-           fromInt_aNj
-               ds_dQX
-       } in
-       let {
-         fromInt_aNh  :: 
-             PrelBase.Int{-3g,p-} -> t{-aI9-}
+         fromInt_aFy =
+             fromInt_aFu;
+         lit_aFz  ::  taCz
          {-# L #-}
-         fromInt_aNh =
-             fromInt_aNj } in
-       let { lit_aNg  :: 
-                 t{-aI9-}
-             {-# L #-}
-             lit_aNg =
-         let {
-           ds_dRc  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_dRc =
-               PrelBase.I#{-5b,p-}{i}
-                   2
-         } in 
-           fromInt_aNh
-               ds_dRc
-       } in
-       let {
-         fromInt_aNf  :: 
-             PrelBase.Int{-3g,p-} -> t{-aI9-}
+         lit_aFz =
+             let {
+               ds_dN5  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_dN5 =
+                   PrelBase.I#{-5b,w-}{i} 3
+             } in  fromInt_aFy ds_dN5;
+         d.Num_aCP  ::  {PrelBase.Num{-2c,p-} taCz}
          {-# L #-}
-         fromInt_aNf =
-             fromInt_aNj } in
-       let { lit_aNe  :: 
-                 t{-aI9-}
-             {-# L #-}
-             lit_aNe =
-         let {
-           ds_dRr  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_dRr =
-               PrelBase.I#{-5b,p-}{i}
-                   3
-         } in 
-           fromInt_aNf
-               ds_dRr
-       } in
-       let {
-         d.Num_aIp  :: 
-             {PrelBase.Num{-2c,p-} t{-aI9-}}
+         d.Num_aCP =
+             d.Num_aCG;
+         *_aFA  ::  taCz -> taCz -> taCz
          {-# L #-}
-         d.Num_aIp =
-             d.Num_aIg } in
-       let {
-         *_aNd  :: 
-             t{-aI9-} -> t{-aI9-} -> t{-aI9-}
+         *_aFA =
+             PrelBase.*{-rfn,p-} _@_ taCz d.Num_aCP;
+         fromInt_aFB  ::  PrelBase.Int{-3g,W-} -> taCz
          {-# L #-}
-         *_aNd =
-             PrelBase.*{-rcJ,p-}
-                 _@_ t{-aI9-} d.Num_aIp } in
-       let {
-         fromInt_aNc  :: 
-             PrelBase.Int{-3g,p-} -> t{-aI9-}
+         fromInt_aFB =
+             fromInt_aFu;
+         lit_aFC  ::  taCz
          {-# L #-}
-         fromInt_aNc =
-             fromInt_aNj } in
-       let { lit_aNb  :: 
-                 t{-aI9-}
-             {-# L #-}
-             lit_aNb =
-         let {
-           ds_dRP  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_dRP =
-               PrelBase.I#{-5b,p-}{i}
-                   4
-         } in 
-           fromInt_aNc
-               ds_dRP
-       } in
-       let {
-         fromInt_aNa  :: 
-             PrelBase.Int{-3g,p-} -> t{-aI9-}
+         lit_aFC =
+             let {
+               ds_dNt  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_dNt =
+                   PrelBase.I#{-5b,w-}{i} 4
+             } in  fromInt_aFB ds_dNt;
+         fromInt_aFD  ::  PrelBase.Int{-3g,W-} -> taCz
          {-# L #-}
-         fromInt_aNa =
-             fromInt_aNj } in
-       let { lit_aN9  :: 
-                 t{-aI9-}
-             {-# L #-}
-             lit_aN9 =
-         let {
-           ds_dS4  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_dS4 =
-               PrelBase.I#{-5b,p-}{i}
-                   5
-         } in 
-           fromInt_aNa
-               ds_dS4
-       } in
-       \ x_r3f  :: 
-             t{-aIe-}
+         fromInt_aFD =
+             fromInt_aFu;
+         lit_aFE  ::  taCz
          {-# L #-}
-         x_r3f ->
-           let { ds_dSk  :: 
-                     t{-aI9-}
-                 {-# L #-}
-                 ds_dSk =
+         lit_aFE =
              let {
-               ds_dSw  :: 
-                   t{-aI9-}
+               ds_dNI  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_dNI =
+                   PrelBase.I#{-5b,w-}{i} 5
+             } in  fromInt_aFD ds_dNI;
+         f_aCe  ::  taCE -> taCz
+         {-# L #-}
+         f_aCe =
+             \ x_r3f  ::  taCE
                {-# L #-}
-               ds_dSw =
-                   +_aN8
-                       lit_aNi lit_aNg
-             } in 
-               -_aNk
-                   ds_dSw lit_aNe
-           } in
-           let {
-             ds_dSo  :: 
-                 t{-aI9-}
-             {-# L #-}
-             ds_dSo =
-                 *_aNd
-                     lit_aNb lit_aN9
-           } in 
-             +_aNl
-                 ds_dSk ds_dSo
-g{-r3m,x-}  :: 
-    _forall_
-    [t{-aID-}]
-    =>
-    {PrelBase.Num{-2c,p-} t{-aID-}} -> t{-aID-} -> t{-aID-}
+               x_r3f ->
+                 let { ds_dNZ  ::  taCz
+                       {-# L #-}
+                       ds_dNZ =
+                   let {
+                     ds_dOb  ::  taCz
+                     {-# L #-}
+                     ds_dOb =
+                         +_aFt lit_aFv lit_aFx
+                   } in  -_aFr ds_dOb lit_aFz
+                 } in
+                 let {
+                   ds_dO3  ::  taCz
+                   {-# L #-}
+                   ds_dO3 =
+                       *_aFA lit_aFC lit_aFE
+                 } in  +_aFs ds_dNZ ds_dO3;
+       } in  f_aCe
+g{-r3m,x-}  ::  _forall_
+               [taD7]
+               =>
+               {PrelBase.Num{-2c,p-} taD7} -> taD7 -> taD7
 {-# L #-}
 g{-r3m,x-} =
-    _/\_ t{-aID-} -> \ d.Num_aIH  :: 
-                          {PrelBase.Num{-2c,p-} t{-aID-}}
-                      {-# L #-}
-                      d.Num_aIH ->
-       let {
-         +_aTf  :: 
-             t{-aID-} -> t{-aID-} -> t{-aID-}
-         {-# L #-}
-         +_aTf =
-             PrelBase.+{-r3k,p-}
-                 _@_ t{-aID-} d.Num_aIH } in
-       let {
-         d.Num_aIJ  :: 
-             {PrelBase.Num{-2c,p-} t{-aID-}}
-         {-# L #-}
-         d.Num_aIJ =
-             d.Num_aIH } in
-       let {
-         f_aTe  :: 
-             t{-aID-} -> t{-aID-}
-         {-# L #-}
-         f_aTe =
-             f{-r3n,x-}
-                 _@_ t{-aID-} _@_ t{-aID-} d.Num_aIJ
-       } in 
-         \ x_r3h  :: 
-               t{-aID-}
-           {-# L #-}
-           x_r3h ->
-             let {
-               ds_dTJ  :: 
-                   t{-aID-}
+    _/\_ taD7 -> \ d.Num_aDa  ::  {PrelBase.Num{-2c,p-} taD7}
+                  {-# L #-}
+                  d.Num_aDa ->
+       _letrec_ {
+         +_aON  ::  taD7 -> taD7 -> taD7
+         {-# L #-}
+         +_aON =
+             PrelBase.+{-r3k,p-} _@_ taD7 d.Num_aDa;
+         d.Num_aDc  ::  {PrelBase.Num{-2c,p-} taD7}
+         {-# L #-}
+         d.Num_aDc =
+             d.Num_aDa;
+         f_aOU  ::  taD7 -> taD7
+         {-# L #-}
+         f_aOU =
+             f{-r3n,x-} _@_ taD7 _@_ taD7 d.Num_aDc;
+         g_aCT  ::  taD7 -> taD7
+         {-# L #-}
+         g_aCT =
+             \ x_r3h  ::  taD7
                {-# L #-}
-               ds_dTJ =
-                   f_aTe
-                       x_r3h
-             } in 
-               +_aTf
-                   x_r3h ds_dTJ
+               x_r3h ->
+                 let {
+                   ds_dPu  ::  taD7
+                   {-# L #-}
+                   ds_dPu =
+                       f_aOU x_r3h
+                 } in  +_aON x_r3h ds_dPu;
+       } in  g_aCT
+end Rec }
index 6238e97..9240f59 100644 (file)
 ================================================================================
 Desugared:
 Rec {
-d.Num_a12Q  :: 
-    {PrelBase.Num{-2c,p-} PrelBase.Double{-3a,p-}}
-{-# L #-}
-d.Num_a12Q =
-    PrelNum.$d16{-rrq,p-}
-+_a19S  :: 
-    PrelBase.Double{-3a,p-}
-    -> PrelBase.Double{-3a,p-}
-    -> PrelBase.Double{-3a,p-}
-{-# L #-}
-+_a19S =
-    PrelBase.+{-rcF,p-}
-       _@_ PrelBase.Double{-3a,p-} d.Num_a12Q
-d.Num_a12T  :: 
-    {PrelBase.Num{-2c,p-} PrelBase.Double{-3a,p-}}
-{-# L #-}
-d.Num_a12T =
-    d.Num_a12Q
--_a19R  :: 
-    PrelBase.Double{-3a,p-}
-    -> PrelBase.Double{-3a,p-}
-    -> PrelBase.Double{-3a,p-}
-{-# L #-}
--_a19R =
-    PrelBase.-{-817,p-}
-       _@_ PrelBase.Double{-3a,p-} d.Num_a12T
-d.Fractional_a12W  :: 
-    {PrelNum.Fractional{-26,p-} PrelBase.Double{-3a,p-}}
-{-# L #-}
-d.Fractional_a12W =
-    PrelNum.$d14{-rro,p-}
-fromRational_a19Q  :: 
-    PrelNum.Rational{-3r,p-} -> PrelBase.Double{-3a,p-}
-{-# L #-}
-fromRational_a19Q =
-    PrelNum.fromRational{-8T,p-}
-       _@_ PrelBase.Double{-3a,p-} d.Fractional_a12W
-lit_a19P  :: 
-    PrelBase.Double{-3a,p-}
-{-# L #-}
-lit_a19P =
-    fromRational_a19Q
-       _rational_  3 2
-fromRational_a19O  :: 
-    PrelNum.Rational{-3r,p-} -> PrelBase.Double{-3a,p-}
-{-# L #-}
-fromRational_a19O =
-    fromRational_a19Q
-lit_a19N  :: 
-    PrelBase.Double{-3a,p-}
-{-# L #-}
-lit_a19N =
-    fromRational_a19O
-       _rational_  2 1
-fromRational_a19M  :: 
-    PrelNum.Rational{-3r,p-} -> PrelBase.Double{-3a,p-}
-{-# L #-}
-fromRational_a19M =
-    fromRational_a19Q
-lit_a19L  :: 
-    PrelBase.Double{-3a,p-}
-{-# L #-}
-lit_a19L =
-    fromRational_a19M
-       _rational_  62831853 20000000
-d.Num_a131  :: 
-    {PrelBase.Num{-2c,p-} PrelBase.Double{-3a,p-}}
-{-# L #-}
-d.Num_a131 =
-    d.Num_a12Q
-*_a19K  :: 
-    PrelBase.Double{-3a,p-}
-    -> PrelBase.Double{-3a,p-}
-    -> PrelBase.Double{-3a,p-}
-{-# L #-}
-*_a19K =
-    PrelBase.*{-rU,p-}
-       _@_ PrelBase.Double{-3a,p-} d.Num_a131
-fromRational_a19J  :: 
-    PrelNum.Rational{-3r,p-} -> PrelBase.Double{-3a,p-}
-{-# L #-}
-fromRational_a19J =
-    fromRational_a19Q
-lit_a19I  :: 
-    PrelBase.Double{-3a,p-}
-{-# L #-}
-lit_a19I =
-    fromRational_a19J
-       _rational_  21 5
-fromRational_a19H  :: 
-    PrelNum.Rational{-3r,p-} -> PrelBase.Double{-3a,p-}
-{-# L #-}
-fromRational_a19H =
-    fromRational_a19Q
-lit_a19G  :: 
-    PrelBase.Double{-3a,p-}
-{-# L #-}
-lit_a19G =
-    fromRational_a19H
-       _rational_  5111111111111111111111111111 1000000000000000000000000000
-d.Num_a135  :: 
-    {PrelBase.Num{-2c,p-} PrelBase.Float{-3c,p-}}
-{-# L #-}
-d.Num_a135 =
-    PrelNum.$d25{-rrA,p-}
-+_a19F  :: 
-    PrelBase.Float{-3c,p-}
-    -> PrelBase.Float{-3c,p-}
-    -> PrelBase.Float{-3c,p-}
-{-# L #-}
-+_a19F =
-    PrelBase.+{-rcF,p-}
-       _@_ PrelBase.Float{-3c,p-} d.Num_a135
-d.Num_a138  :: 
-    {PrelBase.Num{-2c,p-} PrelBase.Float{-3c,p-}}
-{-# L #-}
-d.Num_a138 =
-    d.Num_a135
--_a19E  :: 
-    PrelBase.Float{-3c,p-}
-    -> PrelBase.Float{-3c,p-}
-    -> PrelBase.Float{-3c,p-}
-{-# L #-}
--_a19E =
-    PrelBase.-{-817,p-}
-       _@_ PrelBase.Float{-3c,p-} d.Num_a138
-d.Fractional_a13b  :: 
-    {PrelNum.Fractional{-26,p-} PrelBase.Float{-3c,p-}}
-{-# L #-}
-d.Fractional_a13b =
-    PrelNum.$d23{-rry,p-}
-fromRational_a19D  :: 
-    PrelNum.Rational{-3r,p-} -> PrelBase.Float{-3c,p-}
-{-# L #-}
-fromRational_a19D =
-    PrelNum.fromRational{-8T,p-}
-       _@_ PrelBase.Float{-3c,p-} d.Fractional_a13b
-lit_a19C  :: 
-    PrelBase.Float{-3c,p-}
-{-# L #-}
-lit_a19C =
-    fromRational_a19D
-       _rational_  3 2
-fromRational_a19B  :: 
-    PrelNum.Rational{-3r,p-} -> PrelBase.Float{-3c,p-}
-{-# L #-}
-fromRational_a19B =
-    fromRational_a19D
-lit_a19A  :: 
-    PrelBase.Float{-3c,p-}
-{-# L #-}
-lit_a19A =
-    fromRational_a19B
-       _rational_  2 1
-fromRational_a19z  :: 
-    PrelNum.Rational{-3r,p-} -> PrelBase.Float{-3c,p-}
-{-# L #-}
-fromRational_a19z =
-    fromRational_a19D
-lit_a19y  :: 
-    PrelBase.Float{-3c,p-}
-{-# L #-}
-lit_a19y =
-    fromRational_a19z
-       _rational_  62831853 20000000
-d.Num_a13g  :: 
-    {PrelBase.Num{-2c,p-} PrelBase.Float{-3c,p-}}
-{-# L #-}
-d.Num_a13g =
-    d.Num_a135
-*_a19x  :: 
-    PrelBase.Float{-3c,p-}
-    -> PrelBase.Float{-3c,p-}
-    -> PrelBase.Float{-3c,p-}
-{-# L #-}
-*_a19x =
-    PrelBase.*{-rU,p-}
-       _@_ PrelBase.Float{-3c,p-} d.Num_a13g
-fromRational_a19w  :: 
-    PrelNum.Rational{-3r,p-} -> PrelBase.Float{-3c,p-}
-{-# L #-}
-fromRational_a19w =
-    fromRational_a19D
-lit_a19v  :: 
-    PrelBase.Float{-3c,p-}
-{-# L #-}
-lit_a19v =
-    fromRational_a19w
-       _rational_  21 5
-fromRational_a19u  :: 
-    PrelNum.Rational{-3r,p-} -> PrelBase.Float{-3c,p-}
-{-# L #-}
-fromRational_a19u =
-    fromRational_a19D
-lit_a19r  :: 
-    PrelBase.Float{-3c,p-}
-{-# L #-}
-lit_a19r =
-    fromRational_a19u
-       _rational_  5111111111111111111111111111 1000000000000000000000000000
-+_a19q  :: 
-    PrelBase.Double{-3a,p-}
-    -> PrelBase.Double{-3a,p-}
-    -> PrelBase.Double{-3a,p-}
-{-# L #-}
-+_a19q =
-    +_a19S
--_a19p  :: 
-    PrelBase.Double{-3a,p-}
-    -> PrelBase.Double{-3a,p-}
-    -> PrelBase.Double{-3a,p-}
-{-# L #-}
--_a19p =
-    -_a19R
-lit_a19o  :: 
-    PrelBase.Double{-3a,p-}
-{-# L #-}
-lit_a19o =
-    lit_a19P
-lit_a19n  :: 
-    PrelBase.Double{-3a,p-}
-{-# L #-}
-lit_a19n =
-    lit_a19N
-lit_a19m  :: 
-    PrelBase.Double{-3a,p-}
-{-# L #-}
-lit_a19m =
-    lit_a19L
-*_a19l  :: 
-    PrelBase.Double{-3a,p-}
-    -> PrelBase.Double{-3a,p-}
-    -> PrelBase.Double{-3a,p-}
-{-# L #-}
-*_a19l =
-    *_a19K
-lit_a19k  :: 
-    PrelBase.Double{-3a,p-}
-{-# L #-}
-lit_a19k =
-    lit_a19I
-lit_a19j  :: 
-    PrelBase.Double{-3a,p-}
-{-# L #-}
-lit_a19j =
-    lit_a19G
-+_a19i  :: 
-    PrelBase.Double{-3a,p-}
-    -> PrelBase.Double{-3a,p-}
-    -> PrelBase.Double{-3a,p-}
-{-# L #-}
-+_a19i =
-    +_a19q
-h_a106  :: 
-    PrelBase.Double{-3a,p-}
-{-# L #-}
-h_a106 =
-    let { ds_d1hq  :: 
-             PrelBase.Double{-3a,p-}
++_a14Y  ::  PrelBase.Double{-3a,W-}
+           -> PrelBase.Double{-3a,W-}
+           -> PrelBase.Double{-3a,W-}
+{-# L #-}
++_a14Y =
+    +_a13j
+h_aUa  ::  PrelBase.Double{-3a,W-}
+{-# L #-}
+h_aUa =
+    let { ds_d18Q  ::  PrelBase.Double{-3a,W-}
          {-# L #-}
-         ds_d1hq =
+         ds_d18Q =
       let {
-       ds_d1hC  :: 
-           PrelBase.Double{-3a,p-}
+       ds_d192  ::  PrelBase.Double{-3a,W-}
        {-# L #-}
-       ds_d1hC =
-           +_a19i
-               lit_a19o lit_a19n
-      } in 
-       -_a19p
-           ds_d1hC lit_a19m
+       ds_d192 =
+           +_a14Y lit_a13l lit_a13m
+      } in  -_a13k ds_d192 lit_a13n
     } in
     let {
-      ds_d1hu  :: 
-         PrelBase.Double{-3a,p-}
+      ds_d18U  ::  PrelBase.Double{-3a,W-}
       {-# L #-}
-      ds_d1hu =
-         *_a19l
-             lit_a19k lit_a19j
-    } in 
-      +_a19q
-         ds_d1hq ds_d1hu
-h{-r4,x-}  :: 
-    PrelBase.Double{-3a,p-}
+      ds_d18U =
+         *_a13o lit_a13p lit_a13q
+    } in  +_a13j ds_d18Q ds_d18U
+h{-r4,x-}  ::  PrelBase.Double{-3a,W-}
 {-# L #-}
 h{-r4,x-} =
-    h_a106
-+_a1aJ  :: 
-    PrelBase.Float{-3c,p-}
-    -> PrelBase.Float{-3c,p-}
-    -> PrelBase.Float{-3c,p-}
-{-# L #-}
-+_a1aJ =
-    +_a19F
-g_a10L  :: 
-    PrelBase.Float{-3c,p-}
-{-# L #-}
-g_a10L =
-    let { ds_d1ib  :: 
-             PrelBase.Float{-3c,p-}
+    h_aUa
++_a148  ::  PrelBase.Float{-3c,W-}
+           -> PrelBase.Float{-3c,W-}
+           -> PrelBase.Float{-3c,W-}
+{-# L #-}
++_a148 =
+    +_a134
+g_aUB  ::  PrelBase.Float{-3c,W-}
+{-# L #-}
+g_aUB =
+    let { ds_d19B  ::  PrelBase.Float{-3c,W-}
          {-# L #-}
-         ds_d1ib =
+         ds_d19B =
       let {
-       ds_d1in  :: 
-           PrelBase.Float{-3c,p-}
+       ds_d19N  ::  PrelBase.Float{-3c,W-}
        {-# L #-}
-       ds_d1in =
-           +_a1aJ
-               lit_a19C lit_a19A
-      } in 
-       -_a19E
-           ds_d1in lit_a19y
+       ds_d19N =
+           +_a148 lit_a137 lit_a139
+      } in  -_a135 ds_d19N lit_a13b
     } in
     let {
-      ds_d1if  :: 
-         PrelBase.Float{-3c,p-}
+      ds_d19F  ::  PrelBase.Float{-3c,W-}
       {-# L #-}
-      ds_d1if =
-         *_a19x
-             lit_a19v lit_a19r
-    } in 
-      +_a19F
-         ds_d1ib ds_d1if
-g{-r2,x-}  :: 
-    PrelBase.Float{-3c,p-}
+      ds_d19F =
+         *_a13c lit_a13f lit_a13i
+    } in  +_a134 ds_d19B ds_d19F
+g{-r2,x-}  ::  PrelBase.Float{-3c,W-}
 {-# L #-}
 g{-r2,x-} =
-    g_a10L
-+_a1bs  :: 
-    PrelBase.Double{-3a,p-}
-    -> PrelBase.Double{-3a,p-}
-    -> PrelBase.Double{-3a,p-}
-{-# L #-}
-+_a1bs =
-    +_a19S
-f_a11q  :: 
-    PrelBase.Double{-3a,p-}
-{-# L #-}
-f_a11q =
-    let { ds_d1iW  :: 
-             PrelBase.Double{-3a,p-}
+    g_aUB
++_a12R  ::  PrelBase.Double{-3a,W-}
+           -> PrelBase.Double{-3a,W-}
+           -> PrelBase.Double{-3a,W-}
+{-# L #-}
++_a12R =
+    +_a12S
+f_aV2  ::  PrelBase.Double{-3a,W-}
+{-# L #-}
+f_aV2 =
+    let { ds_d1am  ::  PrelBase.Double{-3a,W-}
          {-# L #-}
-         ds_d1iW =
+         ds_d1am =
       let {
-       ds_d1j8  :: 
-           PrelBase.Double{-3a,p-}
+       ds_d1ay  ::  PrelBase.Double{-3a,W-}
        {-# L #-}
-       ds_d1j8 =
-           +_a1bs
-               lit_a19P lit_a19N
-      } in 
-       -_a19R
-           ds_d1j8 lit_a19L
+       ds_d1ay =
+           +_a12R lit_a12U lit_a12W
+      } in  -_a12Q ds_d1ay lit_a12Y
     } in
     let {
-      ds_d1j0  :: 
-         PrelBase.Double{-3a,p-}
+      ds_d1aq  ::  PrelBase.Double{-3a,W-}
       {-# L #-}
-      ds_d1j0 =
-         *_a19K
-             lit_a19I lit_a19G
-    } in 
-      +_a19S
-         ds_d1iW ds_d1j0
-f{-r5,x-}  :: 
-    PrelBase.Double{-3a,p-}
+      ds_d1aq =
+         *_a12Z lit_a131 lit_a133
+    } in  +_a12S ds_d1am ds_d1aq
+f{-r5,x-}  ::  PrelBase.Double{-3a,W-}
 {-# L #-}
 f{-r5,x-} =
-    f_a11q
+    f_aV2
+d.Num_aWi  ::  {PrelBase.Num{-2c,p-} PrelBase.Double{-3a,W-}}
+{-# L #-}
+d.Num_aWi =
+    PrelNum.$d16{-rnW,p-}
++_a12S  ::  PrelBase.Double{-3a,W-}
+           -> PrelBase.Double{-3a,W-}
+           -> PrelBase.Double{-3a,W-}
+{-# L #-}
++_a12S =
+    PrelBase.+{-rfj,p-} _@_ PrelBase.Double{-3a,W-} d.Num_aWi
+d.Num_aWl  ::  {PrelBase.Num{-2c,p-} PrelBase.Double{-3a,W-}}
+{-# L #-}
+d.Num_aWl =
+    d.Num_aWi
+-_a12Q  ::  PrelBase.Double{-3a,W-}
+           -> PrelBase.Double{-3a,W-}
+           -> PrelBase.Double{-3a,W-}
+{-# L #-}
+-_a12Q =
+    PrelBase.-{-817,p-} _@_ PrelBase.Double{-3a,W-} d.Num_aWl
+d.Fractional_aWo  ::  {PrelNum.Fractional{-26,p-} PrelBase.Double{-3a,W-}}
+{-# L #-}
+d.Fractional_aWo =
+    PrelNum.$d14{-rnU,p-}
+fromRational_a12T  ::  PrelNum.Rational{-3r,p-}
+                      -> PrelBase.Double{-3a,W-}
+{-# L #-}
+fromRational_a12T =
+    PrelNum.fromRational{-8T,p-}
+       _@_ PrelBase.Double{-3a,W-} d.Fractional_aWo
+lit_a12U  ::  PrelBase.Double{-3a,W-}
+{-# L #-}
+lit_a12U =
+    fromRational_a12T _rational_  3 2
+fromRational_a12V  ::  PrelNum.Rational{-3r,p-}
+                      -> PrelBase.Double{-3a,W-}
+{-# L #-}
+fromRational_a12V =
+    fromRational_a12T
+lit_a12W  ::  PrelBase.Double{-3a,W-}
+{-# L #-}
+lit_a12W =
+    fromRational_a12V _rational_  2 1
+fromRational_a12X  ::  PrelNum.Rational{-3r,p-}
+                      -> PrelBase.Double{-3a,W-}
+{-# L #-}
+fromRational_a12X =
+    fromRational_a12T
+lit_a12Y  ::  PrelBase.Double{-3a,W-}
+{-# L #-}
+lit_a12Y =
+    fromRational_a12X _rational_  62831853 20000000
+d.Num_aWt  ::  {PrelBase.Num{-2c,p-} PrelBase.Double{-3a,W-}}
+{-# L #-}
+d.Num_aWt =
+    d.Num_aWi
+*_a12Z  ::  PrelBase.Double{-3a,W-}
+           -> PrelBase.Double{-3a,W-}
+           -> PrelBase.Double{-3a,W-}
+{-# L #-}
+*_a12Z =
+    PrelBase.*{-rX,p-} _@_ PrelBase.Double{-3a,W-} d.Num_aWt
+fromRational_a130  ::  PrelNum.Rational{-3r,p-}
+                      -> PrelBase.Double{-3a,W-}
+{-# L #-}
+fromRational_a130 =
+    fromRational_a12T
+lit_a131  ::  PrelBase.Double{-3a,W-}
+{-# L #-}
+lit_a131 =
+    fromRational_a130 _rational_  21 5
+fromRational_a132  ::  PrelNum.Rational{-3r,p-}
+                      -> PrelBase.Double{-3a,W-}
+{-# L #-}
+fromRational_a132 =
+    fromRational_a12T
+lit_a133  ::  PrelBase.Double{-3a,W-}
+{-# L #-}
+lit_a133 =
+    fromRational_a132
+       _rational_  5111111111111111111111111111 1000000000000000000000000000
+d.Num_aWx  ::  {PrelBase.Num{-2c,p-} PrelBase.Float{-3c,W-}}
+{-# L #-}
+d.Num_aWx =
+    PrelNum.$d25{-ro6,p-}
++_a134  ::  PrelBase.Float{-3c,W-}
+           -> PrelBase.Float{-3c,W-}
+           -> PrelBase.Float{-3c,W-}
+{-# L #-}
++_a134 =
+    PrelBase.+{-rfj,p-} _@_ PrelBase.Float{-3c,W-} d.Num_aWx
+d.Num_aWA  ::  {PrelBase.Num{-2c,p-} PrelBase.Float{-3c,W-}}
+{-# L #-}
+d.Num_aWA =
+    d.Num_aWx
+-_a135  ::  PrelBase.Float{-3c,W-}
+           -> PrelBase.Float{-3c,W-}
+           -> PrelBase.Float{-3c,W-}
+{-# L #-}
+-_a135 =
+    PrelBase.-{-817,p-} _@_ PrelBase.Float{-3c,W-} d.Num_aWA
+d.Fractional_aWD  ::  {PrelNum.Fractional{-26,p-} PrelBase.Float{-3c,W-}}
+{-# L #-}
+d.Fractional_aWD =
+    PrelNum.$d23{-ro4,p-}
+fromRational_a136  ::  PrelNum.Rational{-3r,p-}
+                      -> PrelBase.Float{-3c,W-}
+{-# L #-}
+fromRational_a136 =
+    PrelNum.fromRational{-8T,p-}
+       _@_ PrelBase.Float{-3c,W-} d.Fractional_aWD
+lit_a137  ::  PrelBase.Float{-3c,W-}
+{-# L #-}
+lit_a137 =
+    fromRational_a136 _rational_  3 2
+fromRational_a138  ::  PrelNum.Rational{-3r,p-}
+                      -> PrelBase.Float{-3c,W-}
+{-# L #-}
+fromRational_a138 =
+    fromRational_a136
+lit_a139  ::  PrelBase.Float{-3c,W-}
+{-# L #-}
+lit_a139 =
+    fromRational_a138 _rational_  2 1
+fromRational_a13a  ::  PrelNum.Rational{-3r,p-}
+                      -> PrelBase.Float{-3c,W-}
+{-# L #-}
+fromRational_a13a =
+    fromRational_a136
+lit_a13b  ::  PrelBase.Float{-3c,W-}
+{-# L #-}
+lit_a13b =
+    fromRational_a13a _rational_  62831853 20000000
+d.Num_aWI  ::  {PrelBase.Num{-2c,p-} PrelBase.Float{-3c,W-}}
+{-# L #-}
+d.Num_aWI =
+    d.Num_aWx
+*_a13c  ::  PrelBase.Float{-3c,W-}
+           -> PrelBase.Float{-3c,W-}
+           -> PrelBase.Float{-3c,W-}
+{-# L #-}
+*_a13c =
+    PrelBase.*{-rX,p-} _@_ PrelBase.Float{-3c,W-} d.Num_aWI
+fromRational_a13e  ::  PrelNum.Rational{-3r,p-}
+                      -> PrelBase.Float{-3c,W-}
+{-# L #-}
+fromRational_a13e =
+    fromRational_a136
+lit_a13f  ::  PrelBase.Float{-3c,W-}
+{-# L #-}
+lit_a13f =
+    fromRational_a13e _rational_  21 5
+fromRational_a13h  ::  PrelNum.Rational{-3r,p-}
+                      -> PrelBase.Float{-3c,W-}
+{-# L #-}
+fromRational_a13h =
+    fromRational_a136
+lit_a13i  ::  PrelBase.Float{-3c,W-}
+{-# L #-}
+lit_a13i =
+    fromRational_a13h
+       _rational_  5111111111111111111111111111 1000000000000000000000000000
++_a13j  ::  PrelBase.Double{-3a,W-}
+           -> PrelBase.Double{-3a,W-}
+           -> PrelBase.Double{-3a,W-}
+{-# L #-}
++_a13j =
+    +_a12S
+-_a13k  ::  PrelBase.Double{-3a,W-}
+           -> PrelBase.Double{-3a,W-}
+           -> PrelBase.Double{-3a,W-}
+{-# L #-}
+-_a13k =
+    -_a12Q
+lit_a13l  ::  PrelBase.Double{-3a,W-}
+{-# L #-}
+lit_a13l =
+    lit_a12U
+lit_a13m  ::  PrelBase.Double{-3a,W-}
+{-# L #-}
+lit_a13m =
+    lit_a12W
+lit_a13n  ::  PrelBase.Double{-3a,W-}
+{-# L #-}
+lit_a13n =
+    lit_a12Y
+*_a13o  ::  PrelBase.Double{-3a,W-}
+           -> PrelBase.Double{-3a,W-}
+           -> PrelBase.Double{-3a,W-}
+{-# L #-}
+*_a13o =
+    *_a12Z
+lit_a13p  ::  PrelBase.Double{-3a,W-}
+{-# L #-}
+lit_a13p =
+    lit_a131
+lit_a13q  ::  PrelBase.Double{-3a,W-}
+{-# L #-}
+lit_a13q =
+    lit_a133
 end Rec }
index 724fd2c..bd86684 100644 (file)
Binary files a/ghc/tests/deSugar/should_compile/ds014.stderr and b/ghc/tests/deSugar/should_compile/ds014.stderr differ
index c389126..f173af1 100644 (file)
@@ -1,87 +1,88 @@
 ds015.hs:9: 
     Warning: Possibly incomplete patterns
-       in a lambda abstraction:
-           `(x PrelBase.: xs) -> ...'
+       in a lambda abstraction: `(x PrelBase.: xs) -> ...'
 
 
 ================================================================================
 Desugared:
-h{-r3z,x-}  :: 
-    _forall_ [t{-an8-} t{-anf-}] => [t{-an8-}] -> t{-anf-} -> t{-an8-}
+Rec {
+h{-r3w,x-}  ::  _forall_ [takN takG] => [takG] -> takN -> takG
 {-# L #-}
-h{-r3z,x-} =
-    _/\_ t{-an8-} t{-anf-} -> \ x_r3t  :: 
-                                   [t{-an8-}]
-                               {-# L #-}
-                               x_r3t y_r3v  :: 
-                                         t{-anf-}
-                                     {-# L #-}
-                                     y_r3v ->
-       (\ ds_drl  :: 
-              [t{-an8-}]
-          {-# L #-}
-          ds_drl ->
-            let {
-              fail_drm  :: 
-                  t{-an8-}
-              {-# L #-}
-              fail_drm =
-                  GHCerr.patError{-8r,p-}
-                      _@_ t{-an8-} _string_ "ds015.hs:9|lambda"
-            } in 
-              case ds_drl of {
-                PrelBase.[]{-5i,p-}{i} ->
-                    fail_drm;
-                PrelBase.:{-55,p-}{i} x_r3x xs_r3y ->
-                    x_r3x;
-              })
-           x_r3t
-g{-r3A,x-}  :: 
-    _forall_
-    [t{-any-} t{-anA-} t{-anC-}]
-    =>
-    ((t{-any-} -> t{-any-}) -> t{-anA-}) -> t{-anC-} -> t{-anA-}
+h{-r3w,x-} =
+    _/\_ takN takG ->
+       _letrec_ {
+         h_ako  ::  [takG] -> takN -> takG
+         {-# L #-}
+         h_ako =
+             \ x_r3r  ::  [takG]
+               {-# L #-}
+               x_r3r y_r3s  ::  takN
+                     {-# L #-}
+                     y_r3s ->
+                 (\ ds_dpA  ::  [takG]
+                    {-# L #-}
+                    ds_dpA ->
+                      let {
+                        fail_dpJ  ::  takG
+                        {-# L #-}
+                        fail_dpJ =
+                            GHCerr.patError{-8r,w-} _@_ takG _string_ "ds015.hs:9|lambda"
+                      } in 
+                        case ds_dpA of {
+                          PrelBase.[]{-5i,w-}{i} -> fail_dpJ;
+                          PrelBase.:{-55,w-}{i} x_r3u xs_r3v -> x_r3u;
+                        })
+                     x_r3r;
+       } in  h_ako
+g{-r3x,x-}  ::  _forall_
+               [talp talr talt]
+               =>
+               ((talt -> talt) -> talr) -> talp -> talr
 {-# L #-}
-g{-r3A,x-} =
-    _/\_ t{-any-} t{-anA-} t{-anC-} -> \ x_r3j  :: 
-                                            (t{-any-} -> t{-any-}) -> t{-anA-}
-                                        {-# L #-}
-                                        x_r3j y_r3l  :: 
-                                                  t{-anC-}
-                                              {-# L #-}
-                                              y_r3l ->
-       let {
-         ds_drT  :: 
-             t{-any-} -> t{-any-}
+g{-r3x,x-} =
+    _/\_ talp talr talt ->
+       _letrec_ {
+         g_akP  ::  ((talt -> talt) -> talr) -> talp -> talr
          {-# L #-}
-         ds_drT =
-             \ x_r3r  :: 
-                   t{-any-}
+         g_akP =
+             \ x_r3j  ::  (talt -> talt) -> talr
                {-# L #-}
-               x_r3r ->
-                 x_r3r
-       } in 
-         (\ x_r3n  :: 
-                t{-any-} -> t{-any-}
-            {-# L #-}
-            x_r3n y_r3p  :: 
-                      (t{-any-} -> t{-any-}) -> t{-anA-}
-                  {-# L #-}
-                  y_r3p ->
-              y_r3p
-                  x_r3n)
-             ds_drT x_r3j
-f{-r3B,x-}  :: 
-    _forall_ [t{-anM-}] => t{-anM-} -> t{-anM-}
+               x_r3j y_r3k  ::  talp
+                     {-# L #-}
+                     y_r3k ->
+                 (let {
+                    ds_dql  ::  talt -> talt
+                    {-# L #-}
+                    ds_dql =
+                        \ x_r3p  ::  talt
+                          {-# L #-}
+                          x_r3p ->
+                            x_r3p
+                  } in 
+                    (\ x_r3m  ::  talt -> talt
+                       {-# L #-}
+                       x_r3m y_r3n  ::  (talt -> talt) -> talr
+                             {-# L #-}
+                             y_r3n ->
+                         y_r3n x_r3m)
+                        ds_dql)
+                     x_r3j;
+       } in  g_akP
+f{-r3y,x-}  ::  _forall_ [talL] => talL -> talL
 {-# L #-}
-f{-r3B,x-} =
-    _/\_ t{-anM-} -> \ x_r3f  :: 
-                          t{-anM-}
-                      {-# L #-}
-                      x_r3f ->
-       (\ x_r3h  :: 
-              t{-anM-}
-          {-# L #-}
-          x_r3h ->
-            x_r3h)
-           x_r3f
+f{-r3y,x-} =
+    _/\_ talL ->
+       _letrec_ {
+         f_alv  ::  talL -> talL
+         {-# L #-}
+         f_alv =
+             \ x_r3f  ::  talL
+               {-# L #-}
+               x_r3f ->
+                 (\ x_r3h  ::  talL
+                    {-# L #-}
+                    x_r3h ->
+                      x_r3h)
+                     x_r3f;
+       } in  f_alv
+end Rec }
index 7cddfe4..114d751 100644 (file)
 ================================================================================
 Desugared:
 Rec {
-d.MonadPlus_aXs  :: 
-    {PrelBase.MonadPlus{-2a,p-} PrelBase.[]{-3j,p-}}
+f{-r3r,x-}  ::  _forall_
+               [taRl taRH taRP]
+               =>
+               [taRP] -> taRH -> [taRl] -> [taRl]
 {-# L #-}
-d.MonadPlus_aXs =
-    PrelBase.$d22{-rp7,p-}
-++_aYK  :: 
-    _forall_
-    [rjy{-aWo-}]
-    =>
-    [rjy{-aWo-}] -> [rjy{-aWo-}] -> [rjy{-aWo-}]
-{-# L #-}
-++_aYK =
-    PrelBase.++{-roG,p-}
-       _@_ PrelBase.[]{-3j,p-} d.MonadPlus_aXs
-f{-r3t,x-}  :: 
-    _forall_
-    [rjy{-aWN-} t{-aWT-} t{-aXo-}]
-    =>
-    [rjy{-aWN-}] -> t{-aXo-} -> [t{-aWT-}] -> [t{-aWT-}]
-{-# L #-}
-f{-r3t,x-} =
-    _/\_ rjy{-aWN-} t{-aWT-} t{-aXo-} ->
-       let {
-         ++_aYM  :: 
-             _forall_
-             [rjy{-aWw-}]
-             =>
-             [rjy{-aWw-}] -> [rjy{-aWw-}] -> [rjy{-aWw-}]
+f{-r3r,x-} =
+    _/\_ taRl taRH taRP ->
+       _letrec_ {
+         ++_aTa  ::  _forall_ [taQZ] => [taQZ] -> [taQZ] -> [taQZ]
          {-# L #-}
-         ++_aYM =
-             ++_aYK } in
-       let {
-         ++_aYL  :: 
-             _forall_
-             [rjy{-aWD-}]
-             =>
-             [rjy{-aWD-}] -> [rjy{-aWD-}] -> [rjy{-aWD-}]
+         ++_aTa =
+             ++_aTb;
+         ++_aT9  ::  _forall_ [taR6] => [taR6] -> [taR6] -> [taR6]
          {-# L #-}
-         ++_aYL =
-             ++_aYK } in
-       let {
-         ++_aYJ  :: 
-             _forall_
-             [rjy{-aWK-}]
-             =>
-             [rjy{-aWK-}] -> [rjy{-aWK-}] -> [rjy{-aWK-}]
+         ++_aT9 =
+             ++_aTb;
+         ++_aTc  ::  _forall_ [taRd] => [taRd] -> [taRd] -> [taRd]
          {-# L #-}
-         ++_aYJ =
-             ++_aYK
-       } in 
-         \ x_r3d  :: 
-               [rjy{-aWN-}]
-           {-# L #-}
-           x_r3d y_r3f  :: 
-                     t{-aXo-}
-                 {-# L #-}
-                 y_r3f z_r3h  :: 
-                           [t{-aWT-}]
-                       {-# L #-}
-                       z_r3h ->
-             let { ds_d13I  :: 
-                       [rjy{-aWN-}]
-                   {-# L #-}
-                   ds_d13I =
-               let { ds_d131  :: 
-                         [rjy{-aWN-}]
+         ++_aTc =
+             ++_aTb;
+         f_aQw  ::  [taRP] -> taRH -> [taRl] -> [taRl]
+         {-# L #-}
+         f_aQw =
+             \ x_r3d  ::  [taRP]
+               {-# L #-}
+               x_r3d y_r3e  ::  taRH
                      {-# L #-}
-                     ds_d131 =
-                 let { ds_d13e  :: 
-                           [rjy{-aWN-}]
+                     y_r3e z_r3f  ::  [taRl]
+                           {-# L #-}
+                           z_r3f ->
+                 let { ds_dYt  ::  [taRP]
                        {-# L #-}
-                       ds_d13e =
-                   let {
-                     ds_d13r  :: 
-                         [rjy{-aWN-}]
-                     {-# L #-}
-                     ds_d13r =
-                         ++_aYJ
-                             _@_ rjy{-aWN-} x_r3d x_r3d
-                   } in 
-                     ++_aYL
-                         _@_ rjy{-aWN-} x_r3d ds_d13r
-                 } in
-                 ++_aYM
-                     _@_ rjy{-aWN-} x_r3d ds_d13e
-               } in
-               ++_aYK
-                   _@_ rjy{-aWN-} x_r3d ds_d131
-             } in
-             case ds_d13I of {
-               PrelBase.[]{-5i,p-}{i} ->
-                   PrelBase.[]{-5i,p-}{i}
-                       _@_ t{-aWT-};
-               PrelBase.:{-55,p-}{i} a_r3k ds_d140 ->
-                   let { fail_d14E  :: 
-                             [t{-aWT-}]
+                       ds_dYt =
+                   let { ds_dXM  ::  [taRP]
                          {-# L #-}
-                         fail_d14E =
-                     let {
-                       bs_r3s  :: 
-                           [rjy{-aWN-}]
-                       {-# L #-}
-                       bs_r3s =
-                           ds_d140 } in
-                     let {
-                       a_r3r  :: 
-                           rjy{-aWN-}
-                       {-# L #-}
-                       a_r3r =
-                           a_r3k } in
-                     let { ds_d14d  :: 
-                               [PrelBase.Char{-38,p-}]
+                         ds_dXM =
+                     let { ds_dXZ  ::  [taRP]
                            {-# L #-}
-                           ds_d14d =
+                           ds_dXZ =
                        let {
-                         ds_d14q  :: 
-                             PrelBase.Char{-38,p-}
+                         ds_dYc  ::  [taRP]
                          {-# L #-}
-                         ds_d14q =
-                             PrelBase.C#{-54,p-}{i}
-                                 {'4'} } in
-                       let {
-                         ds_d14u  :: 
-                             [PrelBase.Char{-38,p-}]
-                         {-# L #-}
-                         ds_d14u =
-                             PrelBase.[]{-5i,p-}{i}
-                                 {_@_ PrelBase.Char{-38,p-}}
-                       } in 
-                         PrelBase.:{-55,p-}{i}
-                             {_@_ PrelBase.Char{-38,p-} ds_d14q ds_d14u}
+                         ds_dYc =
+                             ++_aTc _@_ taRP x_r3d x_r3d
+                       } in  ++_aT9 _@_ taRP x_r3d ds_dYc
                      } in
-                     IOBase.error{-87,p-}
-                         _@_ [t{-aWT-}] ds_d14d
+                     ++_aTa _@_ taRP x_r3d ds_dXZ
                    } in
-                   case ds_d140 of {
-                     PrelBase.[]{-5i,p-}{i} ->
-                         let { ds_d14S  :: 
-                                   [PrelBase.Char{-38,p-}]
+                   ++_aTb _@_ taRP x_r3d ds_dXM
+                 } in
+                 case ds_dYt of {
+                   PrelBase.[]{-5i,w-}{i} -> PrelBase.[]{-5i,w-}{i} _@_ taRl;
+                   PrelBase.:{-55,w-}{i} a_r3i ds_dYL ->
+                       let { fail_dZp  ::  [taRl]
+                             {-# L #-}
+                             fail_dZp =
+                         let {
+                           bs_r3q  ::  [taRP]
+                           {-# L #-}
+                           bs_r3q =
+                               ds_dYL } in
+                         let {
+                           a_r3p  ::  taRP
+                           {-# L #-}
+                           a_r3p =
+                               a_r3i } in
+                         let { ds_dYY  ::  [PrelBase.Char{-38,W-}]
                                {-# L #-}
-                               ds_d14S =
+                               ds_dYY =
                            let {
-                             ds_d153  :: 
-                                 PrelBase.Char{-38,p-}
+                             ds_dZb  ::  PrelBase.Char{-38,W-}
                              {-# L #-}
-                             ds_d153 =
-                                 PrelBase.C#{-54,p-}{i}
-                                     {'2'} } in
+                             ds_dZb =
+                                 PrelBase.C#{-54,w-}{i} {'4'} } in
                            let {
-                             ds_d157  :: 
-                                 [PrelBase.Char{-38,p-}]
+                             ds_dZf  ::  [PrelBase.Char{-38,W-}]
                              {-# L #-}
-                             ds_d157 =
-                                 PrelBase.[]{-5i,p-}{i}
-                                     {_@_ PrelBase.Char{-38,p-}}
+                             ds_dZf =
+                                 PrelBase.[]{-5i,w-}{i} {_@_ PrelBase.Char{-38,W-}}
                            } in 
-                             PrelBase.:{-55,p-}{i}
-                                 {_@_ PrelBase.Char{-38,p-} ds_d153 ds_d157}
+                             PrelBase.:{-55,w-}{i} {_@_ PrelBase.Char{-38,W-} ds_dZb ds_dZf}
                          } in
-                         IOBase.error{-87,p-}
-                             _@_ [t{-aWT-}] ds_d14S;
-                     PrelBase.:{-55,p-}{i} b_r3n ds_d15m ->
-                         case ds_d15m of {
-                           PrelBase.[]{-5i,p-}{i} ->
-                               fail_d14E;
-                           PrelBase.:{-55,p-}{i} c_r3o ds_d15z ->
-                               case ds_d15z of {
-                                 PrelBase.:{-55,p-}{i} ds_d15H ds_d15G ->
-                                     fail_d14E;
-                                 PrelBase.[]{-5i,p-}{i} ->
-                                     let {
-                                       a_r3m  :: 
-                                           rjy{-aWN-}
-                                       {-# L #-}
-                                       a_r3m =
-                                           a_r3k } in
-                                     let {
-                                       ds_d15Q  :: 
-                                           (t{-aXo-}, [t{-aWT-}], t{-aXo-}, [t{-aWT-}])
-                                       {-# L #-}
-                                       ds_d15Q =
-                                           PrelTup.(,,,){-64,p-}{i}
-                                               {_@_ t{-aXo-}
-                                                _@_ [t{-aWT-}]
-                                                _@_ t{-aXo-}
-                                                _@_ [t{-aWT-}]
-                                                y_r3f
-                                                z_r3h
-                                                y_r3f
-                                                z_r3h}
-                                     } in 
-                                       z_r3h;
-                               };
-                         };
-                   };
-             }
+                         IOBase.error{-87,w-} _@_ [taRl] ds_dYY
+                       } in
+                       case ds_dYL of {
+                         PrelBase.[]{-5i,w-}{i} ->
+                             let { ds_dZD  ::  [PrelBase.Char{-38,W-}]
+                                   {-# L #-}
+                                   ds_dZD =
+                               let {
+                                 ds_dZO  ::  PrelBase.Char{-38,W-}
+                                 {-# L #-}
+                                 ds_dZO =
+                                     PrelBase.C#{-54,w-}{i} {'2'} } in
+                               let {
+                                 ds_dZS  ::  [PrelBase.Char{-38,W-}]
+                                 {-# L #-}
+                                 ds_dZS =
+                                     PrelBase.[]{-5i,w-}{i} {_@_ PrelBase.Char{-38,W-}}
+                               } in 
+                                 PrelBase.:{-55,w-}{i} {_@_ PrelBase.Char{-38,W-} ds_dZO ds_dZS}
+                             } in
+                             IOBase.error{-87,w-} _@_ [taRl] ds_dZD;
+                         PrelBase.:{-55,w-}{i} b_r3l ds_d107 ->
+                             case ds_d107 of {
+                               PrelBase.[]{-5i,w-}{i} -> fail_dZp;
+                               PrelBase.:{-55,w-}{i} c_r3m ds_d10k ->
+                                   case ds_d10k of {
+                                     PrelBase.:{-55,w-}{i} ds_d10r ds_d10s -> fail_dZp;
+                                     PrelBase.[]{-5i,w-}{i} ->
+                                         let {
+                                           a_r3k  ::  taRP
+                                           {-# L #-}
+                                           a_r3k =
+                                               a_r3i } in
+                                         let {
+                                           ds_d10B  ::  (taRH, [taRl], taRH, [taRl])
+                                           {-# L #-}
+                                           ds_d10B =
+                                               PrelTup.(,,,){-64,w-}{i}
+                                                   {_@_ taRH
+                                                    _@_ [taRl]
+                                                    _@_ taRH
+                                                    _@_ [taRl]
+                                                    y_r3e
+                                                    z_r3f
+                                                    y_r3e
+                                                    z_r3f}
+                                         } in  z_r3f;
+                                   };
+                             };
+                       };
+                 };
+       } in  f_aQw
+d.MonadPlus_aRX  ::  {PrelBase.MonadPlus{-2a,p-} PrelBase.[]{-3j,W-}}
+{-# L #-}
+d.MonadPlus_aRX =
+    PrelBase.$d23{-roi,p-}
+++_aTb  ::  _forall_ [taQR] => [taQR] -> [taQR] -> [taQR]
+{-# L #-}
+++_aTb =
+    PrelBase.++{-rnQ,p-} _@_ PrelBase.[]{-3j,W-} d.MonadPlus_aRX
 end Rec }
index bbeb820..e4096df 100644 (file)
@@ -2,81 +2,65 @@
 
 ================================================================================
 Desugared:
-f{-r3p,x-}  :: 
-    _forall_
-    [t{-aBq-} t{-aBs-} t{-aBd-}]
-    =>
-    t{-aBd-}
-    -> ((t{-aBq-}, t{-aBq-}) -> t{-aBs-})
-    -> t{-aBq-}
-    -> (t{-aBs-}, [t{-aBd-}])
+Rec {
+f{-r3n,x-}  ::  _forall_
+               [tayF tayW taz2]
+               =>
+               tayW -> ((tayF, tayF) -> taz2) -> tayF -> (taz2, [tayW])
 {-# L #-}
-f{-r3p,x-} =
-    _/\_ t{-aBq-} t{-aBs-} t{-aBd-} -> \ x_r3d  :: 
-                                            t{-aBd-}
-                                        {-# L #-}
-                                        x_r3d y_r3f  :: 
-                                                  (t{-aBq-}, t{-aBq-}) -> t{-aBs-}
-                                              {-# L #-}
-                                              y_r3f z_r3h  :: 
-                                                        t{-aBq-}
-                                                    {-# L #-}
-                                                    z_r3h ->
-       let { c_aAS  :: 
-                 t{-aBs-}
-             {-# L #-}
-             c_aAS =
-         let {
-           ds_dEz  :: 
-               (t{-aBq-}, t{-aBq-})
-           {-# L #-}
-           ds_dEz =
-               PrelTup.(,){-62,p-}{i}
-                   {_@_ t{-aBq-} _@_ t{-aBq-} z_r3h z_r3h}
-         } in 
-           y_r3f
-               ds_dEz
-       } in
-       let {
-         c_r3l  :: 
-             t{-aBs-}
+f{-r3n,x-} =
+    _/\_ tayF tayW taz2 ->
+       _letrec_ {
+         f_aya  ::  tayW -> ((tayF, tayF) -> taz2) -> tayF -> (taz2, [tayW])
          {-# L #-}
-         c_r3l =
-             c_aAS } in
-       let { a_aB8  :: 
-                 [t{-aBd-}]
-             {-# L #-}
-             a_aB8 =
-         let {
-           ds_dF5  :: 
-               [t{-aBd-}]
-           {-# L #-}
-           ds_dF5 =
-               PrelBase.[]{-5i,p-}{i}
-                   _@_ t{-aBd-}
-         } in 
-           PrelBase.:{-55,p-}{i}
-               _@_ t{-aBd-} x_r3d ds_dF5
-       } in
-       let {
-         a_r3j  :: 
-             [t{-aBd-}]
-         {-# L #-}
-         a_r3j =
-             a_aB8 } in
-       let {
-         b_aBg  :: 
-             [t{-aBd-}]
-         {-# L #-}
-         b_aBg =
-             PrelBase.:{-55,p-}{i}
-                 _@_ t{-aBd-} x_r3d a_r3j } in
-       let {
-         b_r3k  :: 
-             [t{-aBd-}]
-         {-# L #-}
-         b_r3k =
-             b_aBg
-       } in 
-         PrelTup.(,){-62,p-}{i}
-             {_@_ t{-aBs-} _@_ [t{-aBd-}] c_r3l b_r3k}
+         f_aya =
+             \ x_r3d  ::  tayW
+               {-# L #-}
+               x_r3d y_r3e  ::  (tayF, tayF) -> taz2
+                     {-# L #-}
+                     y_r3e z_r3f  ::  tayF
+                           {-# L #-}
+                           z_r3f ->
+                 let { c_ays  ::  taz2
+                       {-# L #-}
+                       c_ays =
+                   let {
+                     ds_dCV  ::  (tayF, tayF)
+                     {-# L #-}
+                     ds_dCV =
+                         PrelTup.(,){-62,w-}{i} {_@_ tayF _@_ tayF z_r3f z_r3f}
+                   } in  y_r3e ds_dCV
+                 } in
+                 let {
+                   c_r3j  ::  taz2
+                   {-# L #-}
+                   c_r3j =
+                       c_ays } in
+                 let { a_ayK  ::  [tayW]
+                       {-# L #-}
+                       a_ayK =
+                   let {
+                     ds_dDr  ::  [tayW]
+                     {-# L #-}
+                     ds_dDr =
+                         PrelBase.[]{-5i,w-}{i} _@_ tayW
+                   } in  PrelBase.:{-55,w-}{i} _@_ tayW x_r3d ds_dDr
+                 } in
+                 let {
+                   a_r3h  ::  [tayW]
+                   {-# L #-}
+                   a_r3h =
+                       a_ayK } in
+                 let {
+                   b_ayS  ::  [tayW]
+                   {-# L #-}
+                   b_ayS =
+                       PrelBase.:{-55,w-}{i} _@_ tayW x_r3d a_r3h } in
+                 let {
+                   b_r3i  ::  [tayW]
+                   {-# L #-}
+                   b_r3i =
+                       b_ayS
+                 } in  PrelTup.(,){-62,w-}{i} {_@_ taz2 _@_ [tayW] c_r3j b_r3i};
+       } in  f_aya
+end Rec }
index c74c3bd..2f21228 100644 (file)
-ds018.hs:41: 
-    Warning: Possibly incomplete patterns
-       in the definition of function `fb'
 ds018.hs:39: 
     Warning: Possibly incomplete patterns
        in the definition of function `fa'
+ds018.hs:41: 
+    Warning: Possibly incomplete patterns
+       in the definition of function `fb'
 
 
 ================================================================================
 Desugared:
-gb2_aCw  :: 
-    PrelBase.(){-40,p-} -> PrelBase.(){-40,p-}
+Rec {
+gb2_azP  ::  PrelBase.(){-40,W-} -> PrelBase.(){-40,W-}
 {-# L #-}
-gb2_aCw =
-    \ ds_d18I  :: 
-         PrelBase.(){-40,p-}
+gb2_azP =
+    \ ds_d1bE  ::  PrelBase.(){-40,W-}
       {-# L #-}
-      ds_d18I ->
-       case ds_d18I of { PrelBase.(){-60,p-}{i}  ->
-       PrelBase.(){-60,p-}{i};}
-gb2{-r50,x-}  :: 
-    PrelBase.(){-40,p-} -> PrelBase.(){-40,p-}
+      ds_d1bE ->
+       case ds_d1bE of { PrelBase.(){-60,w-}{i}  ->
+       PrelBase.(){-60,w-}{i};}
+gb2{-r4T,x-}  ::  PrelBase.(){-40,W-} -> PrelBase.(){-40,W-}
 {-# L #-}
-gb2{-r50,x-} =
-    gb2_aCw
-gb{-r51,x-}  :: 
-    _forall_ [t{-aCG-}] => PrelBase.(){-40,p-} -> t{-aCG-} -> t{-aCG-}
+gb2{-r4T,x-} =
+    gb2_azP
+gb{-r4U,x-}  ::  _forall_
+                [taA5]
+                =>
+                PrelBase.(){-40,W-} -> taA5 -> taA5
 {-# L #-}
-gb{-r51,x-} =
-    _/\_ t{-aCG-} -> \ ds_d19f  :: 
-                          PrelBase.(){-40,p-}
-                      {-# L #-}
-                      ds_d19f x_r4Z  :: 
-                                  t{-aCG-}
-                              {-# L #-}
-                              x_r4Z ->
-       case ds_d19f of { PrelBase.(){-60,p-}{i}  -> x_r4Z;}
-ga{-r52,x-}  :: 
-    _forall_
-    [t{-aDB-} t{-aDE-} t{-aDH-} t{-aDK-} t{-aDN-} t{-aDQ-} t{-aDT-} t{-aDW-} t{-aDZ-} t{-aE2-} t{-aE5-} t{-aE8-} t{-aEb-} t{-aEe-} t{-aEh-} t{-aEk-} t{-aEn-} t{-aEq-} t{-aEt-} t{-aEw-} t{-aEz-} t{-aEC-} t{-aEF-} t{-aEI-} t{-aEL-} t{-aEO-} t{-aER-} t{-aEU-} t{-aEX-} t{-aF0-} t{-aF3-} t{-aF6-} t{-aF9-} t{-aFc-} t{-aFf-} t{-aFi-} t{-aFl-} t{-aFo-} t{-aFr-} t{-aFu-} t{-aFx-} t{-aFA-} t{-aFD-} t{-aFG-} t{-aFJ-} t{-aFM-} t{-aFP-} t{-aFS-} t{-aFV-} t{-aFY-} t{-aG1-} t{-aG4-}]
-    =>
-    (t{-aDB-}, t{-aDE-}, t{-aDH-}, t{-aDK-}, t{-aDN-}, t{-aDQ-}, t{-aDT-}, t{-aDW-}, t{-aDZ-}, t{-aE2-}, t{-aE5-}, t{-aE8-}, t{-aEb-}, t{-aEe-}, t{-aEh-}, t{-aEk-}, t{-aEn-}, t{-aEq-}, t{-aEt-}, t{-aEw-}, t{-aEz-}, t{-aEC-}, t{-aEF-}, t{-aEI-}, t{-aEL-}, t{-aEO-}, t{-aER-}, t{-aEU-}, t{-aEX-}, t{-aF0-}, t{-aF3-}, t{-aF6-}, t{-aF9-}, t{-aFc-}, t{-aFf-}, t{-aFi-}, t{-aFl-}, t{-aFo-}, t{-aFr-}, t{-aFu-}, t{-aFx-}, t{-aFA-}, t{-aFD-}, t{-aFG-}, t{-aFJ-}, t{-aFM-}, t{-aFP-}, t{-aFS-}, t{-aFV-}, t{-aFY-}, t{-aG1-}, t{-aG4-})
-    -> t{-aEI-}
+gb{-r4U,x-} =
+    _/\_ taA5 ->
+       _letrec_ {
+         gb_azU  ::  PrelBase.(){-40,W-} -> taA5 -> taA5
+         {-# L #-}
+         gb_azU =
+             \ ds_d1cC  ::  PrelBase.(){-40,W-}
+               {-# L #-}
+               ds_d1cC x_r4S  ::  taA5
+                       {-# L #-}
+                       x_r4S ->
+                 case ds_d1cC of { PrelBase.(){-60,w-}{i}  -> x_r4S;};
+       } in  gb_azU
+ga{-r4V,x-}  ::  _forall_
+                [taB2 taB5 taB8 taBb taBe taBh taBk taBn taBq taBt taBw taBz taBC taBF taBI taBL taBO taBR taBU taBX taC0 taC3 taC6 taC9 taCc taCf taCi taCl taCo taCr taCu taCx taCA taCD taCG taCJ taCM taCP taCS taCV taCY taD1 taD4 taD7 taDa taDd taDg taDj taDm taDp taDs taDv]
+                =>
+                (taB2, taB5, taB8, taBb, taBe, taBh, taBk, taBn, taBq, taBt, taBw, taBz, taBC, taBF, taBI, taBL, taBO, taBR, taBU, taBX, taC0, taC3, taC6, taC9, taCc, taCf, taCi, taCl, taCo, taCr, taCu, taCx, taCA, taCD, taCG, taCJ, taCM, taCP, taCS, taCV, taCY, taD1, taD4, taD7, taDa, taDd, taDg, taDj, taDm, taDp, taDs, taDv)
+                -> taC9
 {-# L #-}
-ga{-r52,x-} =
-    _/\_ t{-aDB-} t{-aDE-} t{-aDH-} t{-aDK-} t{-aDN-} t{-aDQ-} t{-aDT-} t{-aDW-} t{-aDZ-} t{-aE2-} t{-aE5-} t{-aE8-} t{-aEb-} t{-aEe-} t{-aEh-} t{-aEk-} t{-aEn-} t{-aEq-} t{-aEt-} t{-aEw-} t{-aEz-} t{-aEC-} t{-aEF-} t{-aEI-} t{-aEL-} t{-aEO-} t{-aER-} t{-aEU-} t{-aEX-} t{-aF0-} t{-aF3-} t{-aF6-} t{-aF9-} t{-aFc-} t{-aFf-} t{-aFi-} t{-aFl-} t{-aFo-} t{-aFr-} t{-aFu-} t{-aFx-} t{-aFA-} t{-aFD-} t{-aFG-} t{-aFJ-} t{-aFM-} t{-aFP-} t{-aFS-} t{-aFV-} t{-aFY-} t{-aG1-} t{-aG4-} -> \ ds_d1ar  :: 
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     (t{-aDB-}, t{-aDE-}, t{-aDH-}, t{-aDK-}, t{-aDN-}, t{-aDQ-}, t{-aDT-}, t{-aDW-}, t{-aDZ-}, t{-aE2-}, t{-aE5-}, t{-aE8-}, t{-aEb-}, t{-aEe-}, t{-aEh-}, t{-aEk-}, t{-aEn-}, t{-aEq-}, t{-aEt-}, t{-aEw-}, t{-aEz-}, t{-aEC-}, t{-aEF-}, t{-aEI-}, t{-aEL-}, t{-aEO-}, t{-aER-}, t{-aEU-}, t{-aEX-}, t{-aF0-}, t{-aF3-}, t{-aF6-}, t{-aF9-}, t{-aFc-}, t{-aFf-}, t{-aFi-}, t{-aFl-}, t{-aFo-}, t{-aFr-}, t{-aFu-}, t{-aFx-}, t{-aFA-}, t{-aFD-}, t{-aFG-}, t{-aFJ-}, t{-aFM-}, t{-aFP-}, t{-aFS-}, t{-aFV-}, t{-aFY-}, t{-aG1-}, t{-aG4-})
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 {-# L #-}
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ds_d1ar ->
-       case
-           ds_d1ar
-       of {
-       PrelTup.(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,){-6Q,p-}{i} a_r47 b_r48 c_r49 d_r4a e_r4b f_r4c g_r4d h_r4e i_r4f j_r4g k_r4h l_r4i m_r4j n_r4k o_r4l p_r4m q_r4n r_r4o s_r4p t_r4q u_r4r v_r4s w_r4t x_r4u y_r4v z_r4w aa_r4x ab_r4y ac_r4z ad_r4A ae_r4B af_r4C ag_r4D ah_r4E ai_r4F aj_r4G ak_r4H al_r4I am_r4J an_r4K ao_r4L ap_r4M aq_r4N ar_r4O as_r4P at_r4Q au_r4R av_r4S aw_r4T ax_r4U ay_r4V az_r4W  ->
-       x_r4u;}
-fb{-r53,x-}  :: 
-    _forall_ [t{-aGc-} t{-aGe-}] => [t{-aGc-}] -> [t{-aGe-}]
+ga{-r4V,x-} =
+    _/\_ taB2 taB5 taB8 taBb taBe taBh taBk taBn taBq taBt taBw taBz taBC taBF taBI taBL taBO taBR taBU taBX taC0 taC3 taC6 taC9 taCc taCf taCi taCl taCo taCr taCu taCx taCA taCD taCG taCJ taCM taCP taCS taCV taCY taD1 taD4 taD7 taDa taDd taDg taDj taDm taDp taDs taDv ->
+       _letrec_ {
+         ga_aA7  ::  (taB2, taB5, taB8, taBb, taBe, taBh, taBk, taBn, taBq, taBt, taBw, taBz, taBC, taBF, taBI, taBL, taBO, taBR, taBU, taBX, taC0, taC3, taC6, taC9, taCc, taCf, taCi, taCl, taCo, taCr, taCu, taCx, taCA, taCD, taCG, taCJ, taCM, taCP, taCS, taCV, taCY, taD1, taD4, taD7, taDa, taDd, taDg, taDj, taDm, taDp, taDs, taDv)
+                     -> taC9
+         {-# L #-}
+         ga_aA7 =
+             \ ds_d1dO  ::  (taB2, taB5, taB8, taBb, taBe, taBh, taBk, taBn, taBq, taBt, taBw, taBz, taBC, taBF, taBI, taBL, taBO, taBR, taBU, taBX, taC0, taC3, taC6, taC9, taCc, taCf, taCi, taCl, taCo, taCr, taCu, taCx, taCA, taCD, taCG, taCJ, taCM, taCP, taCS, taCV, taCY, taD1, taD4, taD7, taDa, taDd, taDg, taDj, taDm, taDp, taDs, taDv)
+               {-# L #-}
+               ds_d1dO ->
+                 case
+                     ds_d1dO
+                 of {
+                 PrelTup.(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,){-6Q,w-}{i} a_r41 b_r42 c_r43 d_r44 e_r45 f_r46 g_r47 h_r48 i_r49 j_r4a k_r4b l_r4c m_r4d n_r4e o_r4f p_r4g q_r4h r_r4i s_r4j t_r4k u_r4l v_r4m w_r4n x_r4o y_r4p z_r4q aa_r4r ab_r4s ac_r4t ad_r4u ae_r4v af_r4w ag_r4x ah_r4y ai_r4z aj_r4A ak_r4B al_r4C am_r4D an_r4E ao_r4F ap_r4G aq_r4H ar_r4I as_r4J at_r4K au_r4L av_r4M aw_r4N ax_r4O ay_r4P az_r4Q  ->
+                 x_r4o;};
+       } in  ga_aA7
+fb{-r4W,x-}  ::  _forall_ [taDG taDJ] => [taDG] -> [taDJ]
 {-# L #-}
-fb{-r53,x-} =
-    _/\_ t{-aGc-} t{-aGe-} -> \ ds_d1aY  :: 
-                                   [t{-aGc-}]
-                               {-# L #-}
-                               ds_d1aY ->
-       let {
-         fail_d1aZ  :: 
-             [t{-aGe-}]
+fb{-r4W,x-} =
+    _/\_ taDG taDJ ->
+       _letrec_ {
+         fb_aDA  ::  [taDG] -> [taDJ]
          {-# L #-}
-         fail_d1aZ =
-             GHCerr.patError{-8r,p-}
-                 _@_ [t{-aGe-}] _string_ "ds018.hs:41|function `fb'"
-       } in 
-         case ds_d1aY of {
-           PrelBase.:{-55,p-}{i} ds_d1b7 ds_d1b6 ->
-               fail_d1aZ;
-           PrelBase.[]{-5i,p-}{i} ->
-               PrelBase.[]{-5i,p-}{i}
-                   _@_ t{-aGe-};
-         }
-fa{-r54,x-}  :: 
-    _forall_ [t{-aGJ-}] => [t{-aGJ-}] -> t{-aGJ-}
+         fb_aDA =
+             \ ds_d1el  ::  [taDG]
+               {-# L #-}
+               ds_d1el ->
+                 let {
+                   fail_d1em  ::  [taDJ]
+                   {-# L #-}
+                   fail_d1em =
+                       GHCerr.patError{-8r,w-}
+                           _@_ [taDJ] _string_ "ds018.hs:41|function `fb'"
+                 } in 
+                   case ds_d1el of {
+                     PrelBase.:{-55,w-}{i} ds_d1et ds_d1eu -> fail_d1em;
+                     PrelBase.[]{-5i,w-}{i} -> PrelBase.[]{-5i,w-}{i} _@_ taDJ;
+                   };
+       } in  fb_aDA
+fa{-r4X,x-}  ::  _forall_ [taEg] => [taEg] -> taEg
 {-# L #-}
-fa{-r54,x-} =
-    _/\_ t{-aGJ-} -> \ ds_d1bF  :: 
-                          [t{-aGJ-}]
-                      {-# L #-}
-                      ds_d1bF ->
-       let {
-         fail_d1bG  :: 
-             t{-aGJ-}
+fa{-r4X,x-} =
+    _/\_ taEg ->
+       _letrec_ {
+         fa_aDL  ::  [taEg] -> taEg
          {-# L #-}
-         fail_d1bG =
-             GHCerr.patError{-8r,p-}
-                 _@_ t{-aGJ-} _string_ "ds018.hs:39|function `fa'"
-       } in 
-         case ds_d1bF of {
-           PrelBase.[]{-5i,p-}{i} ->
-               fail_d1bG;
-           PrelBase.:{-55,p-}{i} a_r3F ds_d1bT ->
-               case ds_d1bT of {
-                 PrelBase.[]{-5i,p-}{i} ->
-                     fail_d1bG;
-                 PrelBase.:{-55,p-}{i} b_r3G ds_d1c6 ->
-                     case ds_d1c6 of {
-                       PrelBase.[]{-5i,p-}{i} ->
-                           fail_d1bG;
-                       PrelBase.:{-55,p-}{i} c_r3H ds_d1cj ->
-                           case ds_d1cj of {
-                             PrelBase.[]{-5i,p-}{i} ->
-                                 fail_d1bG;
-                             PrelBase.:{-55,p-}{i} d_r3I ds_d1cw ->
-                                 case ds_d1cw of {
-                                   PrelBase.[]{-5i,p-}{i} ->
-                                       fail_d1bG;
-                                   PrelBase.:{-55,p-}{i} e_r3J ds_d1cJ ->
-                                       case ds_d1cJ of {
-                                         PrelBase.[]{-5i,p-}{i} ->
-                                             fail_d1bG;
-                                         PrelBase.:{-55,p-}{i} f_r3K ds_d1cW ->
-                                             case ds_d1cW of {
-                                               PrelBase.[]{-5i,p-}{i} ->
-                                                   fail_d1bG;
-                                               PrelBase.:{-55,p-}{i} g_r3L ds_d1d9 ->
-                                                   case ds_d1d9 of {
-                                                     PrelBase.[]{-5i,p-}{i} ->
-                                                         fail_d1bG;
-                                                     PrelBase.:{-55,p-}{i} h_r3M ds_d1dm ->
-                                                         case ds_d1dm of {
-                                                           PrelBase.[]{-5i,p-}{i} ->
-                                                               fail_d1bG;
-                                                           PrelBase.:{-55,p-}{i} i_r3N ds_d1dz ->
-                                                               case ds_d1dz of {
-                                                                 PrelBase.[]{-5i,p-}{i} ->
-                                                                     fail_d1bG;
-                                                                 PrelBase.:{-55,p-}{i} j_r3O ds_d1dM ->
-                                                                     case ds_d1dM of {
-                                                                       PrelBase.[]{-5i,p-}{i} ->
-                                                                           fail_d1bG;
-                                                                       PrelBase.:{-55,p-}{i} k_r3P ds_d1dZ ->
-                                                                           case ds_d1dZ of {
-                                                                             PrelBase.[]{-5i,p-}{i} ->
-                                                                                 fail_d1bG;
-                                                                             PrelBase.:{-55,p-}{i} l_r3Q ds_d1ec ->
-                                                                                 case ds_d1ec of {
-                                                                                   PrelBase.[]{-5i,p-}{i} ->
-                                                                                       fail_d1bG;
-                                                                                   PrelBase.:{-55,p-}{i} m_r3R ds_d1ep ->
-                                                                                       case
-                                                                                           ds_d1ep
-                                                                                       of {
-                                                                                         PrelBase.[]{-5i,p-}{i} ->
-                                                                                             fail_d1bG;
-                                                                                         PrelBase.:{-55,p-}{i} n_r3S ds_d1eC ->
-                                                                                             case
-                                                                                                 ds_d1eC
-                                                                                             of {
-                                                                                               PrelBase.[]{-5i,p-}{i} ->
-                                                                                                   fail_d1bG;
-                                                                                               PrelBase.:{-55,p-}{i} o_r3T ds_d1eP ->
-                                                                                                   case
-                                                                                                       ds_d1eP
-                                                                                                   of {
-                                                                                                     PrelBase.[]{-5i,p-}{i} ->
-                                                                                                         fail_d1bG;
-                                                                                                     PrelBase.:{-55,p-}{i} p_r3U ds_d1f2 ->
-                                                                                                         case
-                                                                                                             ds_d1f2
-                                                                                                         of {
-                                                                                                           PrelBase.[]{-5i,p-}{i} ->
-                                                                                                               fail_d1bG;
-                                                                                                           PrelBase.:{-55,p-}{i} q_r3V ds_d1ff ->
-                                                                                                               case
-                                                                                                                   ds_d1ff
-                                                                                                               of {
-                                                                                                                 PrelBase.[]{-5i,p-}{i} ->
-                                                                                                                     fail_d1bG;
-                                                                                                                 PrelBase.:{-55,p-}{i} r_r3W ds_d1fs ->
-                                                                                                                     case
-                                                                                                                         ds_d1fs
-                                                                                                                     of {
-                                                                                                                       PrelBase.[]{-5i,p-}{i} ->
-                                                                                                                           fail_d1bG;
-                                                                                                                       PrelBase.:{-55,p-}{i} s_r3X ds_d1fF ->
-                                                                                                                           case
-                                                                                                                               ds_d1fF
-                                                                                                                           of {
-                                                                                                                             PrelBase.[]{-5i,p-}{i} ->
-                                                                                                                                 fail_d1bG;
-                                                                                                                             PrelBase.:{-55,p-}{i} t_r3Y ds_d1fS ->
-                                                                                                                                 case
-                                                                                                                                     ds_d1fS
-                                                                                                                                 of {
-                                                                                                                                   PrelBase.[]{-5i,p-}{i} ->
-                                                                                                                                       fail_d1bG;
-                                                                                                                                   PrelBase.:{-55,p-}{i} u_r3Z ds_d1g5 ->
-                                                                                                                                       case
-                                                                                                                                           ds_d1g5
-                                                                                                                                       of {
-                                                                                                                                         PrelBase.[]{-5i,p-}{i} ->
-                                                                                                                                             fail_d1bG;
-                                                                                                                                         PrelBase.:{-55,p-}{i} v_r40 ds_d1gi ->
-                                                                                                                                             case
-                                                                                                                                                 ds_d1gi
-                                                                                                                                             of {
-                                                                                                                                               PrelBase.[]{-5i,p-}{i} ->
-                                                                                                                                                   fail_d1bG;
-                                                                                                                                               PrelBase.:{-55,p-}{i} w_r41 ds_d1gv ->
-                                                                                                                                                   case
-                                                                                                                                                       ds_d1gv
-                                                                                                                                                   of {
-                                                                                                                                                     PrelBase.[]{-5i,p-}{i} ->
-                                                                                                                                                         fail_d1bG;
-                                                                                                                                                     PrelBase.:{-55,p-}{i} x_r42 ds_d1gI ->
-                                                                                                                                                         case
-                                                                                                                                                             ds_d1gI
-                                                                                                                                                         of {
-                                                                                                                                                           PrelBase.[]{-5i,p-}{i} ->
-                                                                                                                                                               fail_d1bG;
-                                                                                                                                                           PrelBase.:{-55,p-}{i} y_r43 ds_d1gV ->
-                                                                                                                                                               case
-                                                                                                                                                                   ds_d1gV
-                                                                                                                                                               of {
-                                                                                                                                                                 PrelBase.[]{-5i,p-}{i} ->
-                                                                                                                                                                     fail_d1bG;
-                                                                                                                                                                 PrelBase.:{-55,p-}{i} z_r44 ds_d1h8 ->
-                                                                                                                                                                     case
-                                                                                                                                                                         ds_d1h8
-                                                                                                                                                                     of {
-                                                                                                                                                                       PrelBase.:{-55,p-}{i} ds_d1hg ds_d1hf ->
-                                                                                                                                                                           fail_d1bG;
-                                                                                                                                                                       PrelBase.[]{-5i,p-}{i} ->
-                                                                                                                                                                           x_r42;
-                                                                                                                                                                     };
-                                                                                                                                                               };
-                                                                                                                                                         };
-                                                                                                                                                   };
-                                                                                                                                             };
-                                                                                                                                       };
-                                                                                                                                 };
-                                                                                                                           };
-                                                                                                                     };
-                                                                                                               };
-                                                                                                         };
-                                                                                                   };
-                                                                                             };
-                                                                                       };
-                                                                                 };
-                                                                           };
-                                                                     };
-                                                               };
-                                                         };
-                                                   };
-                                             };
-                                       };
-                                 };
-                           };
-                     };
-               };
-         }
-g{-r55,x-}  :: 
-    _forall_
-    [t{-aHm-} t{-aHo-} t{-aHq-}]
-    =>
-    t{-aHm-}
-    -> t{-aHo-}
-    -> t{-aHq-}
-    -> (t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-}, t{-aHm-}, t{-aHo-}, t{-aHq-})
+         fa_aDL =
+             \ ds_d1f2  ::  [taEg]
+               {-# L #-}
+               ds_d1f2 ->
+                 let {
+                   fail_d1f3  ::  taEg
+                   {-# L #-}
+                   fail_d1f3 =
+                       GHCerr.patError{-8r,w-}
+                           _@_ taEg _string_ "ds018.hs:39|function `fa'"
+                 } in 
+                   case ds_d1f2 of {
+                     PrelBase.[]{-5i,w-}{i} -> fail_d1f3;
+                     PrelBase.:{-55,w-}{i} a_r3z ds_d1fg ->
+                         case ds_d1fg of {
+                           PrelBase.[]{-5i,w-}{i} -> fail_d1f3;
+                           PrelBase.:{-55,w-}{i} b_r3A ds_d1ft ->
+                               case ds_d1ft of {
+                                 PrelBase.[]{-5i,w-}{i} -> fail_d1f3;
+                                 PrelBase.:{-55,w-}{i} c_r3B ds_d1fG ->
+                                     case ds_d1fG of {
+                                       PrelBase.[]{-5i,w-}{i} -> fail_d1f3;
+                                       PrelBase.:{-55,w-}{i} d_r3C ds_d1fT ->
+                                           case ds_d1fT of {
+                                             PrelBase.[]{-5i,w-}{i} -> fail_d1f3;
+                                             PrelBase.:{-55,w-}{i} e_r3D ds_d1g6 ->
+                                                 case ds_d1g6 of {
+                                                   PrelBase.[]{-5i,w-}{i} -> fail_d1f3;
+                                                   PrelBase.:{-55,w-}{i} f_r3E ds_d1gj ->
+                                                       case ds_d1gj of {
+                                                         PrelBase.[]{-5i,w-}{i} -> fail_d1f3;
+                                                         PrelBase.:{-55,w-}{i} g_r3F ds_d1gw ->
+                                                             case ds_d1gw of {
+                                                               PrelBase.[]{-5i,w-}{i} -> fail_d1f3;
+                                                               PrelBase.:{-55,w-}{i} h_r3G ds_d1gJ ->
+                                                                   case ds_d1gJ of {
+                                                                     PrelBase.[]{-5i,w-}{i} ->
+                                                                         fail_d1f3;
+                                                                     PrelBase.:{-55,w-}{i} i_r3H ds_d1gW ->
+                                                                         case ds_d1gW of {
+                                                                           PrelBase.[]{-5i,w-}{i} ->
+                                                                               fail_d1f3;
+                                                                           PrelBase.:{-55,w-}{i} j_r3I ds_d1h9 ->
+                                                                               case ds_d1h9 of {
+                                                                                 PrelBase.[]{-5i,w-}{i} ->
+                                                                                     fail_d1f3;
+                                                                                 PrelBase.:{-55,w-}{i} k_r3J ds_d1hm ->
+                                                                                     case
+                                                                                         ds_d1hm
+                                                                                     of {
+                                                                                       PrelBase.[]{-5i,w-}{i} ->
+                                                                                           fail_d1f3;
+                                                                                       PrelBase.:{-55,w-}{i} l_r3K ds_d1hz ->
+                                                                                           case
+                                                                                               ds_d1hz
+                                                                                           of {
+                                                                                             PrelBase.[]{-5i,w-}{i} ->
+                                                                                                 fail_d1f3;
+                                                                                             PrelBase.:{-55,w-}{i} m_r3L ds_d1hM ->
+                                                                                                 case
+                                                                                                     ds_d1hM
+                                                                                                 of {
+                                                                                                   PrelBase.[]{-5i,w-}{i} ->
+                                                                                                       fail_d1f3;
+                                                                                                   PrelBase.:{-55,w-}{i} n_r3M ds_d1hZ ->
+                                                                                                       case
+                                                                                                           ds_d1hZ
+                                                                                                       of {
+                                                                                                         PrelBase.[]{-5i,w-}{i} ->
+                                                                                                             fail_d1f3;
+                                                                                                         PrelBase.:{-55,w-}{i} o_r3N ds_d1ic ->
+                                                                                                             case
+                                                                                                                 ds_d1ic
+                                                                                                             of {
+                                                                                                               PrelBase.[]{-5i,w-}{i} ->
+                                                                                                                   fail_d1f3;
+                                                                                                               PrelBase.:{-55,w-}{i} p_r3O ds_d1ip ->
+                                                                                                                   case
+                                                                                                                       ds_d1ip
+                                                                                                                   of {
+                                                                                                                     PrelBase.[]{-5i,w-}{i} ->
+                                                                                                                         fail_d1f3;
+                                                                                                                     PrelBase.:{-55,w-}{i} q_r3P ds_d1iC ->
+                                                                                                                         case
+                                                                                                                             ds_d1iC
+                                                                                                                         of {
+                                                                                                                           PrelBase.[]{-5i,w-}{i} ->
+                                                                                                                               fail_d1f3;
+                                                                                                                           PrelBase.:{-55,w-}{i} r_r3Q ds_d1iP ->
+                                                                                                                               case
+                                                                                                                                   ds_d1iP
+                                                                                                                               of {
+                                                                                                                                 PrelBase.[]{-5i,w-}{i} ->
+                                                                                                                                     fail_d1f3;
+                                                                                                                                 PrelBase.:{-55,w-}{i} s_r3R ds_d1j2 ->
+                                                                                                                                     case
+                                                                                                                                         ds_d1j2
+                                                                                                                                     of {
+                                                                                                                                       PrelBase.[]{-5i,w-}{i} ->
+                                                                                                                                           fail_d1f3;
+                                                                                                                                       PrelBase.:{-55,w-}{i} t_r3S ds_d1jf ->
+                                                                                                                                           case
+                                                                                                                                               ds_d1jf
+                                                                                                                                           of {
+                                                                                                                                             PrelBase.[]{-5i,w-}{i} ->
+                                                                                                                                                 fail_d1f3;
+                                                                                                                                             PrelBase.:{-55,w-}{i} u_r3T ds_d1js ->
+                                                                                                                                                 case
+                                                                                                                                                     ds_d1js
+                                                                                                                                                 of {
+                                                                                                                                                   PrelBase.[]{-5i,w-}{i} ->
+                                                                                                                                                       fail_d1f3;
+                                                                                                                                                   PrelBase.:{-55,w-}{i} v_r3U ds_d1jF ->
+                                                                                                                                                       case
+                                                                                                                                                           ds_d1jF
+                                                                                                                                                       of {
+                                                                                                                                                         PrelBase.[]{-5i,w-}{i} ->
+                                                                                                                                                             fail_d1f3;
+                                                                                                                                                         PrelBase.:{-55,w-}{i} w_r3V ds_d1jS ->
+                                                                                                                                                             case
+                                                                                                                                                                 ds_d1jS
+                                                                                                                                                             of {
+                                                                                                                                                               PrelBase.[]{-5i,w-}{i} ->
+                                                                                                                                                                   fail_d1f3;
+                                                                                                                                                               PrelBase.:{-55,w-}{i} x_r3W ds_d1k5 ->
+                                                                                                                                                                   case
+                                                                                                                                                                       ds_d1k5
+                                                                                                                                                                   of {
+                                                                                                                                                                     PrelBase.[]{-5i,w-}{i} ->
+                                                                                                                                                                         fail_d1f3;
+                                                                                                                                                                     PrelBase.:{-55,w-}{i} y_r3X ds_d1ki ->
+                                                                                                                                                                         case
+                                                                                                                                                                             ds_d1ki
+                                                                                                                                                                         of {
+                                                                                                                                                                           PrelBase.[]{-5i,w-}{i} ->
+                                                                                                                                                                               fail_d1f3;
+                                                                                                                                                                           PrelBase.:{-55,w-}{i} z_r3Y ds_d1kv ->
+                                                                                                                                                                               case
+                                                                                                                                                                                   ds_d1kv
+                                                                                                                                                                               of {
+                                                                                                                                                                                 PrelBase.:{-55,w-}{i} ds_d1kC ds_d1kD ->
+                                                                                                                                                                                     fail_d1f3;
+                                                                                                                                                                                 PrelBase.[]{-5i,w-}{i} ->
+                                                                                                                                                                                     x_r3W;
+                                                                                                                                                                               };
+                                                                                                                                                                         };
+                                                                                                                                                                   };
+                                                                                                                                                             };
+                                                                                                                                                       };
+                                                                                                                                                 };
+                                                                                                                                           };
+                                                                                                                                     };
+                                                                                                                               };
+                                                                                                                         };
+                                                                                                                   };
+                                                                                                             };
+                                                                                                       };
+                                                                                                 };
+                                                                                           };
+                                                                                     };
+                                                                               };
+                                                                         };
+                                                                   };
+                                                             };
+                                                       };
+                                                 };
+                                           };
+                                     };
+                               };
+                         };
+                   };
+       } in  fa_aDL
+g{-r4Y,x-}  ::  _forall_
+               [taJN taJP taJR]
+               =>
+               taJN
+               -> taJP
+               -> taJR
+               -> (taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR)
 {-# L #-}
-g{-r55,x-} =
-    _/\_ t{-aHm-} t{-aHo-} t{-aHq-} -> \ x_r3z  :: 
-                                            t{-aHm-}
-                                        {-# L #-}
-                                        x_r3z y_r3B  :: 
-                                                  t{-aHo-}
-                                              {-# L #-}
-                                              y_r3B z_r3D  :: 
-                                                        t{-aHq-}
-                                                    {-# L #-}
-                                                    z_r3D ->
-       PrelTup.(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,){-62q,p-}{i}
-           {_@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            _@_ t{-aHm-}
-            _@_ t{-aHo-}
-            _@_ t{-aHq-}
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D
-            x_r3z
-            y_r3B
-            z_r3D}
-g1{-r56,x-}  :: 
-    _forall_
-    [t{-aHA-} t{-aHC-}]
-    =>
-    t{-aHA-} -> t{-aHC-} -> PrelBase.(){-40,p-}
+g{-r4Y,x-} =
+    _/\_ taJN taJP taJR ->
+       _letrec_ {
+         g_aEK  ::  taJN
+                    -> taJP
+                    -> taJR
+                    -> (taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR, taJN, taJP, taJR)
+         {-# L #-}
+         g_aEK =
+             \ x_r3v  ::  taJN
+               {-# L #-}
+               x_r3v y_r3w  ::  taJP
+                     {-# L #-}
+                     y_r3w z_r3x  ::  taJR
+                           {-# L #-}
+                           z_r3x ->
+                 PrelTup.(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,){-62q,w-}{i}
+                     {_@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      _@_ taJN
+                      _@_ taJP
+                      _@_ taJR
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x
+                      x_r3v
+                      y_r3w
+                      z_r3x};
+       } in  g_aEK
+g1{-r4Z,x-}  ::  _forall_
+                [taK6 taK8]
+                =>
+                taK6 -> taK8 -> PrelBase.(){-40,W-}
 {-# L #-}
-g1{-r56,x-} =
-    _/\_ t{-aHA-} t{-aHC-} -> \ x_r3v  :: 
-                                   t{-aHA-}
-                               {-# L #-}
-                               x_r3v y_r3x  :: 
-                                         t{-aHC-}
-                                     {-# L #-}
-                                     y_r3x ->
-       PrelBase.(){-60,p-}{i}
-f2{-r57,x-}  :: 
-    _forall_
-    [t{-aHO-} t{-aHQ-} t{-aHM-}]
-    =>
-    t{-aHO-} -> t{-aHQ-} -> [t{-aHM-}]
+g1{-r4Z,x-} =
+    _/\_ taK6 taK8 ->
+       _letrec_ {
+         g1_aJT  ::  taK6 -> taK8 -> PrelBase.(){-40,W-}
+         {-# L #-}
+         g1_aJT =
+             \ x_r3s  ::  taK6
+               {-# L #-}
+               x_r3s y_r3t  ::  taK8
+                     {-# L #-}
+                     y_r3t ->
+                 PrelBase.(){-60,w-}{i};
+       } in  g1_aJT
+f2{-r50,x-}  ::  _forall_
+                [taKq taKs taKo]
+                =>
+                taKq -> taKs -> [taKo]
 {-# L #-}
-f2{-r57,x-} =
-    _/\_ t{-aHO-} t{-aHQ-} t{-aHM-} -> \ x_r3r  :: 
-                                            t{-aHO-}
-                                        {-# L #-}
-                                        x_r3r y_r3t  :: 
-                                                  t{-aHQ-}
-                                              {-# L #-}
-                                              y_r3t ->
-       PrelBase.[]{-5i,p-}{i}
-           _@_ t{-aHM-}
-f{-r58,x-}  :: 
-    _forall_
-    [t{-aI2-}]
-    =>
-    t{-aI2-} -> t{-aI2-} -> t{-aI2-} -> [t{-aI2-}]
+f2{-r50,x-} =
+    _/\_ taKq taKs taKo ->
+       _letrec_ {
+         f2_aKa  ::  taKq -> taKs -> [taKo]
+         {-# L #-}
+         f2_aKa =
+             \ x_r3p  ::  taKq
+               {-# L #-}
+               x_r3p y_r3q  ::  taKs
+                     {-# L #-}
+                     y_r3q ->
+                 PrelBase.[]{-5i,w-}{i} _@_ taKo;
+       } in  f2_aKa
+f{-r51,x-}  ::  _forall_ [taKN] => taKN -> taKN -> taKN -> [taKN]
 {-# L #-}
-f{-r58,x-} =
-    _/\_ t{-aI2-} -> \ x_r3l  :: 
-                          t{-aI2-}
-                      {-# L #-}
-                      x_r3l y_r3n  :: 
-                                t{-aI2-}
-                            {-# L #-}
-                            y_r3n z_r3p  :: 
-                                      t{-aI2-}
-                                  {-# L #-}
-                                  z_r3p ->
-       let { ds_d1uJ  :: 
-                 [t{-aI2-}]
-             {-# L #-}
-             ds_d1uJ =
-         let { ds_d1uV  :: 
-                   [t{-aI2-}]
+f{-r51,x-} =
+    _/\_ taKN ->
+       _letrec_ {
+         f_aKu  ::  taKN -> taKN -> taKN -> [taKN]
+         {-# L #-}
+         f_aKu =
+             \ x_r3l  ::  taKN
                {-# L #-}
-               ds_d1uV =
-           let { ds_d1v7  :: 
-                     [t{-aI2-}]
-                 {-# L #-}
-                 ds_d1v7 =
-             let { ds_d1vj  :: 
-                       [t{-aI2-}]
-                   {-# L #-}
-                   ds_d1vj =
-               let { ds_d1vv  :: 
-                         [t{-aI2-}]
+               x_r3l y_r3m  ::  taKN
                      {-# L #-}
-                     ds_d1vv =
-                 let {
-                   ds_d1vH  :: 
-                       [t{-aI2-}]
-                   {-# L #-}
-                   ds_d1vH =
-                       PrelBase.[]{-5i,p-}{i}
-                           {_@_ t{-aI2-}}
-                 } in 
-                   PrelBase.:{-55,p-}{i}
-                       {_@_ t{-aI2-} z_r3p ds_d1vH}
-               } in
-               PrelBase.:{-55,p-}{i}
-                   {_@_ t{-aI2-} y_r3n ds_d1vv}
-             } in
-             PrelBase.:{-55,p-}{i}
-                 {_@_ t{-aI2-} x_r3l ds_d1vj}
-           } in
-           PrelBase.:{-55,p-}{i}
-               {_@_ t{-aI2-} z_r3p ds_d1v7}
-         } in
-         PrelBase.:{-55,p-}{i}
-             {_@_ t{-aI2-} y_r3n ds_d1uV}
-       } in
-       PrelBase.:{-55,p-}{i}
-           {_@_ t{-aI2-} x_r3l ds_d1uJ}
+                     y_r3m z_r3n  ::  taKN
+                           {-# L #-}
+                           z_r3n ->
+                 let { ds_d1y6  ::  [taKN]
+                       {-# L #-}
+                       ds_d1y6 =
+                   let { ds_d1yi  ::  [taKN]
+                         {-# L #-}
+                         ds_d1yi =
+                     let { ds_d1yu  ::  [taKN]
+                           {-# L #-}
+                           ds_d1yu =
+                       let { ds_d1yG  ::  [taKN]
+                             {-# L #-}
+                             ds_d1yG =
+                         let { ds_d1yS  ::  [taKN]
+                               {-# L #-}
+                               ds_d1yS =
+                           let {
+                             ds_d1z4  ::  [taKN]
+                             {-# L #-}
+                             ds_d1z4 =
+                                 PrelBase.[]{-5i,w-}{i} {_@_ taKN}
+                           } in  PrelBase.:{-55,w-}{i} {_@_ taKN z_r3n ds_d1z4}
+                         } in
+                         PrelBase.:{-55,w-}{i} {_@_ taKN y_r3m ds_d1yS}
+                       } in
+                       PrelBase.:{-55,w-}{i} {_@_ taKN x_r3l ds_d1yG}
+                     } in
+                     PrelBase.:{-55,w-}{i} {_@_ taKN z_r3n ds_d1yu}
+                   } in
+                   PrelBase.:{-55,w-}{i} {_@_ taKN y_r3m ds_d1yi}
+                 } in
+                 PrelBase.:{-55,w-}{i} {_@_ taKN x_r3l ds_d1y6};
+       } in  f_aKu
+end Rec }
index e064f37..96f18d1 100644 (file)
@@ -8,26 +8,26 @@ ds019.hs:8:
 
 ================================================================================
 Desugared:
-f{-r3G,x-}  :: 
-    _forall_
-    [t{-aBG-} t{-aBJ-} t{-aBM-} t{-aBY-} t{-aC1-} t{-aC9-} t{-aC7-}]
-    =>
-    (t{-aBG-}, t{-aBJ-}, t{-aBM-})
-    -> (t{-aBY-}, t{-aC1-})
-    -> t{-aC9-}
-    -> [t{-aC7-}]
+Rec {
+f{-r3y,x-}  ::  _forall_
+               [tazA taz7 taza tazd tazq tazt tazy]
+               =>
+               (taz7, taza, tazd) -> (tazq, tazt) -> tazA -> [tazy]
 {-# L #-}
-f{-r3G,x-} =
-    _/\_ t{-aBG-} t{-aBJ-} t{-aBM-} t{-aBY-} t{-aC1-} t{-aC9-} t{-aC7-} -> \ ds_dGA  :: 
-                                                                                (t{-aBG-}, t{-aBJ-}, t{-aBM-})
-                                                                            {-# L #-}
-                                                                            ds_dGA i_r3h  :: 
-                                                                                       (t{-aBY-}, t{-aC1-})
-                                                                                   {-# L #-}
-                                                                                   i_r3h o_r3j  :: 
-                                                                                             t{-aC9-}
-                                                                                         {-# L #-}
-                                                                                         o_r3j ->
-       case ds_dGA of { PrelTup.(,,){-63,p-}{i} a_r3d b_r3e c_r3f  ->
-       PrelBase.[]{-5i,p-}{i}
-           _@_ t{-aC7-};}
+f{-r3y,x-} =
+    _/\_ tazA taz7 taza tazd tazq tazt tazy ->
+       _letrec_ {
+         f_ayl  ::  (taz7, taza, tazd) -> (tazq, tazt) -> tazA -> [tazy]
+         {-# L #-}
+         f_ayl =
+             \ ds_dEd  ::  (taz7, taza, tazd)
+               {-# L #-}
+               ds_dEd i_r3g  ::  (tazq, tazt)
+                      {-# L #-}
+                      i_r3g o_r3h  ::  tazA
+                            {-# L #-}
+                            o_r3h ->
+                 case ds_dEd of { PrelTup.(,,){-63,w-}{i} a_r3d b_r3e c_r3f  ->
+                 PrelBase.[]{-5i,w-}{i} _@_ tazy;};
+       } in  f_ayl
+end Rec }
index fc6973c..b2d5859 100644 (file)
-ds020.hs:20: 
+ds020.hs:6: 
     Warning: Pattern match(es) completely overlapped
-       in the definition of function `f'
+       in the definition of function `a'
+ds020.hs:9: 
+    Warning: Pattern match(es) completely overlapped
+       in the definition of function `b'
 ds020.hs:16: 
     Warning: Pattern match(es) completely overlapped
        in the definition of function `d'
 ds020.hs:17: 
     Warning: Pattern match(es) completely overlapped
        in the definition of function `d'
-ds020.hs:9: 
-    Warning: Pattern match(es) completely overlapped
-       in the definition of function `b'
-ds020.hs:6: 
+ds020.hs:20: 
     Warning: Pattern match(es) completely overlapped
-       in the definition of function `a'
+       in the definition of function `f'
 
 
 ================================================================================
 Desugared:
 Rec {
-d.Eq_a1aR  :: 
-    {PrelBase.Eq{-23,p-} PrelBase.Int{-3g,p-}}
-{-# L #-}
-d.Eq_a1aR =
-    PrelBase.$d7{-rqT,p-}
-==_a1h7  :: 
-    PrelBase.Int{-3g,p-}
-    -> PrelBase.Int{-3g,p-}
-    -> PrelBase.Bool{-34,p-}
-{-# L #-}
-==_a1h7 =
-    PrelBase.=={-8Y,p-}
-       _@_ PrelBase.Int{-3g,p-} d.Eq_a1aR
-d.Num_a1aV  :: 
-    {PrelBase.Num{-2c,p-} PrelBase.Int{-3g,p-}}
-{-# L #-}
-d.Num_a1aV =
-    PrelBase.$d3{-rqn,p-}
-fromInt_a1h6  :: 
-    PrelBase.Int{-3g,p-} -> PrelBase.Int{-3g,p-}
-{-# L #-}
-fromInt_a1h6 =
-    PrelBase.fromInt{-8R,p-}
-       _@_ PrelBase.Int{-3g,p-} d.Num_a1aV
-lit_a1h5  :: 
-    PrelBase.Int{-3g,p-}
-{-# L #-}
-lit_a1h5 =
-    let {
-      ds_d1SI  :: 
-         PrelBase.Int{-3g,p-}
-      {-# L #-}
-      ds_d1SI =
-         PrelBase.I#{-5b,p-}{i}
-             2
-    } in 
-      fromInt_a1h6
-         ds_d1SI
-fromInt_a1h4  :: 
-    PrelBase.Int{-3g,p-} -> PrelBase.Int{-3g,p-}
-{-# L #-}
-fromInt_a1h4 =
-    fromInt_a1h6
-lit_a1h3  :: 
-    PrelBase.Int{-3g,p-}
-{-# L #-}
-lit_a1h3 =
-    let {
-      ds_d1SX  :: 
-         PrelBase.Int{-3g,p-}
-      {-# L #-}
-      ds_d1SX =
-         PrelBase.I#{-5b,p-}{i}
-             4
-    } in 
-      fromInt_a1h4
-         ds_d1SX
-fromInt_a1h2  :: 
-    PrelBase.Int{-3g,p-} -> PrelBase.Int{-3g,p-}
-{-# L #-}
-fromInt_a1h2 =
-    fromInt_a1h6
-lit_a1h1  :: 
-    PrelBase.Int{-3g,p-}
-{-# L #-}
-lit_a1h1 =
-    let {
-      ds_d1Tc  :: 
-         PrelBase.Int{-3g,p-}
-      {-# L #-}
-      ds_d1Tc =
-         PrelBase.I#{-5b,p-}{i}
-             3
-    } in 
-      fromInt_a1h2
-         ds_d1Tc
-d.Ord_a1b0  :: 
-    {PrelBase.Ord{-2d,p-} PrelBase.Int{-3g,p-}}
-{-# L #-}
-d.Ord_a1b0 =
-    PrelBase.$d6{-rqS,p-}
->_a1h0  :: 
-    PrelBase.Int{-3g,p-}
-    -> PrelBase.Int{-3g,p-}
-    -> PrelBase.Bool{-34,p-}
-{-# L #-}
->_a1h0 =
-    PrelBase.>{-rs3,p-}
-       _@_ PrelBase.Int{-3g,p-} d.Ord_a1b0
-lit_a1gZ  :: 
-    PrelBase.Int{-3g,p-}
+==_a1Fg  ::  PrelBase.Int{-3g,W-}
+            -> PrelBase.Int{-3g,W-}
+            -> PrelBase.Bool{-34,W-}
 {-# L #-}
-lit_a1gZ =
-    lit_a1h1
-lit_a1gY  :: 
-    PrelBase.Int{-3g,p-}
+==_a1Fg =
+    ==_a1A2
+==_a1Fh  ::  PrelBase.Int{-3g,W-}
+            -> PrelBase.Int{-3g,W-}
+            -> PrelBase.Bool{-34,W-}
 {-# L #-}
-lit_a1gY =
-    lit_a1h3
-fromInt_a1gX  :: 
-    PrelBase.Int{-3g,p-} -> PrelBase.Int{-3g,p-}
+==_a1Fh =
+    ==_a1A2
+lit_a1Fi  ::  PrelBase.Int{-3g,W-}
 {-# L #-}
-fromInt_a1gX =
-    fromInt_a1h6
-lit_a1gW  :: 
-    PrelBase.Int{-3g,p-}
+lit_a1Fi =
+    lit_a1A4
+lit_a1Fj  ::  PrelBase.Int{-3g,W-}
 {-# L #-}
-lit_a1gW =
-    let {
-      ds_d1TC  :: 
-         PrelBase.Int{-3g,p-}
-      {-# L #-}
-      ds_d1TC =
-         PrelBase.I#{-5b,p-}{i}
-             5
-    } in 
-      fromInt_a1gX
-         ds_d1TC
-d.Ord_a1b4  :: 
-    {PrelBase.Ord{-2d,p-} PrelBase.Int{-3g,p-}}
-{-# L #-}
-d.Ord_a1b4 =
-    d.Ord_a1b0
-<=_a1gV  :: 
-    PrelBase.Int{-3g,p-}
-    -> PrelBase.Int{-3g,p-}
-    -> PrelBase.Bool{-34,p-}
-{-# L #-}
-<=_a1gV =
-    PrelBase.<={-rs2,p-}
-       _@_ PrelBase.Int{-3g,p-} d.Ord_a1b4
-lit_a1gU  :: 
-    PrelBase.Int{-3g,p-}
-{-# L #-}
-lit_a1gU =
-    lit_a1h5
-lit_a1gT  :: 
-    PrelBase.Int{-3g,p-}
-{-# L #-}
-lit_a1gT =
-    lit_a1h1
-==_a1gS  :: 
-    PrelBase.Int{-3g,p-}
-    -> PrelBase.Int{-3g,p-}
-    -> PrelBase.Bool{-34,p-}
-{-# L #-}
-==_a1gS =
-    ==_a1h7
-lit_a1gR  :: 
-    PrelBase.Int{-3g,p-}
-{-# L #-}
-lit_a1gR =
-    lit_a1h5
-lit_a1gQ  :: 
-    PrelBase.Int{-3g,p-}
+lit_a1Fj =
+    lit_a1A3
+ds_d1IS  ::  (PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-})
 {-# L #-}
-lit_a1gQ =
-    lit_a1h3
-lit_a1gP  :: 
-    PrelBase.Int{-3g,p-}
-{-# L #-}
-lit_a1gP =
-    lit_a1h1
-==_a1hb  :: 
-    PrelBase.Int{-3g,p-}
-    -> PrelBase.Int{-3g,p-}
-    -> PrelBase.Bool{-34,p-}
-{-# L #-}
-==_a1hb =
-    ==_a1gS
-==_a1ha  :: 
-    PrelBase.Int{-3g,p-}
-    -> PrelBase.Int{-3g,p-}
-    -> PrelBase.Bool{-34,p-}
-{-# L #-}
-==_a1ha =
-    ==_a1gS
-lit_a1h9  :: 
-    PrelBase.Int{-3g,p-}
-{-# L #-}
-lit_a1h9 =
-    lit_a1gQ
-lit_a1h8  :: 
-    PrelBase.Int{-3g,p-}
-{-# L #-}
-lit_a1h8 =
-    lit_a1gR
-ds_d1Q9  :: 
-    (PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-})
-{-# L #-}
-ds_d1Q9 =
-    let { ds_d1Zt  :: 
-             (PrelBase.Char{-38,p-}, (PrelBase.Char{-38,p-}, (PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-})))
+ds_d1IS =
+    let { ds_d1RP  ::  (PrelBase.Char{-38,W-}, (PrelBase.Char{-38,W-}, (PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-})))
          {-# L #-}
-         ds_d1Zt =
+         ds_d1RP =
       let {
-       eq4_a12Q  :: 
-           PrelBase.Bool{-34,p-}
+       eq4_aWR  ::  PrelBase.Bool{-34,W-}
        {-# L #-}
-       eq4_a12Q =
-           ==_a1ha
-               lit_a1h9 lit_a1h8 } in
+       eq4_aWR =
+           ==_a1Fh lit_a1Fi lit_a1Fj } in
       let {
-       eq4_r4b  :: 
-           PrelBase.Bool{-34,p-}
+       eq4_r49  ::  PrelBase.Bool{-34,W-}
        {-# L #-}
-       eq4_r4b =
-           eq4_a12Q } in
+       eq4_r49 =
+           eq4_aWR } in
       let {
-       lit_a1Uy  :: 
-           PrelBase.Int{-3g,p-}
+       lit_a1MU  ::  PrelBase.Int{-3g,W-}
        {-# L #-}
-       lit_a1Uy =
-           lit_a1gP } in
+       lit_a1MU =
+           lit_a1A5 } in
       let {
-       eq3_a13e  :: 
-           PrelBase.Bool{-34,p-}
+       eq3_aX5  ::  PrelBase.Bool{-34,W-}
        {-# L #-}
-       eq3_a13e =
-           ==_a1hb
-               lit_a1gP lit_a1Uy } in
+       eq3_aX5 =
+           ==_a1Fg lit_a1A5 lit_a1MU } in
       let {
-       eq3_r4a  :: 
-           PrelBase.Bool{-34,p-}
+       eq3_r48  ::  PrelBase.Bool{-34,W-}
        {-# L #-}
-       eq3_r4a =
-           eq3_a13e } in
+       eq3_r48 =
+           eq3_aX5 } in
       let {
-       eq2_a13A  :: 
-           PrelBase.Bool{-34,p-}
+       eq2_aXj  ::  PrelBase.Bool{-34,W-}
        {-# L #-}
-       eq2_a13A =
-           ==_a1gS
-               lit_a1gR lit_a1gQ } in
+       eq2_aXj =
+           ==_a1A2 lit_a1A3 lit_a1A4 } in
       let {
-       eq2_r49  :: 
-           PrelBase.Bool{-34,p-}
+       eq2_r47  ::  PrelBase.Bool{-34,W-}
        {-# L #-}
-       eq2_r49 =
-           eq2_a13A
+       eq2_r47 =
+           eq2_aXj
       } in 
-       case eq2_r49 of {
-         PrelBase.True{-5E,p-}{i} ->
+       case eq2_r47 of {
+         PrelBase.True{-5E,w-}{i} ->
              let {
-               ds_d1Va  :: 
-                   PrelBase.Char{-38,p-}
+               ds_d1Nw  ::  PrelBase.Char{-38,W-}
                {-# L #-}
-               ds_d1Va =
-                   PrelBase.C#{-54,p-}{i}
-                       {'a'} } in
-             let { ds_d1Ve  :: 
-                       (PrelBase.Char{-38,p-}, (PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}))
+               ds_d1Nw =
+                   PrelBase.C#{-54,w-}{i} {'a'} } in
+             let { ds_d1NA  ::  (PrelBase.Char{-38,W-}, (PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}))
                    {-# L #-}
-                   ds_d1Ve =
+                   ds_d1NA =
                let {
-                 ds_d1Vu  :: 
-                     PrelBase.Char{-38,p-}
+                 ds_d1NQ  ::  PrelBase.Char{-38,W-}
                  {-# L #-}
-                 ds_d1Vu =
-                     PrelBase.C#{-54,p-}{i}
-                         {'a'} } in
-               let { ds_d1Vy  :: 
-                         (PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-})
+                 ds_d1NQ =
+                     PrelBase.C#{-54,w-}{i} {'a'} } in
+               let { ds_d1NU  ::  (PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-})
                      {-# L #-}
-                     ds_d1Vy =
+                     ds_d1NU =
                  let {
-                   ds_d1VO  :: 
-                       PrelBase.Char{-38,p-}
+                   ds_d1Oa  ::  PrelBase.Char{-38,W-}
                    {-# L #-}
-                   ds_d1VO =
-                       PrelBase.C#{-54,p-}{i}
-                           {'a'} } in
+                   ds_d1Oa =
+                       PrelBase.C#{-54,w-}{i} {'a'} } in
                  let {
-                   ds_d1VS  :: 
-                       PrelBase.Char{-38,p-}
+                   ds_d1Oe  ::  PrelBase.Char{-38,W-}
                    {-# L #-}
-                   ds_d1VS =
-                       PrelBase.C#{-54,p-}{i}
-                           {'a'}
+                   ds_d1Oe =
+                       PrelBase.C#{-54,w-}{i} {'a'}
                  } in 
-                   PrelTup.(,){-62,p-}{i}
-                       {_@_ PrelBase.Char{-38,p-}
-                        _@_ PrelBase.Char{-38,p-}
-                        ds_d1VO
-                        ds_d1VS}
+                   PrelTup.(,){-62,w-}{i}
+                       {_@_ PrelBase.Char{-38,W-}
+                        _@_ PrelBase.Char{-38,W-}
+                        ds_d1Oa
+                        ds_d1Oe}
                } in
-               PrelTup.(,){-62,p-}{i}
-                   {_@_ PrelBase.Char{-38,p-}
-                    _@_ (PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-})
-                    ds_d1Vu
-                    ds_d1Vy}
+               PrelTup.(,){-62,w-}{i}
+                   {_@_ PrelBase.Char{-38,W-}
+                    _@_ (PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-})
+                    ds_d1NQ
+                    ds_d1NU}
              } in
-             PrelTup.(,){-62,p-}{i}
-                 {_@_ PrelBase.Char{-38,p-}
-                  _@_ (PrelBase.Char{-38,p-}, (PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}))
-                  ds_d1Va
-                  ds_d1Ve};
-         PrelBase.False{-58,p-}{i} ->
-             case eq3_r4a of {
-               PrelBase.True{-5E,p-}{i} ->
+             PrelTup.(,){-62,w-}{i}
+                 {_@_ PrelBase.Char{-38,W-}
+                  _@_ (PrelBase.Char{-38,W-}, (PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}))
+                  ds_d1Nw
+                  ds_d1NA};
+         PrelBase.False{-58,w-}{i} ->
+             case eq3_r48 of {
+               PrelBase.True{-5E,w-}{i} ->
                    let {
-                     ds_d1Wm  :: 
-                         PrelBase.Char{-38,p-}
+                     ds_d1OI  ::  PrelBase.Char{-38,W-}
                      {-# L #-}
-                     ds_d1Wm =
-                         PrelBase.C#{-54,p-}{i}
-                             {'b'} } in
-                   let { ds_d1Wq  :: 
-                             (PrelBase.Char{-38,p-}, (PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}))
+                     ds_d1OI =
+                         PrelBase.C#{-54,w-}{i} {'b'} } in
+                   let { ds_d1OM  ::  (PrelBase.Char{-38,W-}, (PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}))
                          {-# L #-}
-                         ds_d1Wq =
+                         ds_d1OM =
                      let {
-                       ds_d1WG  :: 
-                           PrelBase.Char{-38,p-}
+                       ds_d1P2  ::  PrelBase.Char{-38,W-}
                        {-# L #-}
-                       ds_d1WG =
-                           PrelBase.C#{-54,p-}{i}
-                               {'b'} } in
-                     let { ds_d1WK  :: 
-                               (PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-})
+                       ds_d1P2 =
+                           PrelBase.C#{-54,w-}{i} {'b'} } in
+                     let { ds_d1P6  ::  (PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-})
                            {-# L #-}
-                           ds_d1WK =
+                           ds_d1P6 =
                        let {
-                         ds_d1X0  :: 
-                             PrelBase.Char{-38,p-}
+                         ds_d1Pm  ::  PrelBase.Char{-38,W-}
                          {-# L #-}
-                         ds_d1X0 =
-                             PrelBase.C#{-54,p-}{i}
-                                 {'b'} } in
+                         ds_d1Pm =
+                             PrelBase.C#{-54,w-}{i} {'b'} } in
                        let {
-                         ds_d1X4  :: 
-                             PrelBase.Char{-38,p-}
+                         ds_d1Pq  ::  PrelBase.Char{-38,W-}
                          {-# L #-}
-                         ds_d1X4 =
-                             PrelBase.C#{-54,p-}{i}
-                                 {'b'}
+                         ds_d1Pq =
+                             PrelBase.C#{-54,w-}{i} {'b'}
                        } in 
-                         PrelTup.(,){-62,p-}{i}
-                             {_@_ PrelBase.Char{-38,p-}
-                              _@_ PrelBase.Char{-38,p-}
-                              ds_d1X0
-                              ds_d1X4}
+                         PrelTup.(,){-62,w-}{i}
+                             {_@_ PrelBase.Char{-38,W-}
+                              _@_ PrelBase.Char{-38,W-}
+                              ds_d1Pm
+                              ds_d1Pq}
                      } in
-                     PrelTup.(,){-62,p-}{i}
-                         {_@_ PrelBase.Char{-38,p-}
-                          _@_ (PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-})
-                          ds_d1WG
-                          ds_d1WK}
+                     PrelTup.(,){-62,w-}{i}
+                         {_@_ PrelBase.Char{-38,W-}
+                          _@_ (PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-})
+                          ds_d1P2
+                          ds_d1P6}
                    } in
-                   PrelTup.(,){-62,p-}{i}
-                       {_@_ PrelBase.Char{-38,p-}
-                        _@_ (PrelBase.Char{-38,p-}, (PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}))
-                        ds_d1Wm
-                        ds_d1Wq};
-               PrelBase.False{-58,p-}{i} ->
-                   case eq4_r4b of {
-                     PrelBase.True{-5E,p-}{i} ->
+                   PrelTup.(,){-62,w-}{i}
+                       {_@_ PrelBase.Char{-38,W-}
+                        _@_ (PrelBase.Char{-38,W-}, (PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}))
+                        ds_d1OI
+                        ds_d1OM};
+               PrelBase.False{-58,w-}{i} ->
+                   case eq4_r49 of {
+                     PrelBase.True{-5E,w-}{i} ->
                          let {
-                           ds_d1Xy  :: 
-                               PrelBase.Char{-38,p-}
+                           ds_d1PU  ::  PrelBase.Char{-38,W-}
                            {-# L #-}
-                           ds_d1Xy =
-                               PrelBase.C#{-54,p-}{i}
-                                   {'c'} } in
-                         let { ds_d1XC  :: 
-                                   (PrelBase.Char{-38,p-}, (PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}))
+                           ds_d1PU =
+                               PrelBase.C#{-54,w-}{i} {'c'} } in
+                         let { ds_d1PY  ::  (PrelBase.Char{-38,W-}, (PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}))
                                {-# L #-}
-                               ds_d1XC =
+                               ds_d1PY =
                            let {
-                             ds_d1XS  :: 
-                                 PrelBase.Char{-38,p-}
+                             ds_d1Qe  ::  PrelBase.Char{-38,W-}
                              {-# L #-}
-                             ds_d1XS =
-                                 PrelBase.C#{-54,p-}{i}
-                                     {'c'} } in
-                           let { ds_d1XW  :: 
-                                     (PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-})
+                             ds_d1Qe =
+                                 PrelBase.C#{-54,w-}{i} {'c'} } in
+                           let { ds_d1Qi  ::  (PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-})
                                  {-# L #-}
-                                 ds_d1XW =
+                                 ds_d1Qi =
                              let {
-                               ds_d1Yc  :: 
-                                   PrelBase.Char{-38,p-}
+                               ds_d1Qy  ::  PrelBase.Char{-38,W-}
                                {-# L #-}
-                               ds_d1Yc =
-                                   PrelBase.C#{-54,p-}{i}
-                                       {'c'} } in
+                               ds_d1Qy =
+                                   PrelBase.C#{-54,w-}{i} {'c'} } in
                              let {
-                               ds_d1Yg  :: 
-                                   PrelBase.Char{-38,p-}
+                               ds_d1QC  ::  PrelBase.Char{-38,W-}
                                {-# L #-}
-                               ds_d1Yg =
-                                   PrelBase.C#{-54,p-}{i}
-                                       {'c'}
+                               ds_d1QC =
+                                   PrelBase.C#{-54,w-}{i} {'c'}
                              } in 
-                               PrelTup.(,){-62,p-}{i}
-                                   {_@_ PrelBase.Char{-38,p-}
-                                    _@_ PrelBase.Char{-38,p-}
-                                    ds_d1Yc
-                                    ds_d1Yg}
+                               PrelTup.(,){-62,w-}{i}
+                                   {_@_ PrelBase.Char{-38,W-}
+                                    _@_ PrelBase.Char{-38,W-}
+                                    ds_d1Qy
+                                    ds_d1QC}
                            } in
-                           PrelTup.(,){-62,p-}{i}
-                               {_@_ PrelBase.Char{-38,p-}
-                                _@_ (PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-})
-                                ds_d1XS
-                                ds_d1XW}
+                           PrelTup.(,){-62,w-}{i}
+                               {_@_ PrelBase.Char{-38,W-}
+                                _@_ (PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-})
+                                ds_d1Qe
+                                ds_d1Qi}
                          } in
-                         PrelTup.(,){-62,p-}{i}
-                             {_@_ PrelBase.Char{-38,p-}
-                              _@_ (PrelBase.Char{-38,p-}, (PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}))
-                              ds_d1Xy
-                              ds_d1XC};
-                     PrelBase.False{-58,p-}{i} ->
+                         PrelTup.(,){-62,w-}{i}
+                             {_@_ PrelBase.Char{-38,W-}
+                              _@_ (PrelBase.Char{-38,W-}, (PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}))
+                              ds_d1PU
+                              ds_d1PY};
+                     PrelBase.False{-58,w-}{i} ->
                          let {
-                           ds_d1YC  :: 
-                               PrelBase.Char{-38,p-}
+                           ds_d1QY  ::  PrelBase.Char{-38,W-}
                            {-# L #-}
-                           ds_d1YC =
-                               PrelBase.C#{-54,p-}{i}
-                                   {'d'} } in
-                         let { ds_d1YG  :: 
-                                   (PrelBase.Char{-38,p-}, (PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}))
+                           ds_d1QY =
+                               PrelBase.C#{-54,w-}{i} {'d'} } in
+                         let { ds_d1R2  ::  (PrelBase.Char{-38,W-}, (PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}))
                                {-# L #-}
-                               ds_d1YG =
+                               ds_d1R2 =
                            let {
-                             ds_d1YW  :: 
-                                 PrelBase.Char{-38,p-}
+                             ds_d1Ri  ::  PrelBase.Char{-38,W-}
                              {-# L #-}
-                             ds_d1YW =
-                                 PrelBase.C#{-54,p-}{i}
-                                     {'d'} } in
-                           let { ds_d1Z0  :: 
-                                     (PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-})
+                             ds_d1Ri =
+                                 PrelBase.C#{-54,w-}{i} {'d'} } in
+                           let { ds_d1Rm  ::  (PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-})
                                  {-# L #-}
-                                 ds_d1Z0 =
+                                 ds_d1Rm =
                              let {
-                               ds_d1Zg  :: 
-                                   PrelBase.Char{-38,p-}
+                               ds_d1RC  ::  PrelBase.Char{-38,W-}
                                {-# L #-}
-                               ds_d1Zg =
-                                   PrelBase.C#{-54,p-}{i}
-                                       {'d'} } in
+                               ds_d1RC =
+                                   PrelBase.C#{-54,w-}{i} {'d'} } in
                              let {
-                               ds_d1Zk  :: 
-                                   PrelBase.Char{-38,p-}
+                               ds_d1RG  ::  PrelBase.Char{-38,W-}
                                {-# L #-}
-                               ds_d1Zk =
-                                   PrelBase.C#{-54,p-}{i}
-                                       {'d'}
+                               ds_d1RG =
+                                   PrelBase.C#{-54,w-}{i} {'d'}
                              } in 
-                               PrelTup.(,){-62,p-}{i}
-                                   {_@_ PrelBase.Char{-38,p-}
-                                    _@_ PrelBase.Char{-38,p-}
-                                    ds_d1Zg
-                                    ds_d1Zk}
+                               PrelTup.(,){-62,w-}{i}
+                                   {_@_ PrelBase.Char{-38,W-}
+                                    _@_ PrelBase.Char{-38,W-}
+                                    ds_d1RC
+                                    ds_d1RG}
                            } in
-                           PrelTup.(,){-62,p-}{i}
-                               {_@_ PrelBase.Char{-38,p-}
-                                _@_ (PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-})
-                                ds_d1YW
-                                ds_d1Z0}
+                           PrelTup.(,){-62,w-}{i}
+                               {_@_ PrelBase.Char{-38,W-}
+                                _@_ (PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-})
+                                ds_d1Ri
+                                ds_d1Rm}
                          } in
-                         PrelTup.(,){-62,p-}{i}
-                             {_@_ PrelBase.Char{-38,p-}
-                              _@_ (PrelBase.Char{-38,p-}, (PrelBase.Char{-38,p-}, PrelBase.Char{-38,p-}))
-                              ds_d1YC
-                              ds_d1YG};
+                         PrelTup.(,){-62,w-}{i}
+                             {_@_ PrelBase.Char{-38,W-}
+                              _@_ (PrelBase.Char{-38,W-}, (PrelBase.Char{-38,W-}, PrelBase.Char{-38,W-}))
+                              ds_d1QY
+                              ds_d1R2};
                    };
              };
        }
     } in
-    case ds_d1Zt of { PrelTup.(,){-62,p-}{i} x4_a12r ds_d1ZC  ->
-    case ds_d1ZC of { PrelTup.(,){-62,p-}{i} y4_a12s ds_d1ZL  ->
-    case ds_d1ZL of { PrelTup.(,){-62,p-}{i} z4_a12t a4_a12u  ->
-    PrelTup.(,,,){-64,p-}{i}
-       {_@_ PrelBase.Char{-38,p-}
-        _@_ PrelBase.Char{-38,p-}
-        _@_ PrelBase.Char{-38,p-}
-        _@_ PrelBase.Char{-38,p-}
-        x4_a12r
-        y4_a12s
-        z4_a12t
-        a4_a12u};};};}
-x4_a12r  :: 
-    PrelBase.Char{-38,p-}
+    case ds_d1RP of { PrelTup.(,){-62,w-}{i} x4_aWs ds_d1RY  ->
+    case ds_d1RY of { PrelTup.(,){-62,w-}{i} y4_aWt ds_d1S7  ->
+    case ds_d1S7 of { PrelTup.(,){-62,w-}{i} z4_aWu a4_aWv  ->
+    PrelTup.(,,,){-64,w-}{i}
+       {_@_ PrelBase.Char{-38,W-}
+        _@_ PrelBase.Char{-38,W-}
+        _@_ PrelBase.Char{-38,W-}
+        _@_ PrelBase.Char{-38,W-}
+        x4_aWs
+        y4_aWt
+        z4_aWu
+        a4_aWv};};};}
+x4_aWs  ::  PrelBase.Char{-38,W-}
 {-# L #-}
-x4_a12r =
+x4_aWs =
     case
-       ds_d1Q9
+       ds_d1IS
     of {
-    PrelTup.(,,,){-64,p-}{i} x4_a12r y4_a12s z4_a12t a4_a12u  ->
-    x4_a12r;}
-y4_a12s  :: 
-    PrelBase.Char{-38,p-}
+    PrelTup.(,,,){-64,w-}{i} x4_aWs y4_aWt z4_aWu a4_aWv  ->
+    x4_aWs;}
+y4_aWt  ::  PrelBase.Char{-38,W-}
 {-# L #-}
-y4_a12s =
+y4_aWt =
     case
-       ds_d1Q9
+       ds_d1IS
     of {
-    PrelTup.(,,,){-64,p-}{i} x4_a12r y4_a12s z4_a12t a4_a12u  ->
-    y4_a12s;}
-z4_a12t  :: 
-    PrelBase.Char{-38,p-}
+    PrelTup.(,,,){-64,w-}{i} x4_aWs y4_aWt z4_aWu a4_aWv  ->
+    y4_aWt;}
+z4_aWu  ::  PrelBase.Char{-38,W-}
 {-# L #-}
-z4_a12t =
+z4_aWu =
     case
-       ds_d1Q9
+       ds_d1IS
     of {
-    PrelTup.(,,,){-64,p-}{i} x4_a12r y4_a12s z4_a12t a4_a12u  ->
-    z4_a12t;}
-a4_a12u  :: 
-    PrelBase.Char{-38,p-}
+    PrelTup.(,,,){-64,w-}{i} x4_aWs y4_aWt z4_aWu a4_aWv  ->
+    z4_aWu;}
+a4_aWv  ::  PrelBase.Char{-38,W-}
 {-# L #-}
-a4_a12u =
+a4_aWv =
     case
-       ds_d1Q9
+       ds_d1IS
     of {
-    PrelTup.(,,,){-64,p-}{i} x4_a12r y4_a12s z4_a12t a4_a12u  ->
-    a4_a12u;}
-x4{-r4f,x-}  :: 
-    PrelBase.Char{-38,p-}
+    PrelTup.(,,,){-64,w-}{i} x4_aWs y4_aWt z4_aWu a4_aWv  ->
+    a4_aWv;}
+x4{-r4d,x-}  ::  PrelBase.Char{-38,W-}
 {-# L #-}
-x4{-r4f,x-} =
-    x4_a12r
-y4{-r4e,x-}  :: 
-    PrelBase.Char{-38,p-}
+x4{-r4d,x-} =
+    x4_aWs
+y4{-r4c,x-}  ::  PrelBase.Char{-38,W-}
 {-# L #-}
-y4{-r4e,x-} =
-    y4_a12s
-z4{-r4d,x-}  :: 
-    PrelBase.Char{-38,p-}
+y4{-r4c,x-} =
+    y4_aWt
+z4{-r4b,x-}  ::  PrelBase.Char{-38,W-}
 {-# L #-}
-z4{-r4d,x-} =
-    z4_a12t
-a4{-r4c,x-}  :: 
-    PrelBase.Char{-38,p-}
+z4{-r4b,x-} =
+    z4_aWu
+a4{-r4a,x-}  ::  PrelBase.Char{-38,W-}
 {-# L #-}
-a4{-r4c,x-} =
-    a4_a12u
-lit_a1QK  :: 
-    PrelBase.Int{-3g,p-}
+a4{-r4a,x-} =
+    a4_aWv
+lit_a1Jt  ::  PrelBase.Int{-3g,W-}
 {-# L #-}
-lit_a1QK =
-    lit_a1gZ
-ds_d1QP  :: 
-    (PrelBase.Int{-3g,p-}, PrelBase.Int{-3g,p-})
+lit_a1Jt =
+    lit_a1zW
+ds_d1Jy  ::  (PrelBase.Int{-3g,W-}, PrelBase.Int{-3g,W-})
 {-# L #-}
-ds_d1QP =
-    case
-       >_a1h0
-           x3_a148 lit_a1gZ
-    of {
-      PrelBase.True{-5E,p-}{i} ->
-         PrelTup.(,){-62,p-}{i}
-             {_@_ PrelBase.Int{-3g,p-}
-              _@_ PrelBase.Int{-3g,p-}
-              lit_a1gY
-              lit_a1gW};
-      PrelBase.False{-58,p-}{i} ->
-         case
-             <=_a1gV
-                 x3_a148 lit_a1QK
-         of {
-           PrelBase.True{-5E,p-}{i} ->
-               PrelTup.(,){-62,p-}{i}
-                   {_@_ PrelBase.Int{-3g,p-}
-                    _@_ PrelBase.Int{-3g,p-}
-                    lit_a1gU
-                    lit_a1gT};
-           PrelBase.False{-58,p-}{i} ->
-               GHCerr.nonExhaustiveGuardsError{-8l,p-}
-                   _@_ (PrelBase.Int{-3g,p-}, PrelBase.Int{-3g,p-})
+ds_d1Jy =
+    case >_a1zV x3_aYi lit_a1zW of {
+      PrelBase.True{-5E,w-}{i} ->
+         PrelTup.(,){-62,w-}{i}
+             {_@_ PrelBase.Int{-3g,W-}
+              _@_ PrelBase.Int{-3g,W-}
+              lit_a1zX
+              lit_a1zY};
+      PrelBase.False{-58,w-}{i} ->
+         case <=_a1zZ x3_aYi lit_a1Jt of {
+           PrelBase.True{-5E,w-}{i} ->
+               PrelTup.(,){-62,w-}{i}
+                   {_@_ PrelBase.Int{-3g,W-}
+                    _@_ PrelBase.Int{-3g,W-}
+                    lit_a1A0
+                    lit_a1A1};
+           PrelBase.False{-58,w-}{i} ->
+               GHCerr.nonExhaustiveGuardsError{-8l,w-}
+                   _@_ (PrelBase.Int{-3g,W-}, PrelBase.Int{-3g,W-})
                    _string_ "ds020.hs:42|";
          };
     }
-x3_a148  :: 
-    PrelBase.Int{-3g,p-}
+x3_aYi  ::  PrelBase.Int{-3g,W-}
 {-# L #-}
-x3_a148 =
-    case ds_d1QP of { PrelTup.(,){-62,p-}{i} x3_a148 y3_a149  ->
-    x3_a148;}
-y3_a149  :: 
-    PrelBase.Int{-3g,p-}
+x3_aYi =
+    case ds_d1Jy of { PrelTup.(,){-62,w-}{i} x3_aYi y3_aYj  -> x3_aYi;}
+y3_aYj  ::  PrelBase.Int{-3g,W-}
 {-# L #-}
-y3_a149 =
-    case ds_d1QP of { PrelTup.(,){-62,p-}{i} x3_a148 y3_a149  ->
-    y3_a149;}
-x3{-r4h,x-}  :: 
-    PrelBase.Int{-3g,p-}
+y3_aYj =
+    case ds_d1Jy of { PrelTup.(,){-62,w-}{i} x3_aYi y3_aYj  -> y3_aYj;}
+x3{-r4f,x-}  ::  PrelBase.Int{-3g,W-}
 {-# L #-}
-x3{-r4h,x-} =
-    x3_a148
-y3{-r4g,x-}  :: 
-    PrelBase.Int{-3g,p-}
+x3{-r4f,x-} =
+    x3_aYi
+y3{-r4e,x-}  ::  PrelBase.Int{-3g,W-}
 {-# L #-}
-y3{-r4g,x-} =
-    y3_a149
-ds_d1Ra  :: 
-    _forall_ [t{-a16h-}] => (t{-a16h-}, t{-a16h-}, [t{-a16h-}])
+y3{-r4e,x-} =
+    y3_aYj
+ds_d1JT  ::  _forall_ [taZa] => (taZa, taZa, [taZa])
 {-# L #-}
-ds_d1Ra =
-    _/\_ t{-a16h-} ->
+ds_d1JT =
+    _/\_ taZa ->
        _letrec_ {
-         ==_a1mv  :: 
-             PrelBase.Int{-3g,p-}
-             -> PrelBase.Int{-3g,p-}
-             -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a1mv =
-             ==_a1h7;
-         ==_a1mu  :: 
-             PrelBase.Int{-3g,p-}
-             -> PrelBase.Int{-3g,p-}
-             -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a1mu =
-             ==_a1h7;
-         lit_a1mt  :: 
-             PrelBase.Int{-3g,p-}
-         {-# L #-}
-         lit_a1mt =
-             lit_a1h3;
-         lit_a1ms  :: 
-             PrelBase.Int{-3g,p-}
-         {-# L #-}
-         lit_a1ms =
-             lit_a1h5;
-         ds_d22I  :: 
-             (t{-a16h-}, t{-a16h-}, [t{-a16h-}])
-         {-# L #-}
-         ds_d22I =
-             let { ds_d257  :: 
-                       [t{-a16h-}]
+         ==_a1zQ  ::  PrelBase.Int{-3g,W-}
+                      -> PrelBase.Int{-3g,W-}
+                      -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1zQ =
+             ==_a1zR;
+         ==_a1A6  ::  PrelBase.Int{-3g,W-}
+                      -> PrelBase.Int{-3g,W-}
+                      -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1A6 =
+             ==_a1zR;
+         lit_a1A7  ::  PrelBase.Int{-3g,W-}
+         {-# L #-}
+         lit_a1A7 =
+             lit_a1zT;
+         lit_a1A8  ::  PrelBase.Int{-3g,W-}
+         {-# L #-}
+         lit_a1A8 =
+             lit_a1zS;
+         ds_d1V4  ::  (taZa, taZa, [taZa])
+         {-# L #-}
+         ds_d1V4 =
+             let { ds_d1Xt  ::  [taZa]
                    {-# L #-}
-                   ds_d257 =
+                   ds_d1Xt =
                let {
-                 eq4_a158  :: 
-                     PrelBase.Bool{-34,p-}
+                 eq4_aZg  ::  PrelBase.Bool{-34,W-}
                  {-# L #-}
-                 eq4_a158 =
-                     ==_a1mu
-                         lit_a1mt lit_a1ms } in
+                 eq4_aZg =
+                     ==_a1A6 lit_a1A7 lit_a1A8 } in
                let {
-                 eq4_r41  :: 
-                     PrelBase.Bool{-34,p-}
+                 eq4_r3Y  ::  PrelBase.Bool{-34,W-}
                  {-# L #-}
-                 eq4_r41 =
-                     eq4_a158 } in
+                 eq4_r3Y =
+                     eq4_aZg } in
                let {
-                 lit_a23v  :: 
-                     PrelBase.Int{-3g,p-}
+                 lit_a1VR  ::  PrelBase.Int{-3g,W-}
                  {-# L #-}
-                 lit_a23v =
-                     lit_a1h1 } in
+                 lit_a1VR =
+                     lit_a1zU } in
                let {
-                 eq3_a15w  :: 
-                     PrelBase.Bool{-34,p-}
+                 eq3_aZu  ::  PrelBase.Bool{-34,W-}
                  {-# L #-}
-                 eq3_a15w =
-                     ==_a1mv
-                         lit_a1h1 lit_a23v } in
+                 eq3_aZu =
+                     ==_a1zQ lit_a1zU lit_a1VR } in
                let {
-                 eq3_r40  :: 
-                     PrelBase.Bool{-34,p-}
+                 eq3_r3X  ::  PrelBase.Bool{-34,W-}
                  {-# L #-}
-                 eq3_r40 =
-                     eq3_a15w } in
+                 eq3_r3X =
+                     eq3_aZu } in
                let {
-                 eq2_a15S  :: 
-                     PrelBase.Bool{-34,p-}
+                 eq2_aZI  ::  PrelBase.Bool{-34,W-}
                  {-# L #-}
-                 eq2_a15S =
-                     ==_a1h7
-                         lit_a1h5 lit_a1h3 } in
+                 eq2_aZI =
+                     ==_a1zR lit_a1zS lit_a1zT } in
                let {
-                 eq2_r3Z  :: 
-                     PrelBase.Bool{-34,p-}
+                 eq2_r3W  ::  PrelBase.Bool{-34,W-}
                  {-# L #-}
-                 eq2_r3Z =
-                     eq2_a15S
+                 eq2_r3W =
+                     eq2_aZI
                } in 
-                 case eq2_r3Z of {
-                   PrelBase.True{-5E,p-}{i} ->
-                       PrelBase.[]{-5i,p-}{i}
-                           _@_ t{-a16h-};
-                   PrelBase.False{-58,p-}{i} ->
-                       case eq3_r40 of {
-                         PrelBase.True{-5E,p-}{i} ->
+                 case eq2_r3W of {
+                   PrelBase.True{-5E,w-}{i} -> PrelBase.[]{-5i,w-}{i} _@_ taZa;
+                   PrelBase.False{-58,w-}{i} ->
+                       case eq3_r3X of {
+                         PrelBase.True{-5E,w-}{i} ->
                              let {
-                               ds_d24m  :: 
-                                   [t{-a16h-}]
+                               ds_d1WI  ::  [taZa]
                                {-# L #-}
-                               ds_d24m =
-                                   PrelBase.[]{-5i,p-}{i}
-                                       {_@_ t{-a16h-}}
-                             } in 
-                               PrelBase.:{-55,p-}{i}
-                                   {_@_ t{-a16h-} x2_a14U ds_d24m};
-                         PrelBase.False{-58,p-}{i} ->
-                             case eq4_r41 of {
-                               PrelBase.True{-5E,p-}{i} ->
+                               ds_d1WI =
+                                   PrelBase.[]{-5i,w-}{i} {_@_ taZa}
+                             } in  PrelBase.:{-55,w-}{i} {_@_ taZa x2_aZ2 ds_d1WI};
+                         PrelBase.False{-58,w-}{i} ->
+                             case eq4_r3Y of {
+                               PrelBase.True{-5E,w-}{i} ->
                                    let {
-                                     ds_d24M  :: 
-                                         [t{-a16h-}]
+                                     ds_d1X8  ::  [taZa]
                                      {-# L #-}
-                                     ds_d24M =
-                                         PrelBase.[]{-5i,p-}{i}
-                                             {_@_ t{-a16h-}}
-                                   } in 
-                                     PrelBase.:{-55,p-}{i}
-                                         {_@_ t{-a16h-} x2_a14U ds_d24M};
-                               PrelBase.False{-58,p-}{i} ->
-                                   PrelBase.[]{-5i,p-}{i}
-                                       _@_ t{-a16h-};
+                                     ds_d1X8 =
+                                         PrelBase.[]{-5i,w-}{i} {_@_ taZa}
+                                   } in  PrelBase.:{-55,w-}{i} {_@_ taZa x2_aZ2 ds_d1X8};
+                               PrelBase.False{-58,w-}{i} -> PrelBase.[]{-5i,w-}{i} _@_ taZa;
                              };
                        };
                  }
              } in
              let {
-               fail_d258  :: 
-                   (t{-a16h-}, t{-a16h-}, [t{-a16h-}])
+               fail_d1Xu  ::  (taZa, taZa, [taZa])
                {-# L #-}
-               fail_d258 =
-                   GHCerr.irrefutPatError{-8g,p-}
-                       _@_ (t{-a16h-}, t{-a16h-}, [t{-a16h-}])
+               fail_d1Xu =
+                   GHCerr.irrefutPatError{-8g,w-}
+                       _@_ (taZa, taZa, [taZa])
                        _string_ "ds020.hs:39|(x2 PrelBase.: (xs2 PrelBase.: ys2))"
              } in 
-               case ds_d257 of {
-                 PrelBase.[]{-5i,p-}{i} ->
-                     fail_d258;
-                 PrelBase.:{-55,p-}{i} x2_a14U ds_d25l ->
-                     case ds_d25l of {
-                       PrelBase.[]{-5i,p-}{i} ->
-                           fail_d258;
-                       PrelBase.:{-55,p-}{i} xs2_a14V ys2_a14W ->
-                           PrelTup.(,,){-63,p-}{i}
-                               {_@_ t{-a16h-}
-                                _@_ t{-a16h-}
-                                _@_ [t{-a16h-}]
-                                x2_a14U
-                                xs2_a14V
-                                ys2_a14W};
+               case ds_d1Xt of {
+                 PrelBase.[]{-5i,w-}{i} -> fail_d1Xu;
+                 PrelBase.:{-55,w-}{i} x2_aZ2 ds_d1XH ->
+                     case ds_d1XH of {
+                       PrelBase.[]{-5i,w-}{i} -> fail_d1Xu;
+                       PrelBase.:{-55,w-}{i} xs2_aZ3 ys2_aZ4 ->
+                           PrelTup.(,,){-63,w-}{i}
+                               {_@_ taZa _@_ taZa _@_ [taZa] x2_aZ2 xs2_aZ3 ys2_aZ4};
                      };
                };
-         x2_a14U  :: 
-             t{-a16h-}
+         x2_aZ2  ::  taZa
          {-# L #-}
-         x2_a14U =
+         x2_aZ2 =
              case
-                 ds_d22I
+                 ds_d1V4
              of {
-             PrelTup.(,,){-63,p-}{i} x2_a14U xs2_a14V ys2_a14W  ->
-             x2_a14U;};
-         xs2_a14V  :: 
-             t{-a16h-}
+             PrelTup.(,,){-63,w-}{i} x2_aZ2 xs2_aZ3 ys2_aZ4  ->
+             x2_aZ2;};
+         xs2_aZ3  ::  taZa
          {-# L #-}
-         xs2_a14V =
+         xs2_aZ3 =
              case
-                 ds_d22I
+                 ds_d1V4
              of {
-             PrelTup.(,,){-63,p-}{i} x2_a14U xs2_a14V ys2_a14W  ->
-             xs2_a14V;};
-         ys2_a14W  :: 
-             [t{-a16h-}]
+             PrelTup.(,,){-63,w-}{i} x2_aZ2 xs2_aZ3 ys2_aZ4  ->
+             xs2_aZ3;};
+         ys2_aZ4  ::  [taZa]
          {-# L #-}
-         ys2_a14W =
+         ys2_aZ4 =
              case
-                 ds_d22I
+                 ds_d1V4
              of {
-             PrelTup.(,,){-63,p-}{i} x2_a14U xs2_a14V ys2_a14W  ->
-             ys2_a14W;};
+             PrelTup.(,,){-63,w-}{i} x2_aZ2 xs2_aZ3 ys2_aZ4  ->
+             ys2_aZ4;};
        } in 
-         PrelTup.(,,){-63,p-}{i}
-             {_@_ t{-a16h-}
-              _@_ t{-a16h-}
-              _@_ [t{-a16h-}]
-              x2_a14U
-              xs2_a14V
-              ys2_a14W}
-x2{-r4k,x-}  :: 
-    _forall_ [t{-a16h-}] => t{-a16h-}
+         PrelTup.(,,){-63,w-}{i}
+             {_@_ taZa _@_ taZa _@_ [taZa] x2_aZ2 xs2_aZ3 ys2_aZ4}
+x2{-r3Z,x-}  ::  _forall_ [taZa] => taZa
 {-# L #-}
-x2{-r4k,x-} =
-    _/\_ t{-a16h-} ->
+x2{-r3Z,x-} =
+    _/\_ taZa ->
        case
-           ds_d1Ra
-               _@_ t{-a16h-}
+           ds_d1JT _@_ taZa
        of {
-       PrelTup.(,,){-63,p-}{i} ds_d26G ds_d26I ds_d26H  ->
-       ds_d26G;}
-xs2{-r4j,x-}  :: 
-    _forall_ [t{-a16h-}] => t{-a16h-}
+       PrelTup.(,,){-63,w-}{i} ds_d1Z2 ds_d1Z3 ds_d1Z4  ->
+       ds_d1Z2;}
+xs2{-r4h,x-}  ::  _forall_ [taZa] => taZa
 {-# L #-}
-xs2{-r4j,x-} =
-    _/\_ t{-a16h-} ->
+xs2{-r4h,x-} =
+    _/\_ taZa ->
        case
-           ds_d1Ra
-               _@_ t{-a16h-}
+           ds_d1JT _@_ taZa
        of {
-       PrelTup.(,,){-63,p-}{i} ds_d26Z ds_d26X ds_d26Y  ->
-       ds_d26X;}
-ys2{-r4i,x-}  :: 
-    _forall_ [t{-a16h-}] => [t{-a16h-}]
+       PrelTup.(,,){-63,w-}{i} ds_d1Zk ds_d1Zj ds_d1Zl  ->
+       ds_d1Zj;}
+ys2{-r4g,x-}  ::  _forall_ [taZa] => [taZa]
 {-# L #-}
-ys2{-r4i,x-} =
-    _/\_ t{-a16h-} ->
+ys2{-r4g,x-} =
+    _/\_ taZa ->
        case
-           ds_d1Ra
-               _@_ t{-a16h-}
+           ds_d1JT _@_ taZa
        of {
-       PrelTup.(,,){-63,p-}{i} ds_d27g ds_d27f ds_d27e  ->
-       ds_d27e;}
-ds_d1Rr  :: 
-    _forall_ [t{-a16I-}] => (t{-a16I-}, t{-a16I-}, [t{-a16I-}])
+       PrelTup.(,,){-63,w-}{i} ds_d1ZB ds_d1ZC ds_d1ZA  ->
+       ds_d1ZA;}
+ds_d1Ka  ::  _forall_ [ta10j] => (ta10j, ta10j, [ta10j])
 {-# L #-}
-ds_d1Rr =
-    _/\_ t{-a16I-} ->
-       let { ds_d28P  :: 
-                 (t{-a16I-}, t{-a16I-}, [t{-a16I-}])
-             {-# L #-}
-             ds_d28P =
-         let {
-           ds_d27Z  :: 
-               [t{-a16I-}]
-           {-# L #-}
-           ds_d27Z =
-               PrelBase.[]{-5i,p-}{i}
-                   _@_ t{-a16I-} } in
-         let {
-           fail_d280  :: 
-               (t{-a16I-}, t{-a16I-}, [t{-a16I-}])
-           {-# L #-}
-           fail_d280 =
-               GHCerr.irrefutPatError{-8g,p-}
-                   _@_ (t{-a16I-}, t{-a16I-}, [t{-a16I-}])
-                   _string_ "ds020.hs:30|(~x PrelBase.: (~xs PrelBase.: ~ys))"
-         } in 
-           case ds_d27Z of {
-             PrelBase.[]{-5i,p-}{i} ->
-                 fail_d280;
-             PrelBase.:{-55,p-}{i} x_a16u ds_d28d ->
-                 case ds_d28d of {
-                   PrelBase.[]{-5i,p-}{i} ->
-                       fail_d280;
-                   PrelBase.:{-55,p-}{i} xs_a16v ys_a16w ->
-                       let {
-                         ys_a16w  :: 
-                             [t{-a16I-}]
-                         {-# L #-}
-                         ys_a16w =
-                             ys_a16w } in
-                       let {
-                         xs_a16v  :: 
-                             t{-a16I-}
-                         {-# L #-}
-                         xs_a16v =
-                             xs_a16v } in
-                       let {
-                         x_a16u  :: 
-                             t{-a16I-}
-                         {-# L #-}
-                         x_a16u =
-                             x_a16u
-                       } in 
-                         PrelTup.(,,){-63,p-}{i}
-                             {_@_ t{-a16I-}
-                              _@_ t{-a16I-}
-                              _@_ [t{-a16I-}]
-                              x_a16u
-                              xs_a16v
-                              ys_a16w};
-                 };
-           }
-       } in
-       let {
-         x_a16u  :: 
-             t{-a16I-}
+ds_d1Ka =
+    _/\_ ta10j ->
+       _letrec_ {
+         ds_d1ZO  ::  (ta10j, ta10j, [ta10j])
+         {-# L #-}
+         ds_d1ZO =
+             let {
+               ds_d208  ::  [ta10j]
+               {-# L #-}
+               ds_d208 =
+                   PrelBase.[]{-5i,w-}{i} _@_ ta10j } in
+             let {
+               fail_d20l  ::  (ta10j, ta10j, [ta10j])
+               {-# L #-}
+               fail_d20l =
+                   GHCerr.irrefutPatError{-8g,w-}
+                       _@_ (ta10j, ta10j, [ta10j])
+                       _string_ "ds020.hs:30|(~x PrelBase.: (~xs PrelBase.: ~ys))"
+             } in 
+               case ds_d208 of {
+                 PrelBase.[]{-5i,w-}{i} -> fail_d20l;
+                 PrelBase.:{-55,w-}{i} x_a10c ds_d20y ->
+                     case ds_d20y of {
+                       PrelBase.[]{-5i,w-}{i} -> fail_d20l;
+                       PrelBase.:{-55,w-}{i} xs_a10d ys_a10e ->
+                           let {
+                             ys_a10e  ::  [ta10j]
+                             {-# L #-}
+                             ys_a10e =
+                                 ys_a10e } in
+                           let {
+                             xs_a10d  ::  ta10j
+                             {-# L #-}
+                             xs_a10d =
+                                 xs_a10d } in
+                           let {
+                             x_a10c  ::  ta10j
+                             {-# L #-}
+                             x_a10c =
+                                 x_a10c
+                           } in 
+                             PrelTup.(,,){-63,w-}{i}
+                                 {_@_ ta10j _@_ ta10j _@_ [ta10j] x_a10c xs_a10d ys_a10e};
+                     };
+               };
+         x_a10c  ::  ta10j
          {-# L #-}
-         x_a16u =
+         x_a10c =
              case
-                 ds_d28P
+                 ds_d1ZO
              of {
-             PrelTup.(,,){-63,p-}{i} x_a16u xs_a16v ys_a16w  ->
-             x_a16u;} } in
-       let {
-         xs_a16v  :: 
-             t{-a16I-}
+             PrelTup.(,,){-63,w-}{i} x_a10c xs_a10d ys_a10e  ->
+             x_a10c;};
+         xs_a10d  ::  ta10j
          {-# L #-}
-         xs_a16v =
+         xs_a10d =
              case
-                 ds_d28P
+                 ds_d1ZO
              of {
-             PrelTup.(,,){-63,p-}{i} x_a16u xs_a16v ys_a16w  ->
-             xs_a16v;} } in
-       let {
-         ys_a16w  :: 
-             [t{-a16I-}]
+             PrelTup.(,,){-63,w-}{i} x_a10c xs_a10d ys_a10e  ->
+             xs_a10d;};
+         ys_a10e  ::  [ta10j]
          {-# L #-}
-         ys_a16w =
+         ys_a10e =
              case
-                 ds_d28P
+                 ds_d1ZO
              of {
-             PrelTup.(,,){-63,p-}{i} x_a16u xs_a16v ys_a16w  ->
-             ys_a16w;}
+             PrelTup.(,,){-63,w-}{i} x_a10c xs_a10d ys_a10e  ->
+             ys_a10e;};
        } in 
-         PrelTup.(,,){-63,p-}{i}
-             {_@_ t{-a16I-}
-              _@_ t{-a16I-}
-              _@_ [t{-a16I-}]
-              x_a16u
-              xs_a16v
-              ys_a16w}
-x{-r4n,x-}  :: 
-    _forall_ [t{-a16I-}] => t{-a16I-}
+         PrelTup.(,,){-63,w-}{i}
+             {_@_ ta10j _@_ ta10j _@_ [ta10j] x_a10c xs_a10d ys_a10e}
+x{-r4k,x-}  ::  _forall_ [ta10j] => ta10j
 {-# L #-}
-x{-r4n,x-} =
-    _/\_ t{-a16I-} ->
+x{-r4k,x-} =
+    _/\_ ta10j ->
        case
-           ds_d1Rr
-               _@_ t{-a16I-}
+           ds_d1Ka _@_ ta10j
        of {
-       PrelTup.(,,){-63,p-}{i} ds_d29s ds_d29u ds_d29t  ->
-       ds_d29s;}
-xs{-r4m,x-}  :: 
-    _forall_ [t{-a16I-}] => t{-a16I-}
+       PrelTup.(,,){-63,w-}{i} ds_d222 ds_d223 ds_d224  ->
+       ds_d222;}
+xs{-r4j,x-}  ::  _forall_ [ta10j] => ta10j
 {-# L #-}
-xs{-r4m,x-} =
-    _/\_ t{-a16I-} ->
+xs{-r4j,x-} =
+    _/\_ ta10j ->
        case
-           ds_d1Rr
-               _@_ t{-a16I-}
+           ds_d1Ka _@_ ta10j
        of {
-       PrelTup.(,,){-63,p-}{i} ds_d29L ds_d29J ds_d29K  ->
-       ds_d29J;}
-ys{-r4l,x-}  :: 
-    _forall_ [t{-a16I-}] => [t{-a16I-}]
+       PrelTup.(,,){-63,w-}{i} ds_d22k ds_d22j ds_d22l  ->
+       ds_d22j;}
+ys{-r4i,x-}  ::  _forall_ [ta10j] => [ta10j]
 {-# L #-}
-ys{-r4l,x-} =
-    _/\_ t{-a16I-} ->
+ys{-r4i,x-} =
+    _/\_ ta10j ->
        case
-           ds_d1Rr
-               _@_ t{-a16I-}
+           ds_d1Ka _@_ ta10j
        of {
-       PrelTup.(,,){-63,p-}{i} ds_d2a2 ds_d2a1 ds_d2a0  ->
-       ds_d2a0;}
-ds_d1RI  :: 
-    _forall_ [t{-a16Y-}] => (t{-a16Y-}, t{-a16Y-}, [t{-a16Y-}])
+       PrelTup.(,,){-63,w-}{i} ds_d22B ds_d22C ds_d22A  ->
+       ds_d22A;}
+ds_d1Kr  ::  _forall_ [ta10z] => (ta10z, ta10z, [ta10z])
 {-# L #-}
-ds_d1RI =
-    _/\_ t{-a16Y-} ->
-       let { ds_d2bs  :: 
-                 (t{-a16Y-}, t{-a16Y-}, [t{-a16Y-}])
-             {-# L #-}
-             ds_d2bs =
-         let {
-           ds_d2aL  :: 
-               [t{-a16Y-}]
-           {-# L #-}
-           ds_d2aL =
-               PrelBase.[]{-5i,p-}{i}
-                   _@_ t{-a16Y-} } in
-         let {
-           fail_d2aM  :: 
-               (t{-a16Y-}, t{-a16Y-}, [t{-a16Y-}])
-           {-# L #-}
-           fail_d2aM =
-               GHCerr.irrefutPatError{-8g,p-}
-                   _@_ (t{-a16Y-}, t{-a16Y-}, [t{-a16Y-}])
-                   _string_ "ds020.hs:29|(x1 PrelBase.: (xs1 PrelBase.: ys1))"
-         } in 
-           case ds_d2aL of {
-             PrelBase.[]{-5i,p-}{i} ->
-                 fail_d2aM;
-             PrelBase.:{-55,p-}{i} x1_a16K ds_d2aZ ->
-                 case ds_d2aZ of {
-                   PrelBase.[]{-5i,p-}{i} ->
-                       fail_d2aM;
-                   PrelBase.:{-55,p-}{i} xs1_a16L ys1_a16M ->
-                       PrelTup.(,,){-63,p-}{i}
-                           {_@_ t{-a16Y-}
-                            _@_ t{-a16Y-}
-                            _@_ [t{-a16Y-}]
-                            x1_a16K
-                            xs1_a16L
-                            ys1_a16M};
-                 };
-           }
-       } in
-       let {
-         x1_a16K  :: 
-             t{-a16Y-}
+ds_d1Kr =
+    _/\_ ta10z ->
+       _letrec_ {
+         ds_d22O  ::  (ta10z, ta10z, [ta10z])
+         {-# L #-}
+         ds_d22O =
+             let {
+               ds_d238  ::  [ta10z]
+               {-# L #-}
+               ds_d238 =
+                   PrelBase.[]{-5i,w-}{i} _@_ ta10z } in
+             let {
+               fail_d23l  ::  (ta10z, ta10z, [ta10z])
+               {-# L #-}
+               fail_d23l =
+                   GHCerr.irrefutPatError{-8g,w-}
+                       _@_ (ta10z, ta10z, [ta10z])
+                       _string_ "ds020.hs:29|(x1 PrelBase.: (xs1 PrelBase.: ys1))"
+             } in 
+               case ds_d238 of {
+                 PrelBase.[]{-5i,w-}{i} -> fail_d23l;
+                 PrelBase.:{-55,w-}{i} x1_a10s ds_d23y ->
+                     case ds_d23y of {
+                       PrelBase.[]{-5i,w-}{i} -> fail_d23l;
+                       PrelBase.:{-55,w-}{i} xs1_a10t ys1_a10u ->
+                           PrelTup.(,,){-63,w-}{i}
+                               {_@_ ta10z _@_ ta10z _@_ [ta10z] x1_a10s xs1_a10t ys1_a10u};
+                     };
+               };
+         x1_a10s  ::  ta10z
          {-# L #-}
-         x1_a16K =
+         x1_a10s =
              case
-                 ds_d2bs
+                 ds_d22O
              of {
-             PrelTup.(,,){-63,p-}{i} x1_a16K xs1_a16L ys1_a16M  ->
-             x1_a16K;} } in
-       let {
-         xs1_a16L  :: 
-             t{-a16Y-}
+             PrelTup.(,,){-63,w-}{i} x1_a10s xs1_a10t ys1_a10u  ->
+             x1_a10s;};
+         xs1_a10t  ::  ta10z
          {-# L #-}
-         xs1_a16L =
+         xs1_a10t =
              case
-                 ds_d2bs
+                 ds_d22O
              of {
-             PrelTup.(,,){-63,p-}{i} x1_a16K xs1_a16L ys1_a16M  ->
-             xs1_a16L;} } in
-       let {
-         ys1_a16M  :: 
-             [t{-a16Y-}]
+             PrelTup.(,,){-63,w-}{i} x1_a10s xs1_a10t ys1_a10u  ->
+             xs1_a10t;};
+         ys1_a10u  ::  [ta10z]
          {-# L #-}
-         ys1_a16M =
+         ys1_a10u =
              case
-                 ds_d2bs
+                 ds_d22O
              of {
-             PrelTup.(,,){-63,p-}{i} x1_a16K xs1_a16L ys1_a16M  ->
-             ys1_a16M;}
+             PrelTup.(,,){-63,w-}{i} x1_a10s xs1_a10t ys1_a10u  ->
+             ys1_a10u;};
        } in 
-         PrelTup.(,,){-63,p-}{i}
-             {_@_ t{-a16Y-}
-              _@_ t{-a16Y-}
-              _@_ [t{-a16Y-}]
-              x1_a16K
-              xs1_a16L
-              ys1_a16M}
-x1{-r4q,x-}  :: 
-    _forall_ [t{-a16Y-}] => t{-a16Y-}
+         PrelTup.(,,){-63,w-}{i}
+             {_@_ ta10z _@_ ta10z _@_ [ta10z] x1_a10s xs1_a10t ys1_a10u}
+x1{-r4n,x-}  ::  _forall_ [ta10z] => ta10z
 {-# L #-}
-x1{-r4q,x-} =
-    _/\_ t{-a16Y-} ->
+x1{-r4n,x-} =
+    _/\_ ta10z ->
        case
-           ds_d1RI
-               _@_ t{-a16Y-}
+           ds_d1Kr _@_ ta10z
        of {
-       PrelTup.(,,){-63,p-}{i} ds_d2c5 ds_d2c7 ds_d2c6  ->
-       ds_d2c5;}
-xs1{-r4p,x-}  :: 
-    _forall_ [t{-a16Y-}] => t{-a16Y-}
+       PrelTup.(,,){-63,w-}{i} ds_d24T ds_d24U ds_d24V  ->
+       ds_d24T;}
+xs1{-r4m,x-}  ::  _forall_ [ta10z] => ta10z
 {-# L #-}
-xs1{-r4p,x-} =
-    _/\_ t{-a16Y-} ->
+xs1{-r4m,x-} =
+    _/\_ ta10z ->
        case
-           ds_d1RI
-               _@_ t{-a16Y-}
+           ds_d1Kr _@_ ta10z
        of {
-       PrelTup.(,,){-63,p-}{i} ds_d2co ds_d2cm ds_d2cn  ->
-       ds_d2cm;}
-ys1{-r4o,x-}  :: 
-    _forall_ [t{-a16Y-}] => [t{-a16Y-}]
+       PrelTup.(,,){-63,w-}{i} ds_d25b ds_d25a ds_d25c  ->
+       ds_d25a;}
+ys1{-r4l,x-}  ::  _forall_ [ta10z] => [ta10z]
 {-# L #-}
-ys1{-r4o,x-} =
-    _/\_ t{-a16Y-} ->
+ys1{-r4l,x-} =
+    _/\_ ta10z ->
        case
-           ds_d1RI
-               _@_ t{-a16Y-}
+           ds_d1Kr _@_ ta10z
        of {
-       PrelTup.(,,){-63,p-}{i} ds_d2cF ds_d2cE ds_d2cD  ->
-       ds_d2cD;}
-ds_d1RZ  :: 
-    PrelBase.(){-40,p-}
+       PrelTup.(,,){-63,w-}{i} ds_d25s ds_d25t ds_d25r  ->
+       ds_d25r;}
+ds_d1KI  ::  PrelBase.(){-40,W-}
 {-# L #-}
-ds_d1RZ =
-    let { ds_d2dp  :: 
-             ([GHC.Void{-3T,p-}], [GHC.Void{-3T,p-}], [GHC.Void{-3T,p-}])
+ds_d1KI =
+    let { ds_d26d  ::  ([GHC.Void{-3T,W-}], [GHC.Void{-3T,W-}], [GHC.Void{-3T,W-}])
          {-# L #-}
-         ds_d2dp =
+         ds_d26d =
       let {
-       ds_d2cZ  :: 
-           [GHC.Void{-3T,p-}]
+       ds_d25N  ::  [GHC.Void{-3T,W-}]
        {-# L #-}
-       ds_d2cZ =
-           PrelBase.[]{-5i,p-}{i}
-               _@_ GHC.Void{-3T,p-} } in
+       ds_d25N =
+           PrelBase.[]{-5i,w-}{i} _@_ GHC.Void{-3T,W-} } in
       let {
-       ds_d2d3  :: 
-           [GHC.Void{-3T,p-}]
+       ds_d25R  ::  [GHC.Void{-3T,W-}]
        {-# L #-}
-       ds_d2d3 =
-           PrelBase.[]{-5i,p-}{i}
-               _@_ GHC.Void{-3T,p-} } in
+       ds_d25R =
+           PrelBase.[]{-5i,w-}{i} _@_ GHC.Void{-3T,W-} } in
       let {
-       ds_d2d7  :: 
-           [GHC.Void{-3T,p-}]
+       ds_d25V  ::  [GHC.Void{-3T,W-}]
        {-# L #-}
-       ds_d2d7 =
-           PrelBase.[]{-5i,p-}{i}
-               _@_ GHC.Void{-3T,p-}
+       ds_d25V =
+           PrelBase.[]{-5i,w-}{i} _@_ GHC.Void{-3T,W-}
       } in 
-       PrelTup.(,,){-63,p-}{i}
-           {_@_ [GHC.Void{-3T,p-}]
-            _@_ [GHC.Void{-3T,p-}]
-            _@_ [GHC.Void{-3T,p-}]
-            ds_d2cZ
-            ds_d2d3
-            ds_d2d7}
+       PrelTup.(,,){-63,w-}{i}
+           {_@_ [GHC.Void{-3T,W-}]
+            _@_ [GHC.Void{-3T,W-}]
+            _@_ [GHC.Void{-3T,W-}]
+            ds_d25N
+            ds_d25R
+            ds_d25V}
     } in
     case
-       ds_d2dp
+       ds_d26d
     of {
-    PrelTup.(,,){-63,p-}{i} ds_d2dQ ds_d2dP ds_d2dO  ->
-    let { ds_d2eg  :: 
-             PrelBase.(){-40,p-}
+    PrelTup.(,,){-63,w-}{i} ds_d26D ds_d26E ds_d26C  ->
+    let { ds_d274  ::  PrelBase.(){-40,W-}
          {-# L #-}
-         ds_d2eg =
+         ds_d274 =
       let {
-       fail_d2dR  :: 
-           PrelBase.(){-40,p-}
+       fail_d26F  ::  PrelBase.(){-40,W-}
        {-# L #-}
-       fail_d2dR =
-           GHCerr.irrefutPatError{-8g,p-}
-               _@_ PrelBase.(){-40,p-} _string_ "ds020.hs:27|PrelBase.[]"
+       fail_d26F =
+           GHCerr.irrefutPatError{-8g,w-}
+               _@_ PrelBase.(){-40,W-} _string_ "ds020.hs:27|PrelBase.[]"
       } in 
-       case ds_d2dO of {
-         PrelBase.:{-55,p-}{i} ds_d2dZ ds_d2dY ->
-             fail_d2dR;
-         PrelBase.[]{-5i,p-}{i} ->
-             PrelBase.(){-60,p-}{i}
-                 {};
+       case ds_d26C of {
+         PrelBase.:{-55,w-}{i} ds_d26M ds_d26N -> fail_d26F;
+         PrelBase.[]{-5i,w-}{i} -> PrelBase.(){-60,w-}{i} {};
        }
     } in
-    let { ds_d2eG  :: 
-             PrelBase.(){-40,p-}
+    let { ds_d27u  ::  PrelBase.(){-40,W-}
          {-# L #-}
-         ds_d2eG =
+         ds_d27u =
       let {
-       fail_d2eh  :: 
-           PrelBase.(){-40,p-}
+       fail_d275  ::  PrelBase.(){-40,W-}
        {-# L #-}
-       fail_d2eh =
-           GHCerr.irrefutPatError{-8g,p-}
-               _@_ PrelBase.(){-40,p-} _string_ "ds020.hs:27|PrelBase.[]"
+       fail_d275 =
+           GHCerr.irrefutPatError{-8g,w-}
+               _@_ PrelBase.(){-40,W-} _string_ "ds020.hs:27|PrelBase.[]"
       } in 
-       case ds_d2dP of {
-         PrelBase.:{-55,p-}{i} ds_d2ep ds_d2eo ->
-             fail_d2eh;
-         PrelBase.[]{-5i,p-}{i} ->
-             PrelBase.(){-60,p-}{i}
-                 {};
+       case ds_d26E of {
+         PrelBase.:{-55,w-}{i} ds_d27c ds_d27d -> fail_d275;
+         PrelBase.[]{-5i,w-}{i} -> PrelBase.(){-60,w-}{i} {};
        }
     } in
-    let { ds_d2uC  :: 
-             PrelBase.(){-40,p-}
+    let { ds_d2ql  ::  PrelBase.(){-40,W-}
          {-# L #-}
-         ds_d2uC =
+         ds_d2ql =
       let {
-       fail_d2eH  :: 
-           PrelBase.(){-40,p-}
+       fail_d27v  ::  PrelBase.(){-40,W-}
        {-# L #-}
-       fail_d2eH =
-           GHCerr.irrefutPatError{-8g,p-}
-               _@_ PrelBase.(){-40,p-} _string_ "ds020.hs:27|PrelBase.[]"
+       fail_d27v =
+           GHCerr.irrefutPatError{-8g,w-}
+               _@_ PrelBase.(){-40,W-} _string_ "ds020.hs:27|PrelBase.[]"
       } in 
-       case ds_d2dQ of {
-         PrelBase.:{-55,p-}{i} ds_d2eP ds_d2eO ->
-             fail_d2eH;
-         PrelBase.[]{-5i,p-}{i} ->
-             PrelBase.(){-60,p-}{i}
-                 {};
+       case ds_d26D of {
+         PrelBase.:{-55,w-}{i} ds_d27C ds_d27D -> fail_d27v;
+         PrelBase.[]{-5i,w-}{i} -> PrelBase.(){-60,w-}{i} {};
        }
     } in
-    PrelBase.(){-60,p-}{i}
-       {};}
-ds_d1S4  :: 
-    PrelBase.(){-40,p-}
+    PrelBase.(){-60,w-}{i} {};}
+ds_d1KN  ::  PrelBase.(){-40,W-}
 {-# L #-}
-ds_d1S4 =
-    let { ds_d2fM  :: 
-             ([GHC.Void{-3T,p-}], [GHC.Void{-3T,p-}], [GHC.Void{-3T,p-}])
+ds_d1KN =
+    let { ds_d28A  ::  ([GHC.Void{-3T,W-}], [GHC.Void{-3T,W-}], [GHC.Void{-3T,W-}])
          {-# L #-}
-         ds_d2fM =
+         ds_d28A =
       let {
-       ds_d2ff  :: 
-           [GHC.Void{-3T,p-}]
+       ds_d283  ::  [GHC.Void{-3T,W-}]
        {-# L #-}
-       ds_d2ff =
-           PrelBase.[]{-5i,p-}{i}
-               _@_ GHC.Void{-3T,p-} } in
+       ds_d283 =
+           PrelBase.[]{-5i,w-}{i} _@_ GHC.Void{-3T,W-} } in
       let {
-       ds_d2fj  :: 
-           [GHC.Void{-3T,p-}]
+       ds_d287  ::  [GHC.Void{-3T,W-}]
        {-# L #-}
-       ds_d2fj =
-           PrelBase.[]{-5i,p-}{i}
-               _@_ GHC.Void{-3T,p-} } in
+       ds_d287 =
+           PrelBase.[]{-5i,w-}{i} _@_ GHC.Void{-3T,W-} } in
       let {
-       ds_d2fn  :: 
-           [GHC.Void{-3T,p-}]
+       ds_d28b  ::  [GHC.Void{-3T,W-}]
        {-# L #-}
-       ds_d2fn =
-           PrelBase.[]{-5i,p-}{i}
-               _@_ GHC.Void{-3T,p-}
+       ds_d28b =
+           PrelBase.[]{-5i,w-}{i} _@_ GHC.Void{-3T,W-}
       } in 
-       PrelTup.(,,){-63,p-}{i}
-           {_@_ [GHC.Void{-3T,p-}]
-            _@_ [GHC.Void{-3T,p-}]
-            _@_ [GHC.Void{-3T,p-}]
-            ds_d2ff
-            ds_d2fj
-            ds_d2fn}
+       PrelTup.(,,){-63,w-}{i}
+           {_@_ [GHC.Void{-3T,W-}]
+            _@_ [GHC.Void{-3T,W-}]
+            _@_ [GHC.Void{-3T,W-}]
+            ds_d283
+            ds_d287
+            ds_d28b}
     } in
     let {
-      fail_d2fN  :: 
-         PrelBase.(){-40,p-}
+      fail_d28B  ::  PrelBase.(){-40,W-}
       {-# L #-}
-      fail_d2fN =
-         GHCerr.irrefutPatError{-8g,p-}
-             _@_ PrelBase.(){-40,p-}
+      fail_d28B =
+         GHCerr.irrefutPatError{-8g,w-}
+             _@_ PrelBase.(){-40,W-}
              _string_ "ds020.hs:26|(PrelBase.[], PrelBase.[], PrelBase.[])"
     } in 
       case
-         ds_d2fM
+         ds_d28A
       of {
-      PrelTup.(,,){-63,p-}{i} ds_d2fW ds_d2fY ds_d2fX  ->
-      case ds_d2fW of {
-       PrelBase.:{-55,p-}{i} ds_d2g6 ds_d2g5 ->
-           fail_d2fN;
-       PrelBase.[]{-5i,p-}{i} ->
-           case ds_d2fY of {
-             PrelBase.:{-55,p-}{i} ds_d2gk ds_d2gj ->
-                 fail_d2fN;
-             PrelBase.[]{-5i,p-}{i} ->
-                 case ds_d2fX of {
-                   PrelBase.:{-55,p-}{i} ds_d2gy ds_d2gx ->
-                       fail_d2fN;
-                   PrelBase.[]{-5i,p-}{i} ->
-                       PrelBase.(){-60,p-}{i}
-                           {};
+      PrelTup.(,,){-63,w-}{i} ds_d28K ds_d28L ds_d28M  ->
+      case ds_d28K of {
+       PrelBase.:{-55,w-}{i} ds_d28T ds_d28U -> fail_d28B;
+       PrelBase.[]{-5i,w-}{i} ->
+           case ds_d28L of {
+             PrelBase.:{-55,w-}{i} ds_d297 ds_d298 -> fail_d28B;
+             PrelBase.[]{-5i,w-}{i} ->
+                 case ds_d28M of {
+                   PrelBase.:{-55,w-}{i} ds_d29l ds_d29m -> fail_d28B;
+                   PrelBase.[]{-5i,w-}{i} -> PrelBase.(){-60,w-}{i} {};
                  };
            };
       };}
-g{-r4r,x-}  :: 
-    _forall_ [t{-a17G-} t{-a17I-}] => [t{-a17G-}] -> [t{-a17I-}]
+g{-r4o,x-}  ::  _forall_ [ta11C ta11F] => [ta11C] -> [ta11F]
 {-# L #-}
-g{-r4r,x-} =
-    _/\_ t{-a17G-} t{-a17I-} -> \ ds_d2ha  :: 
-                                     [t{-a17G-}]
-                                 {-# L #-}
-                                 ds_d2ha ->
-       let { ds_d2uD  :: 
-                 PrelBase.(){-40,p-}
-             {-# L #-}
-             ds_d2uD =
-         let { ds_d2uE  :: 
-                   PrelBase.(){-40,p-}
+g{-r4o,x-} =
+    _/\_ ta11C ta11F ->
+       _letrec_ {
+         g_a11w  ::  [ta11C] -> [ta11F]
+         {-# L #-}
+         g_a11w =
+             \ ds_d2a5  ::  [ta11C]
                {-# L #-}
-               ds_d2uE =
-           let { ds_d2uF  :: 
-                     PrelBase.(){-40,p-}
-                 {-# L #-}
-                 ds_d2uF =
-             let { ds_d2uG  :: 
-                       PrelBase.(){-40,p-}
-                   {-# L #-}
-                   ds_d2uG =
-               let {
-                 fail_d2hb  :: 
-                     PrelBase.(){-40,p-}
-                 {-# L #-}
-                 fail_d2hb =
-                     GHCerr.irrefutPatError{-8g,p-}
-                         _@_ PrelBase.(){-40,p-} _string_ "ds020.hs:22|PrelBase.[]"
-               } in 
-                 case ds_d2ha of {
-                   PrelBase.:{-55,p-}{i} ds_d2hj ds_d2hi ->
-                       fail_d2hb;
-                   PrelBase.[]{-5i,p-}{i} ->
-                       PrelBase.(){-60,p-}{i}
-                           {};
-                 }
-             } in
-             PrelBase.(){-60,p-}{i}
-                 {}
-           } in
-           PrelBase.(){-60,p-}{i}
-               {}
-         } in
-         PrelBase.(){-60,p-}{i}
-             {}
-       } in
-       PrelBase.[]{-5i,p-}{i}
-           _@_ t{-a17I-}
-f{-r4s,x-}  :: 
-    _forall_ [t{-a17W-} t{-a17Y-}] => [t{-a17W-}] -> [t{-a17Y-}]
+               ds_d2a5 ->
+                 let { ds_d2qm  ::  PrelBase.(){-40,W-}
+                       {-# L #-}
+                       ds_d2qm =
+                   let { ds_d2qn  ::  PrelBase.(){-40,W-}
+                         {-# L #-}
+                         ds_d2qn =
+                     let { ds_d2qo  ::  PrelBase.(){-40,W-}
+                           {-# L #-}
+                           ds_d2qo =
+                       let { ds_d2qp  ::  PrelBase.(){-40,W-}
+                             {-# L #-}
+                             ds_d2qp =
+                         let {
+                           fail_d2a6  ::  PrelBase.(){-40,W-}
+                           {-# L #-}
+                           fail_d2a6 =
+                               GHCerr.irrefutPatError{-8g,w-}
+                                   _@_ PrelBase.(){-40,W-} _string_ "ds020.hs:22|PrelBase.[]"
+                         } in 
+                           case ds_d2a5 of {
+                             PrelBase.:{-55,w-}{i} ds_d2ad ds_d2ae -> fail_d2a6;
+                             PrelBase.[]{-5i,w-}{i} -> PrelBase.(){-60,w-}{i} {};
+                           }
+                       } in
+                       PrelBase.(){-60,w-}{i} {}
+                     } in
+                     PrelBase.(){-60,w-}{i} {}
+                   } in
+                   PrelBase.(){-60,w-}{i} {}
+                 } in
+                 PrelBase.[]{-5i,w-}{i} _@_ ta11F;
+       } in  g_a11w
+f{-r4p,x-}  ::  _forall_ [ta11W ta11Y] => [ta11W] -> [ta11Y]
 {-# L #-}
-f{-r4s,x-} =
-    _/\_ t{-a17W-} t{-a17Y-} -> \ x_r3U  :: 
-                                     [t{-a17W-}]
-                                 {-# L #-}
-                                 x_r3U ->
-       let { x_r3U  :: 
-                 [t{-a17W-}]
-             {-# L #-}
-             x_r3U =
-         let {
-           fail_d2hN  :: 
-               [t{-a17W-}]
-           {-# L #-}
-           fail_d2hN =
-               GHCerr.irrefutPatError{-8g,p-}
-                   _@_ [t{-a17W-}] _string_ "ds020.hs:19|(x@PrelBase.[])"
-         } in 
-           case x_r3U of {
-             PrelBase.:{-55,p-}{i} ds_d2hV ds_d2hU ->
-                 fail_d2hN;
-             PrelBase.[]{-5i,p-}{i} ->
-                 x_r3U;
-           }
-       } in
-       PrelBase.[]{-5i,p-}{i}
-           _@_ t{-a17Y-}
-d{-r4t,x-}  :: 
-    _forall_
-    [t{-a18b-} t{-a18D-}]
-    =>
-    {PrelBase.Num{-2c,p-} t{-a18b-}}
-    -> {PrelBase.Num{-2c,p-} t{-a18D-}}
-    -> {PrelBase.Ord{-2d,p-} t{-a18b-}}
-    -> t{-a18b-}
-    -> t{-a18D-}
+f{-r4p,x-} =
+    _/\_ ta11W ta11Y ->
+       _letrec_ {
+         f_a11H  ::  [ta11W] -> [ta11Y]
+         {-# L #-}
+         f_a11H =
+             \ x_r3R  ::  [ta11W]
+               {-# L #-}
+               x_r3R ->
+                 let { x_r3R  ::  [ta11W]
+                       {-# L #-}
+                       x_r3R =
+                   let {
+                     fail_d2aQ  ::  [ta11W]
+                     {-# L #-}
+                     fail_d2aQ =
+                         GHCerr.irrefutPatError{-8g,w-}
+                             _@_ [ta11W] _string_ "ds020.hs:19|(x@PrelBase.[])"
+                   } in 
+                     case x_r3R of {
+                       PrelBase.:{-55,w-}{i} ds_d2aX ds_d2aY -> fail_d2aQ;
+                       PrelBase.[]{-5i,w-}{i} -> x_r3R;
+                     }
+                 } in
+                 PrelBase.[]{-5i,w-}{i} _@_ ta11Y;
+       } in  f_a11H
+d{-r4q,x-}  ::  _forall_
+               [ta125 ta12z]
+               =>
+               {PrelBase.Num{-2c,p-} ta125}
+               -> {PrelBase.Num{-2c,p-} ta12z}
+               -> {PrelBase.Ord{-2d,p-} ta125}
+               -> ta125
+               -> ta12z
 {-# L #-}
-d{-r4t,x-} =
-    _/\_ t{-a18b-} t{-a18D-} -> \ d.Num_a18H  :: 
-                                     {PrelBase.Num{-2c,p-} t{-a18b-}}
-                                 {-# L #-}
-                                 d.Num_a18H d.Num_a18M  :: 
-                                                {PrelBase.Num{-2c,p-} t{-a18D-}}
-                                            {-# L #-}
-                                            d.Num_a18M d.Ord_a18R  :: 
-                                                           {PrelBase.Ord{-2d,p-} t{-a18b-}}
+d{-r4q,x-} =
+    _/\_ ta125 ta12z -> \ d.Num_a12C  ::  {PrelBase.Num{-2c,p-} ta125}
+                         {-# L #-}
+                         d.Num_a12C d.Num_a12H  ::  {PrelBase.Num{-2c,p-} ta12z}
+                                    {-# L #-}
+                                    d.Num_a12H d.Ord_a12M  ::  {PrelBase.Ord{-2d,p-} ta125}
+                                               {-# L #-}
+                                               d.Ord_a12M ->
+       _letrec_ {
+         d.Eq_a12E  ::  {PrelBase.Eq{-23,p-} ta125}
+         {-# L #-}
+         d.Eq_a12E =
+             PrelBase.scsel_OrdPrelBaseEq{-a2bU,p-} _@_ ta125 d.Ord_a12M;
+         fromInt_a2bq  ::  PrelBase.Int{-3g,W-} -> ta125
+         {-# L #-}
+         fromInt_a2bq =
+             PrelBase.fromInt{-8R,p-} _@_ ta125 d.Num_a12C;
+         lit_a2br  ::  ta125
+         {-# L #-}
+         lit_a2br =
+             let {
+               ds_d2e5  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_d2e5 =
+                   PrelBase.I#{-5b,w-}{i} 11
+             } in  fromInt_a2bq ds_d2e5;
+         ==_a2bs  ::  ta125 -> ta125 -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a2bs =
+             PrelBase.=={-8Y,p-} _@_ ta125 d.Eq_a12E;
+         fromInt_a2bt  ::  PrelBase.Int{-3g,W-} -> ta12z
+         {-# L #-}
+         fromInt_a2bt =
+             PrelBase.fromInt{-8R,p-} _@_ ta12z d.Num_a12H;
+         lit_a2bu  ::  ta12z
+         {-# L #-}
+         lit_a2bu =
+             let {
+               ds_d2ez  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_d2ez =
+                   PrelBase.I#{-5b,w-}{i} 4
+             } in  fromInt_a2bt ds_d2ez;
+         fromInt_a2bv  ::  PrelBase.Int{-3g,W-} -> ta125
+         {-# L #-}
+         fromInt_a2bv =
+             fromInt_a2bq;
+         lit_a2bw  ::  ta125
+         {-# L #-}
+         lit_a2bw =
+             let {
+               ds_d2eO  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_d2eO =
+                   PrelBase.I#{-5b,w-}{i} 12
+             } in  fromInt_a2bv ds_d2eO;
+         ==_a2bx  ::  ta125 -> ta125 -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a2bx =
+             ==_a2bs;
+         fromInt_a2by  ::  PrelBase.Int{-3g,W-} -> ta12z
+         {-# L #-}
+         fromInt_a2by =
+             fromInt_a2bt;
+         lit_a2bz  ::  ta12z
+         {-# L #-}
+         lit_a2bz =
+             let {
+               ds_d2f4  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_d2f4 =
+                   PrelBase.I#{-5b,w-}{i} 3
+             } in  fromInt_a2by ds_d2f4;
+         fromInt_a2bA  ::  PrelBase.Int{-3g,W-} -> ta125
+         {-# L #-}
+         fromInt_a2bA =
+             fromInt_a2bq;
+         lit_a2bB  ::  ta125
+         {-# L #-}
+         lit_a2bB =
+             let {
+               ds_d2fj  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_d2fj =
+                   PrelBase.I#{-5b,w-}{i} 4
+             } in  fromInt_a2bA ds_d2fj;
+         >=_a2bC  ::  ta125 -> ta125 -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         >=_a2bC =
+             PrelBase.>={-8Z,p-} _@_ ta125 d.Ord_a12M;
+         d.Num_a12O  ::  {PrelBase.Num{-2c,p-} ta125}
+         {-# L #-}
+         d.Num_a12O =
+             d.Num_a12C;
+         -_a2bD  ::  ta125 -> ta125 -> ta125
+         {-# L #-}
+         -_a2bD =
+             PrelBase.-{-817,p-} _@_ ta125 d.Num_a12O;
+         fromInt_a2bE  ::  PrelBase.Int{-3g,W-} -> ta12z
+         {-# L #-}
+         fromInt_a2bE =
+             fromInt_a2bt;
+         lit_a2bF  ::  ta12z
+         {-# L #-}
+         lit_a2bF =
+             let {
+               ds_d2fP  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_d2fP =
+                   PrelBase.I#{-5b,w-}{i} 2
+             } in  fromInt_a2bE ds_d2fP;
+         fromInt_a2bG  ::  PrelBase.Int{-3g,W-} -> ta125
+         {-# L #-}
+         fromInt_a2bG =
+             fromInt_a2bq;
+         lit_a2bH  ::  ta125
+         {-# L #-}
+         lit_a2bH =
+             let {
+               ds_d2g4  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_d2g4 =
+                   PrelBase.I#{-5b,w-}{i} 43
+             } in  fromInt_a2bG ds_d2g4;
+         >=_a2bI  ::  ta125 -> ta125 -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         >=_a2bI =
+             >=_a2bC;
+         -_a2bJ  ::  ta125 -> ta125 -> ta125
+         {-# L #-}
+         -_a2bJ =
+             -_a2bD;
+         fromInt_a2bK  ::  PrelBase.Int{-3g,W-} -> ta12z
+         {-# L #-}
+         fromInt_a2bK =
+             fromInt_a2bt;
+         lit_a2bL  ::  ta12z
+         {-# L #-}
+         lit_a2bL =
+             let {
+               ds_d2gl  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_d2gl =
+                   PrelBase.I#{-5b,w-}{i} 1
+             } in  fromInt_a2bK ds_d2gl;
+         fromInt_a2bM  ::  PrelBase.Int{-3g,W-} -> ta125
+         {-# L #-}
+         fromInt_a2bM =
+             fromInt_a2bq;
+         lit_a2bN  ::  ta125
+         {-# L #-}
+         lit_a2bN =
+             let {
+               ds_d2gA  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_d2gA =
+                   PrelBase.I#{-5b,w-}{i} 999
+             } in  fromInt_a2bM ds_d2gA;
+         >=_a2bO  ::  ta125 -> ta125 -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         >=_a2bO =
+             >=_a2bC;
+         -_a2bP  ::  ta125 -> ta125 -> ta125
+         {-# L #-}
+         -_a2bP =
+             -_a2bD;
+         fromInt_a2bQ  ::  PrelBase.Int{-3g,W-} -> ta12z
+         {-# L #-}
+         fromInt_a2bQ =
+             fromInt_a2bt;
+         lit_a2bR  ::  ta12z
+         {-# L #-}
+         lit_a2bR =
+             let {
+               ds_d2gR  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_d2gR =
+                   PrelBase.I#{-5b,w-}{i} 0
+             } in  fromInt_a2bQ ds_d2gR;
+         d_a120  ::  ta125 -> ta12z
+         {-# L #-}
+         d_a120 =
+             \ ds_d2hp  ::  ta125
+               {-# L #-}
+               ds_d2hp ->
+                 let { fail_d2ig  ::  ta12z
+                       {-# L #-}
+                       fail_d2ig =
+                   let { ds_d2h9  ::  PrelBase.(){-40,W-}
+                         {-# L #-}
+                         ds_d2h9 =
+                     let {
+                       fail_d2hC  ::  PrelBase.(){-40,W-}
+                       {-# L #-}
+                       fail_d2hC =
+                           GHCerr.irrefutPatError{-8g,w-}
+                               _@_ PrelBase.(){-40,W-} _string_ "ds020.hs:13|(n+4)"
+                     } in 
+                       case
+                           (\ ds_d2hw  ::  ta125
+                              {-# L #-}
+                              ds_d2hw ->
+                                >=_a2bC ds_d2hw lit_a2bB)
+                               ds_d2hp
+                       of {
+                         PrelBase.True{-5E,w-}{i} ->
+                             let {
+                               n_r3L  ::  ta125
+                               {-# L #-}
+                               n_r3L =
+                                   (\ ds_d2hV  ::  ta125
+                                      {-# L #-}
+                                      ds_d2hV ->
+                                        -_a2bD ds_d2hV lit_a2bB)
+                                       ds_d2hp
+                             } in  PrelBase.(){-60,w-}{i} {};
+                         PrelBase.False{-58,w-}{i} -> fail_d2hC;
+                       }
+                   } in
+                   lit_a2bF
+                 } in
+                 let {
+                   fail_d2iA  ::  ta12z
+                   {-# L #-}
+                   fail_d2iA =
+                       case ==_a2bx lit_a2bw ds_d2hp of {
+                         PrelBase.True{-5E,w-}{i} -> lit_a2bz;
+                         PrelBase.False{-58,w-}{i} -> fail_d2ig;
+                       }
+                 } in 
+                   case ==_a2bs lit_a2br ds_d2hp of {
+                     PrelBase.True{-5E,w-}{i} -> lit_a2bu;
+                     PrelBase.False{-58,w-}{i} -> fail_d2iA;
+                   };
+       } in  d_a120
+c{-r4r,x-}  ::  _forall_
+               [ta13o ta13b ta13i ta13q]
+               =>
+               {PrelNum.Fractional{-26,p-} ta13i}
+               -> {PrelBase.Num{-2c,p-} ta13b}
+               -> ta13q
+               -> ta13o
+               -> ta13b
+               -> ta13i
+               -> ta13q
+{-# L #-}
+c{-r4r,x-} =
+    _/\_ ta13o ta13b ta13i ta13q -> \ d.Fractional_a13y  ::  {PrelNum.Fractional{-26,p-} ta13i}
+                                     {-# L #-}
+                                     d.Fractional_a13y d.Num_a13t  ::  {PrelBase.Num{-2c,p-} ta13b}
                                                        {-# L #-}
-                                                       d.Ord_a18R ->
-       let {
-         d.Eq_a18J  :: 
-             {PrelBase.Eq{-23,p-} t{-a18b-}}
-         {-# L #-}
-         d.Eq_a18J =
-             PrelBase.scsel_OrdPrelBaseEq{-a2jI,p-}
-                 _@_ t{-a18b-} d.Ord_a18R } in
-       let {
-         fromInt_a2jy  :: 
-             PrelBase.Int{-3g,p-} -> t{-a18b-}
-         {-# L #-}
-         fromInt_a2jy =
-             PrelBase.fromInt{-8R,p-}
-                 _@_ t{-a18b-} d.Num_a18H } in
-       let { lit_a2jx  :: 
-                 t{-a18b-}
-             {-# L #-}
-             lit_a2jx =
-         let {
-           ds_d2jX  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_d2jX =
-               PrelBase.I#{-5b,p-}{i}
-                   11
-         } in 
-           fromInt_a2jy
-               ds_d2jX
-       } in
-       let {
-         ==_a2jw  :: 
-             t{-a18b-} -> t{-a18b-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a2jw =
-             PrelBase.=={-8Y,p-}
-                 _@_ t{-a18b-} d.Eq_a18J } in
-       let {
-         fromInt_a2jv  :: 
-             PrelBase.Int{-3g,p-} -> t{-a18D-}
-         {-# L #-}
-         fromInt_a2jv =
-             PrelBase.fromInt{-8R,p-}
-                 _@_ t{-a18D-} d.Num_a18M } in
-       let { lit_a2ju  :: 
-                 t{-a18D-}
-             {-# L #-}
-             lit_a2ju =
-         let {
-           ds_d2kr  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_d2kr =
-               PrelBase.I#{-5b,p-}{i}
-                   4
-         } in 
-           fromInt_a2jv
-               ds_d2kr
-       } in
-       let {
-         fromInt_a2jt  :: 
-             PrelBase.Int{-3g,p-} -> t{-a18b-}
-         {-# L #-}
-         fromInt_a2jt =
-             fromInt_a2jy } in
-       let { lit_a2js  :: 
-                 t{-a18b-}
-             {-# L #-}
-             lit_a2js =
-         let {
-           ds_d2kG  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_d2kG =
-               PrelBase.I#{-5b,p-}{i}
-                   12
-         } in 
-           fromInt_a2jt
-               ds_d2kG
-       } in
-       let {
-         ==_a2jr  :: 
-             t{-a18b-} -> t{-a18b-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a2jr =
-             ==_a2jw } in
-       let {
-         fromInt_a2jq  :: 
-             PrelBase.Int{-3g,p-} -> t{-a18D-}
-         {-# L #-}
-         fromInt_a2jq =
-             fromInt_a2jv } in
-       let { lit_a2jp  :: 
-                 t{-a18D-}
-             {-# L #-}
-             lit_a2jp =
-         let {
-           ds_d2kW  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_d2kW =
-               PrelBase.I#{-5b,p-}{i}
-                   3
-         } in 
-           fromInt_a2jq
-               ds_d2kW
-       } in
-       let {
-         fromInt_a2jo  :: 
-             PrelBase.Int{-3g,p-} -> t{-a18b-}
-         {-# L #-}
-         fromInt_a2jo =
-             fromInt_a2jy } in
-       let { lit_a2jn  :: 
-                 t{-a18b-}
-             {-# L #-}
-             lit_a2jn =
-         let {
-           ds_d2lb  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_d2lb =
-               PrelBase.I#{-5b,p-}{i}
-                   4
-         } in 
-           fromInt_a2jo
-               ds_d2lb
-       } in
-       let {
-         >=_a2jm  :: 
-             t{-a18b-} -> t{-a18b-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         >=_a2jm =
-             PrelBase.>={-8Z,p-}
-                 _@_ t{-a18b-} d.Ord_a18R } in
-       let {
-         d.Num_a18T  :: 
-             {PrelBase.Num{-2c,p-} t{-a18b-}}
-         {-# L #-}
-         d.Num_a18T =
-             d.Num_a18H } in
-       let {
-         -_a2jl  :: 
-             t{-a18b-} -> t{-a18b-} -> t{-a18b-}
-         {-# L #-}
-         -_a2jl =
-             PrelBase.-{-817,p-}
-                 _@_ t{-a18b-} d.Num_a18T } in
-       let {
-         fromInt_a2jk  :: 
-             PrelBase.Int{-3g,p-} -> t{-a18D-}
-         {-# L #-}
-         fromInt_a2jk =
-             fromInt_a2jv } in
-       let { lit_a2jj  :: 
-                 t{-a18D-}
-             {-# L #-}
-             lit_a2jj =
-         let {
-           ds_d2lH  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_d2lH =
-               PrelBase.I#{-5b,p-}{i}
-                   2
-         } in 
-           fromInt_a2jk
-               ds_d2lH
-       } in
-       let {
-         fromInt_a2ji  :: 
-             PrelBase.Int{-3g,p-} -> t{-a18b-}
-         {-# L #-}
-         fromInt_a2ji =
-             fromInt_a2jy } in
-       let { lit_a2jh  :: 
-                 t{-a18b-}
-             {-# L #-}
-             lit_a2jh =
-         let {
-           ds_d2lW  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_d2lW =
-               PrelBase.I#{-5b,p-}{i}
-                   43
-         } in 
-           fromInt_a2ji
-               ds_d2lW
-       } in
-       let {
-         >=_a2jg  :: 
-             t{-a18b-} -> t{-a18b-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         >=_a2jg =
-             >=_a2jm } in
-       let {
-         -_a2jf  :: 
-             t{-a18b-} -> t{-a18b-} -> t{-a18b-}
-         {-# L #-}
-         -_a2jf =
-             -_a2jl } in
-       let {
-         fromInt_a2je  :: 
-             PrelBase.Int{-3g,p-} -> t{-a18D-}
-         {-# L #-}
-         fromInt_a2je =
-             fromInt_a2jv } in
-       let { lit_a2jd  :: 
-                 t{-a18D-}
-             {-# L #-}
-             lit_a2jd =
-         let {
-           ds_d2md  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_d2md =
-               PrelBase.I#{-5b,p-}{i}
-                   1
-         } in 
-           fromInt_a2je
-               ds_d2md
-       } in
-       let {
-         fromInt_a2jc  :: 
-             PrelBase.Int{-3g,p-} -> t{-a18b-}
-         {-# L #-}
-         fromInt_a2jc =
-             fromInt_a2jy } in
-       let { lit_a2jb  :: 
-                 t{-a18b-}
-             {-# L #-}
-             lit_a2jb =
-         let {
-           ds_d2ms  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_d2ms =
-               PrelBase.I#{-5b,p-}{i}
-                   999
-         } in 
-           fromInt_a2jc
-               ds_d2ms
-       } in
-       let {
-         >=_a2ja  :: 
-             t{-a18b-} -> t{-a18b-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         >=_a2ja =
-             >=_a2jm } in
-       let {
-         -_a2j9  :: 
-             t{-a18b-} -> t{-a18b-} -> t{-a18b-}
-         {-# L #-}
-         -_a2j9 =
-             -_a2jl } in
-       let {
-         fromInt_a2j8  :: 
-             PrelBase.Int{-3g,p-} -> t{-a18D-}
+                                                       d.Num_a13t ->
+       _letrec_ {
+         d.Eq_a13v  ::  {PrelBase.Eq{-23,p-} ta13b}
+         {-# L #-}
+         d.Eq_a13v =
+             PrelBase.scsel_NumPrelBaseEq{-a2jg,p-} _@_ ta13b d.Num_a13t;
+         d.Num_a155  ::  {PrelBase.Num{-2c,p-} ta13i}
+         {-# L #-}
+         d.Num_a155 =
+             PrelNum.scsel_FractionalPrelBaseNum{-a2jZ,p-}
+                 _@_ ta13i d.Fractional_a13y;
+         d.Eq_a13A  ::  {PrelBase.Eq{-23,p-} ta13i}
+         {-# L #-}
+         d.Eq_a13A =
+             PrelBase.scsel_NumPrelBaseEq{-a2jg,p-} _@_ ta13i d.Num_a155;
+         fromInt_a2j8  ::  PrelBase.Int{-3g,W-} -> ta13b
          {-# L #-}
          fromInt_a2j8 =
-             fromInt_a2jv } in
-       let { lit_a2j7  :: 
-                 t{-a18D-}
-             {-# L #-}
-             lit_a2j7 =
-         let {
-           ds_d2mJ  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_d2mJ =
-               PrelBase.I#{-5b,p-}{i}
-                   0
-         } in 
-           fromInt_a2j8
-               ds_d2mJ
-       } in
-       \ ds_d2ng  :: 
-             t{-a18b-}
-         {-# L #-}
-         ds_d2ng ->
-           let { fail_d2o7  :: 
-                     t{-a18D-}
-                 {-# L #-}
-                 fail_d2o7 =
-             let { ds_d2n0  :: 
-                       PrelBase.(){-40,p-}
+             PrelBase.fromInt{-8R,p-} _@_ ta13b d.Num_a13t;
+         lit_a2j9  ::  ta13b
+         {-# L #-}
+         lit_a2j9 =
+             let {
+               ds_d2km  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_d2km =
+                   PrelBase.I#{-5b,w-}{i} 11111
+             } in  fromInt_a2j8 ds_d2km;
+         ==_a2ja  ::  ta13b -> ta13b -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a2ja =
+             PrelBase.=={-8Y,p-} _@_ ta13b d.Eq_a13v;
+         fromRational_a2jb  ::  PrelNum.Rational{-3r,p-} -> ta13i
+         {-# L #-}
+         fromRational_a2jb =
+             PrelNum.fromRational{-8T,p-} _@_ ta13i d.Fractional_a13y;
+         lit_a2jc  ::  ta13i
+         {-# L #-}
+         lit_a2jc =
+             fromRational_a2jb _rational_  62831853 20000000;
+         ==_a2jd  ::  ta13i -> ta13i -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a2jd =
+             PrelBase.=={-8Y,p-} _@_ ta13i d.Eq_a13A;
+         c_a12W  ::  ta13q -> ta13o -> ta13b -> ta13i -> ta13q
+         {-# L #-}
+         c_a12W =
+             \ x_r3H  ::  ta13q
+               {-# L #-}
+               x_r3H ds_d2lx  ::  ta13o
+                     {-# L #-}
+                     ds_d2lx ds_d2ly  ::  ta13b
+                             {-# L #-}
+                             ds_d2ly ds_d2lu  ::  ta13i
+                                     {-# L #-}
+                                     ds_d2lu ->
+                 let { ds_d2m4  ::  PrelBase.(){-40,W-}
+                       {-# L #-}
+                       ds_d2m4 =
+                   let {
+                     fail_d2lz  ::  PrelBase.(){-40,W-}
+                     {-# L #-}
+                     fail_d2lz =
+                         GHCerr.irrefutPatError{-8g,w-}
+                             _@_ PrelBase.(){-40,W-} _string_ "ds020.hs:11|3.1415926500000002"
+                   } in 
+                     case ==_a2jd lit_a2jc ds_d2lu of {
+                       PrelBase.True{-5E,w-}{i} -> PrelBase.(){-60,w-}{i} {};
+                       PrelBase.False{-58,w-}{i} -> fail_d2lz;
+                     }
+                 } in
+                 let { ds_d2mh  ::  PrelBase.(){-40,W-}
+                       {-# L #-}
+                       ds_d2mh =
+                   let {
+                     fail_d2m5  ::  PrelBase.(){-40,W-}
+                     {-# L #-}
+                     fail_d2m5 =
+                         GHCerr.irrefutPatError{-8g,w-}
+                             _@_ PrelBase.(){-40,W-} _string_ "ds020.hs:11|11111"
+                   } in 
+                     case ==_a2ja lit_a2j9 ds_d2ly of {
+                       PrelBase.True{-5E,w-}{i} -> PrelBase.(){-60,w-}{i} {};
+                       PrelBase.False{-58,w-}{i} -> fail_d2m5;
+                     }
+                 } in
+                 let {
+                   ds_d2lb  ::  PrelBase.(){-40,W-}
                    {-# L #-}
-                   ds_d2n0 =
-               let {
-                 fail_d2nt  :: 
-                     PrelBase.(){-40,p-}
-                 {-# L #-}
-                 fail_d2nt =
-                     GHCerr.irrefutPatError{-8g,p-}
-                         _@_ PrelBase.(){-40,p-} _string_ "ds020.hs:13|(n+4)"
-               } in 
-                 case
-                     (\ ds_d2nn  :: 
-                            t{-a18b-}
-                        {-# L #-}
-                        ds_d2nn ->
-                          >=_a2jm
-                              ds_d2nn lit_a2jn)
-                         ds_d2ng
-                 of {
-                   PrelBase.True{-5E,p-}{i} ->
-                       let {
-                         n_r3O  :: 
-                             t{-a18b-}
-                         {-# L #-}
-                         n_r3O =
-                             (\ ds_d2nM  :: 
-                                    t{-a18b-}
-                                {-# L #-}
-                                ds_d2nM ->
-                                  -_a2jl
-                                      ds_d2nM lit_a2jn)
-                                 ds_d2ng
-                       } in 
-                         PrelBase.(){-60,p-}{i}
-                             {};
-                   PrelBase.False{-58,p-}{i} ->
-                       fail_d2nt;
-                 }
-             } in
-             lit_a2jj
-           } in
-           let {
-             fail_d2or  :: 
-                 t{-a18D-}
-             {-# L #-}
-             fail_d2or =
-                 case
-                     ==_a2jr
-                         lit_a2js ds_d2ng
-                 of {
-                   PrelBase.True{-5E,p-}{i} ->
-                       lit_a2jp;
-                   PrelBase.False{-58,p-}{i} ->
-                       fail_d2o7;
-                 }
-           } in 
-             case
-                 ==_a2jw
-                     lit_a2jx ds_d2ng
-             of {
-               PrelBase.True{-5E,p-}{i} ->
-                   lit_a2ju;
-               PrelBase.False{-58,p-}{i} ->
-                   fail_d2or;
-             }
-c{-r4u,x-}  :: 
-    _forall_
-    [t{-a19h-} t{-a19j-} t{-a199-} t{-a19d-}]
-    =>
-    {PrelNum.Fractional{-26,p-} t{-a19d-}}
-    -> {PrelBase.Num{-2c,p-} t{-a199-}}
-    -> t{-a19h-}
-    -> t{-a19j-}
-    -> t{-a199-}
-    -> t{-a19d-}
-    -> t{-a19h-}
+                   ds_d2lb =
+                       PrelBase.(){-60,w-}{i} {}
+                 } in  x_r3H;
+       } in  c_a12W
+b{-r4s,x-}  ::  _forall_ [ta140 ta147] => [ta140] -> [ta147]
 {-# L #-}
-c{-r4u,x-} =
-    _/\_ t{-a19h-} t{-a19j-} t{-a199-} t{-a19d-} -> \ d.Fractional_a19r  :: 
-                                                         {PrelNum.Fractional{-26,p-} t{-a19d-}}
-                                                     {-# L #-}
-                                                     d.Fractional_a19r d.Num_a19m  :: 
-                                                                           {PrelBase.Num{-2c,p-} t{-a199-}}
-                                                                       {-# L #-}
-                                                                       d.Num_a19m ->
-       let {
-         d.Eq_a19o  :: 
-             {PrelBase.Eq{-23,p-} t{-a199-}}
-         {-# L #-}
-         d.Eq_a19o =
-             PrelBase.scsel_NumPrelBaseEq{-a2pi,p-}
-                 _@_ t{-a199-} d.Num_a19m } in
-       let {
-         d.Num_a1b5  :: 
-             {PrelBase.Num{-2c,p-} t{-a19d-}}
-         {-# L #-}
-         d.Num_a1b5 =
-             PrelNum.scsel_FractionalPrelBaseNum{-a2pr,p-}
-                 _@_ t{-a19d-} d.Fractional_a19r } in
-       let {
-         d.Eq_a19t  :: 
-             {PrelBase.Eq{-23,p-} t{-a19d-}}
-         {-# L #-}
-         d.Eq_a19t =
-             PrelBase.scsel_NumPrelBaseEq{-a2pi,p-}
-                 _@_ t{-a19d-} d.Num_a1b5 } in
-       let {
-         fromInt_a2p8  :: 
-             PrelBase.Int{-3g,p-} -> t{-a199-}
-         {-# L #-}
-         fromInt_a2p8 =
-             PrelBase.fromInt{-8R,p-}
-                 _@_ t{-a199-} d.Num_a19m } in
-       let { lit_a2p7  :: 
-                 t{-a199-}
-             {-# L #-}
-             lit_a2p7 =
-         let {
-           ds_d2pO  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_d2pO =
-               PrelBase.I#{-5b,p-}{i}
-                   11111
-         } in 
-           fromInt_a2p8
-               ds_d2pO
-       } in
-       let {
-         ==_a2p6  :: 
-             t{-a199-} -> t{-a199-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a2p6 =
-             PrelBase.=={-8Y,p-}
-                 _@_ t{-a199-} d.Eq_a19o } in
-       let {
-         fromRational_a2p5  :: 
-             PrelNum.Rational{-3r,p-} -> t{-a19d-}
-         {-# L #-}
-         fromRational_a2p5 =
-             PrelNum.fromRational{-8T,p-}
-                 _@_ t{-a19d-} d.Fractional_a19r } in
-       let {
-         lit_a2p4  :: 
-             t{-a19d-}
-         {-# L #-}
-         lit_a2p4 =
-             fromRational_a2p5
-                 _rational_  62831853 20000000 } in
-       let {
-         ==_a2p3  :: 
-             t{-a19d-} -> t{-a19d-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a2p3 =
-             PrelBase.=={-8Y,p-}
-                 _@_ t{-a19d-} d.Eq_a19t
-       } in 
-         \ x_r3H  :: 
-               t{-a19h-}
-           {-# L #-}
-           x_r3H ds_d2qY  :: 
-                     t{-a19j-}
-                 {-# L #-}
-                 ds_d2qY ds_d2qZ  :: 
-                             t{-a199-}
-                         {-# L #-}
-                         ds_d2qZ ds_d2qV  :: 
-                                     t{-a19d-}
-                                 {-# L #-}
-                                 ds_d2qV ->
-             let { ds_d2rv  :: 
-                       PrelBase.(){-40,p-}
+b{-r4s,x-} =
+    _/\_ ta140 ta147 ->
+       _letrec_ {
+         b_a13E  ::  [ta140] -> [ta147]
+         {-# L #-}
+         b_a13E =
+             \ ds_d2mU  ::  [ta140]
+               {-# L #-}
+               ds_d2mU ->
+                 let { ds_d2nB  ::  (ta140, ta140, [ta140])
+                       {-# L #-}
+                       ds_d2nB =
+                   let {
+                     fail_d2mV  ::  (ta140, ta140, [ta140])
+                     {-# L #-}
+                     fail_d2mV =
+                         GHCerr.irrefutPatError{-8g,w-}
+                             _@_ (ta140, ta140, [ta140])
+                             _string_ "ds020.hs:8|(x PrelBase.: (xs PrelBase.: ys))"
+                   } in 
+                     case ds_d2mU of {
+                       PrelBase.[]{-5i,w-}{i} -> fail_d2mV;
+                       PrelBase.:{-55,w-}{i} x_r3z ds_d2n8 ->
+                           case ds_d2n8 of {
+                             PrelBase.[]{-5i,w-}{i} -> fail_d2mV;
+                             PrelBase.:{-55,w-}{i} xs_r3A ys_r3B ->
+                                 PrelTup.(,,){-63,w-}{i}
+                                     {_@_ ta140 _@_ ta140 _@_ [ta140] x_r3z xs_r3A ys_r3B};
+                           };
+                     }
+                 } in
+                 let {
+                   x_r3z  ::  ta140
                    {-# L #-}
-                   ds_d2rv =
-               let {
-                 fail_d2r0  :: 
-                     PrelBase.(){-40,p-}
-                 {-# L #-}
-                 fail_d2r0 =
-                     GHCerr.irrefutPatError{-8g,p-}
-                         _@_ PrelBase.(){-40,p-} _string_ "ds020.hs:11|3.1415926500000002"
-               } in 
-                 case
-                     ==_a2p3
-                         lit_a2p4 ds_d2qV
-                 of {
-                   PrelBase.True{-5E,p-}{i} ->
-                       PrelBase.(){-60,p-}{i}
-                           {};
-                   PrelBase.False{-58,p-}{i} ->
-                       fail_d2r0;
-                 }
-             } in
-             let { ds_d2rI  :: 
-                       PrelBase.(){-40,p-}
+                   x_r3z =
+                       case ds_d2nB of { PrelTup.(,,){-63,w-}{i} x_r3z xs_r3A ys_r3B  ->
+                       x_r3z;} } in
+                 let {
+                   xs_r3A  ::  ta140
                    {-# L #-}
-                   ds_d2rI =
-               let {
-                 fail_d2rw  :: 
-                     PrelBase.(){-40,p-}
-                 {-# L #-}
-                 fail_d2rw =
-                     GHCerr.irrefutPatError{-8g,p-}
-                         _@_ PrelBase.(){-40,p-} _string_ "ds020.hs:11|11111"
-               } in 
-                 case
-                     ==_a2p6
-                         lit_a2p7 ds_d2qZ
-                 of {
-                   PrelBase.True{-5E,p-}{i} ->
-                       PrelBase.(){-60,p-}{i}
-                           {};
-                   PrelBase.False{-58,p-}{i} ->
-                       fail_d2rw;
-                 }
-             } in
-             let {
-               ds_d2qC  :: 
-                   PrelBase.(){-40,p-}
+                   xs_r3A =
+                       case ds_d2nB of { PrelTup.(,,){-63,w-}{i} x_r3z xs_r3A ys_r3B  ->
+                       xs_r3A;} } in
+                 let {
+                   ys_r3B  ::  [ta140]
+                   {-# L #-}
+                   ys_r3B =
+                       case ds_d2nB of { PrelTup.(,,){-63,w-}{i} x_r3z xs_r3A ys_r3B  ->
+                       ys_r3B;}
+                 } in  PrelBase.[]{-5i,w-}{i} _@_ ta147;
+       } in  b_a13E
+a{-r4t,x-}  ::  _forall_
+               [ta14y ta14B ta14E ta14G]
+               =>
+               ([ta14y], [ta14B], [ta14E]) -> [ta14G]
+{-# L #-}
+a{-r4t,x-} =
+    _/\_ ta14y ta14B ta14E ta14G ->
+       _letrec_ {
+         a_a149  ::  ([ta14y], [ta14B], [ta14E]) -> [ta14G]
+         {-# L #-}
+         a_a149 =
+             \ ds_d2oz  ::  ([ta14y], [ta14B], [ta14E])
                {-# L #-}
-               ds_d2qC =
-                   PrelBase.(){-60,p-}{i}
-                       {}
-             } in 
-               x_r3H
-b{-r4v,x-}  :: 
-    _forall_ [t{-a19Q-} t{-a19X-}] => [t{-a19Q-}] -> [t{-a19X-}]
+               ds_d2oz ->
+                 let { ds_d2qq  ::  PrelBase.(){-40,W-}
+                       {-# L #-}
+                       ds_d2qq =
+                   let {
+                     fail_d2oA  ::  PrelBase.(){-40,W-}
+                     {-# L #-}
+                     fail_d2oA =
+                         GHCerr.irrefutPatError{-8g,w-}
+                             _@_ PrelBase.(){-40,W-}
+                             _string_ "ds020.hs:5|(PrelBase.[], PrelBase.[], PrelBase.[])"
+                   } in 
+                     case
+                         ds_d2oz
+                     of {
+                     PrelTup.(,,){-63,w-}{i} ds_d2oJ ds_d2oK ds_d2oL  ->
+                     case ds_d2oJ of {
+                       PrelBase.:{-55,w-}{i} ds_d2oS ds_d2oT -> fail_d2oA;
+                       PrelBase.[]{-5i,w-}{i} ->
+                           case ds_d2oK of {
+                             PrelBase.:{-55,w-}{i} ds_d2p6 ds_d2p7 -> fail_d2oA;
+                             PrelBase.[]{-5i,w-}{i} ->
+                                 case ds_d2oL of {
+                                   PrelBase.:{-55,w-}{i} ds_d2pk ds_d2pl -> fail_d2oA;
+                                   PrelBase.[]{-5i,w-}{i} -> PrelBase.(){-60,w-}{i} {};
+                                 };
+                           };
+                     };}
+                 } in
+                 PrelBase.[]{-5i,w-}{i} _@_ ta14G;
+       } in  a_a149
+d.Eq_a14Y  ::  {PrelBase.Eq{-23,p-} PrelBase.Int{-3g,W-}}
 {-# L #-}
-b{-r4v,x-} =
-    _/\_ t{-a19Q-} t{-a19X-} -> \ ds_d2sd  :: 
-                                     [t{-a19Q-}]
-                                 {-# L #-}
-                                 ds_d2sd ->
-       let { ds_d2sU  :: 
-                 (t{-a19Q-}, t{-a19Q-}, [t{-a19Q-}])
-             {-# L #-}
-             ds_d2sU =
-         let {
-           fail_d2se  :: 
-               (t{-a19Q-}, t{-a19Q-}, [t{-a19Q-}])
-           {-# L #-}
-           fail_d2se =
-               GHCerr.irrefutPatError{-8g,p-}
-                   _@_ (t{-a19Q-}, t{-a19Q-}, [t{-a19Q-}])
-                   _string_ "ds020.hs:8|(x PrelBase.: (xs PrelBase.: ys))"
-         } in 
-           case ds_d2sd of {
-             PrelBase.[]{-5i,p-}{i} ->
-                 fail_d2se;
-             PrelBase.:{-55,p-}{i} x_r3z ds_d2sr ->
-                 case ds_d2sr of {
-                   PrelBase.[]{-5i,p-}{i} ->
-                       fail_d2se;
-                   PrelBase.:{-55,p-}{i} xs_r3A ys_r3B ->
-                       PrelTup.(,,){-63,p-}{i}
-                           {_@_ t{-a19Q-} _@_ t{-a19Q-} _@_ [t{-a19Q-}] x_r3z xs_r3A ys_r3B};
-                 };
-           }
-       } in
-       let {
-         x_r3z  :: 
-             t{-a19Q-}
-         {-# L #-}
-         x_r3z =
-             case ds_d2sU of { PrelTup.(,,){-63,p-}{i} x_r3z xs_r3A ys_r3B  ->
-             x_r3z;} } in
-       let {
-         xs_r3A  :: 
-             t{-a19Q-}
-         {-# L #-}
-         xs_r3A =
-             case ds_d2sU of { PrelTup.(,,){-63,p-}{i} x_r3z xs_r3A ys_r3B  ->
-             xs_r3A;} } in
-       let {
-         ys_r3B  :: 
-             [t{-a19Q-}]
-         {-# L #-}
-         ys_r3B =
-             case ds_d2sU of { PrelTup.(,,){-63,p-}{i} x_r3z xs_r3A ys_r3B  ->
-             ys_r3B;}
-       } in 
-         PrelBase.[]{-5i,p-}{i}
-             _@_ t{-a19X-}
-a{-r4w,x-}  :: 
-    _forall_
-    [t{-a1al-} t{-a1ao-} t{-a1ar-} t{-a1at-}]
-    =>
-    ([t{-a1al-}], [t{-a1ao-}], [t{-a1ar-}]) -> [t{-a1at-}]
+d.Eq_a14Y =
+    PrelBase.$d8{-rq4,p-}
+==_a1zR  ::  PrelBase.Int{-3g,W-}
+            -> PrelBase.Int{-3g,W-}
+            -> PrelBase.Bool{-34,W-}
 {-# L #-}
-a{-r4w,x-} =
-    _/\_ t{-a1al-} t{-a1ao-} t{-a1ar-} t{-a1at-} -> \ ds_d2tK  :: 
-                                                         ([t{-a1al-}], [t{-a1ao-}], [t{-a1ar-}])
-                                                     {-# L #-}
-                                                     ds_d2tK ->
-       let { ds_d2uH  :: 
-                 PrelBase.(){-40,p-}
-             {-# L #-}
-             ds_d2uH =
-         let {
-           fail_d2tL  :: 
-               PrelBase.(){-40,p-}
-           {-# L #-}
-           fail_d2tL =
-               GHCerr.irrefutPatError{-8g,p-}
-                   _@_ PrelBase.(){-40,p-}
-                   _string_ "ds020.hs:5|(PrelBase.[], PrelBase.[], PrelBase.[])"
-         } in 
-           case
-               ds_d2tK
-           of {
-           PrelTup.(,,){-63,p-}{i} ds_d2tU ds_d2tW ds_d2tV  ->
-           case ds_d2tU of {
-             PrelBase.:{-55,p-}{i} ds_d2u4 ds_d2u3 ->
-                 fail_d2tL;
-             PrelBase.[]{-5i,p-}{i} ->
-                 case ds_d2tW of {
-                   PrelBase.:{-55,p-}{i} ds_d2ui ds_d2uh ->
-                       fail_d2tL;
-                   PrelBase.[]{-5i,p-}{i} ->
-                       case ds_d2tV of {
-                         PrelBase.:{-55,p-}{i} ds_d2uw ds_d2uv ->
-                             fail_d2tL;
-                         PrelBase.[]{-5i,p-}{i} ->
-                             PrelBase.(){-60,p-}{i}
-                                 {};
-                       };
-                 };
-           };}
-       } in
-       PrelBase.[]{-5i,p-}{i}
-           _@_ t{-a1at-}
+==_a1zR =
+    PrelBase.=={-8Y,p-} _@_ PrelBase.Int{-3g,W-} d.Eq_a14Y
+lit_a1zS  ::  PrelBase.Int{-3g,W-}
+{-# L #-}
+lit_a1zS =
+    PrelBase.I#{-5b,w-}{i} 2
+lit_a1zT  ::  PrelBase.Int{-3g,W-}
+{-# L #-}
+lit_a1zT =
+    PrelBase.I#{-5b,w-}{i} 4
+lit_a1zU  ::  PrelBase.Int{-3g,W-}
+{-# L #-}
+lit_a1zU =
+    PrelBase.I#{-5b,w-}{i} 3
+d.Ord_a151  ::  {PrelBase.Ord{-2d,p-} PrelBase.Int{-3g,W-}}
+{-# L #-}
+d.Ord_a151 =
+    PrelBase.$d7{-rq3,p-}
+>_a1zV  ::  PrelBase.Int{-3g,W-}
+           -> PrelBase.Int{-3g,W-}
+           -> PrelBase.Bool{-34,W-}
+{-# L #-}
+>_a1zV =
+    PrelBase.>{-ruE,p-} _@_ PrelBase.Int{-3g,W-} d.Ord_a151
+lit_a1zW  ::  PrelBase.Int{-3g,W-}
+{-# L #-}
+lit_a1zW =
+    lit_a1zU
+lit_a1zX  ::  PrelBase.Int{-3g,W-}
+{-# L #-}
+lit_a1zX =
+    lit_a1zT
+lit_a1zY  ::  PrelBase.Int{-3g,W-}
+{-# L #-}
+lit_a1zY =
+    PrelBase.I#{-5b,w-}{i} 5
+d.Ord_a154  ::  {PrelBase.Ord{-2d,p-} PrelBase.Int{-3g,W-}}
+{-# L #-}
+d.Ord_a154 =
+    d.Ord_a151
+<=_a1zZ  ::  PrelBase.Int{-3g,W-}
+            -> PrelBase.Int{-3g,W-}
+            -> PrelBase.Bool{-34,W-}
+{-# L #-}
+<=_a1zZ =
+    PrelBase.<={-ruD,p-} _@_ PrelBase.Int{-3g,W-} d.Ord_a154
+lit_a1A0  ::  PrelBase.Int{-3g,W-}
+{-# L #-}
+lit_a1A0 =
+    lit_a1zS
+lit_a1A1  ::  PrelBase.Int{-3g,W-}
+{-# L #-}
+lit_a1A1 =
+    lit_a1zU
+==_a1A2  ::  PrelBase.Int{-3g,W-}
+            -> PrelBase.Int{-3g,W-}
+            -> PrelBase.Bool{-34,W-}
+{-# L #-}
+==_a1A2 =
+    ==_a1zR
+lit_a1A3  ::  PrelBase.Int{-3g,W-}
+{-# L #-}
+lit_a1A3 =
+    lit_a1zS
+lit_a1A4  ::  PrelBase.Int{-3g,W-}
+{-# L #-}
+lit_a1A4 =
+    lit_a1zT
+lit_a1A5  ::  PrelBase.Int{-3g,W-}
+{-# L #-}
+lit_a1A5 =
+    lit_a1zU
 end Rec }
index 2d6f67a..649c9b9 100644 (file)
@@ -5,77 +5,53 @@ ds021.hs:8:
 
 ================================================================================
 Desugared:
-f{-r3i,x-}  :: 
-    _forall_
-    [rlg{-aG9-} t{-aGm-}]
-    =>
-    {PrelBase.Eq{-23,p-} rlg{-aG9-}}
-    -> rlg{-aG9-}
-    -> rlg{-aG9-}
-    -> rlg{-aG9-}
-    -> [t{-aGm-}]
+Rec {
+f{-r3g,x-}  ::  _forall_
+               [taBa taBj]
+               =>
+               {PrelBase.Eq{-23,p-} taBa} -> taBa -> taBa -> taBa -> [taBj]
 {-# L #-}
-f{-r3i,x-} =
-    _/\_ rlg{-aG9-} t{-aGm-} -> \ d.Eq_aGr  :: 
-                                     {PrelBase.Eq{-23,p-} rlg{-aG9-}}
-                                 {-# L #-}
-                                 d.Eq_aGr ->
-       let {
-         ==_aIv  :: 
-             rlg{-aG9-} -> rlg{-aG9-} -> PrelBase.Bool{-34,p-}
+f{-r3g,x-} =
+    _/\_ taBa taBj -> \ d.Eq_aBl  ::  {PrelBase.Eq{-23,p-} taBa}
+                       {-# L #-}
+                       d.Eq_aBl ->
+       _letrec_ {
+         ==_aDt  ::  taBa -> taBa -> PrelBase.Bool{-34,W-}
          {-# L #-}
-         ==_aIv =
-             PrelBase.=={-8Y,p-}
-                 _@_ rlg{-aG9-} d.Eq_aGr } in
-       let {
-         d.Eq_aGt  :: 
-             {PrelBase.Eq{-23,p-} rlg{-aG9-}}
+         ==_aDt =
+             PrelBase.=={-8Y,p-} _@_ taBa d.Eq_aBl;
+         d.Eq_aBn  ::  {PrelBase.Eq{-23,p-} taBa}
          {-# L #-}
-         d.Eq_aGt =
-             d.Eq_aGr } in
-       let {
-         /=_aIu  :: 
-             rlg{-aG9-} -> rlg{-aG9-} -> PrelBase.Bool{-34,p-}
+         d.Eq_aBn =
+             d.Eq_aBl;
+         /=_aDA  ::  taBa -> taBa -> PrelBase.Bool{-34,W-}
          {-# L #-}
-         /=_aIu =
-             PrelBase./={-ray,p-}
-                 _@_ rlg{-aG9-} d.Eq_aGt
-       } in 
-         \ x_r3d  :: 
-               rlg{-aG9-}
-           {-# L #-}
-           x_r3d y_r3f  :: 
-                     rlg{-aG9-}
-                 {-# L #-}
-                 y_r3f z_r3h  :: 
-                           rlg{-aG9-}
-                       {-# L #-}
-                       z_r3h ->
-             let {
-               fail_dJa  :: 
-                   [t{-aGm-}]
+         /=_aDA =
+             PrelBase./={-r9I,p-} _@_ taBa d.Eq_aBn;
+         f_aAK  ::  taBa -> taBa -> taBa -> [taBj]
+         {-# L #-}
+         f_aAK =
+             \ x_r3d  ::  taBa
                {-# L #-}
-               fail_dJa =
-                   GHCerr.patError{-8r,p-}
-                       _@_ [t{-aGm-}] _string_ "ds021.hs:5|function `f'"
-             } in 
-               case
-                   ==_aIv
-                       x_r3d y_r3f
-               of {
-                 PrelBase.True{-5E,p-}{i} ->
-                     PrelBase.[]{-5i,p-}{i}
-                         _@_ t{-aGm-};
-                 PrelBase.False{-58,p-}{i} ->
-                     case
-                         /=_aIu
-                             x_r3d z_r3h
-                     of {
-                       PrelBase.True{-5E,p-}{i} ->
-                           PrelBase.[]{-5i,p-}{i}
-                               _@_ t{-aGm-};
-                       PrelBase.False{-58,p-}{i} ->
-                           PrelBase.[]{-5i,p-}{i}
-                               _@_ t{-aGm-};
-                     };
-               }
+               x_r3d y_r3e  ::  taBa
+                     {-# L #-}
+                     y_r3e z_r3f  ::  taBa
+                           {-# L #-}
+                           z_r3f ->
+                 let {
+                   fail_dEl  ::  [taBj]
+                   {-# L #-}
+                   fail_dEl =
+                       GHCerr.patError{-8r,w-}
+                           _@_ [taBj] _string_ "ds021.hs:5|function `f'"
+                 } in 
+                   case ==_aDt x_r3d y_r3e of {
+                     PrelBase.True{-5E,w-}{i} -> PrelBase.[]{-5i,w-}{i} _@_ taBj;
+                     PrelBase.False{-58,w-}{i} ->
+                         case /=_aDA x_r3d z_r3f of {
+                           PrelBase.True{-5E,w-}{i} -> PrelBase.[]{-5i,w-}{i} _@_ taBj;
+                           PrelBase.False{-58,w-}{i} -> PrelBase.[]{-5i,w-}{i} _@_ taBj;
+                         };
+                   };
+       } in  f_aAK
+end Rec }
index 98f3a06..38b9fa3 100644 (file)
@@ -1,3 +1,12 @@
+ds022.hs:5: 
+    Warning: Possibly incomplete patterns
+       in the definition of function `f'
+ds022.hs:10: 
+    Warning: Possibly incomplete patterns
+       in the definition of function `g'
+ds022.hs:15: 
+    Warning: Possibly incomplete patterns
+       in the definition of function `h'
 ds022.hs:22: 
     Warning: Pattern match(es) completely overlapped
        in the definition of function `i'
@@ -7,1015 +16,660 @@ ds022.hs:23:
 ds022.hs:20: 
     Warning: Possibly incomplete patterns
        in the definition of function `i'
-ds022.hs:15: 
-    Warning: Possibly incomplete patterns
-       in the definition of function `h'
-ds022.hs:10: 
-    Warning: Possibly incomplete patterns
-       in the definition of function `g'
-ds022.hs:5: 
-    Warning: Possibly incomplete patterns
-       in the definition of function `f'
 
 
 ================================================================================
 Desugared:
 Rec {
-d.Eq_a13W  :: 
-    {PrelBase.Eq{-23,p-} PrelBase.Char{-38,p-}}
-{-# L #-}
-d.Eq_a13W =
-    PrelBase.$d33{-rbH,p-}
-d.Eq_a13U  :: 
-    {PrelBase.Eq{-23,p-} [PrelBase.Char{-38,p-}]}
-{-# L #-}
-d.Eq_a13U =
-    PrelBase.$d27{-rbA,p-}
-       _@_ PrelBase.Char{-38,p-} d.Eq_a13W
-==_a1pN  :: 
-    [PrelBase.Char{-38,p-}]
-    -> [PrelBase.Char{-38,p-}]
-    -> PrelBase.Bool{-34,p-}
+i{-r3s,x-}  ::  _forall_
+               [taUw taUD taVd]
+               =>
+               {PrelNum.Fractional{-26,p-} taUD}
+               -> {PrelBase.Num{-2c,p-} taUw}
+               -> taUw
+               -> taUD
+               -> [taVd]
 {-# L #-}
-==_a1pN =
-    PrelBase.=={-8Y,p-}
-       _@_ [PrelBase.Char{-38,p-}] d.Eq_a13U
-i{-r3E,x-}  :: 
-    _forall_
-    [t{-a11b-} t{-a11f-} t{-a11j-}]
-    =>
-    {PrelNum.Fractional{-26,p-} t{-a11f-}}
-    -> {PrelBase.Num{-2c,p-} t{-a11b-}}
-    -> t{-a11b-}
-    -> t{-a11f-}
-    -> [t{-a11j-}]
-{-# L #-}
-i{-r3E,x-} =
-    _/\_ t{-a11b-} t{-a11f-} t{-a11j-} -> \ d.Fractional_a11r  :: 
-                                               {PrelNum.Fractional{-26,p-} t{-a11f-}}
-                                           {-# L #-}
-                                           d.Fractional_a11r d.Num_a11m  :: 
-                                                                 {PrelBase.Num{-2c,p-} t{-a11b-}}
-                                                             {-# L #-}
-                                                             d.Num_a11m ->
-       let {
-         d.Eq_a11o  :: 
-             {PrelBase.Eq{-23,p-} t{-a11b-}}
-         {-# L #-}
-         d.Eq_a11o =
-             PrelBase.scsel_NumPrelBaseEq{-a1rD,p-}
-                 _@_ t{-a11b-} d.Num_a11m } in
-       let {
-         d.Num_a13X  :: 
-             {PrelBase.Num{-2c,p-} t{-a11f-}}
-         {-# L #-}
-         d.Num_a13X =
-             PrelNum.scsel_FractionalPrelBaseNum{-a1rM,p-}
-                 _@_ t{-a11f-} d.Fractional_a11r } in
-       let {
-         d.Eq_a11t  :: 
-             {PrelBase.Eq{-23,p-} t{-a11f-}}
-         {-# L #-}
-         d.Eq_a11t =
-             PrelBase.scsel_NumPrelBaseEq{-a1rD,p-}
-                 _@_ t{-a11f-} d.Num_a13X } in
-       let {
-         fromInt_a1rt  :: 
-             PrelBase.Int{-3g,p-} -> t{-a11b-}
-         {-# L #-}
-         fromInt_a1rt =
-             PrelBase.fromInt{-8R,p-}
-                 _@_ t{-a11b-} d.Num_a11m } in
-       let { lit_a1rs  :: 
-                 t{-a11b-}
-             {-# L #-}
-             lit_a1rs =
-         let {
-           ds_d1s9  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_d1s9 =
-               PrelBase.I#{-5b,p-}{i}
-                   1
-         } in 
-           fromInt_a1rt
-               ds_d1s9
-       } in
-       let {
-         ==_a1rr  :: 
-             t{-a11b-} -> t{-a11b-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a1rr =
-             PrelBase.=={-8Y,p-}
-                 _@_ t{-a11b-} d.Eq_a11o } in
-       let {
-         fromRational_a1rq  :: 
-             PrelNum.Rational{-3r,p-} -> t{-a11f-}
-         {-# L #-}
-         fromRational_a1rq =
-             PrelNum.fromRational{-8T,p-}
-                 _@_ t{-a11f-} d.Fractional_a11r } in
-       let {
-         lit_a1rp  :: 
-             t{-a11f-}
-         {-# L #-}
-         lit_a1rp =
-             fromRational_a1rq
-                 _rational_  11 10 } in
-       let {
-         ==_a1ro  :: 
-             t{-a11f-} -> t{-a11f-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a1ro =
-             PrelBase.=={-8Y,p-}
-                 _@_ t{-a11f-} d.Eq_a11t } in
-       let {
-         fromInt_a1rn  :: 
-             PrelBase.Int{-3g,p-} -> t{-a11b-}
-         {-# L #-}
-         fromInt_a1rn =
-             fromInt_a1rt } in
-       let { lit_a1rm  :: 
-                 t{-a11b-}
-             {-# L #-}
-             lit_a1rm =
-         let {
-           ds_d1sR  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_d1sR =
-               PrelBase.I#{-5b,p-}{i}
-                   2
-         } in 
-           fromInt_a1rn
-               ds_d1sR
-       } in
-       let {
-         ==_a1rl  :: 
-             t{-a11b-} -> t{-a11b-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a1rl =
-             ==_a1rr } in
-       let {
-         fromRational_a1rk  :: 
-             PrelNum.Rational{-3r,p-} -> t{-a11f-}
-         {-# L #-}
-         fromRational_a1rk =
-             fromRational_a1rq } in
-       let {
-         lit_a1rj  :: 
-             t{-a11f-}
-         {-# L #-}
-         lit_a1rj =
-             fromRational_a1rk
-                 _rational_  11 5 } in
-       let {
-         ==_a1ri  :: 
-             t{-a11f-} -> t{-a11f-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a1ri =
-             ==_a1ro } in
-       let {
-         lit_a1rh  :: 
-             t{-a11b-}
-         {-# L #-}
-         lit_a1rh =
-             lit_a1rs } in
-       let {
-         ==_a1rg  :: 
-             t{-a11b-} -> t{-a11b-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a1rg =
-             ==_a1rr } in
-       let {
-         lit_a1rf  :: 
-             t{-a11f-}
-         {-# L #-}
-         lit_a1rf =
-             lit_a1rp } in
-       let {
-         ==_a1re  :: 
-             t{-a11f-} -> t{-a11f-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a1re =
-             ==_a1ro } in
-       let {
-         lit_a1rd  :: 
-             t{-a11b-}
-         {-# L #-}
-         lit_a1rd =
-             lit_a1rm } in
-       let {
-         ==_a1rc  :: 
-             t{-a11b-} -> t{-a11b-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a1rc =
-             ==_a1rr } in
-       let {
-         lit_a1rb  :: 
-             t{-a11f-}
-         {-# L #-}
-         lit_a1rb =
-             lit_a1rj } in
-       let {
-         ==_a1ra  :: 
-             t{-a11f-} -> t{-a11f-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a1ra =
-             ==_a1ro
-       } in 
-         \ ds_d1tC  :: 
-               t{-a11b-}
-           {-# L #-}
-           ds_d1tC ds_d1tF  :: 
-                       t{-a11f-}
-                   {-# L #-}
-                   ds_d1tF ->
+i{-r3s,x-} =
+    _/\_ taUw taUD taVd -> \ d.Fractional_aVl  ::  {PrelNum.Fractional{-26,p-} taUD}
+                            {-# L #-}
+                            d.Fractional_aVl d.Num_aVg  ::  {PrelBase.Num{-2c,p-} taUw}
+                                             {-# L #-}
+                                             d.Num_aVg ->
+       _letrec_ {
+         d.Eq_aVi  ::  {PrelBase.Eq{-23,p-} taUw}
+         {-# L #-}
+         d.Eq_aVi =
+             PrelBase.scsel_NumPrelBaseEq{-a1ls,p-} _@_ taUw d.Num_aVg;
+         d.Num_aY9  ::  {PrelBase.Num{-2c,p-} taUD}
+         {-# L #-}
+         d.Num_aY9 =
+             PrelNum.scsel_FractionalPrelBaseNum{-a1nt,p-}
+                 _@_ taUD d.Fractional_aVl;
+         d.Eq_aVn  ::  {PrelBase.Eq{-23,p-} taUD}
+         {-# L #-}
+         d.Eq_aVn =
+             PrelBase.scsel_NumPrelBaseEq{-a1ls,p-} _@_ taUD d.Num_aY9;
+         fromInt_a1l6  ::  PrelBase.Int{-3g,W-} -> taUw
+         {-# L #-}
+         fromInt_a1l6 =
+             PrelBase.fromInt{-8R,p-} _@_ taUw d.Num_aVg;
+         lit_a1l7  ::  taUw
+         {-# L #-}
+         lit_a1l7 =
              let {
-               fail_d1tG  :: 
-                   [t{-a11j-}]
+               ds_d1nQ  ::  PrelBase.Int{-3g,W-}
                {-# L #-}
-               fail_d1tG =
-                   GHCerr.patError{-8r,p-}
-                       _@_ [t{-a11j-}] _string_ "ds022.hs:20|function `i'" } in
+               ds_d1nQ =
+                   PrelBase.I#{-5b,w-}{i} 1
+             } in  fromInt_a1l6 ds_d1nQ;
+         ==_a1l8  ::  taUw -> taUw -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1l8 =
+             PrelBase.=={-8Y,p-} _@_ taUw d.Eq_aVi;
+         fromRational_a1l9  ::  PrelNum.Rational{-3r,p-} -> taUD
+         {-# L #-}
+         fromRational_a1l9 =
+             PrelNum.fromRational{-8T,p-} _@_ taUD d.Fractional_aVl;
+         lit_a1la  ::  taUD
+         {-# L #-}
+         lit_a1la =
+             fromRational_a1l9 _rational_  11 10;
+         ==_a1lb  ::  taUD -> taUD -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1lb =
+             PrelBase.=={-8Y,p-} _@_ taUD d.Eq_aVn;
+         fromInt_a1lc  ::  PrelBase.Int{-3g,W-} -> taUw
+         {-# L #-}
+         fromInt_a1lc =
+             fromInt_a1l6;
+         lit_a1ld  ::  taUw
+         {-# L #-}
+         lit_a1ld =
              let {
-               fail_d1uo  :: 
-                   [t{-a11j-}]
+               ds_d1oy  ::  PrelBase.Int{-3g,W-}
                {-# L #-}
-               fail_d1uo =
-                   case
-                       ==_a1rl
-                           lit_a1rm ds_d1tC
-                   of {
-                     PrelBase.True{-5E,p-}{i} ->
-                         case
-                             ==_a1ri
-                                 lit_a1rj ds_d1tF
-                         of {
-                           PrelBase.True{-5E,p-}{i} ->
-                               PrelBase.[]{-5i,p-}{i}
-                                   _@_ t{-a11j-};
-                           PrelBase.False{-58,p-}{i} ->
-                               fail_d1tG;
-                         };
-                     PrelBase.False{-58,p-}{i} ->
-                         fail_d1tG;
-                   }
-             } in 
-               case
-                   ==_a1rr
-                       lit_a1rs ds_d1tC
-               of {
-                 PrelBase.True{-5E,p-}{i} ->
-                     case
-                         ==_a1ro
-                             lit_a1rp ds_d1tF
-                     of {
-                       PrelBase.True{-5E,p-}{i} ->
-                           PrelBase.[]{-5i,p-}{i}
-                               _@_ t{-a11j-};
-                       PrelBase.False{-58,p-}{i} ->
-                           fail_d1uo;
-                     };
-                 PrelBase.False{-58,p-}{i} ->
-                     fail_d1uo;
-               }
-h{-r3F,x-}  :: 
-    _forall_
-    [t{-a11Q-}]
-    =>
-    PrelBase.Char{-38,p-} -> [PrelBase.Char{-38,p-}] -> [t{-a11Q-}]
-{-# L #-}
-h{-r3F,x-} =
-    _/\_ t{-a11Q-} ->
-       let {
-         ==_a1v3  :: 
-             [PrelBase.Char{-38,p-}]
-             -> [PrelBase.Char{-38,p-}]
-             -> PrelBase.Bool{-34,p-}
+               ds_d1oy =
+                   PrelBase.I#{-5b,w-}{i} 2
+             } in  fromInt_a1lc ds_d1oy;
+         ==_a1le  ::  taUw -> taUw -> PrelBase.Bool{-34,W-}
          {-# L #-}
-         ==_a1v3 =
-             ==_a1pN
-       } in 
-         \ ds_d1vj  :: 
-               PrelBase.Char{-38,p-}
-           {-# L #-}
-           ds_d1vj ds_d1vk  :: 
-                       [PrelBase.Char{-38,p-}]
-                   {-# L #-}
-                   ds_d1vk ->
-             let {
-               fail_d1vl  :: 
-                   [t{-a11Q-}]
+         ==_a1le =
+             ==_a1l8;
+         fromRational_a1lf  ::  PrelNum.Rational{-3r,p-} -> taUD
+         {-# L #-}
+         fromRational_a1lf =
+             fromRational_a1l9;
+         lit_a1lg  ::  taUD
+         {-# L #-}
+         lit_a1lg =
+             fromRational_a1lf _rational_  11 5;
+         ==_a1lh  ::  taUD -> taUD -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1lh =
+             ==_a1lb;
+         lit_a1li  ::  taUw
+         {-# L #-}
+         lit_a1li =
+             lit_a1l7;
+         ==_a1lj  ::  taUw -> taUw -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1lj =
+             ==_a1l8;
+         lit_a1lk  ::  taUD
+         {-# L #-}
+         lit_a1lk =
+             lit_a1la;
+         ==_a1ll  ::  taUD -> taUD -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1ll =
+             ==_a1lb;
+         lit_a1lm  ::  taUw
+         {-# L #-}
+         lit_a1lm =
+             lit_a1ld;
+         ==_a1ln  ::  taUw -> taUw -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1ln =
+             ==_a1l8;
+         lit_a1lo  ::  taUD
+         {-# L #-}
+         lit_a1lo =
+             lit_a1lg;
+         ==_a1lp  ::  taUD -> taUD -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1lp =
+             ==_a1lb;
+         i_aUr  ::  taUw -> taUD -> [taVd]
+         {-# L #-}
+         i_aUr =
+             \ ds_d1pk  ::  taUw
                {-# L #-}
-               fail_d1vl =
-                   GHCerr.patError{-8r,p-}
-                       _@_ [t{-a11Q-}] _string_ "ds022.hs:15|function `h'"
-             } in 
-               case ds_d1vj of { PrelBase.C#{-54,p-}{i} ds_d1vu  ->
-               case# ds_d1vu of {
-                 'a' ->
-                     case ds_d1vk of {
-                       PrelBase.:{-55,p-}{i} ds_d1vK ds_d1vJ ->
-                           fail_d1vl;
-                       PrelBase.[]{-5i,p-}{i} ->
-                           PrelBase.[]{-5i,p-}{i}
-                               _@_ t{-a11Q-};
-                     };
-                 ''' ->
-                     case
-                         ==_a1v3
-                             _string_ "foo" ds_d1vk
-                     of {
-                       PrelBase.True{-5E,p-}{i} ->
-                           PrelBase.[]{-5i,p-}{i}
-                               _@_ t{-a11Q-};
-                       PrelBase.False{-58,p-}{i} ->
-                           fail_d1vl;
-                     };
-                 '"' ->
-                     case ds_d1vk of {
-                       PrelBase.[]{-5i,p-}{i} ->
-                           fail_d1vl;
-                       PrelBase.:{-55,p-}{i} ds_d1wC ds_d1wD ->
-                           case ds_d1wC of { PrelBase.C#{-54,p-}{i} ds_d1wM  ->
-                           case# ds_d1wM of {
-                             'b' ->
-                                 case ds_d1wD of {
-                                   PrelBase.[]{-5i,p-}{i} ->
-                                       fail_d1vl;
-                                   PrelBase.:{-55,p-}{i} ds_d1x7 ds_d1x8 ->
-                                       case ds_d1x7 of { PrelBase.C#{-54,p-}{i} ds_d1xh  ->
-                                       case# ds_d1xh of {
-                                         'a' ->
-                                             case ds_d1x8 of {
-                                               PrelBase.[]{-5i,p-}{i} ->
-                                                   fail_d1vl;
-                                               PrelBase.:{-55,p-}{i} ds_d1xC ds_d1xD ->
-                                                   case
-                                                       ds_d1xC
-                                                   of {
-                                                   PrelBase.C#{-54,p-}{i} ds_d1xM  ->
-                                                   case# ds_d1xM of {
-                                                     'r' ->
-                                                         case ds_d1xD of {
-                                                           PrelBase.:{-55,p-}{i} ds_d1y2 ds_d1y1 ->
-                                                               fail_d1vl;
-                                                           PrelBase.[]{-5i,p-}{i} ->
-                                                               PrelBase.[]{-5i,p-}{i}
-                                                                   _@_ t{-a11Q-};
-                                                         };
-                                                     ds_d1yd ->
-                                                         fail_d1vl;
-                                                   };};
-                                             };
-                                         ds_d1yg ->
-                                             fail_d1vl;
-                                       };};
-                                 };
-                             ds_d1yj ->
-                                 fail_d1vl;
-                           };};
-                     };
-                 '¨' ->
-                     let {
-                       blob_r3D  :: 
-                           [PrelBase.Char{-38,p-}]
+               ds_d1pk ds_d1pn  ::  taUD
                        {-# L #-}
-                       blob_r3D =
-                           ds_d1vk
-                     } in 
-                       PrelBase.[]{-5i,p-}{i}
-                           _@_ t{-a11Q-};
-                 ds_d1yx ->
-                     fail_d1vl;
-               };}
-g{-r3G,x-}  :: 
-    _forall_
-    [t{-a12s-} t{-a12w-} t{-a12A-}]
-    =>
-    {PrelNum.Fractional{-26,p-} t{-a12w-}}
-    -> {PrelBase.Num{-2c,p-} t{-a12s-}}
-    -> t{-a12s-}
-    -> t{-a12w-}
-    -> [t{-a12A-}]
-{-# L #-}
-g{-r3G,x-} =
-    _/\_ t{-a12s-} t{-a12w-} t{-a12A-} -> \ d.Fractional_a12I  :: 
-                                               {PrelNum.Fractional{-26,p-} t{-a12w-}}
-                                           {-# L #-}
-                                           d.Fractional_a12I d.Num_a12D  :: 
-                                                                 {PrelBase.Num{-2c,p-} t{-a12s-}}
-                                                             {-# L #-}
-                                                             d.Num_a12D ->
-       let {
-         d.Eq_a12F  :: 
-             {PrelBase.Eq{-23,p-} t{-a12s-}}
-         {-# L #-}
-         d.Eq_a12F =
-             PrelBase.scsel_NumPrelBaseEq{-a1rD,p-}
-                 _@_ t{-a12s-} d.Num_a12D } in
-       let {
-         d.Num_a13Y  :: 
-             {PrelBase.Num{-2c,p-} t{-a12w-}}
-         {-# L #-}
-         d.Num_a13Y =
-             PrelNum.scsel_FractionalPrelBaseNum{-a1rM,p-}
-                 _@_ t{-a12w-} d.Fractional_a12I } in
-       let {
-         d.Eq_a12K  :: 
-             {PrelBase.Eq{-23,p-} t{-a12w-}}
-         {-# L #-}
-         d.Eq_a12K =
-             PrelBase.scsel_NumPrelBaseEq{-a1rD,p-}
-                 _@_ t{-a12w-} d.Num_a13Y } in
-       let {
-         fromInteger_a1zV  :: 
-             PrelBase.Integer{-3h,p-} -> t{-a12s-}
-         {-# L #-}
-         fromInteger_a1zV =
-             PrelBase.fromInteger{-8S,p-}
-                 _@_ t{-a12s-} d.Num_a12D } in
-       let {
-         lit_a1zU  :: 
-             t{-a12s-}
-         {-# L #-}
-         lit_a1zU =
-             fromInteger_a1zV
-                 _integer_  11111111111111111111111 } in
-       let {
-         ==_a1zT  :: 
-             t{-a12s-} -> t{-a12s-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a1zT =
-             PrelBase.=={-8Y,p-}
-                 _@_ t{-a12s-} d.Eq_a12F } in
-       let {
-         fromRational_a1zS  :: 
-             PrelNum.Rational{-3r,p-} -> t{-a12w-}
-         {-# L #-}
-         fromRational_a1zS =
-             PrelNum.fromRational{-8T,p-}
-                 _@_ t{-a12w-} d.Fractional_a12I } in
-       let {
-         lit_a1zR  :: 
-             t{-a12w-}
-         {-# L #-}
-         lit_a1zR =
-             fromRational_a1zS
-                 _rational_  111111111111111111 100000000000000000 } in
-       let {
-         ==_a1zQ  :: 
-             t{-a12w-} -> t{-a12w-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a1zQ =
-             PrelBase.=={-8Y,p-}
-                 _@_ t{-a12w-} d.Eq_a12K } in
-       let {
-         fromInteger_a1zP  :: 
-             PrelBase.Integer{-3h,p-} -> t{-a12s-}
-         {-# L #-}
-         fromInteger_a1zP =
-             fromInteger_a1zV } in
-       let {
-         lit_a1zO  :: 
-             t{-a12s-}
-         {-# L #-}
-         lit_a1zO =
-             fromInteger_a1zP
-                 _integer_  22222222222222222222222 } in
-       let {
-         ==_a1zN  :: 
-             t{-a12s-} -> t{-a12s-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a1zN =
-             ==_a1zT } in
-       let {
-         fromRational_a1zM  :: 
-             PrelNum.Rational{-3r,p-} -> t{-a12w-}
-         {-# L #-}
-         fromRational_a1zM =
-             fromRational_a1zS } in
-       let {
-         lit_a1zL  :: 
-             t{-a12w-}
-         {-# L #-}
-         lit_a1zL =
-             fromRational_a1zM
-                 _rational_  111111111111111111 50000000000000000 } in
-       let {
-         ==_a1zK  :: 
-             t{-a12w-} -> t{-a12w-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a1zK =
-             ==_a1zQ } in
-       let {
-         fromInteger_a1zJ  :: 
-             PrelBase.Integer{-3h,p-} -> t{-a12s-}
-         {-# L #-}
-         fromInteger_a1zJ =
-             fromInteger_a1zV } in
-       let {
-         lit_a1zI  :: 
-             t{-a12s-}
-         {-# L #-}
-         lit_a1zI =
-             fromInteger_a1zJ
-                 _integer_  33333333333333333333333 } in
-       let {
-         ==_a1zH  :: 
-             t{-a12s-} -> t{-a12s-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a1zH =
-             ==_a1zT } in
-       let {
-         fromRational_a1zG  :: 
-             PrelNum.Rational{-3r,p-} -> t{-a12w-}
-         {-# L #-}
-         fromRational_a1zG =
-             fromRational_a1zS } in
-       let {
-         lit_a1zF  :: 
-             t{-a12w-}
-         {-# L #-}
-         lit_a1zF =
-             fromRational_a1zG
-                 _rational_  333333333333333333 100000000000000000 } in
-       let {
-         ==_a1zE  :: 
-             t{-a12w-} -> t{-a12w-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a1zE =
-             ==_a1zQ } in
-       let {
-         fromInteger_a1zD  :: 
-             PrelBase.Integer{-3h,p-} -> t{-a12s-}
-         {-# L #-}
-         fromInteger_a1zD =
-             fromInteger_a1zV } in
-       let {
-         lit_a1zC  :: 
-             t{-a12s-}
-         {-# L #-}
-         lit_a1zC =
-             fromInteger_a1zD
-                 _integer_  44444444444444444444444 } in
-       let {
-         ==_a1zB  :: 
-             t{-a12s-} -> t{-a12s-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a1zB =
-             ==_a1zT } in
-       let {
-         fromRational_a1zA  :: 
-             PrelNum.Rational{-3r,p-} -> t{-a12w-}
-         {-# L #-}
-         fromRational_a1zA =
-             fromRational_a1zS } in
-       let {
-         lit_a1zz  :: 
-             t{-a12w-}
-         {-# L #-}
-         lit_a1zz =
-             fromRational_a1zA
-                 _rational_  111111111111111111 25000000000000000 } in
-       let {
-         ==_a1zy  :: 
-             t{-a12w-} -> t{-a12w-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a1zy =
-             ==_a1zQ
-       } in 
-         \ ds_d1Cc  :: 
-               t{-a12s-}
-           {-# L #-}
-           ds_d1Cc ds_d1Cf  :: 
-                       t{-a12w-}
-                   {-# L #-}
-                   ds_d1Cf ->
-             let {
-               fail_d1Cg  :: 
-                   [t{-a12A-}]
-               {-# L #-}
-               fail_d1Cg =
-                   GHCerr.patError{-8r,p-}
-                       _@_ [t{-a12A-}] _string_ "ds022.hs:10|function `g'" } in
-             let { fail_d1Eo  :: 
-                       [t{-a12A-}]
+                       ds_d1pn ->
+                 let {
+                   fail_d1po  ::  [taVd]
                    {-# L #-}
-                   fail_d1Eo =
-               let { fail_d1DG  :: 
-                         [t{-a12A-}]
-                     {-# L #-}
-                     fail_d1DG =
+                   fail_d1po =
+                       GHCerr.patError{-8r,w-}
+                           _@_ [taVd] _string_ "ds022.hs:20|function `i'" } in
                  let {
-                   fail_d1CY  :: 
-                       [t{-a12A-}]
+                   fail_d1q6  ::  [taVd]
                    {-# L #-}
-                   fail_d1CY =
-                       case
-                           ==_a1zB
-                               lit_a1zC ds_d1Cc
-                       of {
-                         PrelBase.True{-5E,p-}{i} ->
-                             case
-                                 ==_a1zy
-                                     lit_a1zz ds_d1Cf
-                             of {
-                               PrelBase.True{-5E,p-}{i} ->
-                                   PrelBase.[]{-5i,p-}{i}
-                                       _@_ t{-a12A-};
-                               PrelBase.False{-58,p-}{i} ->
-                                   fail_d1Cg;
+                   fail_d1q6 =
+                       case ==_a1le lit_a1ld ds_d1pk of {
+                         PrelBase.True{-5E,w-}{i} ->
+                             case ==_a1lh lit_a1lg ds_d1pn of {
+                               PrelBase.True{-5E,w-}{i} -> PrelBase.[]{-5i,w-}{i} _@_ taVd;
+                               PrelBase.False{-58,w-}{i} -> fail_d1po;
                              };
-                         PrelBase.False{-58,p-}{i} ->
-                             fail_d1Cg;
+                         PrelBase.False{-58,w-}{i} -> fail_d1po;
                        }
                  } in 
-                   case
-                       ==_a1zH
-                           lit_a1zI ds_d1Cc
-                   of {
-                     PrelBase.True{-5E,p-}{i} ->
-                         case
-                             ==_a1zE
-                                 lit_a1zF ds_d1Cf
-                         of {
-                           PrelBase.True{-5E,p-}{i} ->
-                               PrelBase.[]{-5i,p-}{i}
-                                   _@_ t{-a12A-};
-                           PrelBase.False{-58,p-}{i} ->
-                               fail_d1CY;
+                   case ==_a1l8 lit_a1l7 ds_d1pk of {
+                     PrelBase.True{-5E,w-}{i} ->
+                         case ==_a1lb lit_a1la ds_d1pn of {
+                           PrelBase.True{-5E,w-}{i} -> PrelBase.[]{-5i,w-}{i} _@_ taVd;
+                           PrelBase.False{-58,w-}{i} -> fail_d1q6;
                          };
-                     PrelBase.False{-58,p-}{i} ->
-                         fail_d1CY;
-                   }
-               } in
-               case
-                   ==_a1zN
-                       lit_a1zO ds_d1Cc
-               of {
-                 PrelBase.True{-5E,p-}{i} ->
-                     case
-                         ==_a1zK
-                             lit_a1zL ds_d1Cf
-                     of {
-                       PrelBase.True{-5E,p-}{i} ->
-                           PrelBase.[]{-5i,p-}{i}
-                               _@_ t{-a12A-};
-                       PrelBase.False{-58,p-}{i} ->
-                           fail_d1DG;
-                     };
-                 PrelBase.False{-58,p-}{i} ->
-                     fail_d1DG;
-               }
-             } in
-             case
-                 ==_a1zT
-                     lit_a1zU ds_d1Cc
-             of {
-               PrelBase.True{-5E,p-}{i} ->
-                   case
-                       ==_a1zQ
-                           lit_a1zR ds_d1Cf
-                   of {
-                     PrelBase.True{-5E,p-}{i} ->
-                         PrelBase.[]{-5i,p-}{i}
-                             _@_ t{-a12A-};
-                     PrelBase.False{-58,p-}{i} ->
-                         fail_d1Eo;
+                     PrelBase.False{-58,w-}{i} -> fail_d1q6;
                    };
-               PrelBase.False{-58,p-}{i} ->
-                   fail_d1Eo;
-             }
-f{-r3H,x-}  :: 
-    _forall_
-    [t{-a13s-} t{-a13w-} t{-a13A-}]
-    =>
-    {PrelNum.Fractional{-26,p-} t{-a13w-}}
-    -> {PrelBase.Num{-2c,p-} t{-a13s-}}
-    -> t{-a13s-}
-    -> t{-a13w-}
-    -> [t{-a13A-}]
+       } in  i_aUr
+h{-r3t,x-}  ::  _forall_
+               [taVQ]
+               =>
+               PrelBase.Char{-38,W-} -> [PrelBase.Char{-38,W-}] -> [taVQ]
 {-# L #-}
-f{-r3H,x-} =
-    _/\_ t{-a13s-} t{-a13w-} t{-a13A-} -> \ d.Fractional_a13I  :: 
-                                               {PrelNum.Fractional{-26,p-} t{-a13w-}}
-                                           {-# L #-}
-                                           d.Fractional_a13I d.Num_a13D  :: 
-                                                                 {PrelBase.Num{-2c,p-} t{-a13s-}}
-                                                             {-# L #-}
-                                                             d.Num_a13D ->
-       let {
-         d.Eq_a13F  :: 
-             {PrelBase.Eq{-23,p-} t{-a13s-}}
-         {-# L #-}
-         d.Eq_a13F =
-             PrelBase.scsel_NumPrelBaseEq{-a1rD,p-}
-                 _@_ t{-a13s-} d.Num_a13D } in
-       let {
-         d.Num_a13Z  :: 
-             {PrelBase.Num{-2c,p-} t{-a13w-}}
-         {-# L #-}
-         d.Num_a13Z =
-             PrelNum.scsel_FractionalPrelBaseNum{-a1rM,p-}
-                 _@_ t{-a13w-} d.Fractional_a13I } in
-       let {
-         d.Eq_a13K  :: 
-             {PrelBase.Eq{-23,p-} t{-a13w-}}
-         {-# L #-}
-         d.Eq_a13K =
-             PrelBase.scsel_NumPrelBaseEq{-a1rD,p-}
-                 _@_ t{-a13w-} d.Num_a13Z } in
-       let {
-         fromInt_a1Gk  :: 
-             PrelBase.Int{-3g,p-} -> t{-a13s-}
-         {-# L #-}
-         fromInt_a1Gk =
-             PrelBase.fromInt{-8R,p-}
-                 _@_ t{-a13s-} d.Num_a13D } in
-       let { lit_a1Gj  :: 
-                 t{-a13s-}
-             {-# L #-}
-             lit_a1Gj =
-         let {
-           ds_d1GY  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_d1GY =
-               PrelBase.I#{-5b,p-}{i}
-                   1
-         } in 
-           fromInt_a1Gk
-               ds_d1GY
-       } in
-       let {
-         ==_a1Gi  :: 
-             t{-a13s-} -> t{-a13s-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a1Gi =
-             PrelBase.=={-8Y,p-}
-                 _@_ t{-a13s-} d.Eq_a13F } in
-       let {
-         fromRational_a1Gh  :: 
-             PrelNum.Rational{-3r,p-} -> t{-a13w-}
-         {-# L #-}
-         fromRational_a1Gh =
-             PrelNum.fromRational{-8T,p-}
-                 _@_ t{-a13w-} d.Fractional_a13I } in
-       let {
-         lit_a1Gg  :: 
-             t{-a13w-}
-         {-# L #-}
-         lit_a1Gg =
-             fromRational_a1Gh
-                 _rational_  11 10 } in
-       let {
-         ==_a1Gf  :: 
-             t{-a13w-} -> t{-a13w-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a1Gf =
-             PrelBase.=={-8Y,p-}
-                 _@_ t{-a13w-} d.Eq_a13K } in
-       let {
-         fromInt_a1Ge  :: 
-             PrelBase.Int{-3g,p-} -> t{-a13s-}
-         {-# L #-}
-         fromInt_a1Ge =
-             fromInt_a1Gk } in
-       let { lit_a1Gd  :: 
-                 t{-a13s-}
-             {-# L #-}
-             lit_a1Gd =
-         let {
-           ds_d1HG  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_d1HG =
-               PrelBase.I#{-5b,p-}{i}
-                   2
-         } in 
-           fromInt_a1Ge
-               ds_d1HG
-       } in
-       let {
-         ==_a1Gc  :: 
-             t{-a13s-} -> t{-a13s-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a1Gc =
-             ==_a1Gi } in
-       let {
-         fromRational_a1Gb  :: 
-             PrelNum.Rational{-3r,p-} -> t{-a13w-}
-         {-# L #-}
-         fromRational_a1Gb =
-             fromRational_a1Gh } in
-       let {
-         lit_a1Ga  :: 
-             t{-a13w-}
-         {-# L #-}
-         lit_a1Ga =
-             fromRational_a1Gb
-                 _rational_  11 5 } in
-       let {
-         ==_a1G9  :: 
-             t{-a13w-} -> t{-a13w-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a1G9 =
-             ==_a1Gf } in
-       let {
-         fromInt_a1G8  :: 
-             PrelBase.Int{-3g,p-} -> t{-a13s-}
-         {-# L #-}
-         fromInt_a1G8 =
-             fromInt_a1Gk } in
-       let { lit_a1G7  :: 
-                 t{-a13s-}
-             {-# L #-}
-             lit_a1G7 =
-         let {
-           ds_d1I3  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_d1I3 =
-               PrelBase.I#{-5b,p-}{i}
-                   3
-         } in 
-           fromInt_a1G8
-               ds_d1I3
-       } in
-       let {
-         ==_a1G6  :: 
-             t{-a13s-} -> t{-a13s-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a1G6 =
-             ==_a1Gi } in
-       let {
-         fromRational_a1G5  :: 
-             PrelNum.Rational{-3r,p-} -> t{-a13w-}
-         {-# L #-}
-         fromRational_a1G5 =
-             fromRational_a1Gh } in
-       let {
-         lit_a1G4  :: 
-             t{-a13w-}
-         {-# L #-}
-         lit_a1G4 =
-             fromRational_a1G5
-                 _rational_  33 10 } in
-       let {
-         ==_a1G3  :: 
-             t{-a13w-} -> t{-a13w-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a1G3 =
-             ==_a1Gf } in
-       let {
-         fromInt_a1G2  :: 
-             PrelBase.Int{-3g,p-} -> t{-a13s-}
-         {-# L #-}
-         fromInt_a1G2 =
-             fromInt_a1Gk } in
-       let { lit_a1G1  :: 
-                 t{-a13s-}
-             {-# L #-}
-             lit_a1G1 =
-         let {
-           ds_d1Iq  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_d1Iq =
-               PrelBase.I#{-5b,p-}{i}
-                   4
-         } in 
-           fromInt_a1G2
-               ds_d1Iq
-       } in
-       let {
-         ==_a1G0  :: 
-             t{-a13s-} -> t{-a13s-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a1G0 =
-             ==_a1Gi } in
-       let {
-         fromRational_a1FZ  :: 
-             PrelNum.Rational{-3r,p-} -> t{-a13w-}
-         {-# L #-}
-         fromRational_a1FZ =
-             fromRational_a1Gh } in
-       let {
-         lit_a1FY  :: 
-             t{-a13w-}
-         {-# L #-}
-         lit_a1FY =
-             fromRational_a1FZ
-                 _rational_  22 5 } in
-       let {
-         ==_a1FX  :: 
-             t{-a13w-} -> t{-a13w-} -> PrelBase.Bool{-34,p-}
-         {-# L #-}
-         ==_a1FX =
-             ==_a1Gf
-       } in 
-         \ ds_d1Jb  :: 
-               t{-a13s-}
-           {-# L #-}
-           ds_d1Jb ds_d1Je  :: 
-                       t{-a13w-}
+h{-r3t,x-} =
+    _/\_ taVQ ->
+       _letrec_ {
+         ==_a1qR  ::  [PrelBase.Char{-38,W-}]
+                      -> [PrelBase.Char{-38,W-}]
+                      -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1qR =
+             ==_a1l5;
+         h_aVt  ::  PrelBase.Char{-38,W-}
+                    -> [PrelBase.Char{-38,W-}]
+                    -> [taVQ]
+         {-# L #-}
+         h_aVt =
+             \ ds_d1rb  ::  PrelBase.Char{-38,W-}
+               {-# L #-}
+               ds_d1rb ds_d1rc  ::  [PrelBase.Char{-38,W-}]
+                       {-# L #-}
+                       ds_d1rc ->
+                 let {
+                   fail_d1rd  ::  [taVQ]
                    {-# L #-}
-                   ds_d1Je ->
-             let {
-               fail_d1Jf  :: 
-                   [t{-a13A-}]
+                   fail_d1rd =
+                       GHCerr.patError{-8r,w-}
+                           _@_ [taVQ] _string_ "ds022.hs:15|function `h'"
+                 } in 
+                   case ds_d1rb of { PrelBase.C#{-54,w-}{i} ds_d1rm  ->
+                   case# ds_d1rm of {
+                     'a' ->
+                         case ds_d1rc of {
+                           PrelBase.:{-55,w-}{i} ds_d1rB ds_d1rC -> fail_d1rd;
+                           PrelBase.[]{-5i,w-}{i} -> PrelBase.[]{-5i,w-}{i} _@_ taVQ;
+                         };
+                     ''' ->
+                         case ==_a1qR _string_ "foo" ds_d1rc of {
+                           PrelBase.True{-5E,w-}{i} -> PrelBase.[]{-5i,w-}{i} _@_ taVQ;
+                           PrelBase.False{-58,w-}{i} -> fail_d1rd;
+                         };
+                     '"' ->
+                         case ds_d1rc of {
+                           PrelBase.[]{-5i,w-}{i} -> fail_d1rd;
+                           PrelBase.:{-55,w-}{i} ds_d1su ds_d1sv ->
+                               case ds_d1su of { PrelBase.C#{-54,w-}{i} ds_d1sE  ->
+                               case# ds_d1sE of {
+                                 'b' ->
+                                     case ds_d1sv of {
+                                       PrelBase.[]{-5i,w-}{i} -> fail_d1rd;
+                                       PrelBase.:{-55,w-}{i} ds_d1sZ ds_d1t0 ->
+                                           case ds_d1sZ of { PrelBase.C#{-54,w-}{i} ds_d1t9  ->
+                                           case# ds_d1t9 of {
+                                             'a' ->
+                                                 case ds_d1t0 of {
+                                                   PrelBase.[]{-5i,w-}{i} -> fail_d1rd;
+                                                   PrelBase.:{-55,w-}{i} ds_d1tu ds_d1tv ->
+                                                       case
+                                                           ds_d1tu
+                                                       of {
+                                                       PrelBase.C#{-54,w-}{i} ds_d1tE  ->
+                                                       case# ds_d1tE of {
+                                                         'r' ->
+                                                             case ds_d1tv of {
+                                                               PrelBase.:{-55,w-}{i} ds_d1tT ds_d1tU ->
+                                                                   fail_d1rd;
+                                                               PrelBase.[]{-5i,w-}{i} ->
+                                                                   PrelBase.[]{-5i,w-}{i} _@_ taVQ;
+                                                             };
+                                                         ds_d1u5 -> fail_d1rd;
+                                                       };};
+                                                 };
+                                             ds_d1u8 -> fail_d1rd;
+                                           };};
+                                     };
+                                 ds_d1ub -> fail_d1rd;
+                               };};
+                         };
+                     '¨' ->
+                         let {
+                           blob_r3r  ::  [PrelBase.Char{-38,W-}]
+                           {-# L #-}
+                           blob_r3r =
+                               ds_d1rc
+                         } in  PrelBase.[]{-5i,w-}{i} _@_ taVQ;
+                     ds_d1up -> fail_d1rd;
+                   };};
+       } in  h_aVt
+g{-r3u,x-}  ::  _forall_
+               [taVZ taW6 taWG]
+               =>
+               {PrelNum.Fractional{-26,p-} taW6}
+               -> {PrelBase.Num{-2c,p-} taVZ}
+               -> taVZ
+               -> taW6
+               -> [taWG]
+{-# L #-}
+g{-r3u,x-} =
+    _/\_ taVZ taW6 taWG -> \ d.Fractional_aWO  ::  {PrelNum.Fractional{-26,p-} taW6}
+                            {-# L #-}
+                            d.Fractional_aWO d.Num_aWJ  ::  {PrelBase.Num{-2c,p-} taVZ}
+                                             {-# L #-}
+                                             d.Num_aWJ ->
+       _letrec_ {
+         d.Eq_aWL  ::  {PrelBase.Eq{-23,p-} taVZ}
+         {-# L #-}
+         d.Eq_aWL =
+             PrelBase.scsel_NumPrelBaseEq{-a1ls,p-} _@_ taVZ d.Num_aWJ;
+         d.Num_aYa  ::  {PrelBase.Num{-2c,p-} taW6}
+         {-# L #-}
+         d.Num_aYa =
+             PrelNum.scsel_FractionalPrelBaseNum{-a1nt,p-}
+                 _@_ taW6 d.Fractional_aWO;
+         d.Eq_aWQ  ::  {PrelBase.Eq{-23,p-} taW6}
+         {-# L #-}
+         d.Eq_aWQ =
+             PrelBase.scsel_NumPrelBaseEq{-a1ls,p-} _@_ taW6 d.Num_aYa;
+         fromInteger_a1uM  ::  PrelBase.Integer{-3h,W-} -> taVZ
+         {-# L #-}
+         fromInteger_a1uM =
+             PrelBase.fromInteger{-8S,p-} _@_ taVZ d.Num_aWJ;
+         lit_a1uN  ::  taVZ
+         {-# L #-}
+         lit_a1uN =
+             fromInteger_a1uM _integer_  11111111111111111111111;
+         ==_a1uO  ::  taVZ -> taVZ -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1uO =
+             PrelBase.=={-8Y,p-} _@_ taVZ d.Eq_aWL;
+         fromRational_a1uP  ::  PrelNum.Rational{-3r,p-} -> taW6
+         {-# L #-}
+         fromRational_a1uP =
+             PrelNum.fromRational{-8T,p-} _@_ taW6 d.Fractional_aWO;
+         lit_a1uQ  ::  taW6
+         {-# L #-}
+         lit_a1uQ =
+             fromRational_a1uP
+                 _rational_  111111111111111111 100000000000000000;
+         ==_a1uR  ::  taW6 -> taW6 -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1uR =
+             PrelBase.=={-8Y,p-} _@_ taW6 d.Eq_aWQ;
+         fromInteger_a1uS  ::  PrelBase.Integer{-3h,W-} -> taVZ
+         {-# L #-}
+         fromInteger_a1uS =
+             fromInteger_a1uM;
+         lit_a1uT  ::  taVZ
+         {-# L #-}
+         lit_a1uT =
+             fromInteger_a1uS _integer_  22222222222222222222222;
+         ==_a1uU  ::  taVZ -> taVZ -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1uU =
+             ==_a1uO;
+         fromRational_a1uV  ::  PrelNum.Rational{-3r,p-} -> taW6
+         {-# L #-}
+         fromRational_a1uV =
+             fromRational_a1uP;
+         lit_a1uW  ::  taW6
+         {-# L #-}
+         lit_a1uW =
+             fromRational_a1uV _rational_  111111111111111111 50000000000000000;
+         ==_a1uX  ::  taW6 -> taW6 -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1uX =
+             ==_a1uR;
+         fromInteger_a1uY  ::  PrelBase.Integer{-3h,W-} -> taVZ
+         {-# L #-}
+         fromInteger_a1uY =
+             fromInteger_a1uM;
+         lit_a1uZ  ::  taVZ
+         {-# L #-}
+         lit_a1uZ =
+             fromInteger_a1uY _integer_  33333333333333333333333;
+         ==_a1v0  ::  taVZ -> taVZ -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1v0 =
+             ==_a1uO;
+         fromRational_a1v1  ::  PrelNum.Rational{-3r,p-} -> taW6
+         {-# L #-}
+         fromRational_a1v1 =
+             fromRational_a1uP;
+         lit_a1v2  ::  taW6
+         {-# L #-}
+         lit_a1v2 =
+             fromRational_a1v1
+                 _rational_  333333333333333333 100000000000000000;
+         ==_a1v3  ::  taW6 -> taW6 -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1v3 =
+             ==_a1uR;
+         fromInteger_a1v4  ::  PrelBase.Integer{-3h,W-} -> taVZ
+         {-# L #-}
+         fromInteger_a1v4 =
+             fromInteger_a1uM;
+         lit_a1v5  ::  taVZ
+         {-# L #-}
+         lit_a1v5 =
+             fromInteger_a1v4 _integer_  44444444444444444444444;
+         ==_a1v6  ::  taVZ -> taVZ -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1v6 =
+             ==_a1uO;
+         fromRational_a1v7  ::  PrelNum.Rational{-3r,p-} -> taW6
+         {-# L #-}
+         fromRational_a1v7 =
+             fromRational_a1uP;
+         lit_a1v8  ::  taW6
+         {-# L #-}
+         lit_a1v8 =
+             fromRational_a1v7 _rational_  111111111111111111 25000000000000000;
+         ==_a1v9  ::  taW6 -> taW6 -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1v9 =
+             ==_a1uR;
+         g_aVU  ::  taVZ -> taW6 -> [taWG]
+         {-# L #-}
+         g_aVU =
+             \ ds_d1z4  ::  taVZ
                {-# L #-}
-               fail_d1Jf =
-                   GHCerr.patError{-8r,p-}
-                       _@_ [t{-a13A-}] _string_ "ds022.hs:5|function `f'" } in
-             let { fail_d1Ln  :: 
-                       [t{-a13A-}]
+               ds_d1z4 ds_d1z7  ::  taW6
+                       {-# L #-}
+                       ds_d1z7 ->
+                 let {
+                   fail_d1z8  ::  [taWG]
                    {-# L #-}
-                   fail_d1Ln =
-               let { fail_d1KF  :: 
-                         [t{-a13A-}]
-                     {-# L #-}
-                     fail_d1KF =
+                   fail_d1z8 =
+                       GHCerr.patError{-8r,w-}
+                           _@_ [taWG] _string_ "ds022.hs:10|function `g'" } in
+                 let { fail_d1Bg  ::  [taWG]
+                       {-# L #-}
+                       fail_d1Bg =
+                   let { fail_d1Ay  ::  [taWG]
+                         {-# L #-}
+                         fail_d1Ay =
+                     let {
+                       fail_d1zQ  ::  [taWG]
+                       {-# L #-}
+                       fail_d1zQ =
+                           case ==_a1v6 lit_a1v5 ds_d1z4 of {
+                             PrelBase.True{-5E,w-}{i} ->
+                                 case ==_a1v9 lit_a1v8 ds_d1z7 of {
+                                   PrelBase.True{-5E,w-}{i} -> PrelBase.[]{-5i,w-}{i} _@_ taWG;
+                                   PrelBase.False{-58,w-}{i} -> fail_d1z8;
+                                 };
+                             PrelBase.False{-58,w-}{i} -> fail_d1z8;
+                           }
+                     } in 
+                       case ==_a1v0 lit_a1uZ ds_d1z4 of {
+                         PrelBase.True{-5E,w-}{i} ->
+                             case ==_a1v3 lit_a1v2 ds_d1z7 of {
+                               PrelBase.True{-5E,w-}{i} -> PrelBase.[]{-5i,w-}{i} _@_ taWG;
+                               PrelBase.False{-58,w-}{i} -> fail_d1zQ;
+                             };
+                         PrelBase.False{-58,w-}{i} -> fail_d1zQ;
+                       }
+                   } in
+                   case ==_a1uU lit_a1uT ds_d1z4 of {
+                     PrelBase.True{-5E,w-}{i} ->
+                         case ==_a1uX lit_a1uW ds_d1z7 of {
+                           PrelBase.True{-5E,w-}{i} -> PrelBase.[]{-5i,w-}{i} _@_ taWG;
+                           PrelBase.False{-58,w-}{i} -> fail_d1Ay;
+                         };
+                     PrelBase.False{-58,w-}{i} -> fail_d1Ay;
+                   }
+                 } in
+                 case ==_a1uO lit_a1uN ds_d1z4 of {
+                   PrelBase.True{-5E,w-}{i} ->
+                       case ==_a1uR lit_a1uQ ds_d1z7 of {
+                         PrelBase.True{-5E,w-}{i} -> PrelBase.[]{-5i,w-}{i} _@_ taWG;
+                         PrelBase.False{-58,w-}{i} -> fail_d1Bg;
+                       };
+                   PrelBase.False{-58,w-}{i} -> fail_d1Bg;
+                 };
+       } in  g_aVU
+f{-r3v,x-}  ::  _forall_
+               [taX5 taXc taXM]
+               =>
+               {PrelNum.Fractional{-26,p-} taXc}
+               -> {PrelBase.Num{-2c,p-} taX5}
+               -> taX5
+               -> taXc
+               -> [taXM]
+{-# L #-}
+f{-r3v,x-} =
+    _/\_ taX5 taXc taXM -> \ d.Fractional_aXU  ::  {PrelNum.Fractional{-26,p-} taXc}
+                            {-# L #-}
+                            d.Fractional_aXU d.Num_aXP  ::  {PrelBase.Num{-2c,p-} taX5}
+                                             {-# L #-}
+                                             d.Num_aXP ->
+       _letrec_ {
+         d.Eq_aXR  ::  {PrelBase.Eq{-23,p-} taX5}
+         {-# L #-}
+         d.Eq_aXR =
+             PrelBase.scsel_NumPrelBaseEq{-a1ls,p-} _@_ taX5 d.Num_aXP;
+         d.Num_aYb  ::  {PrelBase.Num{-2c,p-} taXc}
+         {-# L #-}
+         d.Num_aYb =
+             PrelNum.scsel_FractionalPrelBaseNum{-a1nt,p-}
+                 _@_ taXc d.Fractional_aXU;
+         d.Eq_aXW  ::  {PrelBase.Eq{-23,p-} taXc}
+         {-# L #-}
+         d.Eq_aXW =
+             PrelBase.scsel_NumPrelBaseEq{-a1ls,p-} _@_ taXc d.Num_aYb;
+         fromInt_a1Cb  ::  PrelBase.Int{-3g,W-} -> taX5
+         {-# L #-}
+         fromInt_a1Cb =
+             PrelBase.fromInt{-8R,p-} _@_ taX5 d.Num_aXP;
+         lit_a1Cc  ::  taX5
+         {-# L #-}
+         lit_a1Cc =
+             let {
+               ds_d1EP  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_d1EP =
+                   PrelBase.I#{-5b,w-}{i} 1
+             } in  fromInt_a1Cb ds_d1EP;
+         ==_a1Cd  ::  taX5 -> taX5 -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1Cd =
+             PrelBase.=={-8Y,p-} _@_ taX5 d.Eq_aXR;
+         fromRational_a1Ce  ::  PrelNum.Rational{-3r,p-} -> taXc
+         {-# L #-}
+         fromRational_a1Ce =
+             PrelNum.fromRational{-8T,p-} _@_ taXc d.Fractional_aXU;
+         lit_a1Cf  ::  taXc
+         {-# L #-}
+         lit_a1Cf =
+             fromRational_a1Ce _rational_  11 10;
+         ==_a1Cg  ::  taXc -> taXc -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1Cg =
+             PrelBase.=={-8Y,p-} _@_ taXc d.Eq_aXW;
+         fromInt_a1Ch  ::  PrelBase.Int{-3g,W-} -> taX5
+         {-# L #-}
+         fromInt_a1Ch =
+             fromInt_a1Cb;
+         lit_a1Ci  ::  taX5
+         {-# L #-}
+         lit_a1Ci =
+             let {
+               ds_d1Fx  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_d1Fx =
+                   PrelBase.I#{-5b,w-}{i} 2
+             } in  fromInt_a1Ch ds_d1Fx;
+         ==_a1Cj  ::  taX5 -> taX5 -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1Cj =
+             ==_a1Cd;
+         fromRational_a1Ck  ::  PrelNum.Rational{-3r,p-} -> taXc
+         {-# L #-}
+         fromRational_a1Ck =
+             fromRational_a1Ce;
+         lit_a1Cl  ::  taXc
+         {-# L #-}
+         lit_a1Cl =
+             fromRational_a1Ck _rational_  11 5;
+         ==_a1Cm  ::  taXc -> taXc -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1Cm =
+             ==_a1Cg;
+         fromInt_a1Cn  ::  PrelBase.Int{-3g,W-} -> taX5
+         {-# L #-}
+         fromInt_a1Cn =
+             fromInt_a1Cb;
+         lit_a1Co  ::  taX5
+         {-# L #-}
+         lit_a1Co =
+             let {
+               ds_d1FU  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_d1FU =
+                   PrelBase.I#{-5b,w-}{i} 3
+             } in  fromInt_a1Cn ds_d1FU;
+         ==_a1Cp  ::  taX5 -> taX5 -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1Cp =
+             ==_a1Cd;
+         fromRational_a1Cq  ::  PrelNum.Rational{-3r,p-} -> taXc
+         {-# L #-}
+         fromRational_a1Cq =
+             fromRational_a1Ce;
+         lit_a1Cr  ::  taXc
+         {-# L #-}
+         lit_a1Cr =
+             fromRational_a1Cq _rational_  33 10;
+         ==_a1Cs  ::  taXc -> taXc -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1Cs =
+             ==_a1Cg;
+         fromInt_a1Ct  ::  PrelBase.Int{-3g,W-} -> taX5
+         {-# L #-}
+         fromInt_a1Ct =
+             fromInt_a1Cb;
+         lit_a1Cu  ::  taX5
+         {-# L #-}
+         lit_a1Cu =
+             let {
+               ds_d1Gh  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_d1Gh =
+                   PrelBase.I#{-5b,w-}{i} 4
+             } in  fromInt_a1Ct ds_d1Gh;
+         ==_a1Cv  ::  taX5 -> taX5 -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1Cv =
+             ==_a1Cd;
+         fromRational_a1Cw  ::  PrelNum.Rational{-3r,p-} -> taXc
+         {-# L #-}
+         fromRational_a1Cw =
+             fromRational_a1Ce;
+         lit_a1Cx  ::  taXc
+         {-# L #-}
+         lit_a1Cx =
+             fromRational_a1Cw _rational_  22 5;
+         ==_a1Cy  ::  taXc -> taXc -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1Cy =
+             ==_a1Cg;
+         f_aX0  ::  taX5 -> taXc -> [taXM]
+         {-# L #-}
+         f_aX0 =
+             \ ds_d1H3  ::  taX5
+               {-# L #-}
+               ds_d1H3 ds_d1H6  ::  taXc
+                       {-# L #-}
+                       ds_d1H6 ->
                  let {
-                   fail_d1JX  :: 
-                       [t{-a13A-}]
+                   fail_d1H7  ::  [taXM]
                    {-# L #-}
-                   fail_d1JX =
-                       case
-                           ==_a1G0
-                               lit_a1G1 ds_d1Jb
-                       of {
-                         PrelBase.True{-5E,p-}{i} ->
-                             case
-                                 ==_a1FX
-                                     lit_a1FY ds_d1Je
-                             of {
-                               PrelBase.True{-5E,p-}{i} ->
-                                   PrelBase.[]{-5i,p-}{i}
-                                       _@_ t{-a13A-};
-                               PrelBase.False{-58,p-}{i} ->
-                                   fail_d1Jf;
+                   fail_d1H7 =
+                       GHCerr.patError{-8r,w-}
+                           _@_ [taXM] _string_ "ds022.hs:5|function `f'" } in
+                 let { fail_d1Jf  ::  [taXM]
+                       {-# L #-}
+                       fail_d1Jf =
+                   let { fail_d1Ix  ::  [taXM]
+                         {-# L #-}
+                         fail_d1Ix =
+                     let {
+                       fail_d1HP  ::  [taXM]
+                       {-# L #-}
+                       fail_d1HP =
+                           case ==_a1Cv lit_a1Cu ds_d1H3 of {
+                             PrelBase.True{-5E,w-}{i} ->
+                                 case ==_a1Cy lit_a1Cx ds_d1H6 of {
+                                   PrelBase.True{-5E,w-}{i} -> PrelBase.[]{-5i,w-}{i} _@_ taXM;
+                                   PrelBase.False{-58,w-}{i} -> fail_d1H7;
+                                 };
+                             PrelBase.False{-58,w-}{i} -> fail_d1H7;
+                           }
+                     } in 
+                       case ==_a1Cp lit_a1Co ds_d1H3 of {
+                         PrelBase.True{-5E,w-}{i} ->
+                             case ==_a1Cs lit_a1Cr ds_d1H6 of {
+                               PrelBase.True{-5E,w-}{i} -> PrelBase.[]{-5i,w-}{i} _@_ taXM;
+                               PrelBase.False{-58,w-}{i} -> fail_d1HP;
                              };
-                         PrelBase.False{-58,p-}{i} ->
-                             fail_d1Jf;
+                         PrelBase.False{-58,w-}{i} -> fail_d1HP;
                        }
-                 } in 
-                   case
-                       ==_a1G6
-                           lit_a1G7 ds_d1Jb
-                   of {
-                     PrelBase.True{-5E,p-}{i} ->
-                         case
-                             ==_a1G3
-                                 lit_a1G4 ds_d1Je
-                         of {
-                           PrelBase.True{-5E,p-}{i} ->
-                               PrelBase.[]{-5i,p-}{i}
-                                   _@_ t{-a13A-};
-                           PrelBase.False{-58,p-}{i} ->
-                               fail_d1JX;
+                   } in
+                   case ==_a1Cj lit_a1Ci ds_d1H3 of {
+                     PrelBase.True{-5E,w-}{i} ->
+                         case ==_a1Cm lit_a1Cl ds_d1H6 of {
+                           PrelBase.True{-5E,w-}{i} -> PrelBase.[]{-5i,w-}{i} _@_ taXM;
+                           PrelBase.False{-58,w-}{i} -> fail_d1Ix;
                          };
-                     PrelBase.False{-58,p-}{i} ->
-                         fail_d1JX;
+                     PrelBase.False{-58,w-}{i} -> fail_d1Ix;
                    }
-               } in
-               case
-                   ==_a1Gc
-                       lit_a1Gd ds_d1Jb
-               of {
-                 PrelBase.True{-5E,p-}{i} ->
-                     case
-                         ==_a1G9
-                             lit_a1Ga ds_d1Je
-                     of {
-                       PrelBase.True{-5E,p-}{i} ->
-                           PrelBase.[]{-5i,p-}{i}
-                               _@_ t{-a13A-};
-                       PrelBase.False{-58,p-}{i} ->
-                           fail_d1KF;
-                     };
-                 PrelBase.False{-58,p-}{i} ->
-                     fail_d1KF;
-               }
-             } in
-             case
-                 ==_a1Gi
-                     lit_a1Gj ds_d1Jb
-             of {
-               PrelBase.True{-5E,p-}{i} ->
-                   case
-                       ==_a1Gf
-                           lit_a1Gg ds_d1Je
-                   of {
-                     PrelBase.True{-5E,p-}{i} ->
-                         PrelBase.[]{-5i,p-}{i}
-                             _@_ t{-a13A-};
-                     PrelBase.False{-58,p-}{i} ->
-                         fail_d1Ln;
-                   };
-               PrelBase.False{-58,p-}{i} ->
-                   fail_d1Ln;
-             }
+                 } in
+                 case ==_a1Cd lit_a1Cc ds_d1H3 of {
+                   PrelBase.True{-5E,w-}{i} ->
+                       case ==_a1Cg lit_a1Cf ds_d1H6 of {
+                         PrelBase.True{-5E,w-}{i} -> PrelBase.[]{-5i,w-}{i} _@_ taXM;
+                         PrelBase.False{-58,w-}{i} -> fail_d1Jf;
+                       };
+                   PrelBase.False{-58,w-}{i} -> fail_d1Jf;
+                 };
+       } in  f_aX0
+d.Eq_aY8  ::  {PrelBase.Eq{-23,p-} PrelBase.Char{-38,W-}}
+{-# L #-}
+d.Eq_aY8 =
+    PrelBase.$d34{-raE,p-}
+d.Eq_aY6  ::  {PrelBase.Eq{-23,p-} [PrelBase.Char{-38,W-}]}
+{-# L #-}
+d.Eq_aY6 =
+    PrelBase.$d28{-rax,p-} _@_ PrelBase.Char{-38,W-} d.Eq_aY8
+==_a1l5  ::  [PrelBase.Char{-38,W-}]
+            -> [PrelBase.Char{-38,W-}]
+            -> PrelBase.Bool{-34,W-}
+{-# L #-}
+==_a1l5 =
+    PrelBase.=={-8Y,p-} _@_ [PrelBase.Char{-38,W-}] d.Eq_aY6
 end Rec }
index a34fcde..51a7d0a 100644 (file)
 ================================================================================
 Desugared:
 Rec {
-ds_dK5  :: 
-    _forall_
-    [rlg{-aHq-} riC{-aHC-}]
-    =>
-    {PrelBase.Num{-2c,p-} riC{-aHC-}}
-    -> {PrelBase.Eq{-23,p-} rlg{-aHq-}}
-    -> (rlg{-aHq-} -> riC{-aHC-}, PrelBase.Bool{-34,p-}
-                                 -> rlg{-aHq-}
-                                 -> riC{-aHC-})
+ds_dEJ  ::  _forall_
+           [taC5 taCc]
+           =>
+           {PrelBase.Num{-2c,p-} taCc}
+           -> {PrelBase.Eq{-23,p-} taC5}
+           -> (taC5 -> taCc, PrelBase.Bool{-34,W-} -> taC5 -> taCc)
 {-# L #-}
-ds_dK5 =
-    _/\_ rlg{-aHq-} riC{-aHC-} -> \ d.Num_aHI  :: 
-                                       {PrelBase.Num{-2c,p-} riC{-aHC-}}
-                                   {-# L #-}
-                                   d.Num_aHI d.Eq_aHG  :: 
-                                                 {PrelBase.Eq{-23,p-} rlg{-aHq-}}
-                                             {-# L #-}
-                                             d.Eq_aHG ->
+ds_dEJ =
+    _/\_ taC5 taCc -> \ d.Num_aCh  ::  {PrelBase.Num{-2c,p-} taCc}
+                       {-# L #-}
+                       d.Num_aCh d.Eq_aCf  ::  {PrelBase.Eq{-23,p-} taC5}
+                                 {-# L #-}
+                                 d.Eq_aCf ->
        _letrec_ {
-         ==_aKk  :: 
-             rlg{-aHq-} -> rlg{-aHq-} -> PrelBase.Bool{-34,p-}
+         ==_aEY  ::  taC5 -> taC5 -> PrelBase.Bool{-34,W-}
          {-# L #-}
-         ==_aKk =
-             PrelBase.=={-8Y,p-}
-                 _@_ rlg{-aHq-} d.Eq_aHG;
-         abs_aKr  :: 
-             riC{-aHC-} -> riC{-aHC-}
+         ==_aEY =
+             PrelBase.=={-8Y,p-} _@_ taC5 d.Eq_aCf;
+         abs_aF5  ::  taCc -> taCc
          {-# L #-}
-         abs_aKr =
-             PrelBase.abs{-r3j,p-}
-                 _@_ riC{-aHC-} d.Num_aHI;
-         f_aHi  :: 
-             rlg{-aHq-} -> riC{-aHC-}
+         abs_aF5 =
+             PrelBase.abs{-r3i,p-} _@_ taCc d.Num_aCh;
+         f_aBP  ::  taC5 -> taCc
          {-# L #-}
-         f_aHi =
-             \ x_r3e  :: 
-                   rlg{-aHq-}
+         f_aBP =
+             \ x_r3e  ::  taC5
                {-# L #-}
                x_r3e ->
-                 let {
-                   ds_dL3  :: 
-                       PrelBase.Bool{-34,p-}
-                   {-# L #-}
-                   ds_dL3 =
-                       ==_aKk
-                           x_r3e x_r3e
-                 } in 
-                   g_aHj
-                       ds_dL3 x_r3e;
-         g_aHj  :: 
-             PrelBase.Bool{-34,p-} -> rlg{-aHq-} -> riC{-aHC-}
+                 (let {
+                    ds_dFM  ::  PrelBase.Bool{-34,W-}
+                    {-# L #-}
+                    ds_dFM =
+                        ==_aEY x_r3e x_r3e
+                  } in  g_aBQ ds_dFM)
+                     x_r3e;
+         g_aBQ  ::  PrelBase.Bool{-34,W-} -> taC5 -> taCc
          {-# L #-}
-         g_aHj =
-             \ b_r3g  :: 
-                   PrelBase.Bool{-34,p-}
+         g_aBQ =
+             \ b_r3g  ::  PrelBase.Bool{-34,W-}
                {-# L #-}
-               b_r3g x_r3i  :: 
-                         rlg{-aHq-}
+               b_r3g x_r3h  ::  taC5
                      {-# L #-}
-                     x_r3i ->
+                     x_r3h ->
                  let {
-                   ds_dLq  :: 
-                       riC{-aHC-}
+                   ds_dG6  ::  taCc
                    {-# L #-}
-                   ds_dLq =
-                       f_aHi
-                           x_r3i
-                 } in 
-                   abs_aKr
-                       ds_dLq;
+                   ds_dG6 =
+                       f_aBP x_r3h
+                 } in  abs_aF5 ds_dG6;
        } in 
-         PrelTup.(,){-62,p-}{i}
-             {_@_ (rlg{-aHq-} -> riC{-aHC-})
-              _@_ (PrelBase.Bool{-34,p-} -> rlg{-aHq-} -> riC{-aHC-})
-              f_aHi
-              g_aHj}
-f{-r3l,x-}  :: 
-    _forall_
-    [rlg{-aHq-} riC{-aHC-}]
-    =>
-    {PrelBase.Num{-2c,p-} riC{-aHC-}}
-    -> {PrelBase.Eq{-23,p-} rlg{-aHq-}}
-    -> rlg{-aHq-}
-    -> riC{-aHC-}
+         PrelTup.(,){-62,w-}{i}
+             {_@_ (taC5 -> taCc)
+              _@_ (PrelBase.Bool{-34,W-} -> taC5 -> taCc)
+              f_aBP
+              g_aBQ}
+f{-r3k,x-}  ::  _forall_
+               [taC5 taCc]
+               =>
+               {PrelBase.Num{-2c,p-} taCc}
+               -> {PrelBase.Eq{-23,p-} taC5}
+               -> taC5
+               -> taCc
 {-# L #-}
-f{-r3l,x-} =
-    _/\_ rlg{-aHq-} riC{-aHC-} -> \ d.Num_aHI  :: 
-                                       {PrelBase.Num{-2c,p-} riC{-aHC-}}
-                                   {-# L #-}
-                                   d.Num_aHI d.Eq_aHG  :: 
-                                                 {PrelBase.Eq{-23,p-} rlg{-aHq-}}
-                                             {-# L #-}
-                                             d.Eq_aHG ->
+f{-r3k,x-} =
+    _/\_ taC5 taCc -> \ d.Num_aCh  ::  {PrelBase.Num{-2c,p-} taCc}
+                       {-# L #-}
+                       d.Num_aCh d.Eq_aCf  ::  {PrelBase.Eq{-23,p-} taC5}
+                                 {-# L #-}
+                                 d.Eq_aCf ->
        case
-           ds_dK5
-               _@_ rlg{-aHq-} _@_ riC{-aHC-} d.Num_aHI d.Eq_aHG
+           ds_dEJ _@_ taC5 _@_ taCc d.Num_aCh d.Eq_aCf
        of {
-       PrelTup.(,){-62,p-}{i} ds_dM9 ds_dMa  ->
-       ds_dM9;}
-g{-r3k,x-}  :: 
-    _forall_
-    [rlg{-aHq-} riC{-aHC-}]
-    =>
-    {PrelBase.Num{-2c,p-} riC{-aHC-}}
-    -> {PrelBase.Eq{-23,p-} rlg{-aHq-}}
-    -> PrelBase.Bool{-34,p-}
-    -> rlg{-aHq-}
-    -> riC{-aHC-}
+       PrelTup.(,){-62,w-}{i} ds_dGP ds_dGQ  ->
+       ds_dGP;}
+g{-r3j,x-}  ::  _forall_
+               [taC5 taCc]
+               =>
+               {PrelBase.Num{-2c,p-} taCc}
+               -> {PrelBase.Eq{-23,p-} taC5}
+               -> PrelBase.Bool{-34,W-}
+               -> taC5
+               -> taCc
 {-# L #-}
-g{-r3k,x-} =
-    _/\_ rlg{-aHq-} riC{-aHC-} -> \ d.Num_aHI  :: 
-                                       {PrelBase.Num{-2c,p-} riC{-aHC-}}
-                                   {-# L #-}
-                                   d.Num_aHI d.Eq_aHG  :: 
-                                                 {PrelBase.Eq{-23,p-} rlg{-aHq-}}
-                                             {-# L #-}
-                                             d.Eq_aHG ->
+g{-r3j,x-} =
+    _/\_ taC5 taCc -> \ d.Num_aCh  ::  {PrelBase.Num{-2c,p-} taCc}
+                       {-# L #-}
+                       d.Num_aCh d.Eq_aCf  ::  {PrelBase.Eq{-23,p-} taC5}
+                                 {-# L #-}
+                                 d.Eq_aCf ->
        case
-           ds_dK5
-               _@_ rlg{-aHq-} _@_ riC{-aHC-} d.Num_aHI d.Eq_aHG
+           ds_dEJ _@_ taC5 _@_ taCc d.Num_aCh d.Eq_aCf
        of {
-       PrelTup.(,){-62,p-}{i} ds_dMB ds_dMA  ->
-       ds_dMA;}
+       PrelTup.(,){-62,w-}{i} ds_dHh ds_dHg  ->
+       ds_dHg;}
 end Rec }
 
 NOTE: Simplifier still going after 4 iterations; bailing out.
index b377760..77bca55 100644 (file)
@@ -2,77 +2,71 @@
 
 ================================================================================
 Desugared:
-g{-r3h,x-}  :: 
-    _forall_
-    [t{-aAR-} t{-aAL-} t{-aAN-} t{-aAP-}]
-    =>
-    t{-aAR-} -> ([t{-aAL-}], [t{-aAN-}], [t{-aAP-}])
+Rec {
+g{-r3h,x-}  ::  _forall_
+               [tayq tayk taym tayo]
+               =>
+               tayq -> ([tayk], [taym], [tayo])
 {-# L #-}
 g{-r3h,x-} =
-    _/\_ t{-aAR-} t{-aAL-} t{-aAN-} t{-aAP-} -> \ x_r3g  :: 
-                                                     t{-aAR-}
-                                                 {-# L #-}
-                                                 x_r3g ->
-       let {
-         ds_dD1  :: 
-             [t{-aAL-}]
+    _/\_ tayq tayk taym tayo ->
+       _letrec_ {
+         g_ay5  ::  tayq -> ([tayk], [taym], [tayo])
          {-# L #-}
-         ds_dD1 =
-             PrelBase.[]{-5i,p-}{i}
-                 _@_ t{-aAL-} } in
-       let {
-         ds_dD5  :: 
-             [t{-aAN-}]
-         {-# L #-}
-         ds_dD5 =
-             PrelBase.[]{-5i,p-}{i}
-                 _@_ t{-aAN-} } in
-       let {
-         ds_dD9  :: 
-             [t{-aAP-}]
-         {-# L #-}
-         ds_dD9 =
-             PrelBase.[]{-5i,p-}{i}
-                 _@_ t{-aAP-}
-       } in 
-         PrelTup.(,,){-63,p-}{i}
-             {_@_ [t{-aAL-}] _@_ [t{-aAN-}] _@_ [t{-aAP-}] ds_dD1 ds_dD5 ds_dD9}
-f{-r3i,x-}  :: 
-    _forall_ [t{-aAZ-} t{-aB3-}] => t{-aB3-} -> [[t{-aAZ-}]]
+         g_ay5 =
+             \ x_r3g  ::  tayq
+               {-# L #-}
+               x_r3g ->
+                 let {
+                   ds_dAP  ::  [tayk]
+                   {-# L #-}
+                   ds_dAP =
+                       PrelBase.[]{-5i,w-}{i} _@_ tayk } in
+                 let {
+                   ds_dAT  ::  [taym]
+                   {-# L #-}
+                   ds_dAT =
+                       PrelBase.[]{-5i,w-}{i} _@_ taym } in
+                 let {
+                   ds_dAX  ::  [tayo]
+                   {-# L #-}
+                   ds_dAX =
+                       PrelBase.[]{-5i,w-}{i} _@_ tayo
+                 } in 
+                   PrelTup.(,,){-63,w-}{i}
+                       {_@_ [tayk] _@_ [taym] _@_ [tayo] ds_dAP ds_dAT ds_dAX};
+       } in  g_ay5
+f{-r3i,x-}  ::  _forall_ [tayH tayF] => tayH -> [[tayF]]
 {-# L #-}
 f{-r3i,x-} =
-    _/\_ t{-aAZ-} t{-aB3-} -> \ x_r3e  :: 
-                                   t{-aB3-}
-                               {-# L #-}
-                               x_r3e ->
-       let {
-         ds_dDN  :: 
-             [t{-aAZ-}]
+    _/\_ tayH tayF ->
+       _letrec_ {
+         f_ays  ::  tayH -> [[tayF]]
          {-# L #-}
-         ds_dDN =
-             PrelBase.[]{-5i,p-}{i}
-                 _@_ t{-aAZ-} } in
-       let { ds_dDR  :: 
-                 [[t{-aAZ-}]]
-             {-# L #-}
-             ds_dDR =
-         let {
-           ds_dE7  :: 
-               [t{-aAZ-}]
-           {-# L #-}
-           ds_dE7 =
-               PrelBase.[]{-5i,p-}{i}
-                   _@_ t{-aAZ-} } in
-         let {
-           ds_dEb  :: 
-               [[t{-aAZ-}]]
-           {-# L #-}
-           ds_dEb =
-               PrelBase.[]{-5i,p-}{i}
-                   {_@_ [t{-aAZ-}]}
-         } in 
-           PrelBase.:{-55,p-}{i}
-               {_@_ [t{-aAZ-}] ds_dE7 ds_dEb}
-       } in
-       PrelBase.:{-55,p-}{i}
-           {_@_ [t{-aAZ-}] ds_dDN ds_dDR}
+         f_ays =
+             \ x_r3e  ::  tayH
+               {-# L #-}
+               x_r3e ->
+                 let {
+                   ds_dBF  ::  [tayF]
+                   {-# L #-}
+                   ds_dBF =
+                       PrelBase.[]{-5i,w-}{i} _@_ tayF } in
+                 let { ds_dBJ  ::  [[tayF]]
+                       {-# L #-}
+                       ds_dBJ =
+                   let {
+                     ds_dBZ  ::  [tayF]
+                     {-# L #-}
+                     ds_dBZ =
+                         PrelBase.[]{-5i,w-}{i} _@_ tayF } in
+                   let {
+                     ds_dC3  ::  [[tayF]]
+                     {-# L #-}
+                     ds_dC3 =
+                         PrelBase.[]{-5i,w-}{i} {_@_ [tayF]}
+                   } in  PrelBase.:{-55,w-}{i} {_@_ [tayF] ds_dBZ ds_dC3}
+                 } in
+                 PrelBase.:{-55,w-}{i} {_@_ [tayF] ds_dBF ds_dBJ};
+       } in  f_ays
+end Rec }
index c28b16d..b2ae1fd 100644 (file)
@@ -14,5 +14,3 @@ assocMaybe :: (Eq a) => a -> [(a,b)] -> Maybe b
 assocMaybe key lst
  = if (null res) then Nothing else (Just (head res))
    where res =  [ val | (key',val) <- lst, key==key']
-
-data Maybe a = Just a | Nothing deriving ()
index 4e6ad93..77c98c5 100644 (file)
-ds025.hs:3:
-    Conflicting definitions for: `Just'
-       Defined at ds025.hs:18
-       Imported from Prelude at ds025.hs:3
-ds025.hs:3:
-    Conflicting definitions for: `Nothing'
-       Defined at ds025.hs:18
-       Imported from Prelude at ds025.hs:3
-ds025.hs:3:
-    Conflicting definitions for: `Maybe'
-       Defined at ds025.hs:18
-       Imported from Prelude at ds025.hs:3
+ds025.hs:6: 
+    Warning: Possibly incomplete patterns
+       in the definition of function `ehead'
 
 
-Compilation had errors
+================================================================================
+Desugared:
+Rec {
+assocMaybe{-r3h,x-}  ::  _forall_
+                        [taUL taUO]
+                        =>
+                        {PrelBase.Eq{-23,p-} taUL}
+                        -> taUL
+                        -> [(taUL, taUO)]
+                        -> PrelBase.Maybe{-rhk,p-} taUO
+{-# L #-}
+assocMaybe{-r3h,x-} =
+    _/\_ taUL taUO -> \ d.Eq_aVB  ::  {PrelBase.Eq{-23,p-} taUL}
+                       {-# L #-}
+                       d.Eq_aVB ->
+       _letrec_ {
+         d.Eq_aVD  ::  {PrelBase.Eq{-23,p-} taUL}
+         {-# L #-}
+         d.Eq_aVD =
+             d.Eq_aVB;
+         ==_a16L  ::  taUL -> taUL -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a16L =
+             PrelBase.=={-8Y,p-} _@_ taUL d.Eq_aVD;
+         assocMaybe_aUI  ::  taUL
+                             -> [(taUL, taUO)]
+                             -> PrelBase.Maybe{-rhk,p-} taUO
+         {-# L #-}
+         assocMaybe_aUI =
+             \ key_r3x  ::  taUL
+               {-# L #-}
+               key_r3x lst_r3y  ::  [(taUL, taUO)]
+                       {-# L #-}
+                       lst_r3y ->
+                 let { res_aUQ  ::  [taUO]
+                       {-# L #-}
+                       res_aUQ =
+                   _letrec_ {
+                     ds_d18e  ::  [(taUL, taUO)] -> [taUO]
+                     {-# L #-}
+                     ds_d18e =
+                         \ ds_d18j  ::  [(taUL, taUO)]
+                           {-# L #-}
+                           ds_d18j ->
+                             case ds_d18j of {
+                               PrelBase.[]{-5i,w-}{i} -> PrelBase.[]{-5i,w-}{i} {_@_ taUO};
+                               PrelBase.:{-55,w-}{i} ds_d18y ds_d18z ->
+                                   case ds_d18y of { PrelTup.(,){-62,w-}{i} key'_r3C val_r3D  ->
+                                   case ==_a16L key_r3x key'_r3C of {
+                                     PrelBase.True{-5E,w-}{i} ->
+                                         let {
+                                           ds_d195  ::  [taUO]
+                                           {-# L #-}
+                                           ds_d195 =
+                                               ds_d18e ds_d18z
+                                         } in  PrelBase.:{-55,w-}{i} {_@_ taUO val_r3D ds_d195};
+                                     PrelBase.False{-58,w-}{i} -> ds_d18e ds_d18z;
+                                   };};
+                             };
+                   } in  ds_d18e lst_r3y
+                 } in
+                 let {
+                   res_r3A  ::  [taUO]
+                   {-# L #-}
+                   res_r3A =
+                       res_aUQ
+                 } in 
+                   case PrelList.null{-r51,p-} _@_ taUO res_r3A of {
+                     PrelBase.True{-5E,w-}{i} -> PrelBase.Nothing{-rbW,p-}{i} _@_ taUO;
+                     PrelBase.False{-58,w-}{i} ->
+                         let {
+                           ds_d19W  ::  taUO
+                           {-# L #-}
+                           ds_d19W =
+                               PrelList.head{-r3E,p-} _@_ taUO res_r3A
+                         } in  PrelBase.Just{-rbS,p-}{i} _@_ taUO ds_d19W;
+                   };
+       } in  assocMaybe_aUI
+ehead{-r3i,x-}  ::  _forall_
+                   [taWc]
+                   =>
+                   [taWc] -> [PrelBase.Char{-38,W-}] -> taWc
+{-# L #-}
+ehead{-r3i,x-} =
+    _/\_ taWc ->
+       _letrec_ {
+         ehead_aVL  ::  [taWc] -> [PrelBase.Char{-38,W-}] -> taWc
+         {-# L #-}
+         ehead_aVL =
+             \ xs_r3l  ::  [taWc]
+               {-# L #-}
+               xs_r3l loc_r3m  ::  [PrelBase.Char{-38,W-}]
+                      {-# L #-}
+                      loc_r3m ->
+                 let {
+                   fail_d1aE  ::  taWc
+                   {-# L #-}
+                   fail_d1aE =
+                       GHCerr.patError{-8r,w-}
+                           _@_ taWc _string_ "ds025.hs:5|function `ehead'"
+                 } in 
+                   case PrelList.null{-r51,p-} _@_ taWc xs_r3l of {
+                     PrelBase.True{-5E,w-}{i} ->
+                         let { ds_d1aS  ::  [PrelBase.Char{-38,W-}]
+                               {-# L #-}
+                               ds_d1aS =
+                           let { ds_d1b2  ::  [PrelBase.Char{-38,W-}]
+                                 {-# L #-}
+                                 ds_d1b2 =
+                             let {
+                               ds_d1bg  ::  PrelBase.Char{-38,W-}
+                               {-# L #-}
+                               ds_d1bg =
+                                   PrelBase.C#{-54,w-}{i} {'4'} } in
+                             let {
+                               ds_d1bk  ::  [PrelBase.Char{-38,W-}]
+                               {-# L #-}
+                               ds_d1bk =
+                                   PrelBase.[]{-5i,w-}{i} {_@_ PrelBase.Char{-38,W-}}
+                             } in 
+                               PrelBase.:{-55,w-}{i} {_@_ PrelBase.Char{-38,W-} ds_d1bg ds_d1bk}
+                           } in
+                           ++_a127 _@_ PrelBase.Char{-38,W-} ds_d1b2 loc_r3m
+                         } in
+                         IOBase.error{-87,w-} _@_ taWc ds_d1aS;
+                     PrelBase.False{-58,w-}{i} ->
+                         PrelList.head{-r3E,p-} _@_ taWc xs_r3l;
+                   };
+       } in  ehead_aVL
+assoc{-r3j,x-}  ::  _forall_
+                   [taXo taXr]
+                   =>
+                   {PrelBase.Show{-2i,p-} taXo}
+                   -> {PrelBase.Eq{-23,p-} taXo}
+                   -> taXo
+                   -> [(taXo, taXr)]
+                   -> [PrelBase.Char{-38,W-}]
+                   -> taXr
+{-# L #-}
+assoc{-r3j,x-} =
+    _/\_ taXo taXr -> \ d.Show_aXv  ::  {PrelBase.Show{-2i,p-} taXo}
+                       {-# L #-}
+                       d.Show_aXv d.Eq_aXx  ::  {PrelBase.Eq{-23,p-} taXo}
+                                  {-# L #-}
+                                  d.Eq_aXx ->
+       _letrec_ {
+         ++_a122  ::  _forall_ [taXd] => [taXd] -> [taXd] -> [taXd]
+         {-# L #-}
+         ++_a122 =
+             ++_a123;
+         ++_a121  ::  _forall_ [taXk] => [taXk] -> [taXk] -> [taXk]
+         {-# L #-}
+         ++_a121 =
+             ++_a123;
+         show_a12b  ::  taXo -> PrelBase.String{-rhB,p-}
+         {-# L #-}
+         show_a12b =
+             PrelBase.show{-rij,p-} _@_ taXo d.Show_aXv;
+         ==_a12c  ::  taXo -> taXo -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a12c =
+             PrelBase.=={-8Y,p-} _@_ taXo d.Eq_aXx;
+         assoc_aWg  ::  taXo
+                        -> [(taXo, taXr)]
+                        -> [PrelBase.Char{-38,W-}]
+                        -> taXr
+         {-# L #-}
+         assoc_aWg =
+             \ key_r3o  ::  taXo
+               {-# L #-}
+               key_r3o lst_r3p  ::  [(taXo, taXr)]
+                       {-# L #-}
+                       lst_r3p loc_r3q  ::  [PrelBase.Char{-38,W-}]
+                               {-# L #-}
+                               loc_r3q ->
+                 let { res_aWy  ::  [taXr]
+                       {-# L #-}
+                       res_aWy =
+                   _letrec_ {
+                     ds_d1cL  ::  [(taXo, taXr)] -> [taXr]
+                     {-# L #-}
+                     ds_d1cL =
+                         \ ds_d1cQ  ::  [(taXo, taXr)]
+                           {-# L #-}
+                           ds_d1cQ ->
+                             case ds_d1cQ of {
+                               PrelBase.[]{-5i,w-}{i} -> PrelBase.[]{-5i,w-}{i} {_@_ taXr};
+                               PrelBase.:{-55,w-}{i} ds_d1d5 ds_d1d6 ->
+                                   case ds_d1d5 of { PrelTup.(,){-62,w-}{i} key'_r3u val_r3v  ->
+                                   case ==_a12c key_r3o key'_r3u of {
+                                     PrelBase.True{-5E,w-}{i} ->
+                                         let {
+                                           ds_d1dC  ::  [taXr]
+                                           {-# L #-}
+                                           ds_d1dC =
+                                               ds_d1cL ds_d1d6
+                                         } in  PrelBase.:{-55,w-}{i} {_@_ taXr val_r3v ds_d1dC};
+                                     PrelBase.False{-58,w-}{i} -> ds_d1cL ds_d1d6;
+                                   };};
+                             };
+                   } in  ds_d1cL lst_r3p
+                 } in
+                 let {
+                   res_r3s  ::  [taXr]
+                   {-# L #-}
+                   res_r3s =
+                       res_aWy
+                 } in 
+                   case PrelList.null{-r51,p-} _@_ taXr res_r3s of {
+                     PrelBase.True{-5E,w-}{i} ->
+                         let { ds_d1el  ::  [PrelBase.Char{-38,W-}]
+                               {-# L #-}
+                               ds_d1el =
+                           let { ds_d1ex  ::  [PrelBase.Char{-38,W-}]
+                                 {-# L #-}
+                                 ds_d1ex =
+                             let {
+                               ds_d1eM  ::  PrelBase.Char{-38,W-}
+                               {-# L #-}
+                               ds_d1eM =
+                                   PrelBase.C#{-54,w-}{i} {'1'} } in
+                             let {
+                               ds_d1eQ  ::  [PrelBase.Char{-38,W-}]
+                               {-# L #-}
+                               ds_d1eQ =
+                                   PrelBase.[]{-5i,w-}{i} {_@_ PrelBase.Char{-38,W-}}
+                             } in 
+                               PrelBase.:{-55,w-}{i} {_@_ PrelBase.Char{-38,W-} ds_d1eM ds_d1eQ}
+                           } in
+                           let { ds_d1eB  ::  [PrelBase.Char{-38,W-}]
+                                 {-# L #-}
+                                 ds_d1eB =
+                             let { ds_d1f9  ::  [PrelBase.Char{-38,W-}]
+                                   {-# L #-}
+                                   ds_d1f9 =
+                               let { ds_d1fl  ::  [PrelBase.Char{-38,W-}]
+                                     {-# L #-}
+                                     ds_d1fl =
+                                 let {
+                                   ds_d1fA  ::  PrelBase.Char{-38,W-}
+                                   {-# L #-}
+                                   ds_d1fA =
+                                       PrelBase.C#{-54,w-}{i} {'2'} } in
+                                 let {
+                                   ds_d1fE  ::  [PrelBase.Char{-38,W-}]
+                                   {-# L #-}
+                                   ds_d1fE =
+                                       PrelBase.[]{-5i,w-}{i} {_@_ PrelBase.Char{-38,W-}}
+                                 } in 
+                                   PrelBase.:{-55,w-}{i}
+                                       {_@_ PrelBase.Char{-38,W-} ds_d1fA ds_d1fE}
+                               } in
+                               let {
+                                 ds_d1fp  ::  [PrelBase.Char{-38,W-}]
+                                 {-# L #-}
+                                 ds_d1fp =
+                                     show_a12b key_r3o
+                               } in  ++_a121 _@_ PrelBase.Char{-38,W-} ds_d1fl ds_d1fp
+                             } in
+                             ++_a122 _@_ PrelBase.Char{-38,W-} loc_r3q ds_d1f9
+                           } in
+                           ++_a123 _@_ PrelBase.Char{-38,W-} ds_d1ex ds_d1eB
+                         } in
+                         IOBase.error{-87,w-} _@_ taXr ds_d1el;
+                     PrelBase.False{-58,w-}{i} ->
+                         let { ds_d1ga  ::  [PrelBase.Char{-38,W-}]
+                               {-# L #-}
+                               ds_d1ga =
+                           let {
+                             ds_d1gl  ::  PrelBase.Char{-38,W-}
+                             {-# L #-}
+                             ds_d1gl =
+                                 PrelBase.C#{-54,w-}{i} {'3'} } in
+                           let {
+                             ds_d1gp  ::  [PrelBase.Char{-38,W-}]
+                             {-# L #-}
+                             ds_d1gp =
+                                 PrelBase.[]{-5i,w-}{i} {_@_ PrelBase.Char{-38,W-}}
+                           } in 
+                             PrelBase.:{-55,w-}{i} {_@_ PrelBase.Char{-38,W-} ds_d1gl ds_d1gp}
+                         } in
+                         ehead{-r3i,x-} _@_ taXr res_r3s ds_d1ga;
+                   };
+       } in  assoc_aWg
+d.MonadPlus_aXF  ::  {PrelBase.MonadPlus{-2a,p-} PrelBase.[]{-3j,W-}}
+{-# L #-}
+d.MonadPlus_aXF =
+    PrelBase.$d23{-rcg,p-}
+++_a123  ::  _forall_ [taX7] => [taX7] -> [taX7] -> [taX7]
+{-# L #-}
+++_a123 =
+    PrelBase.++{-rhm,p-} _@_ PrelBase.[]{-3j,W-} d.MonadPlus_aXF
+d.Monad_aXI  ::  {PrelBase.Monad{-28,p-} PrelBase.[]{-3j,W-}}
+{-# L #-}
+d.Monad_aXI =
+    PrelBase.$d25{-rci,p-}
+>>=_a124  ::  _forall_
+             [taXO taXP]
+             =>
+             [taXO] -> (taXO -> [taXP]) -> [taXP]
+{-# L #-}
+>>=_a124 =
+    PrelBase.>>={-811,p-} _@_ PrelBase.[]{-3j,W-} d.Monad_aXI
+d.Monad_aXL  ::  {PrelBase.Monad{-28,p-} PrelBase.[]{-3j,W-}}
+{-# L #-}
+d.Monad_aXL =
+    d.Monad_aXI
+return_a125  ::  _forall_ [taXQ] => taXQ -> [taXQ]
+{-# L #-}
+return_a125 =
+    PrelBase.return{-816,p-} _@_ PrelBase.[]{-3j,W-} d.Monad_aXL
+d.MonadZero_aXN  ::  {PrelBase.MonadZero{-29,p-} PrelBase.[]{-3j,W-}}
+{-# L #-}
+d.MonadZero_aXN =
+    PrelBase.$d24{-rch,p-}
+zero_a126  ::  _forall_ [taXR] => [taXR]
+{-# L #-}
+zero_a126 =
+    PrelBase.zero{-810,p-} _@_ PrelBase.[]{-3j,W-} d.MonadZero_aXN
+++_a127  ::  _forall_ [taW6] => [taW6] -> [taW6] -> [taW6]
+{-# L #-}
+++_a127 =
+    ++_a123
+>>=_a128  ::  _forall_
+             [taXS taXT]
+             =>
+             [taXS] -> (taXS -> [taXT]) -> [taXT]
+{-# L #-}
+>>=_a128 =
+    >>=_a124
+return_a129  ::  _forall_ [taXU] => taXU -> [taXU]
+{-# L #-}
+return_a129 =
+    return_a125
+zero_a12a  ::  _forall_ [taXV] => [taXV]
+{-# L #-}
+zero_a12a =
+    zero_a126
+end Rec }
index 914cc16..5565a15 100644 (file)
 ================================================================================
 Desugared:
 Rec {
-scsel_NooShouldSucceedBoo{-aKl,x-}  :: 
-    _forall_
-    [a{-r3n-}]
-    =>
-    {Noo{-r3B,x-} a{-r3n-}} -> {Boo{-r3o,x-} a{-r3n-}}
+f{-r3w,x-}  ::  _forall_
+               [taBw taBB]
+               =>
+               {Noo{-r3x,x-} taBw}
+               -> {PrelBase.Eq{-23,p-} taBB}
+               -> taBw
+               -> taBB
+               -> taBw
 {-# L #-}
-scsel_NooShouldSucceedBoo{-aKl,x-} =
-    _/\_ a{-r3n-} -> \ tpl_B1  :: 
-                          {Noo{-r3B,x-} a{-r3n-}}
-                      {-# L #-}
-                      tpl_B1 ->
-       case tpl_B1 of { PrelTup.(,){-62,p-}{i} tpl_B1 tpl_B2  -> tpl_B1;}
-op2{-r3A,x-}  :: 
-    _forall_
-    [a{-r3n-}]
-    =>
-    {Noo{-r3B,x-} a{-r3n-}}
-    -> (_forall_
-       [b{-r3q-}]
-       =>
-       {PrelBase.Eq{-23,p-} b{-r3q-}} -> a{-r3n-} -> b{-r3q-} -> a{-r3n-})
+f{-r3w,x-} =
+    _/\_ taBw taBB -> \ d.Noo_aBH  ::  {Noo{-r3x,x-} taBw}
+                       {-# L #-}
+                       d.Noo_aBH d.Eq_aBJ  ::  {PrelBase.Eq{-23,p-} taBB}
+                                 {-# L #-}
+                                 d.Eq_aBJ ->
+       _letrec_ {
+         d.Boo_aBL  ::  {Boo{-r3n,x-} taBw}
+         {-# L #-}
+         d.Boo_aBL =
+             scsel_NooShouldSucceedBoo{-aEv,x-} _@_ taBw d.Noo_aBH;
+         d.Foo_aBF  ::  {Foo{-r3s,x-} taBw}
+         {-# L #-}
+         d.Foo_aBF =
+             scsel_BooShouldSucceedFoo{-aEw,x-} _@_ taBw d.Boo_aBL;
+         op_aEx  ::  taBw -> taBw
+         {-# L #-}
+         op_aEx =
+             op{-r3y,x-} _@_ taBw d.Foo_aBF;
+         op2_aBC  ::  _forall_
+                      [taBy]
+                      =>
+                      {PrelBase.Eq{-23,p-} taBy} -> taBw -> taBy -> taBw
+         {-# L #-}
+         op2_aBC =
+             op2{-r3A,x-} _@_ taBw d.Noo_aBH;
+         op2_aEy  ::  taBw -> taBB -> taBw
+         {-# L #-}
+         op2_aEy =
+             op2_aBC _@_ taBB d.Eq_aBJ;
+         f_aBf  ::  taBw -> taBB -> taBw
+         {-# L #-}
+         f_aBf =
+             \ x_r3j  ::  taBw
+               {-# L #-}
+               x_r3j y_r3k  ::  taBB
+                     {-# L #-}
+                     y_r3k ->
+                 let {
+                   ds_dG8  ::  taBw
+                   {-# L #-}
+                   ds_dG8 =
+                       op2_aEy x_r3j y_r3k
+                 } in  op_aEx ds_dG8;
+       } in  f_aBf
+scsel_NooShouldSucceedBoo{-aEv,x-}  ::  _forall_
+                                       [a_tr3m]
+                                       =>
+                                       {Noo{-r3x,x-} a_tr3m} -> {Boo{-r3n,x-} a_tr3m}
+{-# L #-}
+scsel_NooShouldSucceedBoo{-aEv,x-} =
+    _/\_ t12 -> \ tpl_B1  ::  {Noo{-r3x,x-} t12}
+                 {-# L #-}
+                 tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B1;}
+op2{-r3A,x-}  ::  _forall_
+                 [a_tr3m]
+                 =>
+                 {Noo{-r3x,x-} a_tr3m}
+                 -> (_forall_
+                     [b_tr3p]
+                     =>
+                     {PrelBase.Eq{-23,p-} b_tr3p} -> a_tr3m -> b_tr3p -> a_tr3m)
 {-# L #-}
 op2{-r3A,x-} =
-    _/\_ a{-r3n-} -> \ tpl_B1  :: 
-                          {Noo{-r3B,x-} a{-r3n-}}
-                      {-# L #-}
-                      tpl_B1 ->
-       case tpl_B1 of { PrelTup.(,){-62,p-}{i} tpl_B1 tpl_B2  -> tpl_B2;}
-$mop2{-rGB,x-}  :: 
-    _forall_
-    [a{-r3n-}]
-    =>
-    {Noo{-r3B,x-} a{-r3n-}}
-    -> (_forall_
-       [b{-r3q-}]
-       =>
-       {PrelBase.Eq{-23,p-} b{-r3q-}} -> a{-r3n-} -> b{-r3q-} -> a{-r3n-})
+    _/\_ t12 -> \ tpl_B1  ::  {Noo{-r3x,x-} t12}
+                 {-# L #-}
+                 tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B2;}
+ds_dEN  ::  _forall_
+           [taBV]
+           =>
+           {Noo{-r3x,x-} taBV} -> PrelBase.(){-40,W-}
 {-# L #-}
-$mop2{-rGB,x-} =
-    _/\_ a{-aHc-} -> \ d.Noo_aH5  :: 
-                          {Noo{-r3B,x-} a{-aHc-}}
-                      {-# L #-}
-                      d.Noo_aH5 ->
-       _/\_ b{-aHg-} -> \ d.Eq_aHi  :: 
-                              {PrelBase.Eq{-23,p-} b{-aHg-}}
-                          {-# L #-}
-                          d.Eq_aHi ->
-           GHCerr.noDefaultMethodError{-8k,p-}
-               _@_ (a{-aHc-} -> b{-aHg-} -> a{-aHc-})
-               _string_ "Class Noo Method op2"
-scsel_BooShouldSucceedFoo{-aKD,x-}  :: 
-    _forall_
-    [a{-r3t-}]
-    =>
-    {Boo{-r3o,x-} a{-r3t-}} -> {Foo{-r3u,x-} a{-r3t-}}
+ds_dEN =
+    _/\_ taBV -> \ d.Noo_aBO  ::  {Noo{-r3x,x-} taBV}
+                  {-# L #-}
+                  d.Noo_aBO ->
+       PrelBase.(){-60,w-}{i} {}
+scsel_BooShouldSucceedFoo{-aEw,x-}  ::  _forall_
+                                       [a_tr3r]
+                                       =>
+                                       {Boo{-r3n,x-} a_tr3r} -> {Foo{-r3s,x-} a_tr3r}
 {-# L #-}
-scsel_BooShouldSucceedFoo{-aKD,x-} =
-    _/\_ a{-r3t-} -> \ tpl_B1  :: 
-                          {Boo{-r3o,x-} a{-r3t-}}
-                      {-# L #-}
-                      tpl_B1 ->
-       case tpl_B1 of { PrelTup.(,){-62,p-}{i} tpl_B1 tpl_B2  -> tpl_B1;}
-op1{-r3C,x-}  :: 
-    _forall_
-    [a{-r3t-}]
-    =>
-    {Boo{-r3o,x-} a{-r3t-}} -> a{-r3t-} -> a{-r3t-}
+scsel_BooShouldSucceedFoo{-aEw,x-} =
+    _/\_ t12 -> \ tpl_B1  ::  {Boo{-r3n,x-} t12}
+                 {-# L #-}
+                 tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B1;}
+op1{-r3z,x-}  ::  _forall_
+                 [a_tr3r]
+                 =>
+                 {Boo{-r3n,x-} a_tr3r} -> a_tr3r -> a_tr3r
 {-# L #-}
-op1{-r3C,x-} =
-    _/\_ a{-r3t-} -> \ tpl_B1  :: 
-                          {Boo{-r3o,x-} a{-r3t-}}
-                      {-# L #-}
-                      tpl_B1 ->
-       case tpl_B1 of { PrelTup.(,){-62,p-}{i} tpl_B1 tpl_B2  -> tpl_B2;}
-$mop1{-rGD,x-}  :: 
-    _forall_
-    [a{-r3t-}]
-    =>
-    {Boo{-r3o,x-} a{-r3t-}} -> a{-r3t-} -> a{-r3t-}
+op1{-r3z,x-} =
+    _/\_ t12 -> \ tpl_B1  ::  {Boo{-r3n,x-} t12}
+                 {-# L #-}
+                 tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B2;}
+ds_dF0  ::  _forall_
+           [taBW]
+           =>
+           {Boo{-r3n,x-} taBW} -> PrelBase.(){-40,W-}
 {-# L #-}
-$mop1{-rGD,x-} =
-    _/\_ a{-aHs-} -> \ d.Boo_aHl  :: 
-                          {Boo{-r3o,x-} a{-aHs-}}
-                      {-# L #-}
-                      d.Boo_aHl ->
-       GHCerr.noDefaultMethodError{-8k,p-}
-           _@_ (a{-aHs-} -> a{-aHs-}) _string_ "Class Boo Method op1"
-op{-r3D,x-}  :: 
-    _forall_
-    [a{-r3y-}]
-    =>
-    {Foo{-r3u,x-} a{-r3y-}} -> a{-r3y-} -> a{-r3y-}
+ds_dF0 =
+    _/\_ taBW -> \ d.Boo_aBR  ::  {Boo{-r3n,x-} taBW}
+                  {-# L #-}
+                  d.Boo_aBR ->
+       PrelBase.(){-60,w-}{i} {}
+op{-r3y,x-}  ::  _forall_
+                [a_tr3v]
+                =>
+                {Foo{-r3s,x-} a_tr3v} -> a_tr3v -> a_tr3v
 {-# L #-}
-op{-r3D,x-} =
-    _/\_ a{-r3y-} -> \ tpl_B1  :: 
-                          {Foo{-r3u,x-} a{-r3y-}}
-                      {-# L #-}
-                      tpl_B1 ->
+op{-r3y,x-} =
+    _/\_ t12 -> \ tpl_B1  ::  {Foo{-r3s,x-} t12}
+                 {-# L #-}
+                 tpl_B1 ->
        tpl_B1
-$mop{-rGC,x-}  :: 
-    _forall_
-    [a{-r3y-}]
-    =>
-    {Foo{-r3u,x-} a{-r3y-}} -> a{-r3y-} -> a{-r3y-}
-{-# L #-}
-$mop{-rGC,x-} =
-    _/\_ a{-aHD-} -> \ d.Foo_aHw  :: 
-                          {Foo{-r3u,x-} a{-aHD-}}
-                      {-# L #-}
-                      d.Foo_aHw ->
-       GHCerr.noDefaultMethodError{-8k,p-}
-           _@_ (a{-aHD-} -> a{-aHD-}) _string_ "Class Foo Method op"
-f{-r3z,x-}  :: 
-    _forall_
-    [a{-aGK-} b{-aGQ-}]
-    =>
-    {Noo{-r3B,x-} a{-aGK-}}
-    -> {PrelBase.Eq{-23,p-} b{-aGQ-}}
-    -> a{-aGK-}
-    -> b{-aGQ-}
-    -> a{-aGK-}
+ds_dF9  ::  _forall_
+           [taBX]
+           =>
+           {Foo{-r3s,x-} taBX} -> PrelBase.(){-40,W-}
 {-# L #-}
-f{-r3z,x-} =
-    _/\_ a{-aGK-} b{-aGQ-} -> \ d.Noo_aGY  :: 
-                                   {Noo{-r3B,x-} a{-aGK-}}
-                               {-# L #-}
-                               d.Noo_aGY d.Eq_aH0  :: 
-                                             {PrelBase.Eq{-23,p-} b{-aGQ-}}
-                                         {-# L #-}
-                                         d.Eq_aH0 ->
-       let {
-         d.Boo_aH2  :: 
-             {Boo{-r3o,x-} a{-aGK-}}
-         {-# L #-}
-         d.Boo_aH2 =
-             scsel_NooShouldSucceedBoo{-aKl,x-}
-                 _@_ a{-aGK-} d.Noo_aGY } in
-       let {
-         d.Foo_aGW  :: 
-             {Foo{-r3u,x-} a{-aGK-}}
-         {-# L #-}
-         d.Foo_aGW =
-             scsel_BooShouldSucceedFoo{-aKD,x-}
-                 _@_ a{-aGK-} d.Boo_aH2 } in
-       let {
-         op_aMI  :: 
-             a{-aGK-} -> a{-aGK-}
-         {-# L #-}
-         op_aMI =
-             op{-r3D,x-}
-                 _@_ a{-aGK-} d.Foo_aGW } in
-       let {
-         op2_aMH  :: 
-             _forall_
-             [b{-aGM-}]
-             =>
-             {PrelBase.Eq{-23,p-} b{-aGM-}} -> a{-aGK-} -> b{-aGM-} -> a{-aGK-}
-         {-# L #-}
-         op2_aMH =
-             op2{-r3A,x-}
-                 _@_ a{-aGK-} d.Noo_aGY } in
-       let {
-         op2_aMG  :: 
-             a{-aGK-} -> b{-aGQ-} -> a{-aGK-}
-         {-# L #-}
-         op2_aMG =
-             op2_aMH
-                 _@_ b{-aGQ-} d.Eq_aH0
-       } in 
-         \ x_r3j  :: 
-               a{-aGK-}
-           {-# L #-}
-           x_r3j y_r3l  :: 
-                     b{-aGQ-}
-                 {-# L #-}
-                 y_r3l ->
-             let {
-               ds_dNv  :: 
-                   a{-aGK-}
-               {-# L #-}
-               ds_dNv =
-                   op2_aMG
-                       x_r3j y_r3l
-             } in 
-               op_aMI
-                   ds_dNv
+ds_dF9 =
+    _/\_ taBX -> \ d.Foo_aBU  ::  {Foo{-r3s,x-} taBX}
+                  {-# L #-}
+                  d.Foo_aBU ->
+       PrelBase.(){-60,w-}{i} {}
 end Rec }
index 3d500d9..a5be5a5 100644 (file)
-ds027.hs:8: 
-    Warning: Possibly incomplete patterns
-       in the definition of function `=='
 ds027.hs:9: 
     Warning: Possibly incomplete patterns
        in the definition of function `/='
+ds027.hs:8: 
+    Warning: Possibly incomplete patterns
+       in the definition of function `=='
 
 
 ================================================================================
 Desugared:
 Rec {
-d.Eval_aGg  :: 
-    {PrelBase.Eval{-24,p-} Foo{-r3n,x-}}
+Bar{-r4,x-}{i}  ::  Foo{-r3m,x-}
+_A_ 0 {-# L #-}
+Bar{-r4,x-}{i} =
+    Bar{-r4,x-}{i} {}
+Baz{-r3,x-}{i}  ::  Foo{-r3m,x-}
+_A_ 0 {-# L #-}
+Baz{-r3,x-}{i} =
+    Baz{-r3,x-}{i} {}
+d.Eval_aB7  ::  {PrelBase.Eval{-24,p-} Foo{-r3m,x-}}
 {-# L #-}
-d.Eval_aGg =
-    PrelBase.void{-8G,p-}
-$d2{-rIX,x-}  :: 
-    {PrelBase.Eval{-24,p-} Foo{-r3n,x-}}
+d.Eval_aB7 =
+    PrelBase.void{-8G,w-}
+$d2{-rE9,x-}  ::  {PrelBase.Eval{-24,p-} Foo{-r3m,x-}}
 {-# L #-}
-$d2{-rIX,x-} =
-    d.Eval_aGg
-==_aGo  :: 
-    Foo{-r3n,x-} -> Foo{-r3n,x-} -> PrelBase.Bool{-34,p-}
+$d2{-rE9,x-} =
+    d.Eval_aB7
+==_aBg  ::  Foo{-r3m,x-} -> Foo{-r3m,x-} -> PrelBase.Bool{-34,W-}
 {-# L #-}
-==_aGo =
-    \ ds_dJM  :: 
-         Foo{-r3n,x-}
+==_aBg =
+    \ ds_dEQ  ::  Foo{-r3m,x-}
       {-# L #-}
-      ds_dJM ds_dJN  :: 
-                Foo{-r3n,x-}
+      ds_dEQ ds_dER  ::  Foo{-r3m,x-}
             {-# L #-}
-            ds_dJN ->
+            ds_dER ->
        let {
-         fail_dJO  :: 
-             PrelBase.Bool{-34,p-}
+         fail_dES  ::  PrelBase.Bool{-34,W-}
          {-# L #-}
-         fail_dJO =
-             GHCerr.patError{-8r,p-}
-                 _@_ PrelBase.Bool{-34,p-} _string_ "ds027.hs:8|function `=='"
+         fail_dES =
+             GHCerr.patError{-8r,w-}
+                 _@_ PrelBase.Bool{-34,W-} _string_ "ds027.hs:8|function `=='"
        } in 
-         case ds_dJM of {
-           Baz{-r3,x-}{i} ->
-               fail_dJO;
+         case ds_dEQ of {
+           Baz{-r3,x-}{i} -> fail_dES;
            Bar{-r4,x-}{i} ->
-               case ds_dJN of {
-                 Bar{-r4,x-}{i} ->
-                     fail_dJO;
-                 Baz{-r3,x-}{i} ->
-                     PrelBase.True{-5E,p-}{i};
+               case ds_dER of {
+                 Bar{-r4,x-}{i} -> fail_dES;
+                 Baz{-r3,x-}{i} -> PrelBase.True{-5E,w-}{i};
                };
          }
-==_aJ7  :: 
-    Foo{-r3n,x-} -> Foo{-r3n,x-} -> PrelBase.Bool{-34,p-}
+==_aEk  ::  Foo{-r3m,x-} -> Foo{-r3m,x-} -> PrelBase.Bool{-34,W-}
 {-# L #-}
-==_aJ7 =
-    ==_aGo
-/=_aGs  :: 
-    Foo{-r3n,x-} -> Foo{-r3n,x-} -> PrelBase.Bool{-34,p-}
+==_aEk =
+    ==_aBg
+/=_aBl  ::  Foo{-r3m,x-} -> Foo{-r3m,x-} -> PrelBase.Bool{-34,W-}
 {-# L #-}
-/=_aGs =
-    \ ds_dKq  :: 
-         Foo{-r3n,x-}
+/=_aBl =
+    \ ds_dFu  ::  Foo{-r3m,x-}
       {-# L #-}
-      ds_dKq ds_dKr  :: 
-                Foo{-r3n,x-}
+      ds_dFu ds_dFv  ::  Foo{-r3m,x-}
             {-# L #-}
-            ds_dKr ->
+            ds_dFv ->
        let {
-         fail_dKs  :: 
-             PrelBase.Bool{-34,p-}
+         fail_dFw  ::  PrelBase.Bool{-34,W-}
          {-# L #-}
-         fail_dKs =
-             GHCerr.patError{-8r,p-}
-                 _@_ PrelBase.Bool{-34,p-} _string_ "ds027.hs:9|function `/='"
+         fail_dFw =
+             GHCerr.patError{-8r,w-}
+                 _@_ PrelBase.Bool{-34,W-} _string_ "ds027.hs:9|function `/='"
        } in 
-         case ds_dKq of {
-           Baz{-r3,x-}{i} ->
-               fail_dKs;
+         case ds_dFu of {
+           Baz{-r3,x-}{i} -> fail_dFw;
            Bar{-r4,x-}{i} ->
-               case ds_dKr of {
-                 Bar{-r4,x-}{i} ->
-                     fail_dKs;
-                 Baz{-r3,x-}{i} ->
-                     PrelBase.False{-58,p-}{i};
+               case ds_dFv of {
+                 Bar{-r4,x-}{i} -> fail_dFw;
+                 Baz{-r3,x-}{i} -> PrelBase.False{-58,w-}{i};
                };
          }
-/=_aJg  :: 
-    Foo{-r3n,x-} -> Foo{-r3n,x-} -> PrelBase.Bool{-34,p-}
+/=_aEt  ::  Foo{-r3m,x-} -> Foo{-r3m,x-} -> PrelBase.Bool{-34,W-}
 {-# L #-}
-/=_aJg =
-    /=_aGs
-d.Eq_aGl  :: 
-    {PrelBase.Eq{-23,p-} Foo{-r3n,x-}}
+/=_aEt =
+    /=_aBl
+d.Eq_aBc  ::  {PrelBase.Eq{-23,p-} Foo{-r3m,x-}}
 {-# L #-}
-d.Eq_aGl =
-    PrelTup.(,){-62,p-}{i}
-       {_@_ (Foo{-r3n,x-} -> Foo{-r3n,x-} -> PrelBase.Bool{-34,p-})
-        _@_ (Foo{-r3n,x-} -> Foo{-r3n,x-} -> PrelBase.Bool{-34,p-})
-        ==_aJ7
-        /=_aJg}
-$d1{-rJp,x-}  :: 
-    {PrelBase.Eq{-23,p-} Foo{-r3n,x-}}
+d.Eq_aBc =
+    PrelTup.(,){-62,w-}{i}
+       {_@_ (Foo{-r3m,x-} -> Foo{-r3m,x-} -> PrelBase.Bool{-34,W-})
+        _@_ (Foo{-r3m,x-} -> Foo{-r3m,x-} -> PrelBase.Bool{-34,W-})
+        ==_aEk
+        /=_aEt}
+$d1{-rEb,x-}  ::  {PrelBase.Eq{-23,p-} Foo{-r3m,x-}}
 {-# L #-}
-$d1{-rJp,x-} =
-    d.Eq_aGl
-Bar{-r4,x-}{i}  :: 
-    Foo{-r3n,x-}
-_A_ 0 {-# L #-}
-Bar{-r4,x-}{i} =
-    Bar{-r4,x-}{i}
-       {}
-Baz{-r3,x-}{i}  :: 
-    Foo{-r3n,x-}
-_A_ 0 {-# L #-}
-Baz{-r3,x-}{i} =
-    Baz{-r3,x-}{i}
-       {}
+$d1{-rEb,x-} =
+    d.Eq_aBc
 end Rec }
index 99e83c8..528ce28 100644 (file)
@@ -2,82 +2,62 @@
 
 ================================================================================
 Desugared:
-||||_amR  :: 
-    PrelBase.Bool{-34,p-}
-    -> PrelBase.Bool{-34,p-}
-    -> PrelBase.Bool{-34,p-}
+Rec {
+||||_akd  ::  PrelBase.Bool{-34,W-}
+             -> PrelBase.Bool{-34,W-}
+             -> PrelBase.Bool{-34,W-}
 {-# L #-}
-||||_amR =
-    \ ds_dq6  :: 
-         PrelBase.Bool{-34,p-}
+||||_akd =
+    \ ds_dnL  ::  PrelBase.Bool{-34,W-}
       {-# L #-}
-      ds_dq6 ds_dq7  :: 
-                PrelBase.Bool{-34,p-}
+      ds_dnL ds_dnU  ::  PrelBase.Bool{-34,W-}
             {-# L #-}
-            ds_dq7 ->
-       case ds_dq6 of {
-         PrelBase.True{-5E,p-}{i} ->
-             PrelBase.True{-5E,p-}{i};
-         PrelBase.False{-58,p-}{i} ->
-             ds_dq7;
+            ds_dnU ->
+       case ds_dnL of {
+         PrelBase.True{-5E,w-}{i} -> PrelBase.True{-5E,w-}{i};
+         PrelBase.False{-58,w-}{i} -> ds_dnU;
        }
-||||{-r3q,x-}  :: 
-    PrelBase.Bool{-34,p-}
-    -> PrelBase.Bool{-34,p-}
-    -> PrelBase.Bool{-34,p-}
+||||{-r3m,x-}  ::  PrelBase.Bool{-34,W-}
+                  -> PrelBase.Bool{-34,W-}
+                  -> PrelBase.Bool{-34,W-}
 {-# L #-}
-||||{-r3q,x-} =
-    ||||_amR
-Rec {
-mAp{-r3r,x-}  :: 
-    _forall_
-    [t{-an5-} t{-an7-}]
-    =>
-    (t{-an5-} -> t{-an7-}) -> [t{-an5-}] -> [t{-an7-}]
+||||{-r3m,x-} =
+    ||||_akd
+mAp{-r3n,x-}  ::  _forall_
+                 [takK takO]
+                 =>
+                 (takK -> takO) -> [takK] -> [takO]
 {-# L #-}
-mAp{-r3r,x-} =
-    _/\_ t{-an5-} t{-an7-} ->
+mAp{-r3n,x-} =
+    _/\_ takK takO ->
        _letrec_ {
-         mAp_amZ  :: 
-             (t{-an5-} -> t{-an7-}) -> [t{-an5-}] -> [t{-an7-}]
+         mAp_akq  ::  (takK -> takO) -> [takK] -> [takO]
          {-# L #-}
-         mAp_amZ =
-             \ f_r3e  :: 
-                   t{-an5-} -> t{-an7-}
+         mAp_akq =
+             \ f_r3e  ::  takK -> takO
                {-# L #-}
-               f_r3e ds_dqV  :: 
-                         [t{-an5-}]
+               f_r3e ds_doq  ::  [takK]
                      {-# L #-}
-                     ds_dqV ->
-                 case ds_dqV of {
-                   PrelBase.[]{-5i,p-}{i} ->
-                       PrelBase.[]{-5i,p-}{i}
-                           _@_ t{-an7-};
-                   PrelBase.:{-55,p-}{i} x_r3j xs_r3k ->
+                     ds_doq ->
+                 case ds_doq of {
+                   PrelBase.[]{-5i,w-}{i} -> PrelBase.[]{-5i,w-}{i} _@_ takO;
+                   PrelBase.:{-55,w-}{i} x_r3h xs_r3i ->
                        let {
-                         f_r3h  :: 
-                             t{-an5-} -> t{-an7-}
+                         f_r3g  ::  takK -> takO
                          {-# L #-}
-                         f_r3h =
+                         f_r3g =
                              f_r3e } in
                        let {
-                         ds_drl  :: 
-                             t{-an7-}
+                         ds_doQ  ::  takO
                          {-# L #-}
-                         ds_drl =
-                             f_r3h
-                                 x_r3j } in
+                         ds_doQ =
+                             f_r3g x_r3h } in
                        let {
-                         ds_drp  :: 
-                             [t{-an7-}]
+                         ds_doU  ::  [takO]
                          {-# L #-}
-                         ds_drp =
-                             mAp_amZ
-                                 f_r3h xs_r3k
-                       } in 
-                         PrelBase.:{-55,p-}{i}
-                             _@_ t{-an7-} ds_drl ds_drp;
+                         ds_doU =
+                             mAp_akq f_r3g xs_r3i
+                       } in  PrelBase.:{-55,w-}{i} _@_ takO ds_doQ ds_doU;
                  };
-       } in 
-         mAp_amZ
+       } in  mAp_akq
 end Rec }
index f3230a1..10856f1 100644 (file)
 
 ================================================================================
 Desugared:
-f{-r3h,x-}  :: 
-    _forall_
-    [t{-aY1-} t{-aYi-}]
-    =>
-    {PrelBase.Ord{-2d,p-} t{-aY1-}}
-    -> {PrelBase.Num{-2c,p-} t{-aY1-}}
-    -> t{-aYi-}
-    -> t{-aY1-}
+Rec {
+f{-r3h,x-}  ::  _forall_
+               [taSX taSv]
+               =>
+               {PrelBase.Ord{-2d,p-} taSv}
+               -> {PrelBase.Num{-2c,p-} taSv}
+               -> taSX
+               -> taSv
 {-# L #-}
 f{-r3h,x-} =
-    _/\_ t{-aY1-} t{-aYi-} -> \ d.Ord_aYk  :: 
-                                   {PrelBase.Ord{-2d,p-} t{-aY1-}}
-                               {-# L #-}
-                               d.Ord_aYk d.Num_aYn  :: 
-                                             {PrelBase.Num{-2c,p-} t{-aY1-}}
-                                         {-# L #-}
-                                         d.Num_aYn ->
-       let {
-         <_a137  :: 
-             t{-aY1-} -> t{-aY1-} -> PrelBase.Bool{-34,p-}
+    _/\_ taSX taSv -> \ d.Ord_aSZ  ::  {PrelBase.Ord{-2d,p-} taSv}
+                       {-# L #-}
+                       d.Ord_aSZ d.Num_aT2  ::  {PrelBase.Num{-2c,p-} taSv}
+                                 {-# L #-}
+                                 d.Num_aT2 ->
+       _letrec_ {
+         <_aXx  ::  taSv -> taSv -> PrelBase.Bool{-34,W-}
          {-# L #-}
-         <_a137 =
-             PrelBase.<{-rcJ,p-}
-                 _@_ t{-aY1-} d.Ord_aYk } in
-       let {
-         fromInt_a136  :: 
-             PrelBase.Int{-3g,p-} -> t{-aY1-}
+         <_aXx =
+             PrelBase.<{-rfn,p-} _@_ taSv d.Ord_aSZ;
+         fromInt_aXE  ::  PrelBase.Int{-3g,W-} -> taSv
          {-# L #-}
-         fromInt_a136 =
-             PrelBase.fromInt{-8R,p-}
-                 _@_ t{-aY1-} d.Num_aYn } in
-       let { lit_a135  :: 
-                 t{-aY1-}
-             {-# L #-}
-             lit_a135 =
-         let {
-           ds_d13v  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_d13v =
-               PrelBase.I#{-5b,p-}{i}
-                   0
-         } in 
-           fromInt_a136
-               ds_d13v
-       } in
-       let {
-         fromInt_a134  :: 
-             PrelBase.Int{-3g,p-} -> t{-aY1-}
+         fromInt_aXE =
+             PrelBase.fromInt{-8R,p-} _@_ taSv d.Num_aT2;
+         lit_aXF  ::  taSv
          {-# L #-}
-         fromInt_a134 =
-             fromInt_a136 } in
-       let { lit_a133  :: 
-                 t{-aY1-}
-             {-# L #-}
-             lit_a133 =
-         let {
-           ds_d13K  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_d13K =
-               PrelBase.I#{-5b,p-}{i}
-                   1
-         } in 
-           fromInt_a134
-               ds_d13K
-       } in
-       let {
-         d.Ord_aYq  :: 
-             {PrelBase.Ord{-2d,p-} t{-aY1-}}
+         lit_aXF =
+             let {
+               ds_dYN  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_dYN =
+                   PrelBase.I#{-5b,w-}{i} 0
+             } in  fromInt_aXE ds_dYN;
+         fromInt_aXG  ::  PrelBase.Int{-3g,W-} -> taSv
          {-# L #-}
-         d.Ord_aYq =
-             d.Ord_aYk } in
-       let {
-         >_a132  :: 
-             t{-aY1-} -> t{-aY1-} -> PrelBase.Bool{-34,p-}
+         fromInt_aXG =
+             fromInt_aXE;
+         lit_aXH  ::  taSv
          {-# L #-}
-         >_a132 =
-             PrelBase.>{-rcL,p-}
-                 _@_ t{-aY1-} d.Ord_aYq } in
-       let {
-         fromInt_a131  :: 
-             PrelBase.Int{-3g,p-} -> t{-aY1-}
+         lit_aXH =
+             let {
+               ds_dZ2  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_dZ2 =
+                   PrelBase.I#{-5b,w-}{i} 1
+             } in  fromInt_aXG ds_dZ2;
+         d.Ord_aT5  ::  {PrelBase.Ord{-2d,p-} taSv}
          {-# L #-}
-         fromInt_a131 =
-             fromInt_a136 } in
-       let { lit_a130  :: 
-                 t{-aY1-}
-             {-# L #-}
-             lit_a130 =
-         let {
-           ds_d148  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_d148 =
-               PrelBase.I#{-5b,p-}{i}
-                   2
-         } in 
-           fromInt_a131
-               ds_d148
-       } in
-       let {
-         fromInt_a12Z  :: 
-             PrelBase.Int{-3g,p-} -> t{-aY1-}
+         d.Ord_aT5 =
+             d.Ord_aSZ;
+         >_aXI  ::  taSv -> taSv -> PrelBase.Bool{-34,W-}
          {-# L #-}
-         fromInt_a12Z =
-             fromInt_a136 } in
-       let { lit_a12W  :: 
-                 t{-aY1-}
-             {-# L #-}
-             lit_a12W =
-         let {
-           ds_d14n  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_d14n =
-               PrelBase.I#{-5b,p-}{i}
-                   3
-         } in 
-           fromInt_a12Z
-               ds_d14n
-       } in
-       \ x_r3d  :: 
-             t{-aYi-}
+         >_aXI =
+             PrelBase.>{-rfp,p-} _@_ taSv d.Ord_aT5;
+         fromInt_aXK  ::  PrelBase.Int{-3g,W-} -> taSv
          {-# L #-}
-         x_r3d ->
-           _letrec_ {
-             lit_a14F  :: 
-                 t{-aY1-}
-             {-# L #-}
-             lit_a14F =
-                 lit_a133;
-             lit_a14H  :: 
-                 t{-aY1-}
-             {-# L #-}
-             lit_a14H =
-                 lit_a130;
-             ds_d14Q  :: 
-                 (t{-aY1-}, t{-aY1-})
-             {-# L #-}
-             ds_d14Q =
-                 case
-                     <_a137
-                         y_aXx z_aXy
-                 of {
-                   PrelBase.True{-5E,p-}{i} ->
-                       PrelTup.(,){-62,p-}{i}
-                           {_@_ t{-aY1-} _@_ t{-aY1-} lit_a135 lit_a133};
-                   PrelBase.False{-58,p-}{i} ->
-                       case
-                           >_a132
-                               y_aXx z_aXy
-                       of {
-                         PrelBase.True{-5E,p-}{i} ->
-                             PrelTup.(,){-62,p-}{i}
-                                 {_@_ t{-aY1-} _@_ t{-aY1-} lit_a14F lit_a130};
-                         PrelBase.False{-58,p-}{i} ->
-                             PrelTup.(,){-62,p-}{i}
-                                 {_@_ t{-aY1-} _@_ t{-aY1-} lit_a14H lit_a12W};
+         fromInt_aXK =
+             fromInt_aXE;
+         lit_aXL  ::  taSv
+         {-# L #-}
+         lit_aXL =
+             let {
+               ds_dZq  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_dZq =
+                   PrelBase.I#{-5b,w-}{i} 2
+             } in  fromInt_aXK ds_dZq;
+         fromInt_aXN  ::  PrelBase.Int{-3g,W-} -> taSv
+         {-# L #-}
+         fromInt_aXN =
+             fromInt_aXE;
+         lit_aXO  ::  taSv
+         {-# L #-}
+         lit_aXO =
+             let {
+               ds_dZF  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_dZF =
+                   PrelBase.I#{-5b,w-}{i} 3
+             } in  fromInt_aXN ds_dZF;
+         f_aS1  ::  taSX -> taSv
+         {-# L #-}
+         f_aS1 =
+             \ x_r3d  ::  taSX
+               {-# L #-}
+               x_r3d ->
+                 _letrec_ {
+                   lit_aZY  ::  taSv
+                   {-# L #-}
+                   lit_aZY =
+                       lit_aXH;
+                   lit_a100  ::  taSv
+                   {-# L #-}
+                   lit_a100 =
+                       lit_aXL;
+                   ds_d109  ::  (taSv, taSv)
+                   {-# L #-}
+                   ds_d109 =
+                       case <_aXx y_aS9 z_aSa of {
+                         PrelBase.True{-5E,w-}{i} ->
+                             PrelTup.(,){-62,w-}{i} {_@_ taSv _@_ taSv lit_aXF lit_aXH};
+                         PrelBase.False{-58,w-}{i} ->
+                             case >_aXI y_aS9 z_aSa of {
+                               PrelBase.True{-5E,w-}{i} ->
+                                   PrelTup.(,){-62,w-}{i} {_@_ taSv _@_ taSv lit_aZY lit_aXL};
+                               PrelBase.False{-58,w-}{i} ->
+                                   PrelTup.(,){-62,w-}{i} {_@_ taSv _@_ taSv lit_a100 lit_aXO};
+                             };
                        };
-                 };
-             y_aXx  :: 
-                 t{-aY1-}
-             {-# L #-}
-             y_aXx =
-                 case ds_d14Q of { PrelTup.(,){-62,p-}{i} y_aXx z_aXy  -> y_aXx;};
-             z_aXy  :: 
-                 t{-aY1-}
-             {-# L #-}
-             z_aXy =
-                 case ds_d14Q of { PrelTup.(,){-62,p-}{i} y_aXx z_aXy  -> z_aXy;};
-             y_r3f  :: 
-                 t{-aY1-}
-             {-# L #-}
-             y_r3f =
-                 y_aXx;
-             z_r3g  :: 
-                 t{-aY1-}
-             {-# L #-}
-             z_r3g =
-                 z_aXy;
-           } in 
-             y_r3f
+                   y_aS9  ::  taSv
+                   {-# L #-}
+                   y_aS9 =
+                       case ds_d109 of { PrelTup.(,){-62,w-}{i} y_aS9 z_aSa  -> y_aS9;};
+                   z_aSa  ::  taSv
+                   {-# L #-}
+                   z_aSa =
+                       case ds_d109 of { PrelTup.(,){-62,w-}{i} y_aS9 z_aSa  -> z_aSa;};
+                   y_r3f  ::  taSv
+                   {-# L #-}
+                   y_r3f =
+                       y_aS9;
+                   z_r3g  ::  taSv
+                   {-# L #-}
+                   z_r3g =
+                       z_aSa;
+                 } in  y_r3f;
+       } in  f_aS1
+end Rec }
index beecd0f..1c144af 100644 (file)
@@ -3,52 +3,39 @@
 ================================================================================
 Desugared:
 Rec {
+f{-r3e,x-}  ::  _forall_ [taBY] => [taBY] -> PrelBase.Int{-3g,W-}
 {-# L #-}
-d.Num_aHE =
-    PrelBase.$d3
-{-# L #-}
-fromInt_aKm =
-    PrelBase.fromInt
-       _@_ PrelBase.Int d.Num_aHE
-{-# L #-}
-lit_aKx =
-    let {
-      {-# L #-}
-      ds_dKW =
-         PrelBase.I#
-             3
-    } in 
-      fromInt_aKm
-         ds_dKW
-{-# L #-}
-fromInt_aKw =
-    fromInt_aKm
+f{-r3e,x-} =
+    _/\_ taBY ->
+       _letrec_ {
+         f_aBO  ::  [taBY] -> PrelBase.Int{-3g,W-}
+         {-# L #-}
+         f_aBO =
+             \ x_r3d  ::  [taBY]
+               {-# L #-}
+               x_r3d ->
+                 let {
+                   ds_dEM  ::  [taBY]
+                   {-# L #-}
+                   ds_dEM =
+                       x_r3d } in
+                 let {
+                   fail_dEO  ::  PrelBase.Int{-3g,W-}
+                   {-# L #-}
+                   fail_dEO =
+                       lit_aEC
+                 } in 
+                   case ds_dEM of {
+                     PrelBase.:{-55,w-}{i} ds_dEV ds_dEW -> fail_dEO;
+                     PrelBase.[]{-5i,w-}{i} -> lit_aEA;
+                   };
+       } in  f_aBO
+lit_aEA  ::  PrelBase.Int{-3g,W-}
 {-# L #-}
-lit_aKt =
-    let {
-      {-# L #-}
-      ds_dLb =
-         PrelBase.I#
-             4
-    } in 
-      fromInt_aKw
-         ds_dLb
+lit_aEA =
+    PrelBase.I#{-5b,w-}{i} 3
+lit_aEC  ::  PrelBase.Int{-3g,W-}
 {-# L #-}
-f = _/\_ t{-aHm-} -> \ {-# L #-}
-                      x_r3d ->
-       let {
-         {-# L #-}
-         ds_dLw =
-             x_r3d } in
-       let {
-         {-# L #-}
-         fail_dLy =
-             lit_aKt
-       } in 
-         case ds_dLw of {
-           PrelBase.: ds_dLG ds_dLF ->
-               fail_dLy;
-           PrelBase.[] ->
-               lit_aKx;
-         }
+lit_aEC =
+    PrelBase.I#{-5b,w-}{i} 4
 end Rec }
index c59f652..d6c06e8 100644 (file)
@@ -6,132 +6,98 @@ ds031.hs:4:
 ================================================================================
 Desugared:
 Rec {
-foldPair{-r3f,x-}  :: 
-    _forall_
-    [a{-aB1-} b{-aB2-}]
-    =>
-    (a{-aB1-} -> a{-aB1-} -> a{-aB1-}, b{-aB2-}
-                                      -> b{-aB2-}
-                                      -> b{-aB2-})
-    -> (a{-aB1-}, b{-aB2-})
-    -> [(a{-aB1-}, b{-aB2-})]
-    -> (a{-aB1-}, b{-aB2-})
+foldPair{-r3f,x-}  ::  _forall_
+                      [tayn tayo]
+                      =>
+                      (tayn -> tayn -> tayn, tayo -> tayo -> tayo)
+                      -> (tayn, tayo)
+                      -> [(tayn, tayo)]
+                      -> (tayn, tayo)
 {-# L #-}
 foldPair{-r3f,x-} =
-    _/\_ a{-aB1-} b{-aB2-} ->
+    _/\_ tayn tayo ->
        _letrec_ {
-         foldPair_aAY  :: 
-             (a{-aB1-} -> a{-aB1-} -> a{-aB1-}, b{-aB2-}
-                                                -> b{-aB2-}
-                                                -> b{-aB2-})
-             -> (a{-aB1-}, b{-aB2-})
-             -> [(a{-aB1-}, b{-aB2-})]
-             -> (a{-aB1-}, b{-aB2-})
+         foldPair_ayk  ::  (tayn -> tayn -> tayn, tayo -> tayo -> tayo)
+                           -> (tayn, tayo)
+                           -> [(tayn, tayo)]
+                           -> (tayn, tayo)
          {-# L #-}
-         foldPair_aAY =
-             \ fg_r3h  :: 
-                   (a{-aB1-} -> a{-aB1-} -> a{-aB1-}, b{-aB2-}
-                                                      -> b{-aB2-}
-                                                      -> b{-aB2-})
+         foldPair_ayk =
+             \ fg_r3h  ::  (tayn -> tayn -> tayn, tayo -> tayo -> tayo)
                {-# L #-}
-               fg_r3h ab_r3j  :: 
-                          (a{-aB1-}, b{-aB2-})
+               fg_r3h ab_r3i  ::  (tayn, tayo)
                       {-# L #-}
-                      ab_r3j ds_dFz  :: 
-                                 [(a{-aB1-}, b{-aB2-})]
+                      ab_r3i ds_dDb  ::  [(tayn, tayo)]
                              {-# L #-}
-                             ds_dFz ->
+                             ds_dDb ->
                  let {
-                   fail_dFA  :: 
-                       (a{-aB1-}, b{-aB2-})
+                   fail_dDc  ::  (tayn, tayo)
                    {-# L #-}
-                   fail_dFA =
-                       GHCerr.patError{-8r,p-}
-                           _@_ (a{-aB1-}, b{-aB2-})
-                           _string_ "ds031.hs:4|function `foldPair'" } in
+                   fail_dDc =
+                       GHCerr.patError{-8r,w-}
+                           _@_ (tayn, tayo) _string_ "ds031.hs:4|function `foldPair'" } in
                  let {
-                   fail_dHs  :: 
-                       (a{-aB1-}, b{-aB2-})
+                   fail_dF4  ::  (tayn, tayo)
                    {-# L #-}
-                   fail_dHs =
-                       case fg_r3h of { PrelTup.(,){-62,p-}{i} f_r3n g_r3o  ->
-                       case ds_dFz of {
-                         PrelBase.[]{-5i,p-}{i} ->
-                             fail_dFA;
-                         PrelBase.:{-55,p-}{i} ds_dFV abs_r3u ->
-                             case ds_dFV of { PrelTup.(,){-62,p-}{i} a_r3s b_r3t  ->
+                   fail_dF4 =
+                       case fg_r3h of { PrelTup.(,){-62,w-}{i} f_r3l g_r3m  ->
+                       case ds_dDb of {
+                         PrelBase.[]{-5i,w-}{i} -> fail_dDc;
+                         PrelBase.:{-55,w-}{i} ds_dDx abs_r3q ->
+                             case ds_dDx of { PrelTup.(,){-62,w-}{i} a_r3o b_r3p  ->
                              let {
-                               ab_r3q  :: 
-                                   (a{-aB1-}, b{-aB2-})
+                               ab_r3n  ::  (tayn, tayo)
                                {-# L #-}
-                               ab_r3q =
-                                   ab_r3j } in
+                               ab_r3n =
+                                   ab_r3i } in
                              let {
-                               fg_r3m  :: 
-                                   (a{-aB1-} -> a{-aB1-} -> a{-aB1-}, b{-aB2-}
-                                                                      -> b{-aB2-}
-                                                                      -> b{-aB2-})
+                               fg_r3k  ::  (tayn -> tayn -> tayn, tayo -> tayo -> tayo)
                                {-# L #-}
-                               fg_r3m =
+                               fg_r3k =
                                    fg_r3h } in
                              let {
-                               ds_dGR  :: 
-                                   (a{-aB1-}, b{-aB2-})
+                               ds_dEt  ::  (tayn, tayo)
                                {-# L #-}
-                               ds_dGR =
-                                   foldPair{-r3f,x-}
-                                       _@_ a{-aB1-} _@_ b{-aB2-} fg_r3m ab_r3q abs_r3u } in
+                               ds_dEt =
+                                   foldPair{-r3f,x-} _@_ tayn _@_ tayo fg_r3k ab_r3n abs_r3q } in
                              let {
-                               u_aBw  :: 
-                                   a{-aB1-}
+                               u_ayS  ::  tayn
                                {-# L #-}
-                               u_aBw =
-                                   case ds_dGR of { PrelTup.(,){-62,p-}{i} u_aBw v_aBx  ->
-                                   u_aBw;} } in
+                               u_ayS =
+                                   case ds_dEt of { PrelTup.(,){-62,w-}{i} u_ayS v_ayT  ->
+                                   u_ayS;} } in
                              let {
-                               v_aBx  :: 
-                                   b{-aB2-}
+                               v_ayT  ::  tayo
                                {-# L #-}
-                               v_aBx =
-                                   case ds_dGR of { PrelTup.(,){-62,p-}{i} u_aBw v_aBx  ->
-                                   v_aBx;} } in
+                               v_ayT =
+                                   case ds_dEt of { PrelTup.(,){-62,w-}{i} u_ayS v_ayT  ->
+                                   v_ayT;} } in
                              let {
-                               u_r3w  :: 
-                                   a{-aB1-}
+                               u_r3s  ::  tayn
                                {-# L #-}
-                               u_r3w =
-                                   u_aBw } in
+                               u_r3s =
+                                   u_ayS } in
                              let {
-                               v_r3x  :: 
-                                   b{-aB2-}
+                               v_r3t  ::  tayo
                                {-# L #-}
-                               v_r3x =
-                                   v_aBx } in
+                               v_r3t =
+                                   v_ayT } in
                              let {
-                               ds_dGq  :: 
-                                   a{-aB1-}
+                               ds_dE2  ::  tayn
                                {-# L #-}
-                               ds_dGq =
-                                   f_r3n
-                                       a_r3s u_r3w } in
+                               ds_dE2 =
+                                   f_r3l a_r3o u_r3s } in
                              let {
-                               ds_dGu  :: 
-                                   b{-aB2-}
+                               ds_dE6  ::  tayo
                                {-# L #-}
-                               ds_dGu =
-                                   g_r3o
-                                       b_r3t v_r3x
-                             } in 
-                               PrelTup.(,){-62,p-}{i}
-                                   {_@_ a{-aB1-} _@_ b{-aB2-} ds_dGq ds_dGu};};
+                               ds_dE6 =
+                                   g_r3m b_r3p v_r3t
+                             } in  PrelTup.(,){-62,w-}{i} {_@_ tayn _@_ tayo ds_dE2 ds_dE6};};
                        };}
                  } in 
-                   case ds_dFz of {
-                     PrelBase.:{-55,p-}{i} ds_dHA ds_dHz ->
-                         fail_dHs;
-                     PrelBase.[]{-5i,p-}{i} ->
-                         ab_r3j;
+                   case ds_dDb of {
+                     PrelBase.:{-55,w-}{i} ds_dFb ds_dFc -> fail_dF4;
+                     PrelBase.[]{-5i,w-}{i} -> ab_r3i;
                    };
-       } in 
-         foldPair_aAY
+       } in  foldPair_ayk
 end Rec }
index 1276b4e..742fcea 100644 (file)
@@ -6,196 +6,159 @@ ds032.hs:12:
 ================================================================================
 Desugared:
 Rec {
-d.Fractional_a11b  :: 
-    {PrelNum.Fractional{-26,p-} PrelBase.Float{-3c,p-}}
-{-# L #-}
-d.Fractional_a11b =
-    PrelNum.$d23{-rGg,p-}
-fromRational_a17D  :: 
-    PrelNum.Rational{-3r,p-} -> PrelBase.Float{-3c,p-}
-{-# L #-}
-fromRational_a17D =
-    PrelNum.fromRational{-8T,p-}
-       _@_ PrelBase.Float{-3c,p-} d.Fractional_a11b
-lit_a17V  :: 
-    PrelBase.Float{-3c,p-}
-{-# L #-}
-lit_a17V =
-    fromRational_a17D
-       _rational_  0 1
-d.Eq_a11e  :: 
-    {PrelBase.Eq{-23,p-} PrelBase.Float{-3c,p-}}
-{-# L #-}
-d.Eq_a11e =
-    PrelNum.$d27{-rGk,p-}
-==_a17U  :: 
-    PrelBase.Float{-3c,p-}
-    -> PrelBase.Float{-3c,p-}
-    -> PrelBase.Bool{-34,p-}
-{-# L #-}
-==_a17U =
-    PrelBase.=={-8Y,p-}
-       _@_ PrelBase.Float{-3c,p-} d.Eq_a11e
-fromRational_a17T  :: 
-    PrelNum.Rational{-3r,p-} -> PrelBase.Float{-3c,p-}
-{-# L #-}
-fromRational_a17T =
-    fromRational_a17D
-lit_a17S  :: 
-    PrelBase.Float{-3c,p-}
-{-# L #-}
-lit_a17S =
-    fromRational_a17T
-       _rational_  1 1
-fromRational_a17R  :: 
-    PrelNum.Rational{-3r,p-} -> PrelBase.Float{-3c,p-}
-{-# L #-}
-fromRational_a17R =
-    fromRational_a17D
-lit_a17Q  :: 
-    PrelBase.Float{-3c,p-}
-{-# L #-}
-lit_a17Q =
-    fromRational_a17R
-       _rational_  11 10
-fromRational_a17P  :: 
-    PrelNum.Rational{-3r,p-} -> PrelBase.Float{-3c,p-}
-{-# L #-}
-fromRational_a17P =
-    fromRational_a17D
-lit_a17K  :: 
-    PrelBase.Float{-3c,p-}
-{-# L #-}
-lit_a17K =
-    fromRational_a17P
-       _rational_  6 5
-==_a18C  :: 
-    PrelBase.Float{-3c,p-}
-    -> PrelBase.Float{-3c,p-}
-    -> PrelBase.Bool{-34,p-}
-{-# L #-}
-==_a18C =
-    ==_a17U
-flatten_a10r  :: 
-    PrelBase.Int{-3g,p-}
-    -> PrelBase.Bool{-34,p-}
-    -> PrelBase.Float{-3c,p-}
-    -> [(PrelBase.Int{-3g,p-}, PrelBase.Float{-3c,p-})]
-    -> PrelBase.String{-rzM,p-}
-{-# L #-}
-flatten_a10r =
-    \ n_r3i  :: 
-         PrelBase.Int{-3g,p-}
+==_a11H  ::  PrelBase.Float{-3c,W-}
+            -> PrelBase.Float{-3c,W-}
+            -> PrelBase.Bool{-34,W-}
+{-# L #-}
+==_a11H =
+    ==_a11J
+flatten_aUn  ::  PrelBase.Int{-3g,W-}
+                -> PrelBase.Bool{-34,W-}
+                -> PrelBase.Float{-3c,W-}
+                -> [(PrelBase.Int{-3g,W-}, PrelBase.Float{-3c,W-})]
+                -> PrelBase.String{-rAJ,p-}
+{-# L #-}
+flatten_aUn =
+    \ n_r3i  ::  PrelBase.Int{-3g,W-}
       {-# L #-}
-      n_r3i nlp_r3k  :: 
-               PrelBase.Bool{-34,p-}
+      n_r3i nlp_r3j  ::  PrelBase.Bool{-34,W-}
            {-# L #-}
-           nlp_r3k ds_d19G  :: 
-                       PrelBase.Float{-3c,p-}
+           nlp_r3j ds_d13a  ::  PrelBase.Float{-3c,W-}
                    {-# L #-}
-                   ds_d19G seqs_r3n  :: 
-                               [(PrelBase.Int{-3g,p-}, PrelBase.Float{-3c,p-})]
+                   ds_d13a seqs_r3k  ::  [(PrelBase.Int{-3g,W-}, PrelBase.Float{-3c,W-})]
                            {-# L #-}
-                           seqs_r3n ->
+                           seqs_r3k ->
        let {
-         fail_d19H  :: 
-             PrelBase.String{-rzM,p-}
+         fail_d13b  ::  PrelBase.String{-rAJ,p-}
          {-# L #-}
-         fail_d19H =
-             GHCerr.patError{-8r,p-}
-                 _@_ PrelBase.String{-rzM,p-}
+         fail_d13b =
+             GHCerr.patError{-8r,w-}
+                 _@_ PrelBase.String{-rAJ,p-}
                  _string_ "ds032.hs:12|function `flatten'"
        } in 
-         case ds_d19G of { PrelBase.F#{-59,p-}{i} ds_d19Q  ->
-         case# ds_d19Q of {
-           _float_ 0.0000000000000000 ->
-               flattenS{-r3,x-}
-                   nlp_r3k seqs_r3n;
+         case ds_d13a of { PrelBase.F#{-59,w-}{i} ds_d13k  ->
+         case# ds_d13k of {
+           _float_ 0.0000000000000000 -> flattenS{-r3,x-} nlp_r3j seqs_r3k;
            _float_ 1.0000000000000000 ->
                let {
-                 seqs_r3u  :: 
-                     [(PrelBase.Int{-3g,p-}, PrelBase.Float{-3c,p-})]
+                 seqs_r3o  ::  [(PrelBase.Int{-3g,W-}, PrelBase.Float{-3c,W-})]
                  {-# L #-}
-                 seqs_r3u =
-                     seqs_r3n } in
+                 seqs_r3o =
+                     seqs_r3k } in
                let {
-                 nlp_r3r  :: 
-                     PrelBase.Bool{-34,p-}
+                 nlp_r3n  ::  PrelBase.Bool{-34,W-}
                  {-# L #-}
-                 nlp_r3r =
-                     nlp_r3k } in
+                 nlp_r3n =
+                     nlp_r3j } in
                let {
-                 n_r3p  :: 
-                     PrelBase.Int{-3g,p-}
+                 n_r3m  ::  PrelBase.Int{-3g,W-}
                  {-# L #-}
-                 n_r3p =
+                 n_r3m =
                      n_r3i } in
-               let { ds_d1at  :: 
-                         [(PrelBase.Int{-3g,p-}, PrelBase.Float{-3c,p-})]
+               let { ds_d13X  ::  [(PrelBase.Int{-3g,W-}, PrelBase.Float{-3c,W-})]
                      {-# L #-}
-                     ds_d1at =
+                     ds_d13X =
                  let {
-                   ds_d1aG  :: 
-                       (PrelBase.Int{-3g,p-}, PrelBase.Float{-3c,p-})
+                   ds_d14a  ::  (PrelBase.Int{-3g,W-}, PrelBase.Float{-3c,W-})
                    {-# L #-}
-                   ds_d1aG =
-                       PrelTup.(,){-62,p-}{i}
-                           {_@_ PrelBase.Int{-3g,p-}
-                            _@_ PrelBase.Float{-3c,p-}
-                            n_r3p
-                            lit_a17K}
+                   ds_d14a =
+                       PrelTup.(,){-62,w-}{i}
+                           {_@_ PrelBase.Int{-3g,W-}
+                            _@_ PrelBase.Float{-3c,W-}
+                            n_r3m
+                            lit_a11V}
                  } in 
-                   PrelBase.:{-55,p-}{i}
-                       _@_ (PrelBase.Int{-3g,p-}, PrelBase.Float{-3c,p-}) ds_d1aG seqs_r3u
+                   PrelBase.:{-55,w-}{i}
+                       _@_ (PrelBase.Int{-3g,W-}, PrelBase.Float{-3c,W-}) ds_d14a seqs_r3o
                } in
-               flatten{-r1,x-}
-                   n_r3p nlp_r3r lit_a17Q ds_d1at;
-           ds_d1b0 ->
-               fail_d19H;
+               flatten{-r1,x-} n_r3m nlp_r3n lit_a11S ds_d13X;
+           ds_d14u -> fail_d13b;
          };}
-flattenS_a10s  :: 
-    PrelBase.Bool{-34,p-}
-    -> [(PrelBase.Int{-3g,p-}, PrelBase.Float{-3c,p-})]
-    -> PrelBase.String{-rzM,p-}
-{-# L #-}
-flattenS_a10s =
-    \ nlp_r3w  :: 
-         PrelBase.Bool{-34,p-}
+flattenS_aUo  ::  PrelBase.Bool{-34,W-}
+                 -> [(PrelBase.Int{-3g,W-}, PrelBase.Float{-3c,W-})]
+                 -> PrelBase.String{-rAJ,p-}
+{-# L #-}
+flattenS_aUo =
+    \ nlp_r3q  ::  PrelBase.Bool{-34,W-}
       {-# L #-}
-      nlp_r3w ds_d1b6  :: 
-                 [(PrelBase.Int{-3g,p-}, PrelBase.Float{-3c,p-})]
+      nlp_r3q ds_d14A  ::  [(PrelBase.Int{-3g,W-}, PrelBase.Float{-3c,W-})]
              {-# L #-}
-             ds_d1b6 ->
-       case ds_d1b6 of {
-         PrelBase.[]{-5i,p-}{i} ->
-             PrelBase.[]{-5i,p-}{i}
-                 {_@_ PrelBase.Char{-38,p-}};
-         PrelBase.:{-55,p-}{i} ds_d1bl seqs_r3D ->
-             case ds_d1bl of { PrelTup.(,){-62,p-}{i} col_r3B seq_r3C  ->
+             ds_d14A ->
+       case ds_d14A of {
+         PrelBase.[]{-5i,w-}{i} ->
+             PrelBase.[]{-5i,w-}{i} {_@_ PrelBase.Char{-38,W-}};
+         PrelBase.:{-55,w-}{i} ds_d14P seqs_r3v ->
+             case ds_d14P of { PrelTup.(,){-62,w-}{i} col_r3t seq_r3u  ->
              let {
-               nlp_r3z  :: 
-                   PrelBase.Bool{-34,p-}
+               nlp_r3s  ::  PrelBase.Bool{-34,W-}
                {-# L #-}
-               nlp_r3z =
-                   nlp_r3w
-             } in 
-               flatten{-r1,x-}
-                   col_r3B nlp_r3z seq_r3C seqs_r3D;};
+               nlp_r3s =
+                   nlp_r3q
+             } in  flatten{-r1,x-} col_r3t nlp_r3s seq_r3u seqs_r3v;};
        }
-flatten{-r1,x-}  :: 
-    PrelBase.Int{-3g,p-}
-    -> PrelBase.Bool{-34,p-}
-    -> PrelBase.Float{-3c,p-}
-    -> [(PrelBase.Int{-3g,p-}, PrelBase.Float{-3c,p-})]
-    -> PrelBase.String{-rzM,p-}
+flatten{-r1,x-}  ::  PrelBase.Int{-3g,W-}
+                    -> PrelBase.Bool{-34,W-}
+                    -> PrelBase.Float{-3c,W-}
+                    -> [(PrelBase.Int{-3g,W-}, PrelBase.Float{-3c,W-})]
+                    -> PrelBase.String{-rAJ,p-}
 {-# L #-}
 flatten{-r1,x-} =
-    flatten_a10r
-flattenS{-r3,x-}  :: 
-    PrelBase.Bool{-34,p-}
-    -> [(PrelBase.Int{-3g,p-}, PrelBase.Float{-3c,p-})]
-    -> PrelBase.String{-rzM,p-}
+    flatten_aUn
+flattenS{-r3,x-}  ::  PrelBase.Bool{-34,W-}
+                     -> [(PrelBase.Int{-3g,W-}, PrelBase.Float{-3c,W-})]
+                     -> PrelBase.String{-rAJ,p-}
 {-# L #-}
 flattenS{-r3,x-} =
-    flattenS_a10s
+    flattenS_aUo
+d.Fractional_aV4  ::  {PrelNum.Fractional{-26,p-} PrelBase.Float{-3c,W-}}
+{-# L #-}
+d.Fractional_aV4 =
+    PrelNum.$d23{-rCU,p-}
+fromRational_a11K  ::  PrelNum.Rational{-3r,p-}
+                      -> PrelBase.Float{-3c,W-}
+{-# L #-}
+fromRational_a11K =
+    PrelNum.fromRational{-8T,p-}
+       _@_ PrelBase.Float{-3c,W-} d.Fractional_aV4
+lit_a11L  ::  PrelBase.Float{-3c,W-}
+{-# L #-}
+lit_a11L =
+    fromRational_a11K _rational_  0 1
+d.Eq_aV7  ::  {PrelBase.Eq{-23,p-} PrelBase.Float{-3c,W-}}
+{-# L #-}
+d.Eq_aV7 =
+    PrelNum.$d27{-rCY,p-}
+==_a11J  ::  PrelBase.Float{-3c,W-}
+            -> PrelBase.Float{-3c,W-}
+            -> PrelBase.Bool{-34,W-}
+{-# L #-}
+==_a11J =
+    PrelBase.=={-8Y,p-} _@_ PrelBase.Float{-3c,W-} d.Eq_aV7
+fromRational_a11O  ::  PrelNum.Rational{-3r,p-}
+                      -> PrelBase.Float{-3c,W-}
+{-# L #-}
+fromRational_a11O =
+    fromRational_a11K
+lit_a11P  ::  PrelBase.Float{-3c,W-}
+{-# L #-}
+lit_a11P =
+    fromRational_a11O _rational_  1 1
+fromRational_a11R  ::  PrelNum.Rational{-3r,p-}
+                      -> PrelBase.Float{-3c,W-}
+{-# L #-}
+fromRational_a11R =
+    fromRational_a11K
+lit_a11S  ::  PrelBase.Float{-3c,W-}
+{-# L #-}
+lit_a11S =
+    fromRational_a11R _rational_  11 10
+fromRational_a11U  ::  PrelNum.Rational{-3r,p-}
+                      -> PrelBase.Float{-3c,W-}
+{-# L #-}
+fromRational_a11U =
+    fromRational_a11K
+lit_a11V  ::  PrelBase.Float{-3c,W-}
+{-# L #-}
+lit_a11V =
+    fromRational_a11U _rational_  6 5
 end Rec }
index d6dd38f..bddc426 100644 (file)
 ================================================================================
 Desugared:
 Rec {
-ds_dsc  :: 
-    _forall_
-    [t{-anl-} t{-ann-}]
-    =>
-    (t{-anl-} -> t{-ann-}, t{-anl-} -> t{-ann-})
+ds_dq1  ::  _forall_ [takN takP] => (takP -> takN, takP -> takN)
 {-# L #-}
-ds_dsc =
-    _/\_ t{-anl-} t{-ann-} ->
+ds_dq1 =
+    _/\_ takN takP ->
        _letrec_ {
-         g4_an6  :: 
-             t{-anl-} -> t{-ann-}
+         g4_akw  ::  takP -> takN
          {-# L #-}
-         g4_an6 =
-             \ y_r3w  :: 
-                   t{-anl-}
+         g4_akw =
+             \ y_r3w  ::  takP
                {-# L #-}
                y_r3w ->
-                 f4_an7
-                     y_r3w;
-         f4_an7  :: 
-             t{-anl-} -> t{-ann-}
+                 f4_akx y_r3w;
+         f4_akx  ::  takP -> takN
          {-# L #-}
-         f4_an7 =
-             \ x_r3y  :: 
-                   t{-anl-}
+         f4_akx =
+             \ x_r3y  ::  takP
                {-# L #-}
                x_r3y ->
-                 g4_an6
-                     x_r3y;
+                 g4_akw x_r3y;
        } in 
-         PrelTup.(,){-62,p-}{i}
-             {_@_ (t{-anl-} -> t{-ann-})
-              _@_ (t{-anl-} -> t{-ann-})
-              g4_an6
-              f4_an7}
-g4{-r3A,x-}  :: 
-    _forall_ [t{-anl-} t{-ann-}] => t{-anl-} -> t{-ann-}
+         PrelTup.(,){-62,w-}{i}
+             {_@_ (takP -> takN) _@_ (takP -> takN) g4_akw f4_akx}
+g4{-r3A,x-}  ::  _forall_ [takN takP] => takP -> takN
 {-# L #-}
 g4{-r3A,x-} =
-    _/\_ t{-anl-} t{-ann-} ->
+    _/\_ takN takP ->
        case
-           ds_dsc
-               _@_ t{-anl-} _@_ t{-ann-}
+           ds_dq1 _@_ takN _@_ takP
        of {
-       PrelTup.(,){-62,p-}{i} ds_dth ds_dti  ->
-       ds_dth;}
-f4{-r3z,x-}  :: 
-    _forall_ [t{-anl-} t{-ann-}] => t{-anl-} -> t{-ann-}
+       PrelTup.(,){-62,w-}{i} ds_drz ds_drA  ->
+       ds_drz;}
+f4{-r3z,x-}  ::  _forall_ [takN takP] => takP -> takN
 {-# L #-}
 f4{-r3z,x-} =
-    _/\_ t{-anl-} t{-ann-} ->
+    _/\_ takN takP ->
        case
-           ds_dsc
-               _@_ t{-anl-} _@_ t{-ann-}
+           ds_dq1 _@_ takN _@_ takP
        of {
-       PrelTup.(,){-62,p-}{i} ds_dtB ds_dtA  ->
-       ds_dtA;}
-end Rec }
-Rec {
-ds_dtM  :: 
-    _forall_
-    [t{-anE-} t{-anG-}]
-    =>
-    (t{-anE-} -> t{-anG-}, t{-anE-} -> t{-anG-})
+       PrelTup.(,){-62,w-}{i} ds_drT ds_drS  ->
+       ds_drS;}
+ds_dqx  ::  _forall_ [tal8 tala] => (tala -> tal8, tala -> tal8)
 {-# L #-}
-ds_dtM =
-    _/\_ t{-anE-} t{-anG-} ->
+ds_dqx =
+    _/\_ tal8 tala ->
        _letrec_ {
-         f3_anp  :: 
-             t{-anE-} -> t{-anG-}
+         f3_akR  ::  tala -> tal8
          {-# L #-}
-         f3_anp =
-             \ x_r3s  :: 
-                   t{-anE-}
+         f3_akR =
+             \ x_r3s  ::  tala
                {-# L #-}
                x_r3s ->
-                 g3_anq
-                     x_r3s;
-         g3_anq  :: 
-             t{-anE-} -> t{-anG-}
+                 g3_akS x_r3s;
+         g3_akS  ::  tala -> tal8
          {-# L #-}
-         g3_anq =
-             \ y_r3u  :: 
-                   t{-anE-}
+         g3_akS =
+             \ y_r3u  ::  tala
                {-# L #-}
                y_r3u ->
-                 f3_anp
-                     y_r3u;
+                 f3_akR y_r3u;
        } in 
-         PrelTup.(,){-62,p-}{i}
-             {_@_ (t{-anE-} -> t{-anG-})
-              _@_ (t{-anE-} -> t{-anG-})
-              f3_anp
-              g3_anq}
-f3{-r3C,x-}  :: 
-    _forall_ [t{-anE-} t{-anG-}] => t{-anE-} -> t{-anG-}
+         PrelTup.(,){-62,w-}{i}
+             {_@_ (tala -> tal8) _@_ (tala -> tal8) f3_akR g3_akS}
+f3{-r3C,x-}  ::  _forall_ [tal8 tala] => tala -> tal8
 {-# L #-}
 f3{-r3C,x-} =
-    _/\_ t{-anE-} t{-anG-} ->
+    _/\_ tal8 tala ->
        case
-           ds_dtM
-               _@_ t{-anE-} _@_ t{-anG-}
+           ds_dqx _@_ tal8 _@_ tala
        of {
-       PrelTup.(,){-62,p-}{i} ds_duR ds_duS  ->
-       ds_duR;}
-g3{-r3B,x-}  :: 
-    _forall_ [t{-anE-} t{-anG-}] => t{-anE-} -> t{-anG-}
+       PrelTup.(,){-62,w-}{i} ds_dsQ ds_dsR  ->
+       ds_dsQ;}
+g3{-r3B,x-}  ::  _forall_ [tal8 tala] => tala -> tal8
 {-# L #-}
 g3{-r3B,x-} =
-    _/\_ t{-anE-} t{-anG-} ->
+    _/\_ tal8 tala ->
        case
-           ds_dtM
-               _@_ t{-anE-} _@_ t{-anG-}
+           ds_dqx _@_ tal8 _@_ tala
        of {
-       PrelTup.(,){-62,p-}{i} ds_dvb ds_dva  ->
-       ds_dva;}
-end Rec }
-g2{-r3E,x-}  :: 
-    _forall_ [t{-anO-}] => t{-anO-} -> t{-anO-}
+       PrelTup.(,){-62,w-}{i} ds_dta ds_dt9  ->
+       ds_dt9;}
+g2{-r3E,x-}  ::  _forall_ [tall] => tall -> tall
 {-# L #-}
 g2{-r3E,x-} =
-    _/\_ t{-anO-} -> \ y_r3o  :: 
-                          t{-anO-}
-                      {-# L #-}
-                      y_r3o ->
-       y_r3o
-f2{-r3D,x-}  :: 
-    _forall_ [t{-anU-}] => t{-anU-} -> t{-anU-}
+    _/\_ tall ->
+       _letrec_ {
+         g2_alc  ::  tall -> tall
+         {-# L #-}
+         g2_alc =
+             \ y_r3o  ::  tall
+               {-# L #-}
+               y_r3o ->
+                 y_r3o;
+       } in  g2_alc
+f2{-r3D,x-}  ::  _forall_ [talw] => talw -> talw
 {-# L #-}
 f2{-r3D,x-} =
-    _/\_ t{-anU-} -> \ x_r3q  :: 
-                          t{-anU-}
-                      {-# L #-}
-                      x_r3q ->
-       g2{-r3E,x-}
-           _@_ t{-anU-} x_r3q
-g1{-r3F,x-}  :: 
-    _forall_ [t{-ao4-}] => t{-ao4-} -> t{-ao4-}
+    _/\_ talw ->
+       _letrec_ {
+         f2_aln  ::  talw -> talw
+         {-# L #-}
+         f2_aln =
+             \ x_r3q  ::  talw
+               {-# L #-}
+               x_r3q ->
+                 g2{-r3E,x-} _@_ talw x_r3q;
+       } in  f2_aln
+g1{-r3F,x-}  ::  _forall_ [talH] => talH -> talH
 {-# L #-}
 g1{-r3F,x-} =
-    _/\_ t{-ao4-} -> \ y_r3m  :: 
-                          t{-ao4-}
-                      {-# L #-}
-                      y_r3m ->
-       y_r3m
-f1{-r3G,x-}  :: 
-    _forall_ [t{-aoa-}] => t{-aoa-} -> t{-aoa-}
+    _/\_ talH ->
+       _letrec_ {
+         g1_aly  ::  talH -> talH
+         {-# L #-}
+         g1_aly =
+             \ y_r3m  ::  talH
+               {-# L #-}
+               y_r3m ->
+                 y_r3m;
+       } in  g1_aly
+f1{-r3G,x-}  ::  _forall_ [talS] => talS -> talS
 {-# L #-}
 f1{-r3G,x-} =
-    _/\_ t{-aoa-} -> \ x_r3k  :: 
-                          t{-aoa-}
-                      {-# L #-}
-                      x_r3k ->
-       g1{-r3F,x-}
-           _@_ t{-aoa-} x_r3k
+    _/\_ talS ->
+       _letrec_ {
+         f1_alJ  ::  talS -> talS
+         {-# L #-}
+         f1_alJ =
+             \ x_r3k  ::  talS
+               {-# L #-}
+               x_r3k ->
+                 g1{-r3F,x-} _@_ talS x_r3k;
+       } in  f1_alJ
+end Rec }
 
 NOTE: Simplifier still going after 4 iterations; bailing out.
index 9a2659f..b8bcc0e 100644 (file)
 ================================================================================
 Desugared:
 Rec {
-op1{-r3r,x-}  :: 
-    _forall_
-    [a{-r3p-}]
-    =>
-    {Foo{-r3s,x-} a{-r3p-}} -> a{-r3p-} -> a{-r3p-}
+op2_amz  ::  PrelBase.Int{-3g,W-} -> PrelBase.Int{-3g,W-}
 {-# L #-}
-op1{-r3r,x-} =
-    _/\_ a{-r3p-} -> \ tpl_B1  :: 
-                          {Foo{-r3s,x-} a{-r3p-}}
-                      {-# L #-}
-                      tpl_B1 ->
-       case tpl_B1 of { PrelTup.(,){-62,p-}{i} tpl_B1 tpl_B2  -> tpl_B1;}
-op2{-r3q,x-}  :: 
-    _forall_
-    [a{-r3p-}]
-    =>
-    {Foo{-r3s,x-} a{-r3p-}} -> a{-r3p-} -> a{-r3p-}
-{-# L #-}
-op2{-r3q,x-} =
-    _/\_ a{-r3p-} -> \ tpl_B1  :: 
-                          {Foo{-r3s,x-} a{-r3p-}}
-                      {-# L #-}
-                      tpl_B1 ->
-       case tpl_B1 of { PrelTup.(,){-62,p-}{i} tpl_B1 tpl_B2  -> tpl_B2;}
-$mop1{-rn8,x-}  :: 
-    _forall_
-    [a{-r3p-}]
-    =>
-    {Foo{-r3s,x-} a{-r3p-}} -> a{-r3p-} -> a{-r3p-}
-{-# L #-}
-$mop1{-rn8,x-} =
-    _/\_ a{-anB-} -> \ d.Foo_anu  :: 
-                          {Foo{-r3s,x-} a{-anB-}}
-                      {-# L #-}
-                      d.Foo_anu ->
-       GHCerr.noDefaultMethodError{-8k,p-}
-           _@_ (a{-anB-} -> a{-anB-}) _string_ "Class Foo Method op1"
-$mop2{-rn7,x-}  :: 
-    _forall_
-    [a{-r3p-}]
-    =>
-    {Foo{-r3s,x-} a{-r3p-}} -> a{-r3p-} -> a{-r3p-}
-{-# L #-}
-$mop2{-rn7,x-} =
-    _/\_ a{-anB-} -> \ d.Foo_anE  :: 
-                          {Foo{-r3s,x-} a{-anB-}}
-                      {-# L #-}
-                      d.Foo_anE ->
-       GHCerr.noDefaultMethodError{-8k,p-}
-           _@_ (a{-anB-} -> a{-anB-}) _string_ "Class Foo Method op2"
-op2_aq8  :: 
-    PrelBase.Int{-3g,p-} -> PrelBase.Int{-3g,p-}
-{-# L #-}
-op2_aq8 =
-    op2_aqv
-op1_aqd  :: 
-    PrelBase.Int{-3g,p-} -> PrelBase.Int{-3g,p-}
+op2_amz =
+    op2_amB
+op1_amD  ::  PrelBase.Int{-3g,W-} -> PrelBase.Int{-3g,W-}
 {-# L #-}
-op1_aqd =
-    op1_aqm
-op1_an6  :: 
-    PrelBase.Int{-3g,p-} -> PrelBase.Int{-3g,p-}
+op1_amD =
+    op1_amE
+op1_akv  ::  PrelBase.Int{-3g,W-} -> PrelBase.Int{-3g,W-}
 {-# L #-}
-op1_an6 =
-    \ x_r3i  :: 
-         PrelBase.Int{-3g,p-}
+op1_akv =
+    \ x_r3i  ::  PrelBase.Int{-3g,W-}
       {-# L #-}
       x_r3i ->
-       op2_aq8
-           x_r3i
-op1_aqm  :: 
-    PrelBase.Int{-3g,p-} -> PrelBase.Int{-3g,p-}
+       op2_amz x_r3i
+op1_amE  ::  PrelBase.Int{-3g,W-} -> PrelBase.Int{-3g,W-}
 {-# L #-}
-op1_aqm =
-    op1_an6
-op2_anj  :: 
-    PrelBase.Int{-3g,p-} -> PrelBase.Int{-3g,p-}
+op1_amE =
+    op1_akv
+op2_akF  ::  PrelBase.Int{-3g,W-} -> PrelBase.Int{-3g,W-}
 {-# L #-}
-op2_anj =
-    \ y_r3m  :: 
-         PrelBase.Int{-3g,p-}
+op2_akF =
+    \ y_r3m  ::  PrelBase.Int{-3g,W-}
       {-# L #-}
       y_r3m ->
-       op1_aqd
-           y_r3m
-op2_aqv  :: 
-    PrelBase.Int{-3g,p-} -> PrelBase.Int{-3g,p-}
+       op1_amD y_r3m
+op2_amB  ::  PrelBase.Int{-3g,W-} -> PrelBase.Int{-3g,W-}
 {-# L #-}
-op2_aqv =
-    op2_anj
-d.Foo_an3  :: 
-    {Foo{-r3s,x-} PrelBase.Int{-3g,p-}}
+op2_amB =
+    op2_akF
+d.Foo_akr  ::  {Foo{-r3q,x-} PrelBase.Int{-3g,W-}}
+{-# L #-}
+d.Foo_akr =
+    PrelTup.(,){-62,w-}{i}
+       {_@_ (PrelBase.Int{-3g,W-} -> PrelBase.Int{-3g,W-})
+        _@_ (PrelBase.Int{-3g,W-} -> PrelBase.Int{-3g,W-})
+        op1_amE
+        op2_amB}
+$d1{-rmC,x-}  ::  {Foo{-r3q,x-} PrelBase.Int{-3g,W-}}
+{-# L #-}
+$d1{-rmC,x-} =
+    d.Foo_akr
+op1{-r3r,x-}  ::  _forall_
+                 [a_tr3p]
+                 =>
+                 {Foo{-r3q,x-} a_tr3p} -> a_tr3p -> a_tr3p
+{-# L #-}
+op1{-r3r,x-} =
+    _/\_ t12 -> \ tpl_B1  ::  {Foo{-r3q,x-} t12}
+                 {-# L #-}
+                 tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B1;}
+op2{-r3s,x-}  ::  _forall_
+                 [a_tr3p]
+                 =>
+                 {Foo{-r3q,x-} a_tr3p} -> a_tr3p -> a_tr3p
 {-# L #-}
-d.Foo_an3 =
-    PrelTup.(,){-62,p-}{i}
-       {_@_ (PrelBase.Int{-3g,p-} -> PrelBase.Int{-3g,p-})
-        _@_ (PrelBase.Int{-3g,p-} -> PrelBase.Int{-3g,p-})
-        op1_aqm
-        op2_aqv}
-$d1{-rqE,x-}  :: 
-    {Foo{-r3s,x-} PrelBase.Int{-3g,p-}}
+op2{-r3s,x-} =
+    _/\_ t12 -> \ tpl_B1  ::  {Foo{-r3q,x-} t12}
+                 {-# L #-}
+                 tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B2;}
+ds_dnj  ::  _forall_
+           [takP]
+           =>
+           {Foo{-r3q,x-} takP} -> PrelBase.(){-40,W-}
 {-# L #-}
-$d1{-rqE,x-} =
-    d.Foo_an3
+ds_dnj =
+    _/\_ takP -> \ d.Foo_akO  ::  {Foo{-r3q,x-} takP}
+                  {-# L #-}
+                  d.Foo_akO ->
+       PrelBase.(){-60,w-}{i} {}
 end Rec }
index 5a29a0e..e6383bc 100644 (file)
@@ -1,17 +1,19 @@
+import GlaExts
+
 data CList = CNil | CCons Int# CList
 
 mk :: Int# -> CList
 mk n = case (n ==# 0#) of
-       0# -> CNil
-       _  -> CCons 1# (mk (n `minusInt#` 1#))
+       False -> CNil
+       _     -> CCons 1# (mk (n -# 1#))
 
 clen :: CList -> Int#
 clen CNil = 0#
 clen (CCons _ cl) = 1# +# (clen cl)
 
-main = case len4_twice of
+main = putStr (case len4_twice of
            8# -> "bingo\n"
-           _  -> "oops\n"
+           _  -> "oops\n")
   where
     list4      = mk 4#
     len4       = clen list4
index 1aa6581..f8f13ab 100644 (file)
-ds035.hs:3:
-    Type constructor or class not in scope: `Int#'
-ds035.hs:8:
-    Type constructor or class not in scope: `Int#'
-ds035.hs:4:
-    Value not in scope: `==#'
-ds035.hs:6:
-    Value not in scope: `minusInt#'
-ds035.hs:10:
-    Value not in scope: `+#'
-ds035.hs:18:
-    Value not in scope: `+#'
-ds035.hs:3:
-    Type constructor or class not in scope: `Int#'
 
 
-Compilation had errors
+================================================================================
+Desugared:
+Rec {
+CNil{-r7,x-}{i}  ::  CList{-r4u,x-}
+_A_ 0 {-# L #-}
+CNil{-r7,x-}{i} =
+    CNil{-r7,x-}{i} {}
+CCons{-r6,x-}{i}  ::  GHC.Int#{-3f,W-}
+                     -> CList{-r4u,x-}
+                     -> CList{-r4u,x-}
+_A_ 2 {-# L #-}
+CCons{-r6,x-}{i} =
+    \ tpl_B1  ::  GHC.Int#{-3f,W-}
+      {-# L #-}
+      tpl_B1 tpl_B2  ::  CList{-r4u,x-}
+            {-# L #-}
+            tpl_B2 ->
+       CCons{-r6,x-}{i} {tpl_B1 tpl_B2}
+clen_aGK  ::  CList{-r4u,x-} -> GHC.Int#{-3f,W-}
+{-# L #-}
+clen_aGK =
+    \ ds_dNA  ::  CList{-r4u,x-}
+      {-# L #-}
+      ds_dNA ->
+       case ds_dNA of {
+         CNil{-r7,x-}{i} -> 0;
+         CCons{-r6,x-}{i} ds_dNR cl_r4p ->
+             case# clen{-r9,x-} cl_r4p of { ds_dO1 ->
+             GHC.+#{-7D,w-}{I} 1 ds_dO1;};
+       }
+clen{-r9,x-}  ::  CList{-r4u,x-} -> GHC.Int#{-3f,W-}
+{-# L #-}
+clen{-r9,x-} =
+    clen_aGK
+mk_aGP  ::  GHC.Int#{-3f,W-} -> CList{-r4u,x-}
+{-# L #-}
+mk_aGP =
+    \ n_r4k  ::  GHC.Int#{-3f,W-}
+      {-# L #-}
+      n_r4k ->
+       let {
+         ds_dOE  ::  PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ds_dOE =
+             GHC.==#{-79,w-}{I} n_r4k 0 } in
+       let { fail_dOR  ::  CList{-r4u,x-}
+             {-# L #-}
+             fail_dOR =
+         let {
+           ds_dOs  ::  CList{-r4u,x-}
+           {-# L #-}
+           ds_dOs =
+               case# GHC.-#{-7E,w-}{I} n_r4k 1 of { ds_dOM -> mk{-r8,x-} ds_dOM;}
+         } in  CCons{-r6,x-}{i} 1 ds_dOs
+       } in
+       case ds_dOE of {
+         PrelBase.True{-5E,w-}{i} -> fail_dOR;
+         PrelBase.False{-58,w-}{i} -> CNil{-r7,x-}{i};
+       }
+mk{-r8,x-}  ::  GHC.Int#{-3f,W-} -> CList{-r4u,x-}
+{-# L #-}
+mk{-r8,x-} =
+    mk_aGP
+main_aH0  ::  IOBase.IO{-3e,p-} PrelBase.(){-40,W-}
+{-# L #-}
+main_aH0 =
+    let {
+      list4_aGZ  ::  CList{-r4u,x-}
+      {-# L #-}
+      list4_aGZ =
+         mk{-r8,x-} 4 } in
+    let {
+      list4_r4r  ::  CList{-r4u,x-}
+      {-# L #-}
+      list4_r4r =
+         list4_aGZ
+    } in 
+      case# clen{-r9,x-} list4_r4r of { len4_aH4 ->
+      case# len4_aH4 of { len4_r4s ->
+      case# GHC.+#{-7D,w-}{I} len4_r4s len4_r4s of { len4_twice_aH7 ->
+      case# len4_twice_aH7 of { len4_twice_r4t ->
+      let {
+       ds_dPl  ::  [PrelBase.Char{-38,W-}]
+       {-# L #-}
+       ds_dPl =
+           case# len4_twice_r4t of { ds_dPS ->
+           let {
+             fail_dPT  ::  PrelBase.String{-rgL,p-}
+             {-# L #-}
+             fail_dPT =
+                 _string_ "oops\n"
+           } in 
+             case# ds_dPS of {
+               8 -> _string_ "bingo\n";
+               ds_dQ1 -> fail_dPT;
+             };}
+      } in  PrelIO.putStr{-rhQ,p-} ds_dPl;};};};}
+main{-814,x-}  ::  IOBase.IO{-3e,p-} PrelBase.(){-40,W-}
+{-# L #-}
+main{-814,x-} =
+    main_aH0
+d.Eval_aHh  ::  {PrelBase.Eval{-24,p-} CList{-r4u,x-}}
+{-# L #-}
+d.Eval_aHh =
+    PrelBase.void{-8G,w-}
+$d1{-rNv,x-}  ::  {PrelBase.Eval{-24,p-} CList{-r4u,x-}}
+{-# L #-}
+$d1{-rNv,x-} =
+    d.Eval_aHh
+end Rec }
index 615b7df..3e91e7e 100644 (file)
-ds036.hs:44: 
-    Warning: Possibly incomplete patterns
-       in the definition of function `kh'
 ds036.hs:22: 
     Warning: Possibly incomplete patterns
        in the definition of function `brack''
+ds036.hs:44: 
+    Warning: Possibly incomplete patterns
+       in the definition of function `kh'
 
 
 ================================================================================
 Desugared:
 Rec {
-d.Num_aZF  :: 
-    {PrelBase.Num{-2c,p-} PrelBase.Int{-3g,p-}}
-{-# L #-}
-d.Num_aZF =
-    PrelBase.$d3{-rbz,p-}
-fromInt_a19P  :: 
-    PrelBase.Int{-3g,p-} -> PrelBase.Int{-3g,p-}
-{-# L #-}
-fromInt_a19P =
-    PrelBase.fromInt{-8R,p-}
-       _@_ PrelBase.Int{-3g,p-} d.Num_aZF
-lit_a1a1  :: 
-    PrelBase.Int{-3g,p-}
-{-# L #-}
-lit_a1a1 =
-    let {
-      ds_d1aS  :: 
-         PrelBase.Int{-3g,p-}
-      {-# L #-}
-      ds_d1aS =
-         PrelBase.I#{-5b,p-}{i}
-             0
-    } in 
-      fromInt_a19P
-         ds_d1aS
-d.Eq_aZI  :: 
-    {PrelBase.Eq{-23,p-} PrelBase.Int{-3g,p-}}
-{-# L #-}
-d.Eq_aZI =
-    PrelBase.$d7{-rc5,p-}
-==_a1a0  :: 
-    PrelBase.Int{-3g,p-}
-    -> PrelBase.Int{-3g,p-}
-    -> PrelBase.Bool{-34,p-}
-{-# L #-}
-==_a1a0 =
-    PrelBase.=={-8Y,p-}
-       _@_ PrelBase.Int{-3g,p-} d.Eq_aZI
-fromInt_a19Z  :: 
-    PrelBase.Int{-3g,p-} -> PrelBase.Int{-3g,p-}
-{-# L #-}
-fromInt_a19Z =
-    fromInt_a19P
-lit_a19Y  :: 
-    PrelBase.Int{-3g,p-}
-{-# L #-}
-lit_a19Y =
-    let {
-      ds_d1bg  :: 
-         PrelBase.Int{-3g,p-}
-      {-# L #-}
-      ds_d1bg =
-         PrelBase.I#{-5b,p-}{i}
-             1
-    } in 
-      fromInt_a19Z
-         ds_d1bg
-d.Ord_aZM  :: 
-    {PrelBase.Ord{-2d,p-} PrelBase.Int{-3g,p-}}
-{-# L #-}
-d.Ord_aZM =
-    PrelBase.$d6{-rc4,p-}
->=_a19X  :: 
-    PrelBase.Int{-3g,p-}
-    -> PrelBase.Int{-3g,p-}
-    -> PrelBase.Bool{-34,p-}
-{-# L #-}
->=_a19X =
-    PrelBase.>={-8Z,p-}
-       _@_ PrelBase.Int{-3g,p-} d.Ord_aZM
-d.Num_aZP  :: 
-    {PrelBase.Num{-2c,p-} PrelBase.Int{-3g,p-}}
-{-# L #-}
-d.Num_aZP =
-    d.Num_aZF
--_a19W  :: 
-    PrelBase.Int{-3g,p-}
-    -> PrelBase.Int{-3g,p-}
-    -> PrelBase.Int{-3g,p-}
-{-# L #-}
--_a19W =
-    PrelBase.-{-817,p-}
-       _@_ PrelBase.Int{-3g,p-} d.Num_aZP
-kh{-r3g,x-}  :: 
-    _forall_
-    [t{-aYd-}]
-    =>
-    {PrelBase.Num{-2c,p-} t{-aYd-}}
-    -> {PrelBase.Ord{-2d,p-} t{-aYd-}}
-    -> t{-aYd-}
-    -> t{-aYd-}
-    -> t{-aYd-}
+kh{-r3g,x-}  ::  _forall_
+                [taSF]
+                =>
+                {PrelBase.Num{-2c,p-} taSF}
+                -> {PrelBase.Ord{-2d,p-} taSF}
+                -> taSF
+                -> taSF
+                -> taSF
 {-# L #-}
 kh{-r3g,x-} =
-    _/\_ t{-aYd-} -> \ d.Num_aYs  :: 
-                          {PrelBase.Num{-2c,p-} t{-aYd-}}
-                      {-# L #-}
-                      d.Num_aYs d.Ord_aYu  :: 
-                                    {PrelBase.Ord{-2d,p-} t{-aYd-}}
-                                {-# L #-}
-                                d.Ord_aYu ->
-       let {
-         fromInt_a1cx  :: 
-             PrelBase.Int{-3g,p-} -> t{-aYd-}
+    _/\_ taSF -> \ d.Num_aSU  ::  {PrelBase.Num{-2c,p-} taSF}
+                  {-# L #-}
+                  d.Num_aSU d.Ord_aSW  ::  {PrelBase.Ord{-2d,p-} taSF}
+                            {-# L #-}
+                            d.Ord_aSW ->
+       _letrec_ {
+         fromInt_a14h  ::  PrelBase.Int{-3g,W-} -> taSF
          {-# L #-}
-         fromInt_a1cx =
-             PrelBase.fromInt{-8R,p-}
-                 _@_ t{-aYd-} d.Num_aYs } in
-       let { lit_a1cw  :: 
-                 t{-aYd-}
-             {-# L #-}
-             lit_a1cw =
-         let {
-           ds_d1cN  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_d1cN =
-               PrelBase.I#{-5b,p-}{i}
-                   2
-         } in 
-           fromInt_a1cx
-               ds_d1cN
-       } in
-       let {
-         >=_a1cv  :: 
-             t{-aYd-} -> t{-aYd-} -> PrelBase.Bool{-34,p-}
+         fromInt_a14h =
+             PrelBase.fromInt{-8R,p-} _@_ taSF d.Num_aSU;
+         lit_a14t  ::  taSF
          {-# L #-}
-         >=_a1cv =
-             PrelBase.>={-8Z,p-}
-                 _@_ t{-aYd-} d.Ord_aYu } in
-       let {
-         d.Num_aYw  :: 
-             {PrelBase.Num{-2c,p-} t{-aYd-}}
+         lit_a14t =
+             let {
+               ds_d16u  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_d16u =
+                   PrelBase.I#{-5b,w-}{i} 2
+             } in  fromInt_a14h ds_d16u;
+         >=_a14u  ::  taSF -> taSF -> PrelBase.Bool{-34,W-}
          {-# L #-}
-         d.Num_aYw =
-             d.Num_aYs } in
-       let {
-         -_a1cu  :: 
-             t{-aYd-} -> t{-aYd-} -> t{-aYd-}
+         >=_a14u =
+             PrelBase.>={-8Z,p-} _@_ taSF d.Ord_aSW;
+         d.Num_aSY  ::  {PrelBase.Num{-2c,p-} taSF}
          {-# L #-}
-         -_a1cu =
-             PrelBase.-{-817,p-}
-                 _@_ t{-aYd-} d.Num_aYw } in
-       let {
-         d.Ord_aYy  :: 
-             {PrelBase.Ord{-2d,p-} t{-aYd-}}
+         d.Num_aSY =
+             d.Num_aSU;
+         -_a14v  ::  taSF -> taSF -> taSF
          {-# L #-}
-         d.Ord_aYy =
-             d.Ord_aYu } in
-       let {
-         >_a1ct  :: 
-             t{-aYd-} -> t{-aYd-} -> PrelBase.Bool{-34,p-}
+         -_a14v =
+             PrelBase.-{-817,p-} _@_ taSF d.Num_aSY;
+         d.Ord_aT0  ::  {PrelBase.Ord{-2d,p-} taSF}
          {-# L #-}
-         >_a1ct =
-             PrelBase.>{-rdf,p-}
-                 _@_ t{-aYd-} d.Ord_aYy } in
-       let {
-         d.Num_aYA  :: 
-             {PrelBase.Num{-2c,p-} t{-aYd-}}
+         d.Ord_aT0 =
+             d.Ord_aSW;
+         >_a14w  ::  taSF -> taSF -> PrelBase.Bool{-34,W-}
          {-# L #-}
-         d.Num_aYA =
-             d.Num_aYs } in
-       let {
-         *_a1cs  :: 
-             t{-aYd-} -> t{-aYd-} -> t{-aYd-}
+         >_a14w =
+             PrelBase.>{-rfI,p-} _@_ taSF d.Ord_aT0;
+         d.Num_aT2  ::  {PrelBase.Num{-2c,p-} taSF}
          {-# L #-}
-         *_a1cs =
-             PrelBase.*{-rd8,p-}
-                 _@_ t{-aYd-} d.Num_aYA } in
-       let {
-         lit_a1cr  :: 
-             t{-aYd-}
+         d.Num_aT2 =
+             d.Num_aSU;
+         *_a14x  ::  taSF -> taSF -> taSF
          {-# L #-}
-         lit_a1cr =
-             lit_a1cw } in
-       let {
-         fromInt_a1cq  :: 
-             PrelBase.Int{-3g,p-} -> t{-aYd-}
+         *_a14x =
+             PrelBase.*{-rfB,p-} _@_ taSF d.Num_aT2;
+         lit_a14y  ::  taSF
          {-# L #-}
-         fromInt_a1cq =
-             fromInt_a1cx } in
-       let { lit_a1cp  :: 
-                 t{-aYd-}
-             {-# L #-}
-             lit_a1cp =
-         let {
-           ds_d1dC  :: 
-               PrelBase.Int{-3g,p-}
-           {-# L #-}
-           ds_d1dC =
-               PrelBase.I#{-5b,p-}{i}
-                   1
-         } in 
-           fromInt_a1cq
-               ds_d1dC
-       } in
-       let {
-         >=_a1co  :: 
-             t{-aYd-} -> t{-aYd-} -> PrelBase.Bool{-34,p-}
+         lit_a14y =
+             lit_a14t;
+         fromInt_a14z  ::  PrelBase.Int{-3g,W-} -> taSF
          {-# L #-}
-         >=_a1co =
-             >=_a1cv } in
-       let {
-         -_a1cn  :: 
-             t{-aYd-} -> t{-aYd-} -> t{-aYd-}
+         fromInt_a14z =
+             fromInt_a14h;
+         lit_a14A  ::  taSF
          {-# L #-}
-         -_a1cn =
-             -_a1cu } in
-       let {
-         lit_a1cm  :: 
-             t{-aYd-}
+         lit_a14A =
+             let {
+               ds_d17j  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_d17j =
+                   PrelBase.I#{-5b,w-}{i} 1
+             } in  fromInt_a14z ds_d17j;
+         >=_a14B  ::  taSF -> taSF -> PrelBase.Bool{-34,W-}
          {-# L #-}
-         lit_a1cm =
-             lit_a1cp } in
-       let {
-         >=_a1cl  :: 
-             t{-aYd-} -> t{-aYd-} -> PrelBase.Bool{-34,p-}
+         >=_a14B =
+             >=_a14u;
+         -_a14C  ::  taSF -> taSF -> taSF
          {-# L #-}
-         >=_a1cl =
-             >=_a1cv } in
-       let {
-         -_a1ck  :: 
-             t{-aYd-} -> t{-aYd-} -> t{-aYd-}
+         -_a14C =
+             -_a14v;
+         lit_a14D  ::  taSF
          {-# L #-}
-         -_a1ck =
-             -_a1cu
-       } in 
-         \ ds_d1e9  :: 
-               t{-aYd-}
-           {-# L #-}
-           ds_d1e9 x_r3H  :: 
-                       t{-aYd-}
-                   {-# L #-}
-                   x_r3H ->
-             let {
-               fail_d1em  :: 
-                   t{-aYd-}
-               {-# L #-}
-               fail_d1em =
-                   GHCerr.patError{-8r,p-}
-                       _@_ t{-aYd-} _string_ "ds036.hs:44|function `kh'" } in
-             let {
-               fail_d1fO  :: 
-                   t{-aYd-}
+         lit_a14D =
+             lit_a14A;
+         >=_a14E  ::  taSF -> taSF -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         >=_a14E =
+             >=_a14u;
+         -_a14F  ::  taSF -> taSF -> taSF
+         {-# L #-}
+         -_a14F =
+             -_a14v;
+         kh_aSk  ::  taSF -> taSF -> taSF
+         {-# L #-}
+         kh_aSk =
+             \ ds_d17R  ::  taSF
                {-# L #-}
-               fail_d1fO =
+               ds_d17R x_r3x  ::  taSF
+                       {-# L #-}
+                       x_r3x ->
+                 let {
+                   fail_d184  ::  taSF
+                   {-# L #-}
+                   fail_d184 =
+                       GHCerr.patError{-8r,w-}
+                           _@_ taSF _string_ "ds036.hs:44|function `kh'" } in
+                 let {
+                   fail_d19w  ::  taSF
+                   {-# L #-}
+                   fail_d19w =
+                       case
+                           (\ ds_d17Y  ::  taSF
+                              {-# L #-}
+                              ds_d17Y ->
+                                >=_a14B ds_d17Y lit_a14A)
+                               ds_d17R
+                       of {
+                         PrelBase.True{-5E,w-}{i} ->
+                             let {
+                               x_r3z  ::  taSF
+                               {-# L #-}
+                               x_r3z =
+                                   (\ ds_d18o  ::  taSF
+                                      {-# L #-}
+                                      ds_d18o ->
+                                        -_a14C ds_d18o lit_a14A)
+                                       ds_d17R
+                             } in 
+                               case
+                                   (\ ds_d18E  ::  taSF
+                                      {-# L #-}
+                                      ds_d18E ->
+                                        >=_a14E ds_d18E lit_a14D)
+                                       x_r3x
+                               of {
+                                 PrelBase.True{-5E,w-}{i} ->
+                                     (\ ds_d192  ::  taSF
+                                        {-# L #-}
+                                        ds_d192 ->
+                                          -_a14F ds_d192 lit_a14D)
+                                         x_r3x;
+                                 PrelBase.False{-58,w-}{i} -> fail_d184;
+                               };
+                         PrelBase.False{-58,w-}{i} -> fail_d184;
+                       }
+                 } in 
                    case
-                       (\ ds_d1eg  :: 
-                              t{-aYd-}
+                       (\ ds_d19q  ::  taSF
                           {-# L #-}
-                          ds_d1eg ->
-                            >=_a1co
-                                ds_d1eg lit_a1cp)
-                           ds_d1e9
+                          ds_d19q ->
+                            >=_a14u ds_d19q lit_a14t)
+                           ds_d17R
                    of {
-                     PrelBase.True{-5E,p-}{i} ->
+                     PrelBase.True{-5E,w-}{i} ->
                          let {
-                           x_r3J  :: 
-                               t{-aYd-}
+                           n_r3w  ::  taSF
                            {-# L #-}
-                           x_r3J =
-                               (\ ds_d1eG  :: 
-                                      t{-aYd-}
+                           n_r3w =
+                               (\ ds_d19Q  ::  taSF
                                   {-# L #-}
-                                  ds_d1eG ->
-                                    -_a1cn
-                                        ds_d1eG lit_a1cp)
-                                   ds_d1e9
+                                  ds_d19Q ->
+                                    -_a14v ds_d19Q lit_a14t)
+                                   ds_d17R
                          } in 
-                           case
-                               (\ ds_d1eW  :: 
-                                      t{-aYd-}
-                                  {-# L #-}
-                                  ds_d1eW ->
-                                    >=_a1cl
-                                        ds_d1eW lit_a1cm)
-                                   x_r3H
-                           of {
-                             PrelBase.True{-5E,p-}{i} ->
-                                 (\ ds_d1fk  :: 
-                                        t{-aYd-}
-                                    {-# L #-}
-                                    ds_d1fk ->
-                                      -_a1ck
-                                          ds_d1fk lit_a1cm)
-                                     x_r3H;
-                             PrelBase.False{-58,p-}{i} ->
-                                 fail_d1em;
+                           case >_a14w x_r3x n_r3w of {
+                             PrelBase.True{-5E,w-}{i} -> *_a14x x_r3x lit_a14y;
+                             PrelBase.False{-58,w-}{i} -> fail_d19w;
                            };
-                     PrelBase.False{-58,p-}{i} ->
-                         fail_d1em;
-                   }
-             } in 
-               case
-                   (\ ds_d1fI  :: 
-                          t{-aYd-}
-                      {-# L #-}
-                      ds_d1fI ->
-                        >=_a1cv
-                            ds_d1fI lit_a1cw)
-                       ds_d1e9
-               of {
-                 PrelBase.True{-5E,p-}{i} ->
-                     let {
-                       n_r3F  :: 
-                           t{-aYd-}
-                       {-# L #-}
-                       n_r3F =
-                           (\ ds_d1g8  :: 
-                                  t{-aYd-}
-                              {-# L #-}
-                              ds_d1g8 ->
-                                -_a1cu
-                                    ds_d1g8 lit_a1cw)
-                               ds_d1e9
-                     } in 
-                       case
-                           >_a1ct
-                               x_r3H n_r3F
-                       of {
-                         PrelBase.True{-5E,p-}{i} ->
-                             *_a1cs
-                                 x_r3H lit_a1cr;
-                         PrelBase.False{-58,p-}{i} ->
-                             fail_d1fO;
-                       };
-                 PrelBase.False{-58,p-}{i} ->
-                     fail_d1fO;
-               }
-brack'{-r3f,x-}  :: 
-    _forall_
-    [a{-aYI-}]
-    =>
-    {PrelBase.Eq{-23,p-} a{-aYI-}}
-    -> a{-aYI-}
-    -> a{-aYI-}
-    -> PrelBase.Int{-3g,p-}
-    -> [a{-aYI-}]
-    -> ([a{-aYI-}], [a{-aYI-}])
+                     PrelBase.False{-58,w-}{i} -> fail_d19w;
+                   };
+       } in  kh_aSk
+brack'{-r3f,x-}  ::  _forall_
+                    [taTa]
+                    =>
+                    {PrelBase.Eq{-23,p-} taTa}
+                    -> taTa
+                    -> taTa
+                    -> PrelBase.Int{-3g,W-}
+                    -> [taTa]
+                    -> ([taTa], [taTa])
 {-# L #-}
 brack'{-r3f,x-} =
-    _/\_ a{-aYI-} -> \ d.Eq_aZs  :: 
-                          {PrelBase.Eq{-23,p-} a{-aYI-}}
-                      {-# L #-}
-                      d.Eq_aZs ->
-       let {
-         lit_a1h1  :: 
-             PrelBase.Int{-3g,p-}
+    _/\_ taTa -> \ d.Eq_aU7  ::  {PrelBase.Eq{-23,p-} taTa}
+                  {-# L #-}
+                  d.Eq_aU7 ->
+       _letrec_ {
+         lit_a1aE  ::  PrelBase.Int{-3g,W-}
+         {-# L #-}
+         lit_a1aE =
+             lit_a14q;
+         >=_a1aG  ::  PrelBase.Int{-3g,W-}
+                      -> PrelBase.Int{-3g,W-}
+                      -> PrelBase.Bool{-34,W-}
          {-# L #-}
-         lit_a1h1 =
-             lit_a19Y } in
-       let {
-         >=_a1h0  :: 
-             PrelBase.Int{-3g,p-}
-             -> PrelBase.Int{-3g,p-}
-             -> PrelBase.Bool{-34,p-}
+         >=_a1aG =
+             >=_a14r;
+         -_a1aH  ::  PrelBase.Int{-3g,W-}
+                     -> PrelBase.Int{-3g,W-}
+                     -> PrelBase.Int{-3g,W-}
          {-# L #-}
-         >=_a1h0 =
-             >=_a19X } in
-       let {
-         -_a1gZ  :: 
-             PrelBase.Int{-3g,p-}
-             -> PrelBase.Int{-3g,p-}
-             -> PrelBase.Int{-3g,p-}
+         -_a1aH =
+             -_a14s;
+         d.Eq_aUf  ::  {PrelBase.Eq{-23,p-} taTa}
          {-# L #-}
-         -_a1gZ =
-             -_a19W } in
-       let {
-         d.Eq_aZC  :: 
-             {PrelBase.Eq{-23,p-} a{-aYI-}}
+         d.Eq_aUf =
+             d.Eq_aU7;
+         ==_a1aI  ::  taTa -> taTa -> PrelBase.Bool{-34,W-}
          {-# L #-}
-         d.Eq_aZC =
-             d.Eq_aZs } in
-       let {
-         ==_a1gY  :: 
-             a{-aYI-} -> a{-aYI-} -> PrelBase.Bool{-34,p-}
+         ==_a1aI =
+             PrelBase.=={-8Y,p-} _@_ taTa d.Eq_aUf;
+         brack'_aT7  ::  taTa
+                         -> taTa
+                         -> PrelBase.Int{-3g,W-}
+                         -> [taTa]
+                         -> ([taTa], [taTa])
          {-# L #-}
-         ==_a1gY =
-             PrelBase.=={-8Y,p-}
-                 _@_ a{-aYI-} d.Eq_aZC
-       } in 
-         \ open_r3i  :: 
-               a{-aYI-}
-           {-# L #-}
-           open_r3i close_r3k  :: 
-                        a{-aYI-}
-                    {-# L #-}
-                    close_r3k ds_d1hB  :: 
-                                  PrelBase.Int{-3g,p-}
+         brack'_aT7 =
+             \ open_r3i  ::  taTa
+               {-# L #-}
+               open_r3i close_r3j  ::  taTa
+                        {-# L #-}
+                        close_r3j ds_d1bB  ::  PrelBase.Int{-3g,W-}
+                                  {-# L #-}
+                                  ds_d1bB xs_r3k  ::  [taTa]
+                                          {-# L #-}
+                                          xs_r3k ->
+                 let {
+                   fail_d1bO  ::  ([taTa], [taTa])
+                   {-# L #-}
+                   fail_d1bO =
+                       GHCerr.patError{-8r,w-}
+                           _@_ ([taTa], [taTa]) _string_ "ds036.hs:22|function `brack''" } in
+                 let {
+                   fail_d1dT  ::  ([taTa], [taTa])
+                   {-# L #-}
+                   fail_d1dT =
+                       case
+                           (\ ds_d1bI  ::  PrelBase.Int{-3g,W-}
                               {-# L #-}
-                              ds_d1hB xs_r3n  :: 
-                                          [a{-aYI-}]
+                              ds_d1bI ->
+                                >=_a14r ds_d1bI lit_a14q)
+                               ds_d1bB
+                       of {
+                         PrelBase.True{-5E,w-}{i} ->
+                             let {
+                               n_r3o  ::  PrelBase.Int{-3g,W-}
+                               {-# L #-}
+                               n_r3o =
+                                   (\ ds_d1c8  ::  PrelBase.Int{-3g,W-}
                                       {-# L #-}
-                                      xs_r3n ->
-             let {
-               fail_d1hO  :: 
-                   ([a{-aYI-}], [a{-aYI-}])
-               {-# L #-}
-               fail_d1hO =
-                   GHCerr.patError{-8r,p-}
-                       _@_ ([a{-aYI-}], [a{-aYI-}])
-                       _string_ "ds036.hs:22|function `brack''" } in
-             let {
-               fail_d1jT  :: 
-                   ([a{-aYI-}], [a{-aYI-}])
-               {-# L #-}
-               fail_d1jT =
-                   case
-                       (\ ds_d1hI  :: 
-                              PrelBase.Int{-3g,p-}
-                          {-# L #-}
-                          ds_d1hI ->
-                            >=_a19X
-                                ds_d1hI lit_a19Y)
-                           ds_d1hB
-                   of {
-                     PrelBase.True{-5E,p-}{i} ->
+                                      ds_d1c8 ->
+                                        -_a14s ds_d1c8 lit_a14q)
+                                       ds_d1bB
+                             } in 
+                               case xs_r3k of {
+                                 PrelBase.[]{-5i,w-}{i} ->
+                                     let {
+                                       close_r3n  ::  taTa
+                                       {-# L #-}
+                                       close_r3n =
+                                           close_r3j } in
+                                     let {
+                                       open_r3m  ::  taTa
+                                       {-# L #-}
+                                       open_r3m =
+                                           open_r3i } in
+                                     let {
+                                       ds_d1cz  ::  [taTa]
+                                       {-# L #-}
+                                       ds_d1cz =
+                                           PrelBase.[]{-5i,w-}{i} _@_ taTa } in
+                                     let {
+                                       ds_d1cD  ::  [taTa]
+                                       {-# L #-}
+                                       ds_d1cD =
+                                           PrelBase.[]{-5i,w-}{i} _@_ taTa
+                                     } in 
+                                       PrelTup.(,){-62,w-}{i}
+                                           {_@_ [taTa] _@_ [taTa] ds_d1cz ds_d1cD};
+                                 PrelBase.:{-55,w-}{i} h_r3t t_r3u ->
+                                     let {
+                                       n_r3s  ::  PrelBase.Int{-3g,W-}
+                                       {-# L #-}
+                                       n_r3s =
+                                           n_r3o } in
+                                     let {
+                                       close_r3r  ::  taTa
+                                       {-# L #-}
+                                       close_r3r =
+                                           close_r3j } in
+                                     let {
+                                       open_r3q  ::  taTa
+                                       {-# L #-}
+                                       open_r3q =
+                                           open_r3i
+                                     } in 
+                                       case ==_a1aI h_r3t open_r3q of {
+                                         PrelBase.True{-5E,w-}{i} ->
+                                             let {
+                                               ds_d1du  ::  [taTa]
+                                               {-# L #-}
+                                               ds_d1du =
+                                                   PrelBase.[]{-5i,w-}{i} _@_ taTa } in
+                                             let {
+                                               ds_d1dy  ::  [taTa]
+                                               {-# L #-}
+                                               ds_d1dy =
+                                                   PrelBase.[]{-5i,w-}{i} _@_ taTa
+                                             } in 
+                                               PrelTup.(,){-62,w-}{i}
+                                                   {_@_ [taTa] _@_ [taTa] ds_d1du ds_d1dy};
+                                         PrelBase.False{-58,w-}{i} -> fail_d1bO;
+                                       };
+                               };
+                         PrelBase.False{-58,w-}{i} -> fail_d1bO;
+                       }
+                 } in 
+                   case ds_d1bB of { PrelBase.I#{-5b,w-}{i} ds_d1e2  ->
+                   case# ds_d1e2 of {
+                     0 ->
                          let {
-                           n_r3t  :: 
-                               PrelBase.Int{-3g,p-}
+                           ds_d1eh  ::  [taTa]
                            {-# L #-}
-                           n_r3t =
-                               (\ ds_d1i8  :: 
-                                      PrelBase.Int{-3g,p-}
-                                  {-# L #-}
-                                  ds_d1i8 ->
-                                    -_a19W
-                                        ds_d1i8 lit_a19Y)
-                                   ds_d1hB
+                           ds_d1eh =
+                               PrelBase.[]{-5i,w-}{i} _@_ taTa
                          } in 
-                           case xs_r3n of {
-                             PrelBase.[]{-5i,p-}{i} ->
-                                 let {
-                                   close_r3r  :: 
-                                       a{-aYI-}
-                                   {-# L #-}
-                                   close_r3r =
-                                       close_r3k } in
-                                 let {
-                                   open_r3p  :: 
-                                       a{-aYI-}
-                                   {-# L #-}
-                                   open_r3p =
-                                       open_r3i } in
-                                 let {
-                                   ds_d1iz  :: 
-                                       [a{-aYI-}]
-                                   {-# L #-}
-                                   ds_d1iz =
-                                       PrelBase.[]{-5i,p-}{i}
-                                           _@_ a{-aYI-} } in
-                                 let {
-                                   ds_d1iD  :: 
-                                       [a{-aYI-}]
-                                   {-# L #-}
-                                   ds_d1iD =
-                                       PrelBase.[]{-5i,p-}{i}
-                                           _@_ a{-aYI-}
-                                 } in 
-                                   PrelTup.(,){-62,p-}{i}
-                                       {_@_ [a{-aYI-}] _@_ [a{-aYI-}] ds_d1iz ds_d1iD};
-                             PrelBase.:{-55,p-}{i} h_r3C t_r3D ->
-                                 let {
-                                   n_r3A  :: 
-                                       PrelBase.Int{-3g,p-}
-                                   {-# L #-}
-                                   n_r3A =
-                                       n_r3t } in
-                                 let {
-                                   close_r3y  :: 
-                                       a{-aYI-}
-                                   {-# L #-}
-                                   close_r3y =
-                                       close_r3k } in
-                                 let {
-                                   open_r3w  :: 
-                                       a{-aYI-}
-                                   {-# L #-}
-                                   open_r3w =
-                                       open_r3i
-                                 } in 
-                                   case
-                                       ==_a1gY
-                                           h_r3C open_r3w
-                                   of {
-                                     PrelBase.True{-5E,p-}{i} ->
-                                         let {
-                                           ds_d1ju  :: 
-                                               [a{-aYI-}]
-                                           {-# L #-}
-                                           ds_d1ju =
-                                               PrelBase.[]{-5i,p-}{i}
-                                                   _@_ a{-aYI-} } in
-                                         let {
-                                           ds_d1jy  :: 
-                                               [a{-aYI-}]
-                                           {-# L #-}
-                                           ds_d1jy =
-                                               PrelBase.[]{-5i,p-}{i}
-                                                   _@_ a{-aYI-}
-                                         } in 
-                                           PrelTup.(,){-62,p-}{i}
-                                               {_@_ [a{-aYI-}] _@_ [a{-aYI-}] ds_d1ju ds_d1jy};
-                                     PrelBase.False{-58,p-}{i} ->
-                                         fail_d1hO;
-                                   };
-                           };
-                     PrelBase.False{-58,p-}{i} ->
-                         fail_d1hO;
-                   }
-             } in 
-               case ds_d1hB of { PrelBase.I#{-5b,p-}{i} ds_d1k2  ->
-               case# ds_d1k2 of {
-                 0 ->
-                     let {
-                       ds_d1kh  :: 
-                           [a{-aYI-}]
-                       {-# L #-}
-                       ds_d1kh =
-                           PrelBase.[]{-5i,p-}{i}
-                               _@_ a{-aYI-}
-                     } in 
-                       PrelTup.(,){-62,p-}{i}
-                           {_@_ [a{-aYI-}] _@_ [a{-aYI-}] ds_d1kh xs_r3n};
-                 ds_d1kt ->
-                     fail_d1jT;
-               };}
+                           PrelTup.(,){-62,w-}{i} {_@_ [taTa] _@_ [taTa] ds_d1eh xs_r3k};
+                     ds_d1et -> fail_d1dT;
+                   };};
+       } in  brack'_aT7
+lit_a14o  ::  PrelBase.Int{-3g,W-}
+{-# L #-}
+lit_a14o =
+    PrelBase.I#{-5b,w-}{i} 0
+d.Eq_aUh  ::  {PrelBase.Eq{-23,p-} PrelBase.Int{-3g,W-}}
+{-# L #-}
+d.Eq_aUh =
+    PrelBase.$d8{-rb8,p-}
+==_a14p  ::  PrelBase.Int{-3g,W-}
+            -> PrelBase.Int{-3g,W-}
+            -> PrelBase.Bool{-34,W-}
+{-# L #-}
+==_a14p =
+    PrelBase.=={-8Y,p-} _@_ PrelBase.Int{-3g,W-} d.Eq_aUh
+lit_a14q  ::  PrelBase.Int{-3g,W-}
+{-# L #-}
+lit_a14q =
+    PrelBase.I#{-5b,w-}{i} 1
+d.Ord_aUk  ::  {PrelBase.Ord{-2d,p-} PrelBase.Int{-3g,W-}}
+{-# L #-}
+d.Ord_aUk =
+    PrelBase.$d7{-rb7,p-}
+>=_a14r  ::  PrelBase.Int{-3g,W-}
+            -> PrelBase.Int{-3g,W-}
+            -> PrelBase.Bool{-34,W-}
+{-# L #-}
+>=_a14r =
+    PrelBase.>={-8Z,p-} _@_ PrelBase.Int{-3g,W-} d.Ord_aUk
+d.Num_aUn  ::  {PrelBase.Num{-2c,p-} PrelBase.Int{-3g,W-}}
+{-# L #-}
+d.Num_aUn =
+    PrelBase.$d4{-raL,p-}
+-_a14s  ::  PrelBase.Int{-3g,W-}
+           -> PrelBase.Int{-3g,W-}
+           -> PrelBase.Int{-3g,W-}
+{-# L #-}
+-_a14s =
+    PrelBase.-{-817,p-} _@_ PrelBase.Int{-3g,W-} d.Num_aUn
 end Rec }
index cb76a7e..4a05869 100644 (file)
 ================================================================================
 Desugared:
 Rec {
-d.Num_aXF  :: 
-    {PrelBase.Num{-2c,p-} PrelBase.Int{-3g,p-}}
+ds_dVA  ::  _forall_
+           [taS9]
+           =>
+           (PrelBase.Int{-3g,W-}
+            -> PrelBase.Int{-3g,W-}
+            -> (taS9, PrelBase.Int{-3g,W-}), PrelBase.Int{-3g,W-}
+                                             -> PrelBase.Int{-3g,W-}
+                                             -> (taS9, PrelBase.Int{-3g,W-}))
 {-# L #-}
-d.Num_aXF =
-    PrelBase.$d3{-rbd,p-}
-+_aZO  :: 
-    PrelBase.Int{-3g,p-}
-    -> PrelBase.Int{-3g,p-}
-    -> PrelBase.Int{-3g,p-}
-{-# L #-}
-+_aZO =
-    PrelBase.+{-r3m,p-}
-       _@_ PrelBase.Int{-3g,p-} d.Num_aXF
-d.Num_aXJ  :: 
-    {PrelBase.Num{-2c,p-} PrelBase.Int{-3g,p-}}
-{-# L #-}
-d.Num_aXJ =
-    d.Num_aXF
-fromInt_aZN  :: 
-    PrelBase.Int{-3g,p-} -> PrelBase.Int{-3g,p-}
-{-# L #-}
-fromInt_aZN =
-    PrelBase.fromInt{-8R,p-}
-       _@_ PrelBase.Int{-3g,p-} d.Num_aXJ
-lit_aZM  :: 
-    PrelBase.Int{-3g,p-}
-{-# L #-}
-lit_aZM =
-    let {
-      ds_d123  :: 
-         PrelBase.Int{-3g,p-}
-      {-# L #-}
-      ds_d123 =
-         PrelBase.I#{-5b,p-}{i}
-             1
-    } in 
-      fromInt_aZN
-         ds_d123
-ds_d11F  :: 
-    _forall_
-    [b{-aXa-}]
-    =>
-    (PrelBase.Int{-3g,p-}
-     -> PrelBase.Int{-3g,p-}
-     -> (b{-aXa-}, PrelBase.Int{-3g,p-}), PrelBase.Int{-3g,p-}
-                                         -> PrelBase.Int{-3g,p-}
-                                         -> (b{-aXa-}, PrelBase.Int{-3g,p-}))
-{-# L #-}
-ds_d11F =
-    _/\_ b{-aXa-} ->
+ds_dVA =
+    _/\_ taS9 ->
        _letrec_ {
-         +_aZQ  :: 
-             PrelBase.Int{-3g,p-}
-             -> PrelBase.Int{-3g,p-}
-             -> PrelBase.Int{-3g,p-}
+         +_aTZ  ::  PrelBase.Int{-3g,W-}
+                    -> PrelBase.Int{-3g,W-}
+                    -> PrelBase.Int{-3g,W-}
          {-# L #-}
-         +_aZQ =
-             +_aZO;
-         lit_aZP  :: 
-             PrelBase.Int{-3g,p-}
+         +_aTZ =
+             +_aU0;
+         lit_aU2  ::  PrelBase.Int{-3g,W-}
          {-# L #-}
-         lit_aZP =
-             lit_aZM;
-         f_aWT  :: 
-             PrelBase.Int{-3g,p-}
-             -> PrelBase.Int{-3g,p-}
-             -> (b{-aXa-}, PrelBase.Int{-3g,p-})
+         lit_aU2 =
+             lit_aU1;
+         f_aRp  ::  PrelBase.Int{-3g,W-}
+                    -> PrelBase.Int{-3g,W-}
+                    -> (taS9, PrelBase.Int{-3g,W-})
          {-# L #-}
-         f_aWT =
-             \ x_r3e  :: 
-                   PrelBase.Int{-3g,p-}
+         f_aRp =
+             \ x_r3e  ::  PrelBase.Int{-3g,W-}
                {-# L #-}
-               x_r3e y_r3g  :: 
-                         PrelBase.Int{-3g,p-}
+               x_r3e y_r3f  ::  PrelBase.Int{-3g,W-}
                      {-# L #-}
-                     y_r3g ->
-                 let { ds_d12N  :: 
-                           b{-aXa-}
+                     y_r3f ->
+                 let { ds_dWx  ::  taS9
                        {-# L #-}
-                       ds_d12N =
+                       ds_dWx =
                    let {
-                     ds_d133  :: 
-                         (b{-aXa-}, PrelBase.Int{-3g,p-})
+                     ds_dWN  ::  (taS9, PrelBase.Int{-3g,W-})
                      {-# L #-}
-                     ds_d133 =
-                         g_aWU
-                             y_r3g x_r3e
-                   } in 
-                     PrelTup.fst{-riN,p-}
-                         _@_ PrelBase.Int{-3g,p-} _@_ b{-aXa-} ds_d133
+                     ds_dWN =
+                         g_aRq y_r3f x_r3e
+                   } in  PrelTup.fst{-rgQ,p-} _@_ PrelBase.Int{-3g,W-} _@_ taS9 ds_dWN
                  } in
                  let {
-                   ds_d12R  :: 
-                       PrelBase.Int{-3g,p-}
+                   ds_dWB  ::  PrelBase.Int{-3g,W-}
                    {-# L #-}
-                   ds_d12R =
-                       +_aZO
-                           x_r3e lit_aZM
+                   ds_dWB =
+                       +_aU0 x_r3e lit_aU1
                  } in 
-                   PrelTup.(,){-62,p-}{i}
-                       {_@_ b{-aXa-} _@_ PrelBase.Int{-3g,p-} ds_d12N ds_d12R};
-         g_aWU  :: 
-             PrelBase.Int{-3g,p-}
-             -> PrelBase.Int{-3g,p-}
-             -> (b{-aXa-}, PrelBase.Int{-3g,p-})
+                   PrelTup.(,){-62,w-}{i}
+                       {_@_ taS9 _@_ PrelBase.Int{-3g,W-} ds_dWx ds_dWB};
+         g_aRq  ::  PrelBase.Int{-3g,W-}
+                    -> PrelBase.Int{-3g,W-}
+                    -> (taS9, PrelBase.Int{-3g,W-})
          {-# L #-}
-         g_aWU =
-             \ x_r3j  :: 
-                   PrelBase.Int{-3g,p-}
+         g_aRq =
+             \ x_r3j  ::  PrelBase.Int{-3g,W-}
                {-# L #-}
-               x_r3j y_r3l  :: 
-                         PrelBase.Int{-3g,p-}
+               x_r3j y_r3k  ::  PrelBase.Int{-3g,W-}
                      {-# L #-}
-                     y_r3l ->
-                 let { ds_d13B  :: 
-                           b{-aXa-}
+                     y_r3k ->
+                 let { ds_dXl  ::  taS9
                        {-# L #-}
-                       ds_d13B =
+                       ds_dXl =
                    let {
-                     ds_d13R  :: 
-                         (b{-aXa-}, PrelBase.Int{-3g,p-})
+                     ds_dXB  ::  (taS9, PrelBase.Int{-3g,W-})
                      {-# L #-}
-                     ds_d13R =
-                         f_aWT
-                             x_r3j y_r3l
-                   } in 
-                     PrelTup.fst{-riN,p-}
-                         _@_ PrelBase.Int{-3g,p-} _@_ b{-aXa-} ds_d13R
+                     ds_dXB =
+                         f_aRp x_r3j y_r3k
+                   } in  PrelTup.fst{-rgQ,p-} _@_ PrelBase.Int{-3g,W-} _@_ taS9 ds_dXB
                  } in
                  let {
-                   ds_d13F  :: 
-                       PrelBase.Int{-3g,p-}
+                   ds_dXp  ::  PrelBase.Int{-3g,W-}
                    {-# L #-}
-                   ds_d13F =
-                       +_aZQ
-                           y_r3l lit_aZP
+                   ds_dXp =
+                       +_aTZ y_r3k lit_aU2
                  } in 
-                   PrelTup.(,){-62,p-}{i}
-                       {_@_ b{-aXa-} _@_ PrelBase.Int{-3g,p-} ds_d13B ds_d13F};
+                   PrelTup.(,){-62,w-}{i}
+                       {_@_ taS9 _@_ PrelBase.Int{-3g,W-} ds_dXl ds_dXp};
        } in 
-         PrelTup.(,){-62,p-}{i}
-             {_@_ (PrelBase.Int{-3g,p-}
-                   -> PrelBase.Int{-3g,p-}
-                   -> (b{-aXa-}, PrelBase.Int{-3g,p-}))
-              _@_ (PrelBase.Int{-3g,p-}
-                   -> PrelBase.Int{-3g,p-}
-                   -> (b{-aXa-}, PrelBase.Int{-3g,p-}))
-              f_aWT
-              g_aWU}
-f{-r3o,x-}  :: 
-    _forall_
-    [b{-aXa-}]
-    =>
-    PrelBase.Int{-3g,p-}
-    -> PrelBase.Int{-3g,p-}
-    -> (b{-aXa-}, PrelBase.Int{-3g,p-})
+         PrelTup.(,){-62,w-}{i}
+             {_@_ (PrelBase.Int{-3g,W-}
+                   -> PrelBase.Int{-3g,W-}
+                   -> (taS9, PrelBase.Int{-3g,W-}))
+              _@_ (PrelBase.Int{-3g,W-}
+                   -> PrelBase.Int{-3g,W-}
+                   -> (taS9, PrelBase.Int{-3g,W-}))
+              f_aRp
+              g_aRq}
+f{-r3l,x-}  ::  _forall_
+               [taS9]
+               =>
+               PrelBase.Int{-3g,W-}
+               -> PrelBase.Int{-3g,W-}
+               -> (taS9, PrelBase.Int{-3g,W-})
+{-# L #-}
+f{-r3l,x-} =
+    _/\_ taS9 ->
+       case ds_dVA _@_ taS9 of { PrelTup.(,){-62,w-}{i} ds_dYl ds_dYm  ->
+       ds_dYl;}
+g{-r3g,x-}  ::  _forall_
+               [taS9]
+               =>
+               PrelBase.Int{-3g,W-}
+               -> PrelBase.Int{-3g,W-}
+               -> (taS9, PrelBase.Int{-3g,W-})
+{-# L #-}
+g{-r3g,x-} =
+    _/\_ taS9 ->
+       case ds_dVA _@_ taS9 of { PrelTup.(,){-62,w-}{i} ds_dYC ds_dYB  ->
+       ds_dYB;}
+d.Num_aSj  ::  {PrelBase.Num{-2c,p-} PrelBase.Int{-3g,W-}}
+{-# L #-}
+d.Num_aSj =
+    PrelBase.$d4{-ray,p-}
++_aU0  ::  PrelBase.Int{-3g,W-}
+          -> PrelBase.Int{-3g,W-}
+          -> PrelBase.Int{-3g,W-}
 {-# L #-}
-f{-r3o,x-} =
-    _/\_ b{-aXa-} ->
-       case
-           ds_d11F
-               _@_ b{-aXa-}
-       of {
-       PrelTup.(,){-62,p-}{i} ds_d14B ds_d14C  ->
-       ds_d14B;}
-g{-r3n,x-}  :: 
-    _forall_
-    [b{-aXa-}]
-    =>
-    PrelBase.Int{-3g,p-}
-    -> PrelBase.Int{-3g,p-}
-    -> (b{-aXa-}, PrelBase.Int{-3g,p-})
++_aU0 =
+    PrelBase.+{-r3m,p-} _@_ PrelBase.Int{-3g,W-} d.Num_aSj
+lit_aU1  ::  PrelBase.Int{-3g,W-}
 {-# L #-}
-g{-r3n,x-} =
-    _/\_ b{-aXa-} ->
-       case
-           ds_d11F
-               _@_ b{-aXa-}
-       of {
-       PrelTup.(,){-62,p-}{i} ds_d14S ds_d14R  ->
-       ds_d14R;}
+lit_aU1 =
+    PrelBase.I#{-5b,w-}{i} 1
 end Rec }
 
 NOTE: Simplifier still going after 4 iterations; bailing out.
index ceffab1..14e60e9 100644 (file)
@@ -1,6 +1,8 @@
 --!!! Jon Hill reported a bug in desugaring this in 0.09
 --!!! (recursive with n+k patts)
 --
+module ShouldSucceed where
+
 takeList :: Int -> [a] -> [a]
 takeList 0     _      = []
 takeList (n+1) []     = []
index a45cd41..05e67d5 100644 (file)
@@ -1,5 +1,131 @@
-ds038.hs:4: Module Main must include a definition for `Main.main'
+ds038.hs:7: 
+    Warning: Possibly incomplete patterns
+       in the definition of function `takeList'
 
 
-Compilation had errors
+================================================================================
+Desugared:
+Rec {
+takeList{-r3e,x-}  ::  _forall_
+                      [taCy]
+                      =>
+                      PrelBase.Int{-3g,W-} -> [taCy] -> [taCy]
+{-# L #-}
+takeList{-r3e,x-} =
+    _/\_ taCy ->
+       _letrec_ {
+         lit_aHX  ::  PrelBase.Int{-3g,W-}
+         {-# L #-}
+         lit_aHX =
+             lit_aHZ;
+         >=_aI4  ::  PrelBase.Int{-3g,W-}
+                     -> PrelBase.Int{-3g,W-}
+                     -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         >=_aI4 =
+             >=_aI2;
+         -_aI5  ::  PrelBase.Int{-3g,W-}
+                    -> PrelBase.Int{-3g,W-}
+                    -> PrelBase.Int{-3g,W-}
+         {-# L #-}
+         -_aI5 =
+             -_aI3;
+         takeList_aCs  ::  PrelBase.Int{-3g,W-} -> [taCy] -> [taCy]
+         {-# L #-}
+         takeList_aCs =
+             \ ds_dJb  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_dJb ds_dJo  ::  [taCy]
+                      {-# L #-}
+                      ds_dJo ->
+                 let {
+                   fail_dJp  ::  [taCy]
+                   {-# L #-}
+                   fail_dJp =
+                       GHCerr.patError{-8r,w-}
+                           _@_ [taCy] _string_ "ds038.hs:7|function `takeList'" } in
+                 let {
+                   fail_dKA  ::  [taCy]
+                   {-# L #-}
+                   fail_dKA =
+                       case
+                           (\ ds_dJi  ::  PrelBase.Int{-3g,W-}
+                              {-# L #-}
+                              ds_dJi ->
+                                >=_aI2 ds_dJi lit_aHZ)
+                               ds_dJb
+                       of {
+                         PrelBase.True{-5E,w-}{i} ->
+                             let {
+                               n_r3h  ::  PrelBase.Int{-3g,W-}
+                               {-# L #-}
+                               n_r3h =
+                                   (\ ds_dJJ  ::  PrelBase.Int{-3g,W-}
+                                      {-# L #-}
+                                      ds_dJJ ->
+                                        -_aI3 ds_dJJ lit_aHZ)
+                                       ds_dJb
+                             } in 
+                               case ds_dJo of {
+                                 PrelBase.[]{-5i,w-}{i} -> PrelBase.[]{-5i,w-}{i} _@_ taCy;
+                                 PrelBase.:{-55,w-}{i} x_r3k xs_r3l ->
+                                     let {
+                                       n_r3j  ::  PrelBase.Int{-3g,W-}
+                                       {-# L #-}
+                                       n_r3j =
+                                           n_r3h } in
+                                     let {
+                                       ds_dKg  ::  [taCy]
+                                       {-# L #-}
+                                       ds_dKg =
+                                           takeList{-r3e,x-} _@_ taCy n_r3j xs_r3l
+                                     } in  PrelBase.:{-55,w-}{i} _@_ taCy x_r3k ds_dKg;
+                               };
+                         PrelBase.False{-58,w-}{i} -> fail_dJp;
+                       }
+                 } in 
+                   case ds_dJb of { PrelBase.I#{-5b,w-}{i} ds_dKJ  ->
+                   case# ds_dKJ of {
+                     0 -> PrelBase.[]{-5i,w-}{i} _@_ taCy;
+                     ds_dKW -> fail_dKA;
+                   };};
+       } in  takeList_aCs
+lit_aI0  ::  PrelBase.Int{-3g,W-}
+{-# L #-}
+lit_aI0 =
+    PrelBase.I#{-5b,w-}{i} 0
+d.Eq_aD5  ::  {PrelBase.Eq{-23,p-} PrelBase.Int{-3g,W-}}
+{-# L #-}
+d.Eq_aD5 =
+    PrelBase.$d8{-raT,p-}
+==_aI1  ::  PrelBase.Int{-3g,W-}
+           -> PrelBase.Int{-3g,W-}
+           -> PrelBase.Bool{-34,W-}
+{-# L #-}
+==_aI1 =
+    PrelBase.=={-8Y,p-} _@_ PrelBase.Int{-3g,W-} d.Eq_aD5
+lit_aHZ  ::  PrelBase.Int{-3g,W-}
+{-# L #-}
+lit_aHZ =
+    PrelBase.I#{-5b,w-}{i} 1
+d.Ord_aD8  ::  {PrelBase.Ord{-2d,p-} PrelBase.Int{-3g,W-}}
+{-# L #-}
+d.Ord_aD8 =
+    PrelBase.$d7{-raS,p-}
+>=_aI2  ::  PrelBase.Int{-3g,W-}
+           -> PrelBase.Int{-3g,W-}
+           -> PrelBase.Bool{-34,W-}
+{-# L #-}
+>=_aI2 =
+    PrelBase.>={-8Z,p-} _@_ PrelBase.Int{-3g,W-} d.Ord_aD8
+d.Num_aDb  ::  {PrelBase.Num{-2c,p-} PrelBase.Int{-3g,W-}}
+{-# L #-}
+d.Num_aDb =
+    PrelBase.$d4{-raw,p-}
+-_aI3  ::  PrelBase.Int{-3g,W-}
+          -> PrelBase.Int{-3g,W-}
+          -> PrelBase.Int{-3g,W-}
+{-# L #-}
+-_aI3 =
+    PrelBase.-{-817,p-} _@_ PrelBase.Int{-3g,W-} d.Num_aDb
+end Rec }
index 1ff3f31..fcc5f33 100644 (file)
@@ -2,7 +2,15 @@
 
 ================================================================================
 Desugared:
+Rec {
+f{-r1,x-}  ::  _forall_ [tak6] => tak6 -> [tak6] -> [tak6]
 {-# L #-}
-f = _/\_ t{-amG-} ->
-       PrelBase.:
-           _@_ t{-amG-}
+f{-r1,x-} =
+    _/\_ tak6 ->
+       _letrec_ {
+         f_ak2  ::  tak6 -> [tak6] -> [tak6]
+         {-# L #-}
+         f_ak2 =
+             PrelBase.:{-55,w-}{i} _@_ tak6;
+       } in  f_ak2
+end Rec }
index d7fb621..6d1c17e 100644 (file)
@@ -1,7 +1,7 @@
 --!!! Another bug in overloaded n+k patts
 --
 
-main _ = [AppendChan stdout (shows ((4::Int) ^^^^ (6::Int)) "\n")]
+main  = print ((4::Int) ^^^^ (6::Int))
 
 (^^^^)         :: (Num a, Integral b) => a -> b -> a
 x ^^^^ 0               =  1
index 0fe36a3..bee5ab6 100644 (file)
@@ -1,9 +1,391 @@
-ds040.hs:4:
-    Data constructor not in scope: `AppendChan'
-ds040.hs:4:
-    Value not in scope: `stdout'
 
 
-Compilation had errors
+================================================================================
+Desugared:
+Rec {
+^^^^{-r3g,x-}  ::  _forall_
+                  [taZJ taZG]
+                  =>
+                  {PrelBase.Num{-2c,p-} taZG}
+                  -> {PrelNum.Integral{-27,p-} taZJ}
+                  -> taZG
+                  -> taZJ
+                  -> taZG
+{-# L #-}
+^^^^{-r3g,x-} =
+    _/\_ taZJ taZG -> \ d.Num_a11q  ::  {PrelBase.Num{-2c,p-} taZG}
+                       {-# L #-}
+                       d.Num_a11q d.Integral_a11r  ::  {PrelNum.Integral{-27,p-} taZJ}
+                                  {-# L #-}
+                                  d.Integral_a11r ->
+       _letrec_ {
+         d.Real_a11G  ::  {PrelNum.Real{-2f,p-} taZJ}
+         {-# L #-}
+         d.Real_a11G =
+             PrelNum.scsel_IntegralPrelNumReal{-a1eV,p-}
+                 _@_ taZJ d.Integral_a11r;
+         d.Num_a11u  ::  {PrelBase.Num{-2c,p-} taZJ}
+         {-# L #-}
+         d.Num_a11u =
+             PrelNum.scsel_RealPrelBaseNum{-a1gK,p-} _@_ taZJ d.Real_a11G;
+         d.Ord_a11C  ::  {PrelBase.Ord{-2d,p-} taZJ}
+         {-# L #-}
+         d.Ord_a11C =
+             PrelNum.scsel_RealPrelBaseOrd{-a1gT,p-} _@_ taZJ d.Real_a11G;
+         d.Eq_a11w  ::  {PrelBase.Eq{-23,p-} taZJ}
+         {-# L #-}
+         d.Eq_a11w =
+             PrelBase.scsel_OrdPrelBaseEq{-a1h2,p-} _@_ taZJ d.Ord_a11C;
+         fromInt_a1eK  ::  PrelBase.Int{-3g,W-} -> taZJ
+         {-# L #-}
+         fromInt_a1eK =
+             PrelBase.fromInt{-8R,p-} _@_ taZJ d.Num_a11u;
+         lit_a1eL  ::  taZJ
+         {-# L #-}
+         lit_a1eL =
+             let {
+               ds_d1hh  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_d1hh =
+                   PrelBase.I#{-5b,w-}{i} 0
+             } in  fromInt_a1eK ds_d1hh;
+         ==_a1eM  ::  taZJ -> taZJ -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         ==_a1eM =
+             PrelBase.=={-8Y,p-} _@_ taZJ d.Eq_a11w;
+         d.Num_a11z  ::  {PrelBase.Num{-2c,p-} taZG}
+         {-# L #-}
+         d.Num_a11z =
+             d.Num_a11q;
+         fromInt_a1eN  ::  PrelBase.Int{-3g,W-} -> taZG
+         {-# L #-}
+         fromInt_a1eN =
+             PrelBase.fromInt{-8R,p-} _@_ taZG d.Num_a11z;
+         lit_a1eO  ::  taZG
+         {-# L #-}
+         lit_a1eO =
+             let {
+               ds_d1hM  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_d1hM =
+                   PrelBase.I#{-5b,w-}{i} 1
+             } in  fromInt_a1eN ds_d1hM;
+         fromInt_a1eP  ::  PrelBase.Int{-3g,W-} -> taZJ
+         {-# L #-}
+         fromInt_a1eP =
+             fromInt_a1eK;
+         lit_a1eQ  ::  taZJ
+         {-# L #-}
+         lit_a1eQ =
+             let {
+               ds_d1i1  ::  PrelBase.Int{-3g,W-}
+               {-# L #-}
+               ds_d1i1 =
+                   PrelBase.I#{-5b,w-}{i} 1
+             } in  fromInt_a1eP ds_d1i1;
+         >=_a1eR  ::  taZJ -> taZJ -> PrelBase.Bool{-34,W-}
+         {-# L #-}
+         >=_a1eR =
+             PrelBase.>={-8Z,p-} _@_ taZJ d.Ord_a11C;
+         d.Num_a11E  ::  {PrelBase.Num{-2c,p-} taZJ}
+         {-# L #-}
+         d.Num_a11E =
+             d.Num_a11u;
+         -_a1eS  ::  taZJ -> taZJ -> taZJ
+         {-# L #-}
+         -_a1eS =
+             PrelBase.-{-817,p-} _@_ taZJ d.Num_a11E;
+         d.Integral_a11h  ::  {PrelNum.Integral{-27,p-} taZJ}
+         {-# L #-}
+         d.Integral_a11h =
+             d.Integral_a11r;
+         d.Num_a11i  ::  {PrelBase.Num{-2c,p-} taZG}
+         {-# L #-}
+         d.Num_a11i =
+             d.Num_a11q;
+         ^^^^_aZD  ::  taZG -> taZJ -> taZG
+         {-# L #-}
+         ^^^^_aZD =
+             \ x_r3k  ::  taZG
+               {-# L #-}
+               x_r3k ds_d1iN  ::  taZJ
+                     {-# L #-}
+                     ds_d1iN ->
+                 let {
+                   fail_d1j0  ::  taZG
+                   {-# L #-}
+                   fail_d1j0 =
+                       IOBase.error{-87,w-}
+                           _@_ taZG _string_ "(^^^^){Prelude}: negative exponent" } in
+                 let {
+                   fail_d1qc  ::  taZG
+                   {-# L #-}
+                   fail_d1qc =
+                       case
+                           (\ ds_d1iU  ::  taZJ
+                              {-# L #-}
+                              ds_d1iU ->
+                                >=_a1eR ds_d1iU lit_a1eQ)
+                               ds_d1iN
+                       of {
+                         PrelBase.True{-5E,w-}{i} ->
+                             let {
+                               n_r3n  ::  taZJ
+                               {-# L #-}
+                               n_r3n =
+                                   (\ ds_d1jp  ::  taZJ
+                                      {-# L #-}
+                                      ds_d1jp ->
+                                        -_a1eS ds_d1jp lit_a1eQ)
+                                       ds_d1iN } in
+                             let {
+                               x_r3m  ::  taZG
+                               {-# L #-}
+                               x_r3m =
+                                   x_r3k } in
+                             _letrec_ {
+                               f_r3p  ::  _forall_
+                                          [ta10M ta10Q]
+                                          =>
+                                          {PrelNum.Integral{-27,p-} ta10M}
+                                          -> {PrelBase.Num{-2c,p-} ta10Q}
+                                          -> ta10Q
+                                          -> ta10M
+                                          -> ta10Q
+                                          -> ta10Q
+                               {-# L #-}
+                               f_r3p =
+                                   _/\_ ta10M ta10Q -> \ d.Integral_a10Z  ::  {PrelNum.Integral{-27,p-} ta10M}
+                                                         {-# L #-}
+                                                         d.Integral_a10Z d.Num_a111  ::  {PrelBase.Num{-2c,p-} ta10Q}
+                                                                         {-# L #-}
+                                                                         d.Num_a111 ->
+                                       _letrec_ {
+                                         d.Real_a119  ::  {PrelNum.Real{-2f,p-} ta10M}
+                                         {-# L #-}
+                                         d.Real_a119 =
+                                             PrelNum.scsel_IntegralPrelNumReal{-a1eV,p-}
+                                                 _@_ ta10M d.Integral_a10Z;
+                                         d.Num_a10V  ::  {PrelBase.Num{-2c,p-} ta10M}
+                                         {-# L #-}
+                                         d.Num_a10V =
+                                             PrelNum.scsel_RealPrelBaseNum{-a1gK,p-}
+                                                 _@_ ta10M d.Real_a119;
+                                         d.Eq_a10X  ::  {PrelBase.Eq{-23,p-} ta10M}
+                                         {-# L #-}
+                                         d.Eq_a10X =
+                                             PrelBase.scsel_NumPrelBaseEq{-a1lq,p-}
+                                                 _@_ ta10M d.Num_a10V;
+                                         fromInt_a1jV  ::  PrelBase.Int{-3g,W-} -> ta10M
+                                         {-# L #-}
+                                         fromInt_a1jV =
+                                             PrelBase.fromInt{-8R,p-} _@_ ta10M d.Num_a10V;
+                                         lit_a1jW  ::  ta10M
+                                         {-# L #-}
+                                         lit_a1jW =
+                                             let {
+                                               ds_d1lF  ::  PrelBase.Int{-3g,W-}
+                                               {-# L #-}
+                                               ds_d1lF =
+                                                   PrelBase.I#{-5b,w-}{i} 0
+                                             } in  fromInt_a1jV ds_d1lF;
+                                         ==_a1jX  ::  ta10M -> ta10M -> PrelBase.Bool{-34,W-}
+                                         {-# L #-}
+                                         ==_a1jX =
+                                             PrelBase.=={-8Y,p-} _@_ ta10M d.Eq_a10X;
+                                         even_a1jY  ::  ta10M -> PrelBase.Bool{-34,W-}
+                                         {-# L #-}
+                                         even_a1jY =
+                                             PrelNum.even{-ruE,p-} _@_ ta10M d.Integral_a10Z;
+                                         *_a1jZ  ::  ta10Q -> ta10Q -> ta10Q
+                                         {-# L #-}
+                                         *_a1jZ =
+                                             PrelBase.*{-ra3,p-} _@_ ta10Q d.Num_a111;
+                                         d.Integral_a113  ::  {PrelNum.Integral{-27,p-} ta10M}
+                                         {-# L #-}
+                                         d.Integral_a113 =
+                                             d.Integral_a10Z;
+                                         quot_a1k0  ::  ta10M -> ta10M -> ta10M
+                                         {-# L #-}
+                                         quot_a1k0 =
+                                             PrelNum.quot{-rh5,p-} _@_ ta10M d.Integral_a113;
+                                         fromInt_a1k1  ::  PrelBase.Int{-3g,W-} -> ta10M
+                                         {-# L #-}
+                                         fromInt_a1k1 =
+                                             fromInt_a1jV;
+                                         lit_a1k2  ::  ta10M
+                                         {-# L #-}
+                                         lit_a1k2 =
+                                             let {
+                                               ds_d1mr  ::  PrelBase.Int{-3g,W-}
+                                               {-# L #-}
+                                               ds_d1mr =
+                                                   PrelBase.I#{-5b,w-}{i} 2
+                                             } in  fromInt_a1k1 ds_d1mr;
+                                         d.Num_a116  ::  {PrelBase.Num{-2c,p-} ta10M}
+                                         {-# L #-}
+                                         d.Num_a116 =
+                                             d.Num_a10V;
+                                         -_a1k3  ::  ta10M -> ta10M -> ta10M
+                                         {-# L #-}
+                                         -_a1k3 =
+                                             PrelBase.-{-817,p-} _@_ ta10M d.Num_a116;
+                                         fromInt_a1k4  ::  PrelBase.Int{-3g,W-} -> ta10M
+                                         {-# L #-}
+                                         fromInt_a1k4 =
+                                             fromInt_a1jV;
+                                         lit_a1k5  ::  ta10M
+                                         {-# L #-}
+                                         lit_a1k5 =
+                                             let {
+                                               ds_d1mP  ::  PrelBase.Int{-3g,W-}
+                                               {-# L #-}
+                                               ds_d1mP =
+                                                   PrelBase.I#{-5b,w-}{i} 1
+                                             } in  fromInt_a1k4 ds_d1mP;
+                                         f_aZV  ::  ta10Q -> ta10M -> ta10Q -> ta10Q
+                                         {-# L #-}
+                                         f_aZV =
+                                             \ ds_d1n9  ::  ta10Q
+                                               {-# L #-}
+                                               ds_d1n9 ds_d1n6  ::  ta10M
+                                                       {-# L #-}
+                                                       ds_d1n6 y_r3r  ::  ta10Q
+                                                               {-# L #-}
+                                                               y_r3r ->
+                                                 let { fail_d1pl  ::  ta10Q
+                                                       {-# L #-}
+                                                       fail_d1pl =
+                                                   let {
+                                                     y_r3v  ::  ta10Q
+                                                     {-# L #-}
+                                                     y_r3v =
+                                                         y_r3r } in
+                                                   let {
+                                                     n_r3u  ::  ta10M
+                                                     {-# L #-}
+                                                     n_r3u =
+                                                         ds_d1n6 } in
+                                                   let {
+                                                     x_r3t  ::  ta10Q
+                                                     {-# L #-}
+                                                     x_r3t =
+                                                         ds_d1n9 } in
+                                                   _letrec_ {
+                                                     *_a1np  ::  ta10Q -> ta10Q -> ta10Q
+                                                     {-# L #-}
+                                                     *_a1np =
+                                                         *_a1jZ;
+                                                     g_a10m  ::  ta10Q -> ta10M -> ta10Q
+                                                     {-# L #-}
+                                                     g_a10m =
+                                                         \ x_r3z  ::  ta10Q
+                                                           {-# L #-}
+                                                           x_r3z n_r3A  ::  ta10M
+                                                                 {-# L #-}
+                                                                 n_r3A ->
+                                                             case even_a1jY n_r3A of {
+                                                               PrelBase.True{-5E,w-}{i} ->
+                                                                   let {
+                                                                     ds_d1nU  ::  ta10M
+                                                                     {-# L #-}
+                                                                     ds_d1nU =
+                                                                         quot_a1k0 n_r3A lit_a1k2
+                                                                   } in 
+                                                                     (let {
+                                                                        ds_d1ob  ::  ta10Q
+                                                                        {-# L #-}
+                                                                        ds_d1ob =
+                                                                            *_a1jZ x_r3z x_r3z
+                                                                      } in  g_a10m ds_d1ob)
+                                                                         ds_d1nU;
+                                                               PrelBase.False{-58,w-}{i} ->
+                                                                   let {
+                                                                     ds_d1ow  ::  ta10Q
+                                                                     {-# L #-}
+                                                                     ds_d1ow =
+                                                                         *_a1np x_r3z y_r3v
+                                                                   } in 
+                                                                     (let {
+                                                                        ds_d1oQ  ::  ta10M
+                                                                        {-# L #-}
+                                                                        ds_d1oQ =
+                                                                            -_a1k3 n_r3A lit_a1k5
+                                                                      } in  f_aZV x_r3z ds_d1oQ)
+                                                                         ds_d1ow;
+                                                             };
+                                                     g_r3x  ::  ta10Q -> ta10M -> ta10Q
+                                                     {-# L #-}
+                                                     g_r3x =
+                                                         g_a10m;
+                                                   } in  g_r3x x_r3t n_r3u
+                                                 } in
+                                                 case ==_a1jX lit_a1jW ds_d1n6 of {
+                                                   PrelBase.True{-5E,w-}{i} -> y_r3r;
+                                                   PrelBase.False{-58,w-}{i} -> fail_d1pl;
+                                                 };
+                                       } in  f_aZV;
+                             } in 
+                               let {
+                                 f_a1pD  ::  taZG -> taZJ -> taZG -> taZG
+                                 {-# L #-}
+                                 f_a1pD =
+                                     f_r3p _@_ taZJ _@_ taZG d.Integral_a11h d.Num_a11i
+                               } in  f_a1pD x_r3m n_r3n x_r3m;
+                         PrelBase.False{-58,w-}{i} -> fail_d1j0;
+                       }
+                 } in 
+                   case ==_a1eM lit_a1eL ds_d1iN of {
+                     PrelBase.True{-5E,w-}{i} -> lit_a1eO;
+                     PrelBase.False{-58,w-}{i} -> fail_d1qc;
+                   };
+       } in  ^^^^_aZD
+^^^^_a1eG  ::  PrelBase.Int{-3g,W-}
+              -> PrelBase.Int{-3g,W-}
+              -> PrelBase.Int{-3g,W-}
+{-# L #-}
+^^^^_a1eG =
+    ^^^^{-r3g,x-}
+       _@_ PrelBase.Int{-3g,W-}
+       _@_ PrelBase.Int{-3g,W-}
+       d.Num_a127
+       d.Integral_a128
+main_a11K  ::  IOBase.IO{-3e,p-} PrelBase.(){-40,W-}
+{-# L #-}
+main_a11K =
+    let {
+      ds_d1qH  ::  PrelBase.Int{-3g,W-}
+      {-# L #-}
+      ds_d1qH =
+         ^^^^_a1eG lit_a1eI lit_a1eJ
+    } in  print_a1eH ds_d1qH
+main{-814,x-}  ::  IOBase.IO{-3e,p-} PrelBase.(){-40,W-}
+{-# L #-}
+main{-814,x-} =
+    main_a11K
+d.Show_a12a  ::  {PrelBase.Show{-2i,p-} PrelBase.Int{-3g,W-}}
+{-# L #-}
+d.Show_a12a =
+    PrelBase.$d3{-raC,p-}
+print_a1eH  ::  PrelBase.Int{-3g,W-}
+               -> IOBase.IO{-3e,p-} PrelBase.(){-40,W-}
+{-# L #-}
+print_a1eH =
+    PrelIO.print{-rLi,p-} _@_ PrelBase.Int{-3g,W-} d.Show_a12a
+d.Num_a127  ::  {PrelBase.Num{-2c,p-} PrelBase.Int{-3g,W-}}
+{-# L #-}
+d.Num_a127 =
+    PrelBase.$d4{-raN,p-}
+d.Integral_a128  ::  {PrelNum.Integral{-27,p-} PrelBase.Int{-3g,W-}}
+{-# L #-}
+d.Integral_a128 =
+    PrelNum.$d36{-roC,p-}
+lit_a1eI  ::  PrelBase.Int{-3g,W-}
+{-# L #-}
+lit_a1eI =
+    PrelBase.I#{-5b,w-}{i} 4
+lit_a1eJ  ::  PrelBase.Int{-3g,W-}
+{-# L #-}
+lit_a1eJ =
+    PrelBase.I#{-5b,w-}{i} 6
+end Rec }
index ca6251d..41a6253 100644 (file)
@@ -3,15 +3,20 @@ include $(TOP)/mk/boilerplate.mk
 
 HS_SRCS = $(wildcard *.hs)
 BINS = $(patsubst %.o,%,$(HS_OBJS))
+RUNTESTS = $(patsubst %,%.run,$(BINS))
 
 SRC_RUNTEST_OPTS += -o1 $*.stdout -o2 $*.stderr -x 0
-HC_OPTS += -noC -dcore-lint
+HC_OPTS += -dcore-lint
 
-all :: $(BINS)
+all :: $(BINS) $(RUNTESTS)
 
-%.o : %
+%.run : %
+       $(RUNTEST) $< $(RUNTEST_OPTS)
+
+% : %.o
        $(HC) $(HC_OPTS) $< -o $@
 
+dsrun005_RUNTEST_OPTS = -x 1
 
 include $(TOP)/mk/target.mk
 
diff --git a/ghc/tests/deSugar/should_run/dsrun001.stdout b/ghc/tests/deSugar/should_run/dsrun001.stdout
new file mode 100644 (file)
index 0000000..130e6b0
--- /dev/null
@@ -0,0 +1 @@
+[(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
diff --git a/ghc/tests/deSugar/should_run/dsrun002.stdout b/ghc/tests/deSugar/should_run/dsrun002.stdout
new file mode 100644 (file)
index 0000000..660eace
--- /dev/null
@@ -0,0 +1 @@
+aabcb
diff --git a/ghc/tests/deSugar/should_run/dsrun003.stdout b/ghc/tests/deSugar/should_run/dsrun003.stdout
new file mode 100644 (file)
index 0000000..0ca9514
--- /dev/null
@@ -0,0 +1 @@
+True
diff --git a/ghc/tests/deSugar/should_run/dsrun004.stdout b/ghc/tests/deSugar/should_run/dsrun004.stdout
new file mode 100644 (file)
index 0000000..49ae94b
--- /dev/null
@@ -0,0 +1,2 @@
+2
+5
diff --git a/ghc/tests/deSugar/should_run/dsrun005.stderr b/ghc/tests/deSugar/should_run/dsrun005.stderr
new file mode 100644 (file)
index 0000000..ce7bbe2
--- /dev/null
@@ -0,0 +1,2 @@
+
+Fail: dsrun005.hs:42: Non-exhaustive patterns in function `f'
diff --git a/ghc/tests/deSugar/should_run/dsrun006.stdout b/ghc/tests/deSugar/should_run/dsrun006.stdout
new file mode 100644 (file)
index 0000000..00750ed
--- /dev/null
@@ -0,0 +1 @@
+3
index a6cfba3..8a8af1e 100644 (file)
@@ -1,15 +1,7 @@
-TOP = ../../..
+TOP = ../..
 include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/should_compile.mk
 
-HS_SRCS = $(wildcard *.hs)
-
-SRC_RUNTEST_OPTS += -o1 $*.stdout -o2 $*.stderr -x 0
-HC_OPTS += -noC -dcore-lint -hi -ddump-tc 
-
-%.o : %.hs
-       $(RUNTEST) $(HC) $(RUNTEST_OPTS) $(HC_OPTS) -c $< -o $@ -osuf $(subst .,,$(suffix $@)) 
-
-all :: $(HS_OBJS)
+HC_OPTS += -noC -dcore-lint -hi -ddump-tc
 
 include $(TOP)/mk/target.mk
-
index da1391d..c06332e 100644 (file)
@@ -1,5 +1,7 @@
 --!!! deriving Ix on d. type with nullary constructors
 module ShouldSucceed where
 
+import Ix
+
 data AD = A | B | C | D deriving (Show, Ord, Eq, Ix)
 
diff --git a/ghc/tests/deriving/should_compile/drv008.stderr b/ghc/tests/deriving/should_compile/drv008.stderr
new file mode 100644 (file)
index 0000000..6d714d8
--- /dev/null
@@ -0,0 +1,193 @@
+
+
+================================================================================
+Typechecked:
+A{-r4,x-}{i} = A{-r4,x-}{i} {}
+B{-r3,x-}{i} = B{-r3,x-}{i} {}
+C{-r6,x-}{i} = C{-r6,x-}{i} {}
+D{-r8,x-}{i} = D{-r8,x-}{i} {}
+AbsBinds [] [] [([], con2tag_AD#_rUn, con2tag_AD#_aXE)]
+    con2tag_AD#_aXE A{-r4,x-}{i} = 0#
+    con2tag_AD#_aXE B{-r3,x-}{i} = 1#
+    con2tag_AD#_aXE C{-r6,x-}{i} = 2#
+    con2tag_AD#_aXE D{-r8,x-}{i} = 3#
+AbsBinds [] [] [([], maxtag_AD#_rUm, maxtag_AD#_aXJ)]
+    maxtag_AD#_aXJ = PrelBase.I#{-5b,w-}{i} 3#
+AbsBinds [] [] [([], tag2con_AD#_rUl, tag2con_AD#_aXM)]
+    tag2con_AD#_aXM (PrelBase.I#{-5b,w-}{i} 0#) = A{-r4,x-}{i}
+    tag2con_AD#_aXM (PrelBase.I#{-5b,w-}{i} 1#) = B{-r3,x-}{i}
+    tag2con_AD#_aXM (PrelBase.I#{-5b,w-}{i} 2#) = C{-r6,x-}{i}
+    tag2con_AD#_aXM (PrelBase.I#{-5b,w-}{i} 3#) = D{-r8,x-}{i}
+    tag2con_AD#_aXM _
+                   = IOBase.error{-87,w-} AD{-r4h,x-} "Urk! in TcGenDeriv"
+AbsBinds [] [] [([], $d1{-r12z,x-}, d.Eq_aXY)]
+    ==_a12G = ==_a12H
+    AbsBinds [] [] [([], ==_a12H, ==_aY2)]
+       ==_aY2 a_rUC b_rUD
+              = case con2tag_AD#_rUn a_rUC of
+                  a#_rUF
+                  -> case con2tag_AD#_rUn b_rUD of
+                       b#_rUH
+                       -> if a#_rUF GHC.==#{-79,w-}{I} b#_rUH then
+                              PrelBase.True{-5E,w-}{i}
+                          else
+                              PrelBase.False{-58,w-}{i}
+    AbsBinds [] [] [([], /=_a12I, /=_aYh)]
+       /=_aYh a_rUL b_rUM = PrelBase.not{-rhL,p-} ==_a12G a_rUL b_rUM
+    d.Eq_aXY = ({-dict-} [] [==_a12H, /=_a12I])
+AbsBinds [] [] [([], $d2{-r12A,x-}, d.Eval_aYt)]
+    d.Eval_aYt = ({-dict-} [] [])
+AbsBinds [] [] [([], $d3{-r12B,x-}, d.Ord_aYy)]
+    d.Eq_a10h = $d1{-r12z,x-}
+    compare_a12J = compare_a12P
+    compare_a12K = compare_a12P
+    compare_a12L = compare_a12P
+    compare_a12M = compare_a12P
+    compare_a12N = compare_a12P
+    compare_a12O = compare_a12P
+    AbsBinds [] [] [([], compare_a12P, compare_aYC)]
+       compare_aYC a_rVE b_rVF
+                   = case con2tag_AD#_rUn a_rVE of
+                       a#_rVK
+                       -> case con2tag_AD#_rUn b_rVF of
+                            b#_rVM
+                            -> if a#_rVK GHC.==#{-79,w-}{I} b#_rVM then
+                                   PrelBase.EQ{-raK,p-}{i}
+                               else
+                                   if a#_rVK GHC.<#{-7b,w-}{I} b#_rVM then
+                                       PrelBase.LT{-raL,p-}{i}
+                                   else
+                                       PrelBase.GT{-raM,p-}{i}
+                   where
+                       {- nonrec -}
+                       AbsBinds [taYV, taYX] [] [([taYV, taYX], cmp_eq_rVH, cmp_eq_aYG)]
+                           cmp_eq_aYG _ _ = PrelBase.EQ{-raK,p-}{i}
+                       {- nonrec -}
+                       {- nonrec -}
+    AbsBinds [] [] [([], <_a12Q, <_aZa)]
+       <_aZa a_rUS b_rUT
+             = case compare_a12J a_rUS b_rUT of
+                 PrelBase.LT{-raL,p-}{i} -> PrelBase.True{-5E,w-}{i}
+                 PrelBase.EQ{-raK,p-}{i} -> PrelBase.False{-58,w-}{i}
+                 PrelBase.GT{-raM,p-}{i} -> PrelBase.False{-58,w-}{i}
+    AbsBinds [] [] [([], <=_a12R, <=_aZm)]
+       <=_aZm a_rV0 b_rV1
+              = case compare_a12K a_rV0 b_rV1 of
+                  PrelBase.LT{-raL,p-}{i} -> PrelBase.True{-5E,w-}{i}
+                  PrelBase.EQ{-raK,p-}{i} -> PrelBase.True{-5E,w-}{i}
+                  PrelBase.GT{-raM,p-}{i} -> PrelBase.False{-58,w-}{i}
+    AbsBinds [] [] [([], >=_a12S, >=_aZy)]
+       >=_aZy a_rV8 b_rV9
+              = case compare_a12L a_rV8 b_rV9 of
+                  PrelBase.LT{-raL,p-}{i} -> PrelBase.False{-58,w-}{i}
+                  PrelBase.EQ{-raK,p-}{i} -> PrelBase.True{-5E,w-}{i}
+                  PrelBase.GT{-raM,p-}{i} -> PrelBase.True{-5E,w-}{i}
+    AbsBinds [] [] [([], >_a12T, >_aZK)]
+       >_aZK a_rVg b_rVh
+             = case compare_a12M a_rVg b_rVh of
+                 PrelBase.LT{-raL,p-}{i} -> PrelBase.False{-58,w-}{i}
+                 PrelBase.EQ{-raK,p-}{i} -> PrelBase.False{-58,w-}{i}
+                 PrelBase.GT{-raM,p-}{i} -> PrelBase.True{-5E,w-}{i}
+    AbsBinds [] [] [([], max_a12U, max_aZW)]
+       max_aZW a_rVo b_rVp
+               = case compare_a12N a_rVo b_rVp of
+                   PrelBase.LT{-raL,p-}{i} -> b_rVp
+                   PrelBase.EQ{-raK,p-}{i} -> a_rVo
+                   PrelBase.GT{-raM,p-}{i} -> a_rVo
+    AbsBinds [] [] [([], min_a12V, min_a108)]
+       min_a108 a_rVw b_rVx
+                = case compare_a12O a_rVw b_rVx of
+                    PrelBase.LT{-raL,p-}{i} -> a_rVw
+                    PrelBase.EQ{-raK,p-}{i} -> b_rVx
+                    PrelBase.GT{-raM,p-}{i} -> b_rVx
+    d.Ord_aYy =
+       ({-dict-}
+        [d.Eq_a10h]
+        [compare_a12P, <_a12Q, <=_a12R, >=_a12S, >_a12T, max_a12U, min_a12V])
+AbsBinds [] [] [([], $d4{-r12C,x-}, d.Show_a10o)]
+    showsPrec_a12W = showsPrec_a12X
+    AbsBinds [] [] [([], showsPrec_a12X, showsPrec_a10s)]
+       showsPrec_a10s a_rVR A{-r4,x-}{i}
+                      = PrelBase.showString{-ri0,p-} "A"
+       showsPrec_a10s a_rVT B{-r3,x-}{i}
+                      = PrelBase.showString{-ri0,p-} "B"
+       showsPrec_a10s a_rVV C{-r6,x-}{i}
+                      = PrelBase.showString{-ri0,p-} "C"
+       showsPrec_a10s a_rVX D{-r8,x-}{i}
+                      = PrelBase.showString{-ri0,p-} "D"
+    AbsBinds [] [] [([], showList_a12Y, showList_a10B)]
+       showList_a10B = PrelBase.showList__{-rhV,p-}
+                           AD{-r4h,x-} showsPrec_a12W PrelBase.I#{-5b,w-}{i} 0#
+    d.Show_a10o = ({-dict-} [] [showsPrec_a12X, showList_a12Y])
+AbsBinds [] [] [([], $d5{-r12D,x-}, d.Ix_a10M)]
+    d.Show_a12j = $d4{-r12C,x-}
+    d.Ord_a12k = $d3{-r12B,x-}
+    inRange_a12Z = inRange_a132
+    AbsBinds [] [] [([], range_a130, range_a10Q)]
+       range_a10Q (a_rW5, b_rW6)
+                  = case con2tag_AD#_rUn a_rW5 of
+                      a#_rW8
+                      -> case con2tag_AD#_rUn b_rW6 of
+                           b#_rWa
+                           -> map_a12E [PrelBase.Int{-3g,W-}, AD{-r4h,x-}] tag2con_AD#_rUl
+                                                                           enumFromTo_a12F PrelBase.I#{-5b,w-}{i} a#_rW8
+                                                                                           PrelBase.I#{-5b,w-}{i} b#_rWa
+    AbsBinds [] [] [([], index_a131, index_a11q)]
+       index_a11q (c_rWe@(a_rWf, b_rWg)) d_rWh
+                  = if inRange_a12Z c_rWe d_rWh then
+                        case con2tag_AD#_rUn a_rWf of
+                          a#_rWj
+                          -> case con2tag_AD#_rUn d_rWh of
+                               d#_rWl
+                               -> case d#_rWl GHC.-#{-7E,w-}{I} a#_rWj of
+                                    c_rWn -> PrelBase.I#{-5b,w-}{i} c_rWn
+                    else
+                        IOBase.error{-87,w-}
+                            PrelBase.Int{-3g,W-} "Ix.AD.index: out of range\n"
+    AbsBinds [] [] [([], inRange_a132, inRange_a11X)]
+       inRange_a11X (a_rWr, b_rWs) c_rWt
+                    = case con2tag_AD#_rUn a_rWr of
+                        a#_rWv
+                        -> case con2tag_AD#_rUn b_rWs of
+                             b#_rWx
+                             -> case con2tag_AD#_rUn c_rWt of
+                                  c#_rWz
+                                  -> if c#_rWz GHC.>=#{-78,w-}{I} a#_rWv then
+                                         c#_rWz GHC.<=#{-7c,w-}{I} b#_rWx
+                                     else
+                                         PrelBase.False{-58,w-}{i}
+    d.Ix_a10M =
+       ({-dict-}
+        [d.Show_a12j, d.Ord_a12k]
+        [range_a130, index_a131, inRange_a132])
+d.Functor_a12v = PrelBase.$d26{-rbT,p-}
+map_a12E = PrelBase.map{-rgT,p-} PrelBase.[]{-3j,W-} d.Functor_a12v
+d.Enum_a12y = PrelBase.$d6{-rct,p-}
+enumFromTo_a12F =
+    PrelBase.enumFromTo{-8W,p-} PrelBase.Int{-3g,W-} d.Enum_a12y
+
+NOTE: Simplifier still going after 4 iterations; bailing out.
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+Ix 1 :: $d4 1 $d5 1 $d6 1 $d7 1 $d8 1 $d9 1 Ix 1;
+PrelBase 1 :: $d1 1 $d11 1 $d12 1 $d14 1 $d15 1 $d16 1 $d2 1 $d22 1 $d24 1 $d25 1 $d26 1 $d27 1 $d28 1 $d3 1 $d31 1 $d32 1 $d33 1 $d34 1 $d35 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d46 1 $d47 1 $d50 1 $d51 1 $d52 1 $d55 1 $d56 1 $d6 1 $d7 1 $d8 1 $d9 1 $m- 1 $m/= 1 $m< 1 $m<= 1 $m> 1 $m>= 1 $m>> 1 $mcompare 1 $menumFromThenTo 1 $menumFromTo 1 $mfromInt 1 $mmax 1 $mmin 1 $mshowList 1 && 1 . 1 not 1 showList__ 1 showParen 1 showSpace 1 showString 1 Enum 1 Eq 1 Eval 1 Functor 1 Monad 1 MonadZero 1 Num 1 Ord 1 Ordering 1 Ordering 1 Show 1 ShowS 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d17 1 $d18 1 $d28 1 $d29 1 $d30 1 $d33 1 $d34 1 $d35 1 $d8 1;
+PrelTup 1 :: $d13 1 $d4 1 $d49 1 $d9 1;
+_exports_
+ShouldSucceed AD(A B C D);
+_instances_
+instance {PrelBase.Eq AD} = $d1;
+instance {PrelBase.Eval AD} = $d2;
+instance {PrelBase.Ord AD} = $d3;
+instance {PrelBase.Show AD} = $d4;
+instance {Ix.Ix AD} = $d5;
+_declarations_
+1 $d1 _:_ {PrelBase.Eq AD} ;;
+1 $d2 _:_ {PrelBase.Eval AD} ;;
+1 $d3 _:_ {PrelBase.Ord AD} ;;
+1 $d4 _:_ {PrelBase.Show AD} ;;
+1 $d5 _:_ {Ix.Ix AD} ;;
+1 data AD = A |  B |  C |  D ;
index e0ff399..4d19278 100644 (file)
@@ -1,4 +1,6 @@
 --!!! deriving Ix on d. type with one constructor
 module ShouldSucceed where
 
+import Ix
+
 data Pair a b = Pair a b deriving (Show, Ord, Eq, Ix)
diff --git a/ghc/tests/deriving/should_compile/drv009.stderr b/ghc/tests/deriving/should_compile/drv009.stderr
new file mode 100644 (file)
index 0000000..da8142d
--- /dev/null
@@ -0,0 +1,248 @@
+
+
+================================================================================
+Typechecked:
+Pair{-r4e,x-}{i} =
+    _/\_ a_tr4b b_tr4c -> \ tpl_B1 tpl_B2 ->
+       Pair{-r4e,x-}{i} {_@_ a_tr4b _@_ b_tr4c tpl_B1 tpl_B2}
+AbsBinds
+[taXK, taXN]
+[]
+[([taXK, taXN], con2tag_Pair#_rUo, con2tag_Pair#_aXD)]
+    con2tag_Pair#_aXD (Pair{-r4e,x-}{i} _ _) = 0#
+AbsBinds [] [] [([], maxtag_Pair#_rUn, maxtag_Pair#_aXR)]
+    maxtag_Pair#_aXR = PrelBase.I#{-5b,w-}{i} 0#
+AbsBinds
+[taY0, taY2]
+[]
+[([taY0, taY2], tag2con_Pair#_rUm, tag2con_Pair#_aXU)]
+    tag2con_Pair#_aXU (PrelBase.I#{-5b,w-}{i} 0#)
+                     = Pair{-r4e,x-}{i} [taY0, taY2]
+    tag2con_Pair#_aXU _
+                     = IOBase.error{-87,w-}
+                           (taY0 -> taY2 -> Pair{-r4d,x-} taY0 taY2) "Urk! in TcGenDeriv"
+AbsBinds
+[taYr, taYs]
+[d.Eq_aYS, d.Eq_aYT]
+[([taYr, taYs], $d1{-r17l,x-}, d.Eq_aYe)]
+    d.Eq_aYX = d.Eq_aYS
+    ==_a17y = PrelBase.=={-8Y,p-} taYr d.Eq_aYX
+    d.Eq_aYZ = d.Eq_aYT
+    ==_a17z = PrelBase.=={-8Y,p-} taYs d.Eq_aYZ
+    ==_a17A = ==_a17B
+    AbsBinds [] [] [([], ==_a17B, ==_aYi)]
+       ==_aYi (Pair{-r4e,x-}{i} a1_rUx a2_rUy)
+              (Pair{-r4e,x-}{i} b1_rUz b2_rUA)
+              = (a1_rUx ==_a17y b1_rUz)
+                PrelBase.&&{-rgJ,p-} (a2_rUy ==_a17z b2_rUA)
+    AbsBinds [] [] [([], /=_a17C, /=_aYL)]
+       /=_aYL a_rUE b_rUF = PrelBase.not{-rhH,p-} ==_a17A a_rUE b_rUF
+    d.Eq_aYe = ({-dict-} [] [==_a17B, /=_a17C])
+AbsBinds
+[ta17g, ta17h]
+[]
+[([ta17g, ta17h], $d2{-r17m,x-}, d.Eval_aZ8)]
+    d.Eval_aZ8 = ({-dict-} [] [])
+AbsBinds
+[taZm, taZn]
+[d.Ord_a11v, d.Ord_a11w, d.Eq_a11x]
+[([taZm, taZn], $d3{-r17n,x-}, d.Ord_aZf)]
+    d.Eq_a11u = d.Eq_a11x
+    d.Ord_a10d = d.Ord_a11v
+    d.Ord_a10e = d.Ord_a11w
+    compare_a17D = compare_a17J
+    compare_a17E = compare_a17J
+    compare_a17F = compare_a17J
+    compare_a17G = compare_a17J
+    compare_a17H = compare_a17J
+    compare_a17I = compare_a17J
+    AbsBinds [] [] [([], compare_a17J, compare_aZj)]
+       compare_aZj a_rVx b_rVy
+                   = case cmp_eq_a17Q a_rVx b_rVy of
+                       PrelBase.LT{-raH,p-}{i} -> PrelBase.LT{-raH,p-}{i}
+                       PrelBase.EQ{-raG,p-}{i} -> PrelBase.EQ{-raG,p-}{i}
+                       PrelBase.GT{-raI,p-}{i} -> PrelBase.GT{-raI,p-}{i}
+                   where
+                       {- nonrec -}
+                       AbsBinds
+                       [taZR, taZV]
+                       [d.Ord_a103, d.Ord_a105]
+                       [([taZR, taZV], cmp_eq_rVA, cmp_eq_aZr)]
+                           compare_a17R = PrelBase.compare{-rgY,p-} taZR d.Ord_a103
+                           compare_a17S = PrelBase.compare{-rgY,p-} taZV d.Ord_a105
+                           cmp_eq_aZr (Pair{-r4e,x-}{i} a1_rVC a2_rVD)
+                                      (Pair{-r4e,x-}{i} b1_rVE b2_rVF)
+                                      = case compare_a17R a1_rVC b1_rVE of
+                                          PrelBase.LT{-raH,p-}{i} -> PrelBase.LT{-raH,p-}{i}
+                                          PrelBase.EQ{-raG,p-}{i}
+                                          -> case compare_a17S a2_rVD b2_rVF of
+                                               PrelBase.LT{-raH,p-}{i} -> PrelBase.LT{-raH,p-}{i}
+                                               PrelBase.EQ{-raG,p-}{i} -> PrelBase.EQ{-raG,p-}{i}
+                                               PrelBase.GT{-raI,p-}{i} -> PrelBase.GT{-raI,p-}{i}
+                                          PrelBase.GT{-raI,p-}{i} -> PrelBase.GT{-raI,p-}{i}
+                           cmp_eq_aZr _ _
+                                      = IOBase.error{-87,w-}
+                                            PrelBase.Ordering{-3o,p-} "Urk! in TcGenDeriv"
+                       {- nonrec -}
+                       cmp_eq_a17Q = cmp_eq_rVA [taZm, taZn] [d.Ord_a10d, d.Ord_a10e]
+                       {- nonrec -}
+    AbsBinds [] [] [([], <_a17K, <_a10j)]
+       <_a10j a_rUL b_rUM
+              = case compare_a17D a_rUL b_rUM of
+                  PrelBase.LT{-raH,p-}{i} -> PrelBase.True{-5E,w-}{i}
+                  PrelBase.EQ{-raG,p-}{i} -> PrelBase.False{-58,w-}{i}
+                  PrelBase.GT{-raI,p-}{i} -> PrelBase.False{-58,w-}{i}
+    AbsBinds [] [] [([], <=_a17L, <=_a10w)]
+       <=_a10w a_rUT b_rUU
+               = case compare_a17E a_rUT b_rUU of
+                   PrelBase.LT{-raH,p-}{i} -> PrelBase.True{-5E,w-}{i}
+                   PrelBase.EQ{-raG,p-}{i} -> PrelBase.True{-5E,w-}{i}
+                   PrelBase.GT{-raI,p-}{i} -> PrelBase.False{-58,w-}{i}
+    AbsBinds [] [] [([], >=_a17M, >=_a10J)]
+       >=_a10J a_rV1 b_rV2
+               = case compare_a17F a_rV1 b_rV2 of
+                   PrelBase.LT{-raH,p-}{i} -> PrelBase.False{-58,w-}{i}
+                   PrelBase.EQ{-raG,p-}{i} -> PrelBase.True{-5E,w-}{i}
+                   PrelBase.GT{-raI,p-}{i} -> PrelBase.True{-5E,w-}{i}
+    AbsBinds [] [] [([], >_a17N, >_a10W)]
+       >_a10W a_rV9 b_rVa
+              = case compare_a17G a_rV9 b_rVa of
+                  PrelBase.LT{-raH,p-}{i} -> PrelBase.False{-58,w-}{i}
+                  PrelBase.EQ{-raG,p-}{i} -> PrelBase.False{-58,w-}{i}
+                  PrelBase.GT{-raI,p-}{i} -> PrelBase.True{-5E,w-}{i}
+    AbsBinds [] [] [([], max_a17O, max_a119)]
+       max_a119 a_rVh b_rVi
+                = case compare_a17H a_rVh b_rVi of
+                    PrelBase.LT{-raH,p-}{i} -> b_rVi
+                    PrelBase.EQ{-raG,p-}{i} -> a_rVh
+                    PrelBase.GT{-raI,p-}{i} -> a_rVh
+    AbsBinds [] [] [([], min_a17P, min_a11m)]
+       min_a11m a_rVp b_rVq
+                = case compare_a17I a_rVp b_rVq of
+                    PrelBase.LT{-raH,p-}{i} -> a_rVp
+                    PrelBase.EQ{-raG,p-}{i} -> b_rVq
+                    PrelBase.GT{-raI,p-}{i} -> b_rVq
+    d.Ord_aZf =
+       ({-dict-}
+        [d.Eq_a11u]
+        [compare_a17J, <_a17K, <=_a17L, >=_a17M, >_a17N, max_a17O, min_a17P])
+AbsBinds
+[ta121, ta122]
+[d.Show_a12w, d.Show_a12x]
+[([ta121, ta122], $d4{-r17o,x-}, d.Show_a11N)]
+    d.Show_a12D = d.Show_a12w
+    showsPrec_a17T = PrelBase.showsPrec{-rh4,p-} ta121 d.Show_a12D
+    d.Show_a12F = d.Show_a12x
+    showsPrec_a17U = PrelBase.showsPrec{-rh4,p-} ta122 d.Show_a12F
+    showsPrec_a17V = showsPrec_a17W
+    AbsBinds [] [] [([], showsPrec_a17W, showsPrec_a11R)]
+       showsPrec_a11R a_rVU (Pair{-r4e,x-}{i} b1_rVV b2_rVW)
+                      = PrelBase.showParen{-rhT,p-} a_rVU >=_a17q lit_a17r
+                                                    PrelBase..{-rgK,p-}
+                                                        [PrelBase.String{-rh7,p-}, PrelBase.String{-rh7,p-}, PrelBase.String{-rh7,p-}] PrelBase.showString{-rhW,p-} "Pair "
+                                                                                                                                       PrelBase..{-rgK,p-}
+                                                                                                                                           [PrelBase.String{-rh7,p-}, PrelBase.String{-rh7,p-}, PrelBase.String{-rh7,p-}] showsPrec_a17T PrelBase.I#{-5b,w-}{i} 10#
+                                                                                                                                                                                                                                         b1_rVV
+                                                                                                                                                                                                                          PrelBase..{-rgK,p-}
+                                                                                                                                                                                                                              [PrelBase.String{-rh7,p-}, PrelBase.String{-rh7,p-}, PrelBase.String{-rh7,p-}] PrelBase.showSpace{-rhV,p-}
+                                                                                                                                                                                                                                                                                                             showsPrec_a17U PrelBase.I#{-5b,w-}{i} 10#
+                                                                                                                                                                                                                                                                                                                            b2_rVW
+    AbsBinds [] [] [([], showList_a17X, showList_a12r)]
+       showList_a12r = PrelBase.showList__{-rhR,p-}
+                           (Pair{-r4d,x-} ta121 ta122) showsPrec_a17V PrelBase.I#{-5b,w-}{i} 0#
+    d.Show_a11N = ({-dict-} [] [showsPrec_a17W, showList_a17X])
+AbsBinds
+[ta13d, ta13e]
+[d.Ix_a16l, d.Ix_a16m, d.Show_a16n, d.Ord_a16o]
+[([ta13d, ta13e], $d5{-r17p,x-}, d.Ix_a12O)]
+    d.Show_a16k = d.Show_a16n
+    d.Ord_a16p = d.Ord_a16o
+    d.Ix_a16s = d.Ix_a16l
+    range_a17Y = Ix.range{-rbr,p-} ta13d d.Ix_a16s
+    d.Ix_a16u = d.Ix_a16m
+    range_a17Z = Ix.range{-rbr,p-} ta13e d.Ix_a16u
+    d.Ix_a16C = d.Ix_a16m
+    index_a180 = Ix.index{-rbs,p-} ta13e d.Ix_a16C
+    d.Ix_a15t = d.Ix_a16m
+    d.Ix_a16G = d.Ix_a16l
+    index_a181 = Ix.index{-rbs,p-} ta13d d.Ix_a16G
+    d.Ix_a15u = d.Ix_a16l
+    d.Ix_a16I = d.Ix_a16l
+    inRange_a182 = Ix.inRange{-rbt,p-} ta13d d.Ix_a16I
+    d.Ix_a16K = d.Ix_a16m
+    inRange_a183 = Ix.inRange{-rbt,p-} ta13e d.Ix_a16K
+    AbsBinds [] [] [([], range_a184, range_a12S)]
+       range_a12S ((Pair{-r4e,x-}{i} a1_rW4 a2_rW5), (Pair{-r4e,x-}{i} b1_rW6 b2_rW7))
+                  = [Pair{-r4e,x-}{i} [ta13d, ta13e] c1_rW9 c2_rWb |
+                         c1_rW9 <- range_a17Y (a1_rW4,
+                                               b1_rW6), c2_rWb <- range_a17Z (a2_rW5, b2_rW7)]
+    AbsBinds [] [] [([], index_a185, index_a13T)]
+       +_a187 = +_a17u
+       *_a188 = *_a17v
+       +_a189 = +_a17u
+       index_a13T ((Pair{-r4e,x-}{i} a1_rWf a2_rWg), (Pair{-r4e,x-}{i} b1_rWh b2_rWi))
+                  (Pair{-r4e,x-}{i} c1_rWj c2_rWk)
+                  = (index_a180 (a2_rWg, b2_rWi) c2_rWk)
+                    +_a17u ((rangeSize_a18a (a2_rWg, b2_rWi))
+                            *_a17v ((index_a181 (a1_rWf, b1_rWh) c1_rWj)
+                                    +_a187 ((rangeSize_a18b (a1_rWf, b1_rWh)) *_a188 lit_a17w)))
+                  where
+                      {- nonrec -}
+                      AbsBinds
+                      [ta14I]
+                      [d.Ix_a14P]
+                      [([ta14I], rangeSize_rWm, rangeSize_a14n)]
+                          index_a18c = Ix.index{-rbs,p-} ta14I d.Ix_a14P
+                          rangeSize_a14n (a_rWo, b_rWp)
+                                         = (index_a18c (a_rWo, b_rWp) b_rWp) +_a189 lit_a17x
+                      {- nonrec -}
+                      rangeSize_a18a = rangeSize_rWm ta13e d.Ix_a15t
+                      rangeSize_a18b = rangeSize_rWm ta13d d.Ix_a15u
+                      {- nonrec -}
+    AbsBinds [] [] [([], inRange_a186, inRange_a15D)]
+       inRange_a15D ((Pair{-r4e,x-}{i} a1_rWt a2_rWu), (Pair{-r4e,x-}{i} b1_rWv b2_rWw))
+                    (Pair{-r4e,x-}{i} c1_rWx c2_rWy)
+                    = (inRange_a182 (a1_rWt, b1_rWv) c1_rWx)
+                      PrelBase.&&{-rgJ,p-} (inRange_a183 (a2_rWu, b2_rWw) c2_rWy)
+    d.Ix_a12O =
+       ({-dict-}
+        [d.Show_a16k, d.Ord_a16p]
+        [range_a184, index_a185, inRange_a186])
+d.Ord_a174 = PrelBase.$d7{-rcq,p-}
+>=_a17q = PrelBase.>={-8Z,p-} PrelBase.Int{-3g,W-} d.Ord_a174
+lit_a17r = PrelBase.I#{-5b,w-}{i} 10#
+d.Monad_a177 = PrelBase.$d25{-rbO,p-}
+>>=_a17s = PrelBase.>>={-811,p-} PrelBase.[]{-3j,W-} d.Monad_a177
+d.Monad_a17a = d.Monad_a177
+return_a17t =
+    PrelBase.return{-816,p-} PrelBase.[]{-3j,W-} d.Monad_a17a
+d.Num_a17c = PrelBase.$d4{-rc4,p-}
++_a17u = PrelBase.+{-rgT,p-} PrelBase.Int{-3g,W-} d.Num_a17c
+d.Num_a17f = d.Num_a17c
+*_a17v = PrelBase.*{-rgU,p-} PrelBase.Int{-3g,W-} d.Num_a17f
+lit_a17w = PrelBase.I#{-5b,w-}{i} 0#
+lit_a17x = PrelBase.I#{-5b,w-}{i} 1#
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+Ix 1 :: $d4 1 $d5 1 $d6 1 $d7 1 $d8 1 $d9 1 Ix 1;
+PrelBase 1 :: $d1 1 $d11 1 $d12 1 $d14 1 $d15 1 $d16 1 $d2 1 $d22 1 $d24 1 $d25 1 $d26 1 $d27 1 $d28 1 $d3 1 $d31 1 $d32 1 $d33 1 $d34 1 $d35 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d46 1 $d47 1 $d50 1 $d51 1 $d52 1 $d55 1 $d56 1 $d6 1 $d7 1 $d8 1 $d9 1 $m- 1 $m/= 1 $m< 1 $m<= 1 $m> 1 $m>= 1 $m>> 1 $mcompare 1 $menumFromThenTo 1 $menumFromTo 1 $mfromInt 1 $mmax 1 $mmin 1 $mshowList 1 && 1 . 1 not 1 showList__ 1 showParen 1 showSpace 1 showString 1 Enum 1 Eq 1 Eval 1 Functor 1 Monad 1 MonadZero 1 Num 1 Ord 1 Ordering 1 Ordering 1 Show 1 ShowS 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d17 1 $d18 1 $d28 1 $d29 1 $d30 1 $d33 1 $d34 1 $d35 1 $d8 1;
+PrelTup 1 :: $d13 1 $d4 1 $d49 1 $d9 1;
+_exports_
+ShouldSucceed Pair(Pair);
+_instances_
+instance _forall_ [a b] {PrelBase.Eq a, PrelBase.Eq b} => {PrelBase.Eq (Pair a b)} = $d1;
+instance _forall_ [a b] => {PrelBase.Eval (Pair a b)} = $d2;
+instance _forall_ [a b] {PrelBase.Ord a, PrelBase.Ord b} => {PrelBase.Ord (Pair a b)} = $d3;
+instance _forall_ [a b] {PrelBase.Show a, PrelBase.Show b} => {PrelBase.Show (Pair a b)} = $d4;
+instance _forall_ [a b] {Ix.Ix a, Ix.Ix b} => {Ix.Ix (Pair a b)} = $d5;
+_declarations_
+1 $d1 _:_ _forall_ [a b] {PrelBase.Eq a, PrelBase.Eq b} => {PrelBase.Eq (Pair a b)} ;;
+1 $d2 _:_ _forall_ [a b] => {PrelBase.Eval (Pair a b)} ;;
+1 $d3 _:_ _forall_ [a b] {PrelBase.Ord a, PrelBase.Ord b, PrelBase.Eq (Pair a b)} => {PrelBase.Ord (Pair a b)} ;;
+1 $d4 _:_ _forall_ [a b] {PrelBase.Show a, PrelBase.Show b} => {PrelBase.Show (Pair a b)} ;;
+1 $d5 _:_ _forall_ [a b] {Ix.Ix a, Ix.Ix b, PrelBase.Show (Pair a b), PrelBase.Ord (Pair a b)} => {Ix.Ix (Pair a b)} ;;
+1 data Pair a b = Pair a b ;
diff --git a/ghc/tests/deriving/should_compile/drv010.stderr b/ghc/tests/deriving/should_compile/drv010.stderr
new file mode 100644 (file)
index 0000000..63c0573
--- /dev/null
@@ -0,0 +1,87 @@
+
+
+================================================================================
+Typechecked:
+A{-r4,x-}{i} = A{-r4,x-}{i} {}
+B{-r3,x-}{i} = B{-r3,x-}{i} {}
+C{-r6,x-}{i} = C{-r6,x-}{i} {}
+D{-r8,x-}{i} = D{-r8,x-}{i} {}
+AbsBinds [] [] [([], con2tag_AD#_rBg, con2tag_AD#_aC1)]
+    con2tag_AD#_aC1 A{-r4,x-}{i} = 0#
+    con2tag_AD#_aC1 B{-r3,x-}{i} = 1#
+    con2tag_AD#_aC1 C{-r6,x-}{i} = 2#
+    con2tag_AD#_aC1 D{-r8,x-}{i} = 3#
+AbsBinds [] [] [([], maxtag_AD#_rBf, maxtag_AD#_aC6)]
+    maxtag_AD#_aC6 = PrelBase.I#{-5b,w-}{i} 3#
+AbsBinds [] [] [([], tag2con_AD#_rBe, tag2con_AD#_aC9)]
+    tag2con_AD#_aC9 (PrelBase.I#{-5b,w-}{i} 0#) = A{-r4,x-}{i}
+    tag2con_AD#_aC9 (PrelBase.I#{-5b,w-}{i} 1#) = B{-r3,x-}{i}
+    tag2con_AD#_aC9 (PrelBase.I#{-5b,w-}{i} 2#) = C{-r6,x-}{i}
+    tag2con_AD#_aC9 (PrelBase.I#{-5b,w-}{i} 3#) = D{-r8,x-}{i}
+    tag2con_AD#_aC9 _
+                   = IOBase.error{-87,w-} AD{-rU,x-} "Urk! in TcGenDeriv"
+AbsBinds [] [] [([], $d1{-rEh,x-}, d.Enum_aCl)]
+    map_aEp = map_aEk
+    AbsBinds [] [] [([], toEnum_aEq, toEnum_aCp)]
+       toEnum_aCp a_rBv = tag2con_AD#_rBe a_rBv
+    AbsBinds [] [] [([], fromEnum_aEr, fromEnum_aCv)]
+       fromEnum_aCv a_rBO
+                    = case con2tag_AD#_rBg a_rBO of
+                        a#_rBQ -> PrelBase.I#{-5b,w-}{i} a#_rBQ
+    AbsBinds [] [] [([], enumFrom_aEs, enumFrom_aCF)]
+       enumFrom_aCF a_rBz
+                    = case con2tag_AD#_rBg a_rBz of
+                        a#_rBB
+                        -> map_aEk [PrelBase.Int{-3g,W-}, AD{-rU,x-}] tag2con_AD#_rBe
+                                                                      enumFromTo_aEl PrelBase.I#{-5b,w-}{i} a#_rBB
+                                                                                     maxtag_AD#_rBf
+    AbsBinds [] [] [([], enumFromThen_aEt, enumFromThen_aD4)]
+       enumFromThen_aD4 a_rBF b_rBG
+                        = case con2tag_AD#_rBg a_rBF of
+                            a#_rBI
+                            -> case con2tag_AD#_rBg b_rBG of
+                                 b#_rBK
+                                 -> map_aEp [PrelBase.Int{-3g,W-}, AD{-rU,x-}] tag2con_AD#_rBe
+                                                                               enumFromThenTo_aEm PrelBase.I#{-5b,w-}{i} a#_rBI
+                                                                                                  PrelBase.I#{-5b,w-}{i} b#_rBK
+                                                                                                  maxtag_AD#_rBf
+    AbsBinds [] [] [([], enumFromTo_aEu, enumFromTo_aDz)]
+       enumFromTo_aDz = $menumFromTo_aEn
+    AbsBinds [] [] [([], enumFromThenTo_aEv, enumFromThenTo_aDJ)]
+       enumFromThenTo_aDJ = $menumFromThenTo_aEo
+    d.Enum_aCl =
+       ({-dict-}
+        []
+        [toEnum_aEq, fromEnum_aEr, enumFrom_aEs, enumFromThen_aEt, enumFromTo_aEu, enumFromThenTo_aEv])
+AbsBinds [] [] [([], $d2{-rEj,x-}, d.Eval_aE3)]
+    d.Eval_aE3 = ({-dict-} [] [])
+d.Functor_aE5 = PrelBase.$d26{-rai,p-}
+map_aEk = PrelBase.map{-rT,p-} PrelBase.[]{-3j,W-} d.Functor_aE5
+d.Enum_aE8 = PrelBase.$d6{-raS,p-}
+enumFromTo_aEl =
+    PrelBase.enumFromTo{-8W,p-} PrelBase.Int{-3g,W-} d.Enum_aE8
+d.Enum_aEb = d.Enum_aE8
+enumFromThenTo_aEm =
+    PrelBase.enumFromThenTo{-8X,p-} PrelBase.Int{-3g,W-} d.Enum_aEb
+d.Enum_aEd = $d1{-rEh,x-}
+$menumFromTo_aEn =
+    PrelBase.$menumFromTo{-rf6,p-} AD{-rU,x-} d.Enum_aEd
+d.Enum_aEg = d.Enum_aEd
+$menumFromThenTo_aEo =
+    PrelBase.$menumFromThenTo{-rf5,p-} AD{-rU,x-} d.Enum_aEg
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d14 1 $d2 1 $d26 1 $d31 1 $d38 1 $d40 1 $d42 1 $d45 1 $d47 1 $d6 1 $menumFromThenTo 1 $menumFromTo 1 Enum 1 Eval 1 Functor 1;
+PrelNum 1 :: $d8 1;
+_exports_
+ShouldSucceed AD(A B C D);
+_instances_
+instance {PrelBase.Enum AD} = $d1;
+instance {PrelBase.Eval AD} = $d2;
+_declarations_
+1 $d1 _:_ {PrelBase.Enum AD} ;;
+1 $d2 _:_ {PrelBase.Eval AD} ;;
+1 data AD = A |  B |  C |  D ;
index fb0a5f3..5d88d1e 100644 (file)
@@ -1,14 +1,7 @@
-TOP = ../../../..
+TOP = ../..
 include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/should_fail.mk
 
-HS_SRCS = $(wildcard *.hs)
-
-SRC_RUNTEST_OPTS += -o1 $*.stdout -o2 $*.stderr -x 1
 HC_OPTS += -noC
 
-%.o : %.hs
-       $(RUNTEST) $(HC) $(RUNTEST_OPTS) -- $(HC_OPTS) -c $< -o $@
-
-all :: $(HS_OBJS)
-
 include $(TOP)/mk/target.mk
index 4c05806..0c0576b 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../../../..
+TOP = ../..
 include $(TOP)/mk/boilerplate.mk
 
 HS_SRCS = $(wildcard *.hs)
diff --git a/ghc/tests/deriving/should_run/drvrun001.stdout b/ghc/tests/deriving/should_run/drvrun001.stdout
new file mode 100644 (file)
index 0000000..bbfb2f6
--- /dev/null
@@ -0,0 +1 @@
+MkAge 8
index bd50838..219351b 100644 (file)
@@ -7,8 +7,8 @@ main =
     let (CalendarTime year month mday hour min sec psec 
                       wday yday timezone gmtoff isdst) = toUTCTime time
     in
-      putStr (wdays !! wday) >>
-      putStr (' ' : months !! month) >>
+      putStr (wdays !! fromEnum wday) >>
+      putStr (' ' : months !! fromEnum month) >>
       putStr (' ' : shows2 mday (' ' : shows2 hour (':' : shows2 min (':' : shows2 sec
              (' ' : timezone ++ ' ' : shows year "\n")))))
 
index 7ae6cdc..8906023 100644 (file)
@@ -37,6 +37,6 @@ main =
     connect s (SockAddrInet 5000 (inet_addr avon))     >>
     
     writeSocket s message                              >>
-    shutdown s 2                                       >>
+    shutdown s ShutdownBoth                            >>
     sClose s
 
index 3891156..c504326 100644 (file)
@@ -28,6 +28,6 @@ main =
     getPeerName s                      >>= \ (SockAddrInet p haddr) ->   
     putStr ("Connected to : " ++ (inet_ntoa haddr) ++ "\n") >>
     writeSocket s message                      >>
-    shutdown s 2                               >>
+    shutdown s ShutdownBoth                    >>
     sClose s
 
index 8629c89..25d5ff3 100644 (file)
@@ -16,20 +16,3 @@ TEST_TOP := $(TOP)
 TOP := $(TOP)/..
 include $(TOP)/mk/boilerplate.mk
 TOP:=$(TEST_TOP)
-
-
-# -----------------------------------------------------------------
-# Everything after this point
-# augments or overrides previously set variables.
-# (these files are optional, so `make' won't fret if it
-#  cannot get to them).
-# -----------------------------------------------------------------
-
-
-# Define TEST_PROG.  In ..../nofib/imaginary/exp3_8, PROG is exp3_8 by default.
-#
-TEST_PROG = $(notdir $(shell pwd))$(_way)
-
-# Eventually, have the binary purged
-CLEAN_FILES += $(TEST_PROG)
-
index 92d4441..06f4a76 100644 (file)
@@ -6,23 +6,5 @@
 #
 #################################################################################
 
-
-# Link step
-$(TEST_PROG) : $(OBJS)
-       $(HC) $(HC_FLAGS) $(OBJS) -o $(TEST_PROG)
-
-# Run test
-runtest : $(TEST_PROG)
-       $(RUNTEST) ./$< \
-         $(addprefix -i ,$(wildcard $(TEST_PROG).stdin)) \
-         $(addprefix -o1 ,$(wildcard $(TEST_PROG).stdout)) \
-         $(addprefix -o2 ,$(wildcard $(TEST_PROG).stderr)) \
-         $(RUNTEST_OPTS)
-
-
-# Include standard boilerplate
-# We do this at the end for cosmetic reasons: it means that the "normal-way"
-# runtests will precede the "other-way" recursive invocations of make
-
 include $(FPTOOLS_TOP)/mk/target.mk
 
index bc76d45..5268832 100644 (file)
@@ -1,19 +1,7 @@
-TOP = ../../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
-HS_SRCS = $(wildcard *.hs)
-
-SRC_RUNTEST_OPTS += -accept-output -o1 $*.stdout -o2 $*.stderr -x 0
-HC_OPTS += -noC -ddump-tc -dcore-lint -hi
-
-%.o : %.hs
-
-%.o : %.hs
-       $(RUNTEST) $(HC) $(RUNTEST_OPTS) $(HC_OPTS) -c $< -o $@ -osuf $(subst .,,$(suffix $@)) 
-
-all :: $(HS_OBJS)
-
-print002_HC_OPTS = -fno-implicit-prelude -dppr-user -ddump-rdr -ddump-tc
+SUBDIRS = should_compile
 
 include $(TOP)/mk/target.mk
 
diff --git a/ghc/tests/printing/Print001.stderr b/ghc/tests/printing/Print001.stderr
deleted file mode 100644 (file)
index 4df3273..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-
-
-================================================================================
-Typechecked:
-{- nonrec -}
-{- nonrec -}
-{- nonrec -}
-BarNil{-r4r,x-}{i} =
-    _/\_ a{-r4O-} ->
-       BarNil{-r4r,x-}{i}
-           {_@_ a{-r4O-}}
-BarCon{-r4q,x-}{i} =
-    _/\_ a{-r4O-} -> \ tpl_B1 tpl_B2 ->
-       BarCon{-r4q,x-}{i}
-           {_@_ a{-r4O-} tpl_B1 tpl_B2}
-{- nonrec -}
-MkFoo{-r4U,x-}{i} =
-    _/\_ d{-r4Q-} e{-r4R-} f{-r4S-} -> \ tpl_B1 tpl_B2 tpl_B3 ->
-       MkFoo{-r4U,x-}{i}
-           {_@_ d{-r4Q-} _@_ e{-r4R-} _@_ f{-r4S-} tpl_B1 tpl_B2 tpl_B3}
-{- rec -}
-AbsBinds [a{-a15E-}] [] [([a{-a15E-}], $d1{-r15L,x-}, d.Eval_a15s)]
-    d.Eval_a15s =
-       ({-dict-} [] [])
-{- rec -}
-AbsBinds
-[d{-a15F-}, e{-a15H-}, f{-a15G-}]
-[]
-[([d{-a15F-}, e{-a15H-}, f{-a15G-}], $d2{-r15P,x-}, d.Eval_a15A)]
-    d.Eval_a15A =
-       ({-dict-} [] [])
-{- nonrec -}
-d.Fractional_a15D =
-    PrelNum.$d23{-rIo,p-}
-fromRational_a15N =
-    PrelNum.fromRational{-8T,p-}
-       PrelBase.Float{-3c,p-}
-       d.Fractional_a15D
-lit_a15M =
-    fromRational_a15N
-       2.0000000000000000
-{- nonrec -}
-AbsBinds
-[a{-a14B-}, b{-a14C-}]
-[]
-[([b{-a14C-}, a{-a14B-}], g{-r4F,x-}, g_a14y)]
-    g_a14y
-       x_r4M   =   lit_a15M
-{- nonrec -}
-{- nonrec -}
-AbsBinds
-[a{-a14R-}, b{-a14S-}, c{-a14T-}]
-[d.Eq_a14V, d.Ord_a14W, d.Ix_a14X]
-[([a{-a14R-}, b{-a14S-}, c{-a14T-}], f2{-r4E,x-}, f2_a14O)]
-    f2_a14O
-       x_r4K   =   x_r4K
-{- nonrec -}
-{- nonrec -}
-AbsBinds
-[a{-a158-}, b{-a159-}, c{-a15a-}]
-[d.Eq_a15c]
-[([a{-a158-}, b{-a159-}, c{-a15a-}], f{-r4D,x-}, f_a155)]
-    f_a155
-       x_r4I   =   x_r4I
-{- nonrec -}
-{- nonrec -}
-AbsBinds
-[d{-a15i-}, e{-a15k-}, f{-a15m-}]
-[]
-[([d{-a15i-}, e{-a15k-}, f{-a15m-}], mkFoo{-r4G,x-}, mkFoo_a15e)]
-    mkFoo_a15e
-       =   MkFoo{-r4U,x-}{i}
-               [d{-a15i-}, e{-a15k-}, f{-a15m-}]
-{- nonrec -}
-ghc: module version changed to 1; reason: no old .hi file
-_interface_ Print001 1
-_instance_modules_
-ArrBase IO PrelNum
-_usages_
-Ix 1 :: $d3 1 $d4 1 $d5 1 $d6 1 $d7 1 $d8 1 $d9 1 $minRange 1 $mindex 1 $mrange 1 Ix 1;
-PrelBase 1 :: $d1 1 $d10 1 $d11 1 $d13 1 $d14 1 $d15 1 $d2 1 $d21 1 $d26 1 $d27 1 $d3 1 $d30 1 $d31 1 $d32 1 $d33 1 $d34 1 $d37 1 $d38 1 $d39 1 $d40 1 $d41 1 $d42 1 $d44 1 $d45 1 $d46 1 $d49 1 $d5 1 $d50 1 $d51 1 $d54 1 $d55 1 $d6 1 $d7 1 $d8 1 $m* 1 $m+ 1 $m- 1 $m/= 1 $m< 1 $m<= 1 $m== 1 $m> 1 $m>= 1 $mabs 1 $mcompare 1 $menumFrom 1 $menumFromThen 1 $menumFromThenTo 1 $menumFromTo 1 $mfromEnum 1 $mfromInt 1 $mfromInteger 1 $mmax 1 $mmin 1 $mnegate 1 $mshowList 1 $mshowsPrec 1 $msignum 1 $mtoEnum 1 Enum 1 Eq 1 Eval 1 Num 1 Ord 1 Ordering 1 Show 1 String 1;
-PrelNum 1 :: $d1 1 $d10 1 $d14 1 $d15 1 $d16 1 $d17 1 $d18 1 $d19 1 $d2 1 $d23 1 $d24 1 $d25 1 $d26 1 $d27 1 $d28 1 $d29 1 $d30 1 $d31 1 $d32 1 $d33 1 $d34 1 $d35 1 $d36 1 $d37 1 $d38 1 $d39 1 $d4 1 $d5 1 $d6 1 $d7 1 $d8 1 $d9 1 $m/ 1 $mdiv 1 $mdivMod 1 $mfromRational 1 $mmod 1 $mquot 1 $mquotRem 1 $mrecip 1 $mrem 1 $mtoInt 1 $mtoInteger 1 $mtoRational 1 Fractional 1 Integral 1 Ratio 1 Rational 1 Real 1;
-PrelTup 1 :: $d10 1 $d13 1 $d14 1 $d3 1 $d4 1 $d49 1 $d50 1 $d9 1;
-_exports_
-Print001 f f2 g mkFoo Bar(BarNil BarCon) Foo(MkFoo);
-_instances_
-instance _forall_ [a] => {PrelBase.Eval (Bar a)} = $d1;
-instance _forall_ [a b c] => {PrelBase.Eval (Foo a b c)} = $d2;
-_declarations_
-1 $d1 _:_ _forall_ [a] => {PrelBase.Eval (Bar a)} ;;
-1 $d2 _:_ _forall_ [a b c] => {PrelBase.Eval (Foo a b c)} ;;
-1 data Bar r4O = BarNil |  BarCon (Foo r4O r4O r4O) (Bar r4O) ;
-1 data Foo r4Q r4R r4S = MkFoo [((r4Q -> PrelBase.Int) -> r4Q) -> r4R] (r4Q -> r4R, r4R -> r4R) PrelBase.() ;
-1 f _:_ _forall_ [a b c] {PrelBase.Eq a} => (a -> b -> c) -> a -> b -> c ;;
-1 f2 _:_ _forall_ [a b c] {PrelBase.Eq a, PrelBase.Ord a, Ix.Ix c} => (a -> b -> c) -> a -> b -> c ;;
-1 g _:_ _forall_ [a b] => Foo PrelBase.Int (b -> a) (b -> [(b, PrelBase.Double, PrelBase.Int)]) -> PrelBase.Float ;;
-1 mkFoo _:_ _forall_ [a b c] => [((a -> PrelBase.Int) -> a) -> b] -> (a -> b, b -> b) -> PrelBase.() -> Foo a b c ;;
diff --git a/ghc/tests/printing/Print002.stderr b/ghc/tests/printing/Print002.stderr
deleted file mode 100644 (file)
index f87250e..0000000
+++ /dev/null
@@ -1,589 +0,0 @@
-
-
-================================================================================
-Typechecked:
-{- nonrec -}
-{- nonrec -}
-MkFoo1{-rk,x-}{i} =
-    _/\_ a{-r4z-} b{-r4A-} c{-r4B-} -> \ tpl_B1 tpl_B2 ->
-       MkFoo1{-rk,x-}{i}
-           {_@_ a{-r4z-} _@_ b{-r4A-} _@_ c{-r4B-} tpl_B1 tpl_B2}
-:##{-rj,x-}{i} =
-    _/\_ a{-r4z-} b{-r4A-} c{-r4B-} -> \ tpl_B1 tpl_B2 ->
-       :##{-rj,x-}{i}
-           {_@_ a{-r4z-} _@_ b{-r4A-} _@_ c{-r4B-} tpl_B1 tpl_B2}
-MkFoo3{-rm,x-}{i} =
-    _/\_ a{-r4z-} b{-r4A-} c{-r4B-} -> \ tpl_B1 tpl_B2 ->
-       MkFoo3{-rm,x-}{i}
-           {_@_ a{-r4z-} _@_ b{-r4A-} _@_ c{-r4B-} tpl_B1 tpl_B2}
-:***{-ro,x-}{i} =
-    _/\_ a{-r4z-} b{-r4A-} c{-r4B-} -> \ tpl_B1 tpl_B2 ->
-       :***{-ro,x-}{i}
-           {_@_ a{-r4z-} _@_ b{-r4A-} _@_ c{-r4B-} tpl_B1 tpl_B2}
-{- nonrec -}
-scsel_Bar2Print002Bar{-aVQ,x-} =
-    _/\_ a{-r4n-} -> \ tpl_B1 ->
-       tpl_B1
-{- nonrec -}
-{- nonrec -}
-meth1{-r4R,x-} =
-    _/\_ a{-r4q-} -> \ tpl_B1 ->
-       case tpl_B1 of { PrelTup.(,,){-63,p-}{i} tpl_B1 tpl_B2 tpl_B3  ->
-       tpl_B1;}
-/////{-r4Q,x-} =
-    _/\_ a{-r4q-} -> \ tpl_B1 ->
-       case tpl_B1 of { PrelTup.(,,){-63,p-}{i} tpl_B1 tpl_B2 tpl_B3  ->
-       tpl_B2;}
-meth2{-r4P,x-} =
-    _/\_ a{-r4q-} -> \ tpl_B1 ->
-       case tpl_B1 of { PrelTup.(,,){-63,p-}{i} tpl_B1 tpl_B2 tpl_B3  ->
-       tpl_B3;}
-{- nonrec -}
-AbsBinds
-[a{-aVq-}]
-[d.Bar_aVj]
-[([a{-aVq-}], $mmeth1{-rLc,x-}, meth1_aVl)]
-    AbsBinds [] [] [([], meth1_aVl, meth1_aVn)]
-       meth1_aVn
-           =   GHCerr.noDefaultMethodError{-8k,p-}
-                   (a{-aVq-} -> a{-aVq-} -> PrelBase.Bool{-34,p-})
-                   "Class Bar Method meth1"
-AbsBinds
-[a{-aVq-}]
-[d.Bar_aVt]
-[([a{-aVq-}], $m/////{-rLb,x-}, /////_aVv)]
-    AbsBinds [] [] [([], /////_aVv, /////_aVx)]
-       /////_aVx
-           =   GHCerr.noDefaultMethodError{-8k,p-}
-                   (a{-aVq-} -> a{-aVq-} -> PrelBase.Bool{-34,p-})
-                   "Class Bar Method /////"
-AbsBinds
-[a{-aVq-}]
-[d.Bar_aVC]
-[([a{-aVq-}], $mmeth2{-rLa,x-}, meth2_aVF)]
-    AbsBinds [b{-aVM-}] [] [([b{-aVM-}], meth2_aVF, meth2_aVI)]
-       meth2_aVI
-           =   GHCerr.noDefaultMethodError{-8k,p-}
-                   (a{-aVq-} -> b{-aVM-} -> PrelBase.Bool{-34,p-})
-                   "Class Bar Method meth2"
-{- rec -}
-AbsBinds
-[a{-aOK-}, b{-aON-}, c{-aOQ-}]
-[d.Eq_aQB, d.Eq_aQC, d.Eq_aQD]
-[([a{-aOK-}, b{-aON-}, c{-aOQ-}], $d1{-rVR,x-}, d.Eq_aOA)]
-    d.Eq_aQH =
-       d.Eq_aQB
-    ==_aVX =
-       PrelBase.=={-8Y,p-}
-           a{-aOK-}
-           d.Eq_aQH
-    d.Eq_aQJ =
-       d.Eq_aQC
-    ==_aVW =
-       PrelBase.=={-8Y,p-}
-           b{-aON-}
-           d.Eq_aQJ
-    d.Eq_aQL =
-       d.Eq_aQD
-    ==_aVV =
-       PrelBase.=={-8Y,p-}
-           c{-aOQ-}
-           d.Eq_aQL
-    ==_aVU =
-       ==_aVT
-    AbsBinds [] [] [([], ==_aVT, ==_aOD)]
-       ==_aW2 =
-           ==_aVX
-       ==_aW1 =
-           ==_aVW
-       ==_aW0 =
-           ==_aVW
-       ==_aVZ =
-           ==_aVV
-       ==_aVY =
-           ==_aVV
-       ==_aOD
-           (MkFoo1{-rk,x-}{i} a1_rIv a2_rIw) (MkFoo1{-rk,x-}{i} b1_rIy b2_rIz)
-                   =   (a1_rIv ==_aVX b1_rIy)
-                       PrelBase.&&{-re5,p-} (a2_rIw ==_aW2 b2_rIz)
-       ==_aOD
-           (:##{-rj,x-}{i} a1_rIB a2_rIC) (:##{-rj,x-}{i} b1_rIE b2_rIF)
-                   =   (a1_rIB ==_aVW b1_rIE)
-                       PrelBase.&&{-re5,p-} (a2_rIC ==_aVV b2_rIF)
-       ==_aOD
-           (MkFoo3{-rm,x-}{i} a1_rIH a2_rII) (MkFoo3{-rm,x-}{i} b1_rIK b2_rIL)
-                   =   (a1_rIH ==_aW1 b1_rIK)
-                       PrelBase.&&{-re5,p-} (a2_rII ==_aW0 b2_rIL)
-       ==_aOD
-           (:***{-ro,x-}{i} a1_rIN a2_rIO) (:***{-ro,x-}{i} b1_rIQ b2_rIR)
-                   =   (a1_rIN ==_aVZ b1_rIQ)
-                       PrelBase.&&{-re5,p-} (a2_rIO ==_aVY b2_rIR)
-       ==_aOD
-           a_rIT b_rIV
-                   =   PrelBase.False{-58,p-}{i}
-    AbsBinds [] [] [([], /=_aVS, /=_aQu)]
-       /=_aQu
-           a_rIZ b_rJ1
-                   =   PrelBase.not{-rgK,p-}
-                           ==_aVU
-                               a_rIZ b_rJ1
-    d.Eq_aOA =
-       ({-dict-} [] [==_aVT, /=_aVS])
-{- rec -}
-AbsBinds
-[a{-aVN-}, b{-aVP-}, c{-aVO-}]
-[]
-[([a{-aVN-}, b{-aVP-}, c{-aVO-}], $d2{-rW3,x-}, d.Eval_aQW)]
-    d.Eval_aQW =
-       ({-dict-} [] [])
-{- rec -}
-AbsBinds
-[a{-aRa-}, b{-aRb-}, c{-aRc-}]
-[d.Ord_aV0, d.Ord_aV1, d.Ord_aV2, d.Eq_aV3]
-[([a{-aRa-}, b{-aRb-}, c{-aRc-}], $d3{-rW4,x-}, d.Ord_aR4)]
-    d.Eq_aV4 =
-       d.Eq_aV3
-    d.Ord_aTL =
-       d.Ord_aV0
-    d.Ord_aTM =
-       d.Ord_aV1
-    d.Ord_aTN =
-       d.Ord_aV2
-    compare_aWh =
-       compare_aWb
-    compare_aWg =
-       compare_aWb
-    compare_aWf =
-       compare_aWb
-    compare_aWe =
-       compare_aWb
-    compare_aWd =
-       compare_aWb
-    compare_aWc =
-       compare_aWb
-    AbsBinds [] [] [([], compare_aWb, compare_aR7)]
-       compare_aR7
-           a_rJZ b_rK1
-                   =   case
-                           con2tag_Foo#_rIm
-                               [c{-aRc-}, a{-aRa-}, b{-aRb-}]
-                               a_rJZ
-                       of
-                         a#_rKT  ->  case
-                                         con2tag_Foo#_rIm
-                                             [c{-aRc-}, a{-aRa-}, b{-aRb-}]
-                                             b_rK1
-                                     of
-                                       b#_rKV  ->  if a#_rKT GHC.==#{-79,p-}{I} b#_rKV then
-                                                       case
-                                                           cmp_eq_aWi
-                                                               a_rJZ b_rK1
-                                                       of
-                                                         PrelBase.LT{-rc8,p-}{i}
-                                                                 ->  PrelBase.LT{-rc8,p-}{i}
-                                                         PrelBase.EQ{-r4C,p-}{i}
-                                                                 ->  PrelBase.EQ{-r4C,p-}{i}
-                                                         PrelBase.GT{-rc9,p-}{i}
-                                                                 ->  PrelBase.GT{-rc9,p-}{i}
-                                                   else
-                                                       if a#_rKT GHC.<#{-7b,p-}{I} b#_rKV then
-                                                           PrelBase.LT{-rc8,p-}{i}
-                                                       else
-                                                           PrelBase.GT{-rc9,p-}{i}
-                   where
-                       {- nonrec -}
-                       AbsBinds
-                       [c{-aST-}, a{-aT4-}, b{-aT5-}]
-                       [d.Ord_aTe, d.Ord_aTg, d.Ord_aTi]
-                       [([c{-aST-}, a{-aT4-}, b{-aT5-}], cmp_eq_rK3, cmp_eq_aRg)]
-                           compare_aWq =
-                               PrelBase.compare{-rei,p-}
-                                   a{-aT4-}
-                                   d.Ord_aTe
-                           compare_aWp =
-                               compare_aWq
-                           compare_aWo =
-                               PrelBase.compare{-rei,p-}
-                                   b{-aT5-}
-                                   d.Ord_aTg
-                           compare_aWn =
-                               PrelBase.compare{-rei,p-}
-                                   c{-aST-}
-                                   d.Ord_aTi
-                           compare_aWm =
-                               compare_aWo
-                           compare_aWl =
-                               compare_aWo
-                           compare_aWk =
-                               compare_aWn
-                           compare_aWj =
-                               compare_aWn
-                           cmp_eq_aRg
-                               (MkFoo1{-rk,x-}{i} a1_rK5 a2_rK6) (MkFoo1{-rk,x-}{i} b1_rK8 b2_rK9)
-                                       =   case
-                                               compare_aWq
-                                                   a1_rK5 b1_rK8
-                                           of
-                                             PrelBase.LT{-rc8,p-}{i}
-                                                     ->  PrelBase.LT{-rc8,p-}{i}
-                                             PrelBase.EQ{-r4C,p-}{i}
-                                                     ->  case
-                                                             compare_aWp
-                                                                 a2_rK6 b2_rK9
-                                                         of
-                                                           PrelBase.LT{-rc8,p-}{i}
-                                                                   ->  PrelBase.LT{-rc8,p-}{i}
-                                                           PrelBase.EQ{-r4C,p-}{i}
-                                                                   ->  PrelBase.EQ{-r4C,p-}{i}
-                                                           PrelBase.GT{-rc9,p-}{i}
-                                                                   ->  PrelBase.GT{-rc9,p-}{i}
-                                             PrelBase.GT{-rc9,p-}{i}
-                                                     ->  PrelBase.GT{-rc9,p-}{i}
-                           cmp_eq_aRg
-                               (:##{-rj,x-}{i} a1_rKh a2_rKi) (:##{-rj,x-}{i} b1_rKk b2_rKl)
-                                       =   case
-                                               compare_aWo
-                                                   a1_rKh b1_rKk
-                                           of
-                                             PrelBase.LT{-rc8,p-}{i}
-                                                     ->  PrelBase.LT{-rc8,p-}{i}
-                                             PrelBase.EQ{-r4C,p-}{i}
-                                                     ->  case
-                                                             compare_aWn
-                                                                 a2_rKi b2_rKl
-                                                         of
-                                                           PrelBase.LT{-rc8,p-}{i}
-                                                                   ->  PrelBase.LT{-rc8,p-}{i}
-                                                           PrelBase.EQ{-r4C,p-}{i}
-                                                                   ->  PrelBase.EQ{-r4C,p-}{i}
-                                                           PrelBase.GT{-rc9,p-}{i}
-                                                                   ->  PrelBase.GT{-rc9,p-}{i}
-                                             PrelBase.GT{-rc9,p-}{i}
-                                                     ->  PrelBase.GT{-rc9,p-}{i}
-                           cmp_eq_aRg
-                               (MkFoo3{-rm,x-}{i} a1_rKt a2_rKu) (MkFoo3{-rm,x-}{i} b1_rKw b2_rKx)
-                                       =   case
-                                               compare_aWm
-                                                   a1_rKt b1_rKw
-                                           of
-                                             PrelBase.LT{-rc8,p-}{i}
-                                                     ->  PrelBase.LT{-rc8,p-}{i}
-                                             PrelBase.EQ{-r4C,p-}{i}
-                                                     ->  case
-                                                             compare_aWl
-                                                                 a2_rKu b2_rKx
-                                                         of
-                                                           PrelBase.LT{-rc8,p-}{i}
-                                                                   ->  PrelBase.LT{-rc8,p-}{i}
-                                                           PrelBase.EQ{-r4C,p-}{i}
-                                                                   ->  PrelBase.EQ{-r4C,p-}{i}
-                                                           PrelBase.GT{-rc9,p-}{i}
-                                                                   ->  PrelBase.GT{-rc9,p-}{i}
-                                             PrelBase.GT{-rc9,p-}{i}
-                                                     ->  PrelBase.GT{-rc9,p-}{i}
-                           cmp_eq_aRg
-                               (:***{-ro,x-}{i} a1_rKF a2_rKG) (:***{-ro,x-}{i} b1_rKI b2_rKJ)
-                                       =   case
-                                               compare_aWk
-                                                   a1_rKF b1_rKI
-                                           of
-                                             PrelBase.LT{-rc8,p-}{i}
-                                                     ->  PrelBase.LT{-rc8,p-}{i}
-                                             PrelBase.EQ{-r4C,p-}{i}
-                                                     ->  case
-                                                             compare_aWj
-                                                                 a2_rKG b2_rKJ
-                                                         of
-                                                           PrelBase.LT{-rc8,p-}{i}
-                                                                   ->  PrelBase.LT{-rc8,p-}{i}
-                                                           PrelBase.EQ{-r4C,p-}{i}
-                                                                   ->  PrelBase.EQ{-r4C,p-}{i}
-                                                           PrelBase.GT{-rc9,p-}{i}
-                                                                   ->  PrelBase.GT{-rc9,p-}{i}
-                                             PrelBase.GT{-rc9,p-}{i}
-                                                     ->  PrelBase.GT{-rc9,p-}{i}
-                           cmp_eq_aRg
-                               _ _     =   IOBase.error{-87,p-}
-                                               PrelBase.Ordering{-3o,p-}
-                                               "Urk! in TcGenDeriv"
-                       {- nonrec -}
-                       cmp_eq_aWi =
-                           cmp_eq_rK3
-                               [c{-aRc-}, a{-aRa-}, b{-aRb-}]
-                               [d.Ord_aTL, d.Ord_aTM, d.Ord_aTN]
-    AbsBinds [] [] [([], <_aWa, <_aTR)]
-       <_aTR
-           a_rJ7 b_rJ9
-                   =   case
-                           compare_aWh
-                               a_rJ7 b_rJ9
-                       of
-                         PrelBase.LT{-rc8,p-}{i}
-                                 ->  PrelBase.True{-5E,p-}{i}
-                         PrelBase.EQ{-r4C,p-}{i}
-                                 ->  PrelBase.False{-58,p-}{i}
-                         PrelBase.GT{-rc9,p-}{i}
-                                 ->  PrelBase.False{-58,p-}{i}
-    AbsBinds [] [] [([], <=_aW9, <=_aU3)]
-       <=_aU3
-           a_rJg b_rJi
-                   =   case
-                           compare_aWg
-                               a_rJg b_rJi
-                       of
-                         PrelBase.LT{-rc8,p-}{i}
-                                 ->  PrelBase.True{-5E,p-}{i}
-                         PrelBase.EQ{-r4C,p-}{i}
-                                 ->  PrelBase.True{-5E,p-}{i}
-                         PrelBase.GT{-rc9,p-}{i}
-                                 ->  PrelBase.False{-58,p-}{i}
-    AbsBinds [] [] [([], >=_aW8, >=_aUf)]
-       >=_aUf
-           a_rJp b_rJr
-                   =   case
-                           compare_aWf
-                               a_rJp b_rJr
-                       of
-                         PrelBase.LT{-rc8,p-}{i}
-                                 ->  PrelBase.False{-58,p-}{i}
-                         PrelBase.EQ{-r4C,p-}{i}
-                                 ->  PrelBase.True{-5E,p-}{i}
-                         PrelBase.GT{-rc9,p-}{i}
-                                 ->  PrelBase.True{-5E,p-}{i}
-    AbsBinds [] [] [([], >_aW7, >_aUr)]
-       >_aUr
-           a_rJy b_rJA
-                   =   case
-                           compare_aWe
-                               a_rJy b_rJA
-                       of
-                         PrelBase.LT{-rc8,p-}{i}
-                                 ->  PrelBase.False{-58,p-}{i}
-                         PrelBase.EQ{-r4C,p-}{i}
-                                 ->  PrelBase.False{-58,p-}{i}
-                         PrelBase.GT{-rc9,p-}{i}
-                                 ->  PrelBase.True{-5E,p-}{i}
-    AbsBinds [] [] [([], max_aW6, max_aUD)]
-       max_aUD
-           a_rJH b_rJJ
-                   =   case
-                           compare_aWd
-                               a_rJH b_rJJ
-                       of
-                         PrelBase.LT{-rc8,p-}{i}
-                                 ->  b_rJJ
-                         PrelBase.EQ{-r4C,p-}{i}
-                                 ->  a_rJH
-                         PrelBase.GT{-rc9,p-}{i}
-                                 ->  a_rJH
-    AbsBinds [] [] [([], min_aW5, min_aUQ)]
-       min_aUQ
-           a_rJQ b_rJS
-                   =   case
-                           compare_aWc
-                               a_rJQ b_rJS
-                       of
-                         PrelBase.LT{-rc8,p-}{i}
-                                 ->  a_rJQ
-                         PrelBase.EQ{-r4C,p-}{i}
-                                 ->  b_rJS
-                         PrelBase.GT{-rc9,p-}{i}
-                                 ->  b_rJS
-    d.Ord_aR4 =
-       ({-dict-}
-        [d.Eq_aV4]
-        [compare_aWb, <_aWa, <=_aW9, >=_aW8, >_aW7, max_aW6, min_aW5])
-{- nonrec -}
-{- nonrec -}
-AbsBinds
-[a{-aLh-}]
-[d.Bar_aLn]
-[([a{-aLh-}], f3d{-r4D,x-}, f3d_aL9)]
-    /////_aWr =
-       /////{-r4Q,x-}
-           a{-aLh-}
-           d.Bar_aLn
-    f3d_aL9
-       x_r4j y_r4l
-               =   x_r4j /////_aWr y_r4l
-{- nonrec -}
-{- nonrec -}
-AbsBinds
-[a{-aLu-}]
-[d.Bar_aLA]
-[([a{-aLu-}], f3c{-r4E,x-}, f3c_aLp)]
-    /////_aWs =
-       /////{-r4Q,x-}
-           a{-aLu-}
-           d.Bar_aLA
-    f3c_aLp
-       x_r4f y_r4h
-               =   /////_aWs
-                       x_r4f y_r4h
-{- nonrec -}
-{- nonrec -}
-AbsBinds
-[a{-aLH-}]
-[d.Bar_aLN]
-[([a{-aLH-}], f3b{-r4F,x-}, f3b_aLC)]
-    meth1_aWt =
-       meth1{-r4R,x-}
-           a{-aLH-}
-           d.Bar_aLN
-    f3b_aLC
-       x_r4b y_r4d
-               =   x_r4b meth1_aWt y_r4d
-{- nonrec -}
-{- nonrec -}
-AbsBinds
-[a{-aLU-}]
-[d.Bar_aM0]
-[([a{-aLU-}], f3a{-r4G,x-}, f3a_aLP)]
-    meth1_aWu =
-       meth1{-r4R,x-}
-           a{-aLU-}
-           d.Bar_aM0
-    f3a_aLP
-       x_r47 y_r49
-               =   meth1_aWu
-                       x_r47 y_r49
-{- nonrec -}
-{- nonrec -}
-AbsBinds
-[c{-aMk-}, a{-aMn-}, b{-aMo-}]
-[]
-[([c{-aMk-}, a{-aMn-}, b{-aMo-}], <<<<{-r4H,x-}, <<<<_aM2)]
-    <<<<_aM2
-       x_r3Z y_r41
-               =   :***{-ro,x-}{i}
-                       [a{-aMn-}, b{-aMo-}, c{-aMk-}]
-                       x_r3Z y_r41
-    <<<<_aM2
-       x_r43 y_r45
-               =   :***{-ro,x-}{i}
-                       [a{-aMn-}, b{-aMo-}, c{-aMk-}]
-                       x_r43 y_r45
-{- nonrec -}
-{- nonrec -}
-AbsBinds
-[b{-aMw-}, a{-aMA-}, c{-aMC-}]
-[]
-[([b{-aMw-}, a{-aMA-}, c{-aMC-}], .....{-r4I,x-}, ....._aMq)]
-    ....._aMq
-       x_r3V y_r3X
-               =   MkFoo3{-rm,x-}{i}
-                       [a{-aMA-}, b{-aMw-}, c{-aMC-}]
-                       x_r3V y_r3X
-{- nonrec -}
-{- nonrec -}
-AbsBinds
-[b{-aMK-}, a{-aMO-}, c{-aMQ-}]
-[]
-[([b{-aMK-}, a{-aMO-}, c{-aMQ-}], ....{-r4J,x-}, ...._aME)]
-    ...._aME
-       x_r3R y_r3T
-               =   MkFoo3{-rm,x-}{i}
-                       [a{-aMO-}, b{-aMK-}, c{-aMQ-}]
-                       x_r3R y_r3T
-{- nonrec -}
-{- nonrec -}
-AbsBinds
-[b{-aMY-}, c{-aN1-}, a{-aN4-}]
-[]
-[([b{-aMY-}, c{-aN1-}, a{-aN4-}], f2a{-r4K,x-}, f2a_aMS)]
-    f2a_aMS
-       x_r3N y_r3P
-               =   :##{-rj,x-}{i}
-                       [a{-aN4-}, b{-aMY-}, c{-aN1-}]
-                       x_r3N y_r3P
-{- nonrec -}
-{- nonrec -}
-AbsBinds
-[b{-aNc-}, c{-aNf-}, a{-aNi-}]
-[]
-[([b{-aNc-}, c{-aNf-}, a{-aNi-}], f2{-r4L,x-}, f2_aN6)]
-    f2_aN6
-       x_r3J y_r3L
-               =   :##{-rj,x-}{i}
-                       [a{-aNi-}, b{-aNc-}, c{-aNf-}]
-                       x_r3J y_r3L
-{- nonrec -}
-{- nonrec -}
-AbsBinds
-[a{-aNp-}, b{-aNu-}, c{-aNw-}]
-[]
-[([a{-aNp-}, b{-aNu-}, c{-aNw-}], f1a{-r4M,x-}, f1a_aNk)]
-    f1a_aNk
-       x_r3F y_r3H
-               =   MkFoo1{-rk,x-}{i}
-                       [a{-aNp-}, b{-aNu-}, c{-aNw-}]
-                       x_r3F y_r3H
-{- nonrec -}
-{- nonrec -}
-AbsBinds
-[a{-aND-}, b{-aNI-}, c{-aNK-}]
-[]
-[([a{-aND-}, b{-aNI-}, c{-aNK-}], f1{-r4N,x-}, f1_aNy)]
-    f1_aNy
-       x_r3B y_r3D
-               =   MkFoo1{-rk,x-}{i}
-                       [a{-aND-}, b{-aNI-}, c{-aNK-}]
-                       x_r3B y_r3D
-{- nonrec -}
-{- nonrec -}
-AbsBinds
-[c{-aOo-}, a{-aOr-}, b{-aOs-}]
-[]
-[([c{-aOo-}, a{-aOr-}, b{-aOs-}],
-  con2tag_Foo#_rIm,
-  con2tag_Foo#_aNM)]
-    con2tag_Foo#_aNM
-       (MkFoo1{-rk,x-}{i} _ _)
-               =   0#
-    con2tag_Foo#_aNM
-       (:##{-rj,x-}{i} _ _)
-               =   1#
-    con2tag_Foo#_aNM
-       (MkFoo3{-rm,x-}{i} _ _)
-               =   2#
-    con2tag_Foo#_aNM
-       (:***{-ro,x-}{i} _ _)
-               =   3#
-{- nonrec -}
-Print002.hs:35: 
-    Warning: Pattern match(es) completely overlapped
-       in the definition of function `<<<<'
-ghc: module version changed to 1; reason: no old .hi file
-_interface_ Print002 1
-_instance_modules_
-ArrBase IO PrelNum
-_usages_
-PrelBase 1 :: $d14 1 $d15 1 $d32 1 $d34 1 $d37 1 $d39 1 $d41 1 $d45 1 $d46 1 $d49 1 $d51 1 $d6 1 $d7 1 $m/= 1 $m< 1 $m<= 1 $m== 1 $m> 1 $m>= 1 $mcompare 1 $mmax 1 $mmin 1 && 1 . 1 not 1 Eq 1 Eval 1 Ord 1 Ordering 1;
-PrelNum 1 :: $d17 1 $d18 1;
-_exports_
-Print002 .... ..... <<<< f1 f1a f2 f2a f3a f3b f3c f3d Bar(meth1 ///// meth2) Bar2 Foo(MkFoo1 :## MkFoo3 :***);
-_instances_
-instance _forall_ [a b c] {PrelBase.Eq a, PrelBase.Eq b, PrelBase.Eq c} => {PrelBase.Eq (Foo a b c)} = $d1;
-instance _forall_ [a b c] => {PrelBase.Eval (Foo a b c)} = $d2;
-instance _forall_ [a b c] {PrelBase.Ord a, PrelBase.Ord b, PrelBase.Ord c} => {PrelBase.Ord (Foo a b c)} = $d3;
-_declarations_
-1 $d1 _:_ _forall_ [a b c] {PrelBase.Eq a, PrelBase.Eq b, PrelBase.Eq c} => {PrelBase.Eq (Foo a b c)} ;;
-1 $d2 _:_ _forall_ [a b c] => {PrelBase.Eval (Foo a b c)} ;;
-1 $d3 _:_ _forall_ [a b c] {PrelBase.Ord a, PrelBase.Ord b, PrelBase.Ord c, PrelBase.Eq (Foo a b c)} => {PrelBase.Ord (Foo a b c)} ;;
-1 $m///// _:_ _forall_ [a] {Bar a} => a -> a -> PrelBase.Bool ;;
-1 $mmeth1 _:_ _forall_ [a] {Bar a} => a -> a -> PrelBase.Bool ;;
-1 $mmeth2 _:_ _forall_ [a] {Bar a} => _forall_ [b] => a -> b -> PrelBase.Bool ;;
-1 .... _:_ _forall_ [a b c] => a -> a -> Foo b a c ;;
-1 ..... _:_ _forall_ [a b c] => a -> a -> Foo b a c ;;
-1 <<<< _:_ _forall_ [a b c] => a -> a -> Foo b c a ;;
-1 class Bar r4q where {meth1 :: r4q -> r4q -> PrelBase.Bool; ///// :: r4q -> r4q -> PrelBase.Bool; meth2 :: _forall_ [r4w] => r4q -> r4w -> PrelBase.Bool} ;
-class {Bar r4n} => Bar2 r4n ;
-1 data Foo r4z r4A r4B = MkFoo1 r4z r4z |  :## r4A r4B |  MkFoo3 r4A r4A |  :*** r4B r4B ;
-1 f1 _:_ _forall_ [a b c] => a -> a -> Foo a b c ;;
-1 f1a _:_ _forall_ [a b c] => a -> a -> Foo a b c ;;
-1 f2 _:_ _forall_ [a b c] => a -> b -> Foo c a b ;;
-1 f2a _:_ _forall_ [a b c] => a -> b -> Foo c a b ;;
-1 f3a _:_ _forall_ [a] {Bar a} => a -> a -> PrelBase.Bool ;;
-1 f3b _:_ _forall_ [a] {Bar a} => a -> a -> PrelBase.Bool ;;
-1 f3c _:_ _forall_ [a] {Bar a} => a -> a -> PrelBase.Bool ;;
-1 f3d _:_ _forall_ [a] {Bar a} => a -> a -> PrelBase.Bool ;;
diff --git a/ghc/tests/printing/Print003.stderr b/ghc/tests/printing/Print003.stderr
deleted file mode 100644 (file)
index 7ad6eea..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-================================================================================
-Typechecked:
-{- nonrec -}
-bitRsh{-r3h,x-} =
-    _/\_ a{-r3f-} -> \ tpl_B1 ->
-       case tpl_B1 of { PrelTup.(,){-62,p-}{i} tpl_B1 tpl_B2  -> tpl_B1;}
-bitLsh{-r3g,x-} =
-    _/\_ a{-r3f-} -> \ tpl_B1 ->
-       case tpl_B1 of { PrelTup.(,){-62,p-}{i} tpl_B1 tpl_B2  -> tpl_B2;}
-{- nonrec -}
-AbsBinds
-[a{-anm-}]
-[d.Bits_anf]
-[([a{-anm-}], $mbitRsh{-rnw,x-}, bitRsh_anh)]
-    AbsBinds [] [] [([], bitRsh_anh, bitRsh_anj)]
-       bitRsh_anj
-           =   GHCerr.noDefaultMethodError{-8k,p-}
-                   (a{-anm-} -> PrelBase.Int{-3g,p-} -> a{-anm-})
-                   "Class Bits Method bitRsh"
-AbsBinds
-[a{-anm-}]
-[d.Bits_anp]
-[([a{-anm-}], $mbitLsh{-rnx,x-}, bitLsh_anr)]
-    AbsBinds [] [] [([], bitLsh_anr, bitLsh_ant)]
-       bitLsh_ant
-           =   GHCerr.noDefaultMethodError{-8k,p-}
-                   (a{-anm-} -> PrelBase.Int{-3g,p-} -> a{-anm-})
-                   "Class Bits Method bitLsh"
-{- nonrec -}
-ghc: module version changed to 1; reason: no old .hi file
-_interface_ Word 1
-_instance_modules_
-ArrBase IO PrelNum
-_exports_
-Word Bits(bitRsh bitLsh);
-_fixities_
-infixl 8 bitLsh;
-infixl 8 bitRsh;
-_declarations_
-1 $mbitLsh _:_ _forall_ [a] {Bits a} => a -> PrelBase.Int -> a ;;
-1 $mbitRsh _:_ _forall_ [a] {Bits a} => a -> PrelBase.Int -> a ;;
-1 class Bits r3f where {bitRsh :: r3f -> PrelBase.Int -> r3f; bitLsh :: r3f -> PrelBase.Int -> r3f} ;
diff --git a/ghc/tests/printing/Print004.stderr b/ghc/tests/printing/Print004.stderr
deleted file mode 100644 (file)
index be79adb..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-
-
-================================================================================
-Typechecked:
-{- nonrec -}
-{- nonrec -}
-Con{-r6v,l-}{i} =
-    _/\_ a{-r6C-} -> \ tpl_B1 ->
-       Con{-r6v,l-}{i}
-           {_@_ a{-r6C-} tpl_B1}
-{- nonrec -}
-Junk11{-r4,l-}{i} =
-    _/\_ a{-r6A-} ->
-       Junk11{-r4,l-}{i}
-           {_@_ a{-r6A-}}
-Junk2{-r3,l-}{i} =
-    _/\_ a{-r6A-} ->
-       Junk2{-r3,l-}{i}
-           {_@_ a{-r6A-}}
-{- rec -}
-AbsBinds [a{-aLt-}] [] [([a{-aLt-}], $d2{-rLv,x-}, d.Eval_aJU)]
-    d.Eval_aJU =
-       ({-dict-} [] [])
-{- rec -}
-AbsBinds [a{-aLu-}] [] [([a{-aLu-}], $d3{-rLD,x-}, d.Eval_aK0)]
-    d.Eval_aK0 =
-       ({-dict-} [] [])
-{- rec -}
-AbsBinds
-[a{-aKf-}]
-[d.Ord_aKF]
-[([a{-aKf-}], $d4{-rLE,x-}, d.Show_aK6)]
-    d.Ord_aKR =
-       d.Ord_aKF
-    d.Show_aKP =
-       $d1{-rLJ,x-}
-           a{-aKf-}
-           d.Ord_aKR
-    showsPrec_aLI =
-       PrelBase.showsPrec{-r5t,p-}
-           (FunnyInternalType{-r6u,l-} a{-aKf-})
-           d.Show_aKP
-    showsPrec_aLH =
-       showsPrec_aLG
-    AbsBinds [] [] [([], showsPrec_aLG, showsPrec_aK9)]
-       lit_aLK =
-           lit_aLA
-       showsPrec_aK9
-           a_rJ8 (Con{-r6v,l-}{i} b1_rJa)
-                   =   PrelBase.showParen{-r61,p-}
-                           a_rJ8 >=_aLC lit_aLA
-                           PrelBase..{-r6d,p-}
-                               [PrelBase.String{-r5q,p-}, PrelBase.String{-r5q,p-}, PrelBase.String{-r5q,p-}]
-                               PrelBase.showString{-r60,p-}
-                                   "Con "
-                               showsPrec_aLI
-                                   lit_aLK b1_rJa
-    AbsBinds [] [] [([], showList_aLF, showList_aKA)]
-       showList_aKA
-                   =   PrelBase.showList__{-r6F,p-}
-                           (OpaqueType{-r6,x-} a{-aKf-})
-                           showsPrec_aLH
-                               lit_aLw
-    d.Show_aK6 =
-       ({-dict-} [] [showsPrec_aLG, showList_aLF])
-{- rec -}
-AbsBinds
-[a{-aL6-}]
-[d.Ord_aLf]
-[([a{-aL6-}], $d1{-rLJ,x-}, d.Show_aKZ)]
-    d.Show_aLj =
-       d.Show_aKZ
-    $mshowsPrec_aLM =
-       PrelBase.$mshowsPrec{-rfh,p-}
-           (FunnyInternalType{-r6u,l-} a{-aL6-})
-           d.Show_aLj
-    d.Show_aLl =
-       d.Show_aKZ
-    $mshowList_aLL =
-       PrelBase.$mshowList{-rfg,p-}
-           (FunnyInternalType{-r6u,l-} a{-aL6-})
-           d.Show_aLl
-    AbsBinds [] [] [([], showsPrec_aL1, showsPrec_aL3)]
-       showsPrec_aL3
-           =   $mshowsPrec_aLM
-    AbsBinds [] [] [([], showList_aLa, showList_aLc)]
-       showList_aLc
-           =   $mshowList_aLL
-    d.Show_aKZ =
-       ({-dict-} [] [showsPrec_aL1, showList_aLa])
-{- nonrec -}
-d.Ord_aLo =
-    PrelBase.$d6{-reK,p-}
->=_aLC =
-    PrelBase.>={-8Z,p-}
-       PrelBase.Int{-3g,p-}
-       d.Ord_aLo
-d.Num_aLs =
-    PrelBase.$d3{-ref,p-}
-fromInt_aLB =
-    PrelBase.fromInt{-8R,p-}
-       PrelBase.Int{-3g,p-}
-       d.Num_aLs
-lit_aLA =
-    fromInt_aLB
-       PrelBase.I#{-5b,p-}{i}
-           10#
-fromInt_aLz =
-    fromInt_aLB
-lit_aLw =
-    fromInt_aLz
-       PrelBase.I#{-5b,p-}{i}
-           0#
-ghc: module version changed to 1; reason: no old .hi file
-_interface_ ExportOpaque 1
-_instance_modules_
-ArrBase IO PrelNum
-_usages_
-PrelBase 1 :: $d1 1 $d11 1 $d14 1 $d15 1 $d2 1 $d21 1 $d26 1 $d27 1 $d3 1 $d32 1 $d33 1 $d34 1 $d37 1 $d38 1 $d39 1 $d41 1 $d42 1 $d44 1 $d45 1 $d46 1 $d49 1 $d50 1 $d51 1 $d54 1 $d55 1 $d6 1 $d7 1 $d8 1 $m* 1 $m+ 1 $m- 1 $m/= 1 $m< 1 $m<= 1 $m== 1 $m> 1 $m>= 1 $mabs 1 $mcompare 1 $mfromInt 1 $mfromInteger 1 $mmax 1 $mmin 1 $mnegate 1 $mshowList 1 $mshowsPrec 1 $msignum 1 . 1 showList__ 1 showParen 1 showSpace 1 showString 1 Eq 1 Eval 1 Num 1 Ord 1 Ordering 1 Show 1 ShowS 1 String 1;
-PrelNum 1 :: $d10 1 $d16 1 $d17 1 $d18 1 $d29 1 $d33 1 $d34 1 $d35 1;
-_exports_
-ExportOpaque OpaqueType;
-_instances_
-instance _forall_ [a] {PrelBase.Ord a} => {PrelBase.Show (FunnyInternalType a)} = $d1;
-instance _forall_ [a] => {PrelBase.Eval (OpaqueType a)} = $d2;
-instance _forall_ [a] => {PrelBase.Eval (FunnyInternalType a)} = $d3;
-instance _forall_ [a] {PrelBase.Ord a} => {PrelBase.Show (OpaqueType a)} = $d4;
-_declarations_
-1 $d1 _:_ _forall_ [a] {PrelBase.Ord a} => {PrelBase.Show (FunnyInternalType a)} ;;
-1 $d2 _:_ _forall_ [a] => {PrelBase.Eval (OpaqueType a)} ;;
-1 $d3 _:_ _forall_ [a] => {PrelBase.Eval (FunnyInternalType a)} ;;
-1 $d4 _:_ _forall_ [a] {PrelBase.Ord a} => {PrelBase.Show (OpaqueType a)} ;;
-1 data FunnyInternalType r6A = Junk11 |  Junk2 ;
-1 data OpaqueType r6C = Con (FunnyInternalType r6C) ;
diff --git a/ghc/tests/printing/should_compile/Makefile b/ghc/tests/printing/should_compile/Makefile
new file mode 100644 (file)
index 0000000..48fc0b9
--- /dev/null
@@ -0,0 +1,10 @@
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/should_compile.mk
+
+HC_OPTS += -noC -ddump-tc -dcore-lint -hi
+
+print002_HC_OPTS = -fno-implicit-prelude -dppr-user -ddump-rdr
+
+include $(TOP)/mk/target.mk
+
diff --git a/ghc/tests/printing/should_compile/Print001.stderr b/ghc/tests/printing/should_compile/Print001.stderr
new file mode 100644 (file)
index 0000000..6ed7dd4
--- /dev/null
@@ -0,0 +1,64 @@
+
+
+================================================================================
+Typechecked:
+BarNil{-r8,x-}{i} = _/\_ a_tr4F -> BarNil{-r8,x-}{i} {_@_ a_tr4F}
+BarCon{-r7,x-}{i} =
+    _/\_ a_tr4F -> \ tpl_B1 tpl_B2 ->
+       BarCon{-r7,x-}{i} {_@_ a_tr4F tpl_B1 tpl_B2}
+MkFoo{-r4M,x-}{i} =
+    _/\_ d_tr4H e_tr4I f_tr4J -> \ tpl_B1 tpl_B2 tpl_B3 ->
+       MkFoo{-r4M,x-}{i}
+           {_@_ d_tr4H _@_ e_tr4I _@_ f_tr4J tpl_B1 tpl_B2 tpl_B3}
+AbsBinds [taYe, taYf] [] [([taYf, taYe], g{-r4w,x-}, g_aYb)]
+    g_aYb x_r4D = lit_aZr
+AbsBinds
+[taYt, taYu, taYv]
+[d.Eq_aYx, d.Ord_aYy, d.Ix_aYz]
+[([taYt, taYu, taYv], f2{-r4v,x-}, f2_aYq)]
+    f2_aYq x_r4B = x_r4B
+AbsBinds
+[taYK, taYL, taYM]
+[d.Eq_aYO]
+[([taYK, taYL, taYM], f{-r4u,x-}, f_aYH)]
+    f_aYH x_r4z = x_r4z
+AbsBinds
+[taYU, taYW, taYY]
+[]
+[([taYU, taYW, taYY], mkFoo{-r4x,x-}, mkFoo_aYQ)]
+    mkFoo_aYQ = MkFoo{-r4M,x-}{i} [taYU, taYW, taYY]
+AbsBinds [taZg] [] [([taZg], $d1{-rZn,x-}, d.Eval_aZ4)]
+    d.Eval_aZ4 = ({-dict-} [] [])
+AbsBinds
+[taZh, taZi, taZj]
+[]
+[([taZh, taZi, taZj], $d2{-rZp,x-}, d.Eval_aZc)]
+    d.Eval_aZc = ({-dict-} [] [])
+d.Fractional_aZf = PrelNum.$d23{-rES,p-}
+fromRational_aZq =
+    PrelNum.fromRational{-8T,p-} PrelBase.Float{-3c,W-}
+       d.Fractional_aZf
+lit_aZr = fromRational_aZq 2.0000000000000000
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ Print001 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+Ix 1 :: $d3 1 $d4 1 $d5 1 $d6 1 $d7 1 $d8 1 $d9 1 Ix 1;
+PrelBase 1 :: $d1 1 $d11 1 $d12 1 $d14 1 $d15 1 $d16 1 $d2 1 $d22 1 $d27 1 $d28 1 $d3 1 $d31 1 $d32 1 $d33 1 $d34 1 $d35 1 $d38 1 $d39 1 $d4 1 $d40 1 $d41 1 $d42 1 $d43 1 $d45 1 $d46 1 $d47 1 $d50 1 $d51 1 $d52 1 $d55 1 $d56 1 $d6 1 $d7 1 $d8 1 $d9 1 $m- 1 $m/= 1 $m< 1 $m<= 1 $m> 1 $m>= 1 $mcompare 1 $menumFromThenTo 1 $menumFromTo 1 $mfromInt 1 $mmax 1 $mmin 1 $mshowList 1 Enum 1 Eq 1 Eval 1 Num 1 Ord 1 Ordering 1 Show 1 String 1;
+PrelNum 1 :: $d1 1 $d10 1 $d14 1 $d15 1 $d16 1 $d17 1 $d18 1 $d19 1 $d2 1 $d23 1 $d24 1 $d25 1 $d26 1 $d27 1 $d28 1 $d29 1 $d30 1 $d31 1 $d32 1 $d33 1 $d34 1 $d35 1 $d36 1 $d37 1 $d38 1 $d39 1 $d4 1 $d5 1 $d6 1 $d7 1 $d8 1 $d9 1 $mdiv 1 $mdivMod 1 $mmod 1 $mquot 1 $mrecip 1 $mrem 1 Fractional 1 Integral 1 Ratio 1 Rational 1 Real 1;
+PrelTup 1 :: $d10 1 $d13 1 $d14 1 $d3 1 $d4 1 $d49 1 $d50 1 $d9 1;
+_exports_
+Print001 f f2 g mkFoo Bar(BarNil BarCon) Foo(MkFoo);
+_instances_
+instance _forall_ [a] => {PrelBase.Eval (Bar a)} = $d1;
+instance _forall_ [d e f] => {PrelBase.Eval (Foo d e f)} = $d2;
+_declarations_
+1 $d1 _:_ _forall_ [a] => {PrelBase.Eval (Bar a)} ;;
+1 $d2 _:_ _forall_ [d e f] => {PrelBase.Eval (Foo d e f)} ;;
+1 data Bar a = BarNil |  BarCon (Foo a a a) (Bar a) ;
+1 data Foo d e f = MkFoo [((d -> PrelBase.Int) -> d) -> e] (d -> e, e -> e) PrelBase.() ;
+1 f _:_ _forall_ [ta tb tc] {PrelBase.Eq ta} => (ta -> tb -> tc) -> ta -> tb -> tc ;;
+1 f2 _:_ _forall_ [ta tb tc] {PrelBase.Eq ta, PrelBase.Ord ta, Ix.Ix tc} => (ta -> tb -> tc) -> ta -> tb -> tc ;;
+1 g _:_ _forall_ [ta tb] => Foo PrelBase.Int (tb -> ta) (tb -> [(tb, PrelBase.Double, PrelBase.Int)]) -> PrelBase.Float ;;
+1 mkFoo _:_ _forall_ [ta tb tc] => [((ta -> PrelBase.Int) -> ta) -> tb] -> (ta -> tb, tb -> tb) -> PrelBase.() -> Foo ta tb tc ;;
diff --git a/ghc/tests/printing/should_compile/Print002.stderr b/ghc/tests/printing/should_compile/Print002.stderr
new file mode 100644 (file)
index 0000000..0847ddb
--- /dev/null
@@ -0,0 +1,300 @@
+
+
+================================================================================
+Typechecked:
+MkFoo1{-rk,x-}{i} =
+    _/\_ a_tr4k b_tr4l c_tr4m -> \ tpl_B1 tpl_B2 ->
+       MkFoo1{-rk,x-}{i} {_@_ a_tr4k _@_ b_tr4l _@_ c_tr4m tpl_B1 tpl_B2}
+:##{-rj,x-}{i} =
+    _/\_ a_tr4k b_tr4l c_tr4m -> \ tpl_B1 tpl_B2 ->
+       :##{-rj,x-}{i} {_@_ a_tr4k _@_ b_tr4l _@_ c_tr4m tpl_B1 tpl_B2}
+MkFoo3{-rm,x-}{i} =
+    _/\_ a_tr4k b_tr4l c_tr4m -> \ tpl_B1 tpl_B2 ->
+       MkFoo3{-rm,x-}{i} {_@_ a_tr4k _@_ b_tr4l _@_ c_tr4m tpl_B1 tpl_B2}
+:***{-ro,x-}{i} =
+    _/\_ a_tr4k b_tr4l c_tr4m -> \ tpl_B1 tpl_B2 ->
+       :***{-ro,x-}{i} {_@_ a_tr4k _@_ b_tr4l _@_ c_tr4m tpl_B1 tpl_B2}
+AbsBinds [taFI] [d.Bar_aFL] [([taFI], f3d{-r4o,x-}, f3d_aFv)]
+    /////_aQY = /////{-r4C,x-} taFI d.Bar_aFL
+    f3d_aFv x_r48 y_r49 = x_r48 /////_aQY y_r49
+AbsBinds [taG0] [d.Bar_aG3] [([taG0], f3c{-r4p,x-}, f3c_aFN)]
+    /////_aR3 = /////{-r4C,x-} taG0 d.Bar_aG3
+    f3c_aFN x_r45 y_r46 = /////_aR3 x_r45 y_r46
+AbsBinds [taGi] [d.Bar_aGl] [([taGi], f3b{-r4q,x-}, f3b_aG5)]
+    meth1_aR4 = meth1{-r4B,x-} taGi d.Bar_aGl
+    f3b_aG5 x_r42 y_r43 = x_r42 meth1_aR4 y_r43
+AbsBinds [taGA] [d.Bar_aGD] [([taGA], f3a{-r4r,x-}, f3a_aGn)]
+    meth1_aR5 = meth1{-r4B,x-} taGA d.Bar_aGD
+    f3a_aGn x_r3Z y_r40 = meth1_aR5 x_r3Z y_r40
+AbsBinds
+[taH3, taH5, taH7]
+[]
+[([taH3, taH5, taH7], <<<<{-r4s,x-}, <<<<_aGF)]
+    <<<<_aGF x_r3T y_r3U
+            = :***{-ro,x-}{i} [taH3, taH5, taH7] x_r3T y_r3U
+    <<<<_aGF x_r3W y_r3X
+            = :***{-ro,x-}{i} [taH3, taH5, taH7] x_r3W y_r3X
+AbsBinds
+[taHn, taHp, taHr]
+[]
+[([taHn, taHp, taHr], .....{-r4t,x-}, ....._aH9)]
+    ....._aH9 x_r3Q y_r3R
+             = MkFoo3{-rm,x-}{i} [taHn, taHp, taHr] x_r3Q y_r3R
+AbsBinds
+[taHH, taHJ, taHL]
+[]
+[([taHH, taHJ, taHL], ....{-r4u,x-}, ...._aHt)]
+    ...._aHt x_r3N y_r3O
+            = MkFoo3{-rm,x-}{i} [taHH, taHJ, taHL] x_r3N y_r3O
+AbsBinds
+[taI1, taI3, taI5]
+[]
+[([taI1, taI3, taI5], f2a{-r4v,x-}, f2a_aHN)]
+    f2a_aHN x_r3K y_r3L = :##{-rj,x-}{i} [taI1, taI3, taI5] x_r3K y_r3L
+AbsBinds
+[taIl, taIn, taIp]
+[]
+[([taIl, taIn, taIp], f2{-r4w,x-}, f2_aI7)]
+    f2_aI7 x_r3H y_r3I = :##{-rj,x-}{i} [taIl, taIn, taIp] x_r3H y_r3I
+AbsBinds
+[taIF, taIH, taIJ]
+[]
+[([taIF, taIH, taIJ], f1a{-r4x,x-}, f1a_aIr)]
+    f1a_aIr x_r3E y_r3F
+           = MkFoo1{-rk,x-}{i} [taIF, taIH, taIJ] x_r3E y_r3F
+AbsBinds
+[taIZ, taJ1, taJ3]
+[]
+[([taIZ, taJ1, taJ3], f1{-r4y,x-}, f1_aIL)]
+    f1_aIL x_r3B y_r3C
+          = MkFoo1{-rk,x-}{i} [taIZ, taJ1, taJ3] x_r3B y_r3C
+AbsBinds
+[taJJ, taJM, taJN]
+[]
+[([taJJ, taJM, taJN], con2tag_Foo#_rCX, con2tag_Foo#_aJ5)]
+    con2tag_Foo#_aJ5 (MkFoo1{-rk,x-}{i} _ _) = 0#
+    con2tag_Foo#_aJ5 (:##{-rj,x-}{i} _ _) = 1#
+    con2tag_Foo#_aJ5 (MkFoo3{-rm,x-}{i} _ _) = 2#
+    con2tag_Foo#_aJ5 (:***{-ro,x-}{i} _ _) = 3#
+AbsBinds
+[taK6, taK9, taKc]
+[d.Eq_aLY, d.Eq_aLZ, d.Eq_aM0]
+[([taK6, taK9, taKc], $d1{-rQZ,x-}, d.Eq_aJV)]
+    d.Eq_aM4 = d.Eq_aLY
+    ==_aR6 = PrelBase.=={-8Y,p-} taK6 d.Eq_aM4
+    d.Eq_aM6 = d.Eq_aLZ
+    ==_aR7 = PrelBase.=={-8Y,p-} taK9 d.Eq_aM6
+    d.Eq_aM8 = d.Eq_aM0
+    ==_aR8 = PrelBase.=={-8Y,p-} taKc d.Eq_aM8
+    ==_aR9 = ==_aRa
+    AbsBinds [] [] [([], ==_aRa, ==_aJZ)]
+       ==_aRc = ==_aR6
+       ==_aRd = ==_aR7
+       ==_aRe = ==_aR7
+       ==_aRf = ==_aR8
+       ==_aRg = ==_aR8
+       ==_aJZ (MkFoo1{-rk,x-}{i} a1_rD6 a2_rD7)
+              (MkFoo1{-rk,x-}{i} b1_rD8 b2_rD9)
+              = (a1_rD6 ==_aR6 b1_rD8)
+                PrelBase.&&{-rgs,p-} (a2_rD7 ==_aRc b2_rD9)
+       ==_aJZ (:##{-rj,x-}{i} a1_rDb a2_rDc)
+              (:##{-rj,x-}{i} b1_rDd b2_rDe)
+              = (a1_rDb ==_aR7 b1_rDd)
+                PrelBase.&&{-rgs,p-} (a2_rDc ==_aR8 b2_rDe)
+       ==_aJZ (MkFoo3{-rm,x-}{i} a1_rDg a2_rDh)
+              (MkFoo3{-rm,x-}{i} b1_rDi b2_rDj)
+              = (a1_rDg ==_aRd b1_rDi)
+                PrelBase.&&{-rgs,p-} (a2_rDh ==_aRe b2_rDj)
+       ==_aJZ (:***{-ro,x-}{i} a1_rDl a2_rDm)
+              (:***{-ro,x-}{i} b1_rDn b2_rDo)
+              = (a1_rDl ==_aRf b1_rDn)
+                PrelBase.&&{-rgs,p-} (a2_rDm ==_aRg b2_rDo)
+       ==_aJZ a_rDq b_rDr = PrelBase.False{-58,w-}{i}
+    AbsBinds [] [] [([], /=_aRb, /=_aLR)]
+       /=_aLR a_rDv b_rDw = PrelBase.not{-rhq,p-} ==_aR9 a_rDv b_rDw
+    d.Eq_aJV = ({-dict-} [] [==_aRa, /=_aRb])
+AbsBinds
+[taQT, taQU, taQV]
+[]
+[([taQT, taQU, taQV], $d2{-rR0,x-}, d.Eval_aMj)]
+    d.Eval_aMj = ({-dict-} [] [])
+AbsBinds
+[taMy, taMz, taMA]
+[d.Ord_aQx, d.Ord_aQy, d.Ord_aQz, d.Eq_aQA]
+[([taMy, taMz, taMA], $d3{-rR1,x-}, d.Ord_aMr)]
+    d.Eq_aQw = d.Eq_aQA
+    d.Ord_aPe = d.Ord_aQx
+    d.Ord_aPf = d.Ord_aQy
+    d.Ord_aPg = d.Ord_aQz
+    compare_aRh = compare_aRn
+    compare_aRi = compare_aRn
+    compare_aRj = compare_aRn
+    compare_aRk = compare_aRn
+    compare_aRl = compare_aRn
+    compare_aRm = compare_aRn
+    AbsBinds [] [] [([], compare_aRn, compare_aMv)]
+       compare_aMv a_rEo b_rEp
+                   = case con2tag_Foo#_rCX [taMA, taMy, taMz] a_rEo of
+                       a#_rFc
+                       -> case con2tag_Foo#_rCX [taMA, taMy, taMz] b_rEp of
+                            b#_rFe
+                            -> if a#_rFc GHC.==#{-79,w-}{I} b#_rFe then
+                                   case cmp_eq_aRu a_rEo b_rEp of
+                                     PrelBase.LT{-rb5,p-}{i} -> PrelBase.LT{-rb5,p-}{i}
+                                     PrelBase.EQ{-r4n,p-}{i} -> PrelBase.EQ{-r4n,p-}{i}
+                                     PrelBase.GT{-rb6,p-}{i} -> PrelBase.GT{-rb6,p-}{i}
+                               else
+                                   if a#_rFc GHC.<#{-7b,w-}{I} b#_rFe then
+                                       PrelBase.LT{-rb5,p-}{i}
+                                   else
+                                       PrelBase.GT{-rb6,p-}{i}
+                   where
+                       {- nonrec -}
+                       AbsBinds
+                       [taOq, taOr, taOy]
+                       [d.Ord_aOG, d.Ord_aOI, d.Ord_aOK]
+                       [([taOq, taOr, taOy], cmp_eq_rEr, cmp_eq_aME)]
+                           compare_aRv = PrelBase.compare{-rgH,p-} taOq d.Ord_aOG
+                           compare_aRw = compare_aRv
+                           compare_aRx = PrelBase.compare{-rgH,p-} taOr d.Ord_aOI
+                           compare_aRy = PrelBase.compare{-rgH,p-} taOy d.Ord_aOK
+                           compare_aRz = compare_aRx
+                           compare_aRA = compare_aRx
+                           compare_aRB = compare_aRy
+                           compare_aRC = compare_aRy
+                           cmp_eq_aME (MkFoo1{-rk,x-}{i} a1_rEt a2_rEu)
+                                      (MkFoo1{-rk,x-}{i} b1_rEv b2_rEw)
+                                      = case compare_aRv a1_rEt b1_rEv of
+                                          PrelBase.LT{-rb5,p-}{i} -> PrelBase.LT{-rb5,p-}{i}
+                                          PrelBase.EQ{-r4n,p-}{i}
+                                          -> case compare_aRw a2_rEu b2_rEw of
+                                               PrelBase.LT{-rb5,p-}{i} -> PrelBase.LT{-rb5,p-}{i}
+                                               PrelBase.EQ{-r4n,p-}{i} -> PrelBase.EQ{-r4n,p-}{i}
+                                               PrelBase.GT{-rb6,p-}{i} -> PrelBase.GT{-rb6,p-}{i}
+                                          PrelBase.GT{-rb6,p-}{i} -> PrelBase.GT{-rb6,p-}{i}
+                           cmp_eq_aME (:##{-rj,x-}{i} a1_rEE a2_rEF)
+                                      (:##{-rj,x-}{i} b1_rEG b2_rEH)
+                                      = case compare_aRx a1_rEE b1_rEG of
+                                          PrelBase.LT{-rb5,p-}{i} -> PrelBase.LT{-rb5,p-}{i}
+                                          PrelBase.EQ{-r4n,p-}{i}
+                                          -> case compare_aRy a2_rEF b2_rEH of
+                                               PrelBase.LT{-rb5,p-}{i} -> PrelBase.LT{-rb5,p-}{i}
+                                               PrelBase.EQ{-r4n,p-}{i} -> PrelBase.EQ{-r4n,p-}{i}
+                                               PrelBase.GT{-rb6,p-}{i} -> PrelBase.GT{-rb6,p-}{i}
+                                          PrelBase.GT{-rb6,p-}{i} -> PrelBase.GT{-rb6,p-}{i}
+                           cmp_eq_aME (MkFoo3{-rm,x-}{i} a1_rEP a2_rEQ)
+                                      (MkFoo3{-rm,x-}{i} b1_rER b2_rES)
+                                      = case compare_aRz a1_rEP b1_rER of
+                                          PrelBase.LT{-rb5,p-}{i} -> PrelBase.LT{-rb5,p-}{i}
+                                          PrelBase.EQ{-r4n,p-}{i}
+                                          -> case compare_aRA a2_rEQ b2_rES of
+                                               PrelBase.LT{-rb5,p-}{i} -> PrelBase.LT{-rb5,p-}{i}
+                                               PrelBase.EQ{-r4n,p-}{i} -> PrelBase.EQ{-r4n,p-}{i}
+                                               PrelBase.GT{-rb6,p-}{i} -> PrelBase.GT{-rb6,p-}{i}
+                                          PrelBase.GT{-rb6,p-}{i} -> PrelBase.GT{-rb6,p-}{i}
+                           cmp_eq_aME (:***{-ro,x-}{i} a1_rF0 a2_rF1)
+                                      (:***{-ro,x-}{i} b1_rF2 b2_rF3)
+                                      = case compare_aRB a1_rF0 b1_rF2 of
+                                          PrelBase.LT{-rb5,p-}{i} -> PrelBase.LT{-rb5,p-}{i}
+                                          PrelBase.EQ{-r4n,p-}{i}
+                                          -> case compare_aRC a2_rF1 b2_rF3 of
+                                               PrelBase.LT{-rb5,p-}{i} -> PrelBase.LT{-rb5,p-}{i}
+                                               PrelBase.EQ{-r4n,p-}{i} -> PrelBase.EQ{-r4n,p-}{i}
+                                               PrelBase.GT{-rb6,p-}{i} -> PrelBase.GT{-rb6,p-}{i}
+                                          PrelBase.GT{-rb6,p-}{i} -> PrelBase.GT{-rb6,p-}{i}
+                           cmp_eq_aME _ _
+                                      = IOBase.error{-87,w-}
+                                            PrelBase.Ordering{-3o,p-} "Urk! in TcGenDeriv"
+                       {- nonrec -}
+                       cmp_eq_aRu =
+                           cmp_eq_rEr [taMy, taMz, taMA] [d.Ord_aPe, d.Ord_aPf, d.Ord_aPg]
+                       {- nonrec -}
+    AbsBinds [] [] [([], <_aRo, <_aPl)]
+       <_aPl a_rDC b_rDD
+             = case compare_aRh a_rDC b_rDD of
+                 PrelBase.LT{-rb5,p-}{i} -> PrelBase.True{-5E,w-}{i}
+                 PrelBase.EQ{-r4n,p-}{i} -> PrelBase.False{-58,w-}{i}
+                 PrelBase.GT{-rb6,p-}{i} -> PrelBase.False{-58,w-}{i}
+    AbsBinds [] [] [([], <=_aRp, <=_aPy)]
+       <=_aPy a_rDK b_rDL
+              = case compare_aRi a_rDK b_rDL of
+                  PrelBase.LT{-rb5,p-}{i} -> PrelBase.True{-5E,w-}{i}
+                  PrelBase.EQ{-r4n,p-}{i} -> PrelBase.True{-5E,w-}{i}
+                  PrelBase.GT{-rb6,p-}{i} -> PrelBase.False{-58,w-}{i}
+    AbsBinds [] [] [([], >=_aRq, >=_aPL)]
+       >=_aPL a_rDS b_rDT
+              = case compare_aRj a_rDS b_rDT of
+                  PrelBase.LT{-rb5,p-}{i} -> PrelBase.False{-58,w-}{i}
+                  PrelBase.EQ{-r4n,p-}{i} -> PrelBase.True{-5E,w-}{i}
+                  PrelBase.GT{-rb6,p-}{i} -> PrelBase.True{-5E,w-}{i}
+    AbsBinds [] [] [([], >_aRr, >_aPY)]
+       >_aPY a_rE0 b_rE1
+             = case compare_aRk a_rE0 b_rE1 of
+                 PrelBase.LT{-rb5,p-}{i} -> PrelBase.False{-58,w-}{i}
+                 PrelBase.EQ{-r4n,p-}{i} -> PrelBase.False{-58,w-}{i}
+                 PrelBase.GT{-rb6,p-}{i} -> PrelBase.True{-5E,w-}{i}
+    AbsBinds [] [] [([], max_aRs, max_aQb)]
+       max_aQb a_rE8 b_rE9
+               = case compare_aRl a_rE8 b_rE9 of
+                   PrelBase.LT{-rb5,p-}{i} -> b_rE9
+                   PrelBase.EQ{-r4n,p-}{i} -> a_rE8
+                   PrelBase.GT{-rb6,p-}{i} -> a_rE8
+    AbsBinds [] [] [([], min_aRt, min_aQo)]
+       min_aQo a_rEg b_rEh
+               = case compare_aRm a_rEg b_rEh of
+                   PrelBase.LT{-rb5,p-}{i} -> a_rEg
+                   PrelBase.EQ{-r4n,p-}{i} -> b_rEh
+                   PrelBase.GT{-rb6,p-}{i} -> b_rEh
+    d.Ord_aMr =
+       ({-dict-}
+        [d.Eq_aQw]
+        [compare_aRn, <_aRo, <=_aRp, >=_aRq, >_aRr, max_aRs, min_aRt])
+scsel_Bar2Print002Bar{-aR2,x-} = _/\_ t12 -> \ tpl_B1 -> tpl_B1
+AbsBinds [taQW] [d.Bar2_aQP] []
+meth1{-r4B,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,,){-63,w-}{i} tpl_B1 tpl_B2 tpl_B3  ->
+       tpl_B1;}
+/////{-r4C,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,,){-63,w-}{i} tpl_B1 tpl_B2 tpl_B3  ->
+       tpl_B2;}
+meth2{-r4D,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,,){-63,w-}{i} tpl_B1 tpl_B2 tpl_B3  ->
+       tpl_B3;}
+AbsBinds [taQX] [d.Bar_aQS] []
+Print002.hs:35: 
+    Warning: Pattern match(es) completely overlapped
+       in the definition of function `<<<<'
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ Print002 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d15 1 $d16 1 $d2 1 $d33 1 $d35 1 $d38 1 $d40 1 $d42 1 $d46 1 $d47 1 $d50 1 $d52 1 $d7 1 $d8 1 $m/= 1 $m< 1 $m<= 1 $m> 1 $m>= 1 $mcompare 1 $mmax 1 $mmin 1 && 1 . 1 not 1 Eq 1 Eval 1 Ord 1 Ordering 1;
+PrelNum 1 :: $d17 1 $d18 1;
+_exports_
+Print002 .... ..... <<<< f1 f1a f2 f2a f3a f3b f3c f3d Bar(meth1 ///// meth2) Bar2 Foo(MkFoo1 :## MkFoo3 :***);
+_instances_
+instance _forall_ [a b c] {PrelBase.Eq a, PrelBase.Eq b, PrelBase.Eq c} => {PrelBase.Eq (Foo a b c)} = $d1;
+instance _forall_ [a b c] => {PrelBase.Eval (Foo a b c)} = $d2;
+instance _forall_ [a b c] {PrelBase.Ord a, PrelBase.Ord b, PrelBase.Ord c} => {PrelBase.Ord (Foo a b c)} = $d3;
+_declarations_
+1 $d1 _:_ _forall_ [a b c] {PrelBase.Eq a, PrelBase.Eq b, PrelBase.Eq c} => {PrelBase.Eq (Foo a b c)} ;;
+1 $d2 _:_ _forall_ [a b c] => {PrelBase.Eval (Foo a b c)} ;;
+1 $d3 _:_ _forall_ [a b c] {PrelBase.Ord a, PrelBase.Ord b, PrelBase.Ord c, PrelBase.Eq (Foo a b c)} => {PrelBase.Ord (Foo a b c)} ;;
+1 .... _:_ _forall_ [ta tb tc] => tb -> tb -> Foo ta tb tc ;;
+1 ..... _:_ _forall_ [ta tb tc] => tb -> tb -> Foo ta tb tc ;;
+1 <<<< _:_ _forall_ [ta tb tc] => tc -> tc -> Foo ta tb tc ;;
+1 class Bar a where {meth1 :: a -> a -> PrelBase.Bool; ///// :: a -> a -> PrelBase.Bool; meth2 :: _forall_ [b] => a -> b -> PrelBase.Bool} ;
+1 class {Bar a} => Bar2 a ;
+1 data Foo a b c = MkFoo1 a a |  :## b c |  MkFoo3 b b |  :*** c c ;
+1 f1 _:_ _forall_ [ta tb tc] => ta -> ta -> Foo ta tb tc ;;
+1 f1a _:_ _forall_ [ta tb tc] => ta -> ta -> Foo ta tb tc ;;
+1 f2 _:_ _forall_ [ta tb tc] => tb -> tc -> Foo ta tb tc ;;
+1 f2a _:_ _forall_ [ta tb tc] => tb -> tc -> Foo ta tb tc ;;
+1 f3a _:_ _forall_ [ta] {Bar ta} => ta -> ta -> PrelBase.Bool ;;
+1 f3b _:_ _forall_ [ta] {Bar ta} => ta -> ta -> PrelBase.Bool ;;
+1 f3c _:_ _forall_ [ta] {Bar ta} => ta -> ta -> PrelBase.Bool ;;
+1 f3d _:_ _forall_ [ta] {Bar ta} => ta -> ta -> PrelBase.Bool ;;
diff --git a/ghc/tests/printing/should_compile/Print003.stderr b/ghc/tests/printing/should_compile/Print003.stderr
new file mode 100644 (file)
index 0000000..aa767cc
--- /dev/null
@@ -0,0 +1,22 @@
+
+
+================================================================================
+Typechecked:
+bitRsh{-r3h,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B1;}
+bitLsh{-r3i,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B2;}
+AbsBinds [takE] [d.Bits_akD] []
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ Word 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+Word Bits(bitRsh bitLsh);
+_fixities_
+infixl 8 bitLsh;
+infixl 8 bitRsh;
+_declarations_
+1 class Bits a where {bitRsh :: a -> PrelBase.Int -> a; bitLsh :: a -> PrelBase.Int -> a} ;
diff --git a/ghc/tests/printing/should_compile/Print004.stderr b/ghc/tests/printing/should_compile/Print004.stderr
new file mode 100644 (file)
index 0000000..5eb6c1e
--- /dev/null
@@ -0,0 +1,72 @@
+Print004.hs:18: No explicit method nor default method for `PrelBase.showsPrec'
+               in an instance declaration for `PrelBase.Show'
+
+
+================================================================================
+Typechecked:
+Con{-r6u,l-}{i} =
+    _/\_ a_tr6C -> \ tpl_B1 -> Con{-r6u,l-}{i} {_@_ a_tr6C tpl_B1}
+Junk11{-r4,l-}{i} = _/\_ a_tr6A -> Junk11{-r4,l-}{i} {_@_ a_tr6A}
+Junk2{-r3,l-}{i} = _/\_ a_tr6A -> Junk2{-r3,l-}{i} {_@_ a_tr6A}
+AbsBinds [taFM] [] [([taFM], $d2{-rFO,x-}, d.Eval_aEr)]
+    d.Eval_aEr = ({-dict-} [] [])
+AbsBinds [taFN] [] [([taFN], $d3{-rFP,x-}, d.Eval_aEx)]
+    d.Eval_aEx = ({-dict-} [] [])
+AbsBinds [taEN] [d.Ord_aF8] [([taEN], $d4{-rFQ,x-}, d.Show_aED)]
+    d.Ord_aFg = d.Ord_aF8
+    d.Show_aFe = $d1{-rFR,x-} taEN d.Ord_aFg
+    showsPrec_aFU =
+       PrelBase.showsPrec{-r2c,p-} (FunnyInternalType{-r6v,l-} taEN)
+           d.Show_aFe
+    showsPrec_aFV = showsPrec_aFW
+    AbsBinds [] [] [([], showsPrec_aFW, showsPrec_aEH)]
+       showsPrec_aEH a_rDK (Con{-r6u,l-}{i} b1_rDL)
+                     = PrelBase.showParen{-r16,p-} a_rDK >=_aFS lit_aFT
+                                                   PrelBase..{-rI,p-}
+                                                       [PrelBase.String{-r2i,p-}, PrelBase.String{-r2i,p-}, PrelBase.String{-r2i,p-}] PrelBase.showString{-r18,p-} "Con "
+                                                                                                                                      showsPrec_aFU PrelBase.I#{-5b,w-}{i} 10#
+                                                                                                                                                    b1_rDL
+    AbsBinds [] [] [([], showList_aFX, showList_aF3)]
+       showList_aF3 = PrelBase.showList__{-r6F,p-}
+                          (OpaqueType{-r6,x-} taEN) showsPrec_aFV PrelBase.I#{-5b,w-}{i} 0#
+    d.Show_aED = ({-dict-} [] [showsPrec_aFW, showList_aFX])
+AbsBinds [taFv] [d.Ord_aFE] [([taFv], $d1{-rFR,x-}, d.Show_aFn)]
+    d.Show_aFI = d.Show_aFn
+    $mshowList_aFY =
+       PrelBase.$mshowList{-rif,p-} (FunnyInternalType{-r6v,l-} taFv)
+           d.Show_aFI
+    AbsBinds [] [] [([], showsPrec_aFZ, showsPrec_aFs)]
+       showsPrec_aFs
+           = GHCerr.noDefaultMethodError{-8k,w-}
+                 (PrelBase.Int{-3g,W-}
+                  -> FunnyInternalType{-r6v,l-} taFv
+                  -> PrelBase.String{-r2i,p-}
+                  -> PrelBase.String{-r2i,p-}) "<NoSrcLoc>|PrelBase.showsPrec"
+    AbsBinds [] [] [([], showList_aG0, showList_aFB)]
+       showList_aFB = $mshowList_aFY
+    d.Show_aFn = ({-dict-} [] [showsPrec_aFZ, showList_aG0])
+d.Ord_aFL = PrelBase.$d7{-rdY,p-}
+>=_aFS = PrelBase.>={-8Z,p-} PrelBase.Int{-3g,W-} d.Ord_aFL
+lit_aFT = PrelBase.I#{-5b,w-}{i} 10#
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ExportOpaque 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d15 1 $d16 1 $d2 1 $d22 1 $d27 1 $d28 1 $d3 1 $d33 1 $d34 1 $d35 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d46 1 $d47 1 $d50 1 $d51 1 $d52 1 $d55 1 $d56 1 $d7 1 $d8 1 $d9 1 $m- 1 $m/= 1 $m< 1 $m<= 1 $m> 1 $m>= 1 $mcompare 1 $mfromInt 1 $mmax 1 $mmin 1 $mshowList 1 . 1 showList__ 1 showParen 1 showSpace 1 showString 1 Eq 1 Eval 1 Num 1 Ord 1 Ordering 1 Show 1 ShowS 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d17 1 $d18 1 $d29 1 $d33 1 $d34 1 $d35 1;
+_exports_
+ExportOpaque OpaqueType;
+_instances_
+instance _forall_ [a] {PrelBase.Ord a} => {PrelBase.Show (FunnyInternalType a)} = $d1;
+instance _forall_ [a] => {PrelBase.Eval (OpaqueType a)} = $d2;
+instance _forall_ [a] => {PrelBase.Eval (FunnyInternalType a)} = $d3;
+instance _forall_ [a] {PrelBase.Ord a} => {PrelBase.Show (OpaqueType a)} = $d4;
+_declarations_
+1 $d1 _:_ _forall_ [a] {PrelBase.Ord a} => {PrelBase.Show (FunnyInternalType a)} ;;
+1 $d2 _:_ _forall_ [a] => {PrelBase.Eval (OpaqueType a)} ;;
+1 $d3 _:_ _forall_ [a] => {PrelBase.Eval (FunnyInternalType a)} ;;
+1 $d4 _:_ _forall_ [a] {PrelBase.Ord a} => {PrelBase.Show (OpaqueType a)} ;;
+1 data FunnyInternalType a = Junk11 |  Junk2 ;
+1 data OpaqueType a = Con (FunnyInternalType a) ;
index de6e7e0..39dc227 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 all :: runtest
index 8d16d44..2a57051 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ..
+TOP = .
 include $(TOP)/mk/boilerplate.mk
 
 NOT_THESE = Makefile ipoole_spec_class areid_pass
index de6e7e0..39dc227 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 all :: runtest
index 9e09011..2ac9f14 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 SRC_HC_OPTS += -cpp
index 5b9af21..c85f52d 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 SRC_HC_OPTS += -fglasgow-exts
index de6e7e0..39dc227 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 all :: runtest
index de6e7e0..39dc227 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 all :: runtest
index 5b9af21..c85f52d 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 SRC_HC_OPTS += -fglasgow-exts
index fc4b455..4e94ecb 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 SRC_RUNTEST_OPTS += test_data 
index c28f624..5e846e0 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 SRC_HC_OPTS += -cpp -syslib hbc
index 5b9af21..c85f52d 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 SRC_HC_OPTS += -fglasgow-exts
index de6e7e0..39dc227 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 all :: runtest
index de6e7e0..39dc227 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 all :: runtest
index a62acb1..fa26d65 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 SRC_HC_OPTS += -cpp
index de6e7e0..39dc227 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 all :: runtest
index de6e7e0..39dc227 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 all :: runtest
index de6e7e0..39dc227 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 all :: runtest
index de6e7e0..39dc227 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 all :: runtest
index de6e7e0..39dc227 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 all :: runtest
index de6e7e0..39dc227 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 all :: runtest
index de6e7e0..39dc227 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 all :: runtest
index de6e7e0..39dc227 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 all :: runtest
index de6e7e0..39dc227 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 all :: runtest
index 2c16a81..cc14abc 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 SRC_RUNTEST_OPTS += -prescript ./life.test
index de6e7e0..39dc227 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 all :: runtest
index de6e7e0..39dc227 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 all :: runtest
index de6e7e0..39dc227 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 all :: runtest
index de6e7e0..39dc227 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 all :: runtest
index de6e7e0..39dc227 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 all :: runtest
index de6e7e0..39dc227 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 all :: runtest
index de6e7e0..39dc227 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 all :: runtest
index de6e7e0..39dc227 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 all :: runtest
index 5b9af21..c85f52d 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
 
 SRC_HC_OPTS += -fglasgow-exts
diff --git a/ghc/tests/reader/Makefile b/ghc/tests/reader/Makefile
new file mode 100644 (file)
index 0000000..af26578
--- /dev/null
@@ -0,0 +1,7 @@
+TOP = ..
+include $(TOP)/mk/boilerplate.mk
+
+SUBDIRS = should_compile should_fail
+
+include $(TOP)/mk/target.mk
+
index fe5fca9..4aebe1d 100644 (file)
@@ -1,22 +1,9 @@
-TOP = ../../..
+TOP = ../..
 include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/should_compile.mk
 
+HC_OPTS += -noC -dcore-lint -ddump-rdr
 
-HS_SRCS = $(wildcard *.hs)
-SRC_RUNTEST_OPTS += -accept-output -o1 $*.stdout -o2 $*.stderr -x 1
-HC_OPTS += -noC -dcore-lint
-
-read002_RUNTEST_OPTS = -x 0
-
-%.o : %.hs
-
-%.o : %.hs
-       $(RUNTEST) $(HC) $(RUNTEST_OPTS) $(HC_OPTS) -c $< -o $@ -osuf $(subst .,,$(suffix $@)) 
-
-all :: $(HS_OBJS)
-
-read001_HC_OPTS = -noC -ddump-rdr
-read002_HC_OPTS = -noC -ddump-rdr
-read004_HC_OPTS = -noC -fno-implicit-prelude -ddump-rdr
+read004_HC_OPTS = -fno-implicit-prelude
 
 include $(TOP)/mk/target.mk
diff --git a/ghc/tests/reader/should_compile/expr001.stderr b/ghc/tests/reader/should_compile/expr001.stderr
deleted file mode 100644 (file)
index 3701c35..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-expr001.hs:10:
-    Value not in scope: `c'
-
-
-Compilation had errors
diff --git a/ghc/tests/reader/should_compile/read001.stderr b/ghc/tests/reader/should_compile/read001.stderr
deleted file mode 100644 (file)
index 4a188c3..0000000
+++ /dev/null
@@ -1 +0,0 @@
-read001.hs:13:9: parse error on input: "OneC.."
index aeb88ae..22f8581 100644 (file)
@@ -8,9 +8,7 @@ infixr 2 \\\
 infix 3 :==>
 infix 4 MkFoo
 {- rec -}
-\\\ ::
-    _forall_ [] {Eq a} => [a] -> [a] -> [a]
-f   x y     =   x
-\\\ xs ys   =   xs
-data Foo =
-    MkFoo Int | Float :==> Double
+\\\ :: _forall_ [] (Eq a) => [a] -> [a] -> [a]
+f x y = x
+\\\ xs ys = xs
+data Foo = MkFoo Int | Float :==> Double
diff --git a/ghc/tests/reader/should_compile/read003.stderr b/ghc/tests/reader/should_compile/read003.stderr
deleted file mode 100644 (file)
index 9a2e662..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-read003.hs:8: Cannot construct the infinite type (occur check)
-                 `t{-aK8-}' = `(t{-aK8-}, t{-aKb-}, t{-aKe-})'
-    Expected: `(t{-aK8-}, [a{-aKm-}], [a{-aKo-}])'
-    Inferred: `t{-aK8-}'
-    In a pattern binding:
-       ~(`a', `b', `c')
-           | [`nullity
-                   b'] =
-               `a'
-           | [`nullity
-                   c'] =
-               `a'
-           | [`PrelBase.otherwise'] =
-               `a'
-           where
-               `nullity'
-                   =   `PrelList.null'
-
-
-Compilation had errors
diff --git a/ghc/tests/reader/should_compile/read005.stderr b/ghc/tests/reader/should_compile/read005.stderr
new file mode 100644 (file)
index 0000000..09fd145
--- /dev/null
@@ -0,0 +1,7 @@
+
+
+================================================================================
+Reader:
+module Main where
+{- rec -}
+main = print "Hello"
diff --git a/ghc/tests/reader/should_fail/Makefile b/ghc/tests/reader/should_fail/Makefile
new file mode 100644 (file)
index 0000000..73fc3ff
--- /dev/null
@@ -0,0 +1,7 @@
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/should_fail.mk
+
+HC_OPTS += -noC -ddump-rdr
+
+include $(TOP)/mk/target.mk
diff --git a/ghc/tests/reader/should_fail/expr001.stderr b/ghc/tests/reader/should_fail/expr001.stderr
new file mode 100644 (file)
index 0000000..3d44bd2
--- /dev/null
@@ -0,0 +1,13 @@
+
+
+================================================================================
+Reader:
+module Main where
+{- rec -}
+f x = x + (if c then 1 else 2)
+f x = x + 1 :: Int
+expr001.hs:10: Value not in scope: `c'
+
+
+Compilation had errors
similarity index 93%
rename from ghc/tests/reader/should_compile/read001.hs
rename to ghc/tests/reader/should_fail/read001.hs
index dc434eb..cc188fd 100644 (file)
@@ -10,14 +10,14 @@ module OneOfEverything (
        EqTree(EqLeaf, EqBranch),
        EqClass(..),
        OrdClass(orda, ordb),
-       OneC.. ,
-       OneOfEverything..
+       module OneC ,
+       module OneOfEverything
     ) where
 
-import OneA renaming   ( fA to renamedA )
+import qualified OneA 
 import OneB            ( fB )
 import OneC hiding     ( fC )
-import OneC hiding     ( fC ) renaming ( fc to renamedC )
+import OneC hiding     ( fC )
 
 -- HsDecls stuff
 
diff --git a/ghc/tests/reader/should_fail/read001.stderr b/ghc/tests/reader/should_fail/read001.stderr
new file mode 100644 (file)
index 0000000..b036121
--- /dev/null
@@ -0,0 +1,110 @@
+
+
+================================================================================
+Reader:
+module OneOfEverything (
+       fixn, FooData, FooDataB(..), FooDataC(..), EqTree(EqLeaf,
+                                                         EqBranch), EqClass(..), OrdClass(orda,
+                                                                                          ordb), module OneC, module OneOfEverything
+    ) where
+import qualified OneA
+import OneB (fB)
+import OneC hiding (fC)
+import OneC hiding (fC)
+infix 6 fixn
+infixl 7 +#
+infixr 8 fixr
+{- rec -}
+bindwith :: _forall_ [] (OrdClass a, OrdClass b) => a -> b -> b
+g :: _forall_ [] (Num a, Eq b) => Foo a -> [b] -> (a, a, a) -> b
+fixn x y = x
+fixl x y = x
+fixr x y = x
+singlebind x = x
+bindwith a b = b
+reca a = recb a
+recb a = reca a
+(~(a, b, c))
+    | nullity b = a
+    | nullity c = a
+    | otherwise = a
+    where
+       {- rec -}
+       nullity = null
+mat a b c d
+    | foof a b = d
+    | foof a c = d
+    | foof b c = d
+    where
+       {- rec -}
+       foof a b = a == b
+expr a b c d
+     = ((((((((a + (: a b)) + (a : b))
+            + (((1 - 'c') - "abc") - 1.2929999999999999))
+           + ((\ x y z -> x) 42))
+          + ((9 *)))
+         + ((* 8)))
+        + (case x of
+             []
+             | null x -> 99
+             | otherwise -> 98
+             | True -> 97
+             where
+                 {- rec -}
+                 null x = False))
+       + ([z | z <- c, isSpace z]))
+       + (let
+           {- rec -}
+           y = foo
+         in
+           (((((((y + [1, 2, 3, 4]) + (4, 3, 2, 1))
+                + (4 :: _forall_ [] (Num a) => a))
+               + (if 42 == 42.000000000000000 then 1 else 4))
+              + ([1 .. ]))
+             + ([2, 4 .. ]))
+            + ([3 .. 5]))
+           + ([4, 8 .. 999]))
+f _
+  x
+  1
+  1.9299999999999999
+  'c'
+  "dog"
+  ~y
+  (z@(Foo a b))
+  (c Bar d)
+  [1, 2]
+  (3, 4)
+  ((n+42))
+  = y
+g x y z = head y
+default (Integer, Rational)
+instance _forall_ [] (Eq a) => EqClass (EqTree a) where
+    []
+    eqc x = 'a'
+class (Ord a) => OrdClass a where {
+    orda :: a -> Char; ordb :: a -> Char; ordc :: a -> Char;
+    }
+class (Eq a) => EqClass a where {
+    eqc :: a -> Char;
+    eqc x = '?'
+    }
+data (Eq a) => EqTree a = EqLeaf a | EqBranch (EqLeaf a) (EqLeaf a)
+data FooDataB = FooConB Double
+data FooData = FooCon Int
+type Pair a b = (a, b)
+read001.hs:17: Could not find valid interface file `OneA'
+read001.hs:18: Could not find valid interface file `OneB'
+read001.hs:18: Module OneB does not export `fB'
+read001.hs:19: Could not find valid interface file `OneC'
+read001.hs:19: Module OneC does not export `fC'
+read001.hs:20: Module OneC does not export `fC'
+
+
+Compilation had errors
diff --git a/ghc/tests/reader/should_fail/read003.stderr b/ghc/tests/reader/should_fail/read003.stderr
new file mode 100644 (file)
index 0000000..021a5c0
--- /dev/null
@@ -0,0 +1,28 @@
+
+
+================================================================================
+Reader:
+module Read003 where
+{- rec -}
+~(a, b, c)
+    | nullity b = a
+    | nullity c = a
+    | otherwise = a
+    where
+       {- rec -}
+       nullity = null
+read003.hs:8: Cannot construct the infinite type (occur check)
+                 `taGH' = `(taGH, taGK, taGN)'
+    Expected: `taGH'
+    Inferred: `(taGH, [taGW], taGN)'
+    In a pattern binding:
+       `~(a, b, c)
+            | nullity b = a
+            | nullity c = a
+            | PrelBase.otherwise = a
+            where
+                nullity = PrelList.null'
+
+
+Compilation had errors
index e1bca8d..212553c 100644 (file)
@@ -1,18 +1,11 @@
-TOP = ../../../..
+TOP = ../..
 include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/should_compile.mk
 
-HS_SRCS = $(wildcard *.hs)
-
-SRC_RUNTEST_OPTS += -o1 $*.stdout -o2 $*.stderr -x 0
 HC_OPTS += -noC -dcore-lint
 
 rn017_HC_OPTS = -hi
 
-%.o : %.hs
-       $(RUNTEST) $(HC) $(RUNTEST_OPTS) -- $(HC_OPTS) -c $< -o $@
-
-all :: $(HS_OBJS)
-
 include $(TOP)/mk/target.mk
 
 
index fb0a5f3..5d88d1e 100644 (file)
@@ -1,14 +1,7 @@
-TOP = ../../../..
+TOP = ../..
 include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/should_fail.mk
 
-HS_SRCS = $(wildcard *.hs)
-
-SRC_RUNTEST_OPTS += -o1 $*.stdout -o2 $*.stderr -x 1
 HC_OPTS += -noC
 
-%.o : %.hs
-       $(RUNTEST) $(HC) $(RUNTEST_OPTS) -- $(HC_OPTS) -c $< -o $@
-
-all :: $(HS_OBJS)
-
 include $(TOP)/mk/target.mk
index ee2596f..33d237f 100644 (file)
@@ -1,16 +1,9 @@
-TOP = ../../..
+TOP = ../..
 include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/should_compile.mk
 
-HS_SRCS = $(wildcard *.hs)
+HC_OPTS += -noC -dcore-lint -ddump-simpl
 
-SRC_RUNTEST_OPTS += -accept-output -o1 $*.stdout -o2 $*.stderr -x 0
-HC_OPTS += -noC -O -ddump-simpl -dcore-lint
-
-%.o : %.hs
-
-%.o : %.hs
-       $(RUNTEST) $(HC) $(RUNTEST_OPTS) $(HC_OPTS) -c $< -o $@ -osuf $(subst .,,$(suffix $@)) 
+include $(TOP)/mk/target.mk
 
-all :: $(HS_OBJS)
 
-include $(TOP)/mk/target.mk
index b1ee08d..299cfe7 100644 (file)
 
 ================================================================================
 Simplified:
-++++{-r3h,x-}  :: 
-    _forall_
-    [a{-auX-} b{-auY-}]
-    =>
-    (a{-auX-} -> (b{-auY-} -> a{-auX-}) -> b{-auY-})
-    -> (a{-auX-} -> (b{-auY-} -> a{-auX-}) -> b{-auY-})
-    -> a{-auX-}
-    -> (b{-auY-} -> a{-auX-})
-    -> b{-auY-}
+++++{-r3h,x-}  ::  _forall_
+                  [tark tarl]
+                  =>
+                  (tark -> (tarl -> tark) -> tarl)
+                  -> (tark -> (tarl -> tark) -> tarl)
+                  -> tark
+                  -> (tarl -> tark)
+                  -> tarl
 _A>_ 2 {-# L #-}
 ++++{-r3h,x-} =
-    _/\_ a{-sE8-} b{-sE9-} -> \ x_sDl  :: 
-                                   a{-sE8-} -> (b{-sE9-} -> a{-sE8-}) -> b{-sE9-}
+    _/\_ $x0_tsEh $x1_tsEi -> \ $x2_sDp  ::  $x0_tsEh
+                                            -> ($x1_tsEi -> $x0_tsEh)
+                                            -> $x1_tsEi
                                {-# L #-}
-                               x_sDl y_sCR  :: 
-                                         a{-sE8-} -> (b{-sE9-} -> a{-sE8-}) -> b{-sE9-}
-                                     {-# L #-}
-                                     y_sCR ->
-       y_sCR
-g{-r3j,x-}  :: 
-    _forall_
-    [a{-avh-} b{-avi-} rk0{-avq-}]
-    =>
-    {PrelBase.Functor{-2b,p-} rk0{-avq-}}
-    -> (a{-avh-} -> (b{-avi-} -> a{-avh-}) -> b{-avi-})
-    -> rk0{-avq-} (a{-avh-} -> (b{-avi-} -> a{-avh-}) -> b{-avi-})
-    -> rk0{-avq-} (a{-avh-} -> (b{-avi-} -> a{-avh-}) -> b{-avi-})
+                               $x2_sDp $x3_sCV  ::  $x0_tsEh -> ($x1_tsEi -> $x0_tsEh) -> $x1_tsEi
+                                       {-# L #-}
+                                       $x3_sCV ->
+       $x3_sCV
+g{-r3i,x-}  ::  _forall_
+               [aarD tarO tarQ]
+               =>
+               {PrelBase.Functor{-2b,p-} aarD}
+               -> (tarO -> (tarQ -> tarO) -> tarQ)
+               -> aarD (tarO -> (tarQ -> tarO) -> tarQ)
+               -> aarD (tarO -> (tarQ -> tarO) -> tarQ)
 _A>_ 3 {-# L #-}
-g{-r3j,x-} =
-    _/\_ a{-sEd-} b{-sEe-} rk0{-sEf-} -> \ d.Functor_sDp  :: 
-                                              {PrelBase.Functor{-2b,p-} rk0{-sEf-}}
-                                          {-# L #-}
-                                          d.Functor_sDp a_sDk  :: 
-                                                            a{-sEd-}
-                                                            -> (b{-sEe-} -> a{-sEd-})
-                                                            -> b{-sEe-}
+g{-r3i,x-} =
+    _/\_ $x0_asEl $x1_tsEj $x2_tsEk -> \ $x3_sDt  ::  {PrelBase.Functor{-2b,p-} $x0_asEl}
+                                        {-# L #-}
+                                        $x3_sDt $x4_sDo  ::  $x1_tsEj
+                                                             -> ($x2_tsEk -> $x1_tsEj)
+                                                             -> $x2_tsEk
+                                                {-# L #-}
+                                                $x4_sDo $x5_sE2  ::  $x0_asEl ($x1_tsEj
+                                                                               -> ($x2_tsEk
+                                                                                   -> $x1_tsEj)
+                                                                               -> $x2_tsEk)
                                                         {-# L #-}
-                                                        a_sDk xs_sDV  :: 
-                                                                  rk0{-sEf-} (a{-sEd-}
-                                                                              -> (b{-sEe-}
-                                                                                  -> a{-sEd-})
-                                                                              -> b{-sEe-})
-                                                              {-# L #-}
-                                                              xs_sDV ->
+                                                        $x5_sE2 ->
        let {
-         ds_sDr  :: 
-             (a{-sEd-} -> (b{-sEe-} -> a{-sEd-}) -> b{-sEe-})
-             -> a{-sEd-}
-             -> (b{-sEe-} -> a{-sEd-})
-             -> b{-sEe-}
+         $x7_sDv  ::  ($x1_tsEj -> ($x2_tsEk -> $x1_tsEj) -> $x2_tsEk)
+                      -> $x1_tsEj
+                      -> ($x2_tsEk -> $x1_tsEj)
+                      -> $x2_tsEk
          _A>_ 1 {-# L #-}
-         ds_sDr =
-             \ ds_sDq  :: 
-                   a{-sEd-} -> (b{-sEe-} -> a{-sEd-}) -> b{-sEe-}
+         $x7_sDv =
+             \ $x6_sDu  ::  $x1_tsEj -> ($x2_tsEk -> $x1_tsEj) -> $x2_tsEk
                {-# L #-}
-               ds_sDq ->
-                 a_sDk
+               $x6_sDu ->
+                 $x4_sDo
        } in 
-         d.Functor_sDp
-             _@_ (a{-sEd-} -> (b{-sEe-} -> a{-sEd-}) -> b{-sEe-})
-             _@_ (a{-sEd-} -> (b{-sEe-} -> a{-sEd-}) -> b{-sEe-})
-             ds_sDr
-             xs_sDV
-h{-r3i,x-}  :: 
-    _forall_
-    [a{-avI-} b{-avK-} rk0{-avT-}]
-    =>
-    {PrelBase.Functor{-2b,p-} rk0{-avT-}}
-    -> (a{-avI-} -> (b{-avK-} -> a{-avI-}) -> b{-avK-})
-    -> rk0{-avT-} (a{-avI-} -> (b{-avK-} -> a{-avI-}) -> b{-avK-})
-    -> rk0{-avT-} (a{-avI-} -> (b{-avK-} -> a{-avI-}) -> b{-avK-})
+         $x3_sDt
+             _@_ ($x1_tsEj -> ($x2_tsEk -> $x1_tsEj) -> $x2_tsEk)
+             _@_ ($x1_tsEj -> ($x2_tsEk -> $x1_tsEj) -> $x2_tsEk)
+             $x7_sDv
+             $x5_sE2
+h{-r3j,x-}  ::  _forall_
+               [aas8 task tasm]
+               =>
+               {PrelBase.Functor{-2b,p-} aas8}
+               -> (task -> (tasm -> task) -> tasm)
+               -> aas8 (task -> (tasm -> task) -> tasm)
+               -> aas8 (task -> (tasm -> task) -> tasm)
 _A>_ 3 {-# L #-}
-h{-r3i,x-} =
-    _/\_ a{-sEl-} b{-sEm-} rk0{-sEn-} -> \ d.Functor_sDZ  :: 
-                                              {PrelBase.Functor{-2b,p-} rk0{-sEn-}}
-                                          {-# L #-}
-                                          d.Functor_sDZ b_sEg  :: 
-                                                            a{-sEl-}
-                                                            -> (b{-sEm-} -> a{-sEl-})
-                                                            -> b{-sEm-}
+h{-r3j,x-} =
+    _/\_ $x0_asEu $x1_tsEs $x2_tsEt -> \ $x3_sE6  ::  {PrelBase.Functor{-2b,p-} $x0_asEu}
+                                        {-# L #-}
+                                        $x3_sE6 $x4_sEm  ::  $x1_tsEs
+                                                             -> ($x2_tsEt -> $x1_tsEs)
+                                                             -> $x2_tsEt
+                                                {-# L #-}
+                                                $x4_sEm $x5_sEn  ::  $x0_asEu ($x1_tsEs
+                                                                               -> ($x2_tsEt
+                                                                                   -> $x1_tsEs)
+                                                                               -> $x2_tsEt)
                                                         {-# L #-}
-                                                        b_sEg xs_sEh  :: 
-                                                                  rk0{-sEn-} (a{-sEl-}
-                                                                              -> (b{-sEm-}
-                                                                                  -> a{-sEl-})
-                                                                              -> b{-sEm-})
-                                                              {-# L #-}
-                                                              xs_sEh ->
+                                                        $x5_sEn ->
        let {
-         ds_sE0  :: 
-             (a{-sEl-} -> (b{-sEm-} -> a{-sEl-}) -> b{-sEm-})
-             -> a{-sEl-}
-             -> (b{-sEm-} -> a{-sEl-})
-             -> b{-sEm-}
+         $x7_sE7  ::  ($x1_tsEs -> ($x2_tsEt -> $x1_tsEs) -> $x2_tsEt)
+                      -> $x1_tsEs
+                      -> ($x2_tsEt -> $x1_tsEs)
+                      -> $x2_tsEt
          _A>_ 1 {-# L #-}
-         ds_sE0 =
-             \ ds_sDU  :: 
-                   a{-sEl-} -> (b{-sEm-} -> a{-sEl-}) -> b{-sEm-}
+         $x7_sE7 =
+             \ $x6_sDY  ::  $x1_tsEs -> ($x2_tsEt -> $x1_tsEs) -> $x2_tsEt
                {-# L #-}
-               ds_sDU ->
-                 ds_sDU
+               $x6_sDY ->
+                 $x6_sDY
        } in 
-         d.Functor_sDZ
-             _@_ (a{-sEl-} -> (b{-sEm-} -> a{-sEl-}) -> b{-sEm-})
-             _@_ (a{-sEl-} -> (b{-sEm-} -> a{-sEl-}) -> b{-sEm-})
-             ds_sE0
-             xs_sEh
+         $x3_sE6
+             _@_ ($x1_tsEs -> ($x2_tsEt -> $x1_tsEs) -> $x2_tsEt)
+             _@_ ($x1_tsEs -> ($x2_tsEt -> $x1_tsEs) -> $x2_tsEt)
+             $x7_sE7
+             $x5_sEn
index 49ad874..b43ee5c 100644 (file)
 
 ================================================================================
 Simplified:
-nrlit_sMT  :: 
-    [PrelBase.Char{-38,p-}]
+$g0_g0  ::  [PrelBase.Char{-38,W-}]
 {-# L #-}
-nrlit_sMT =
-    PackedString.unpackCString#{-8F,p-}
-       "xxx"
-$d1{-rJ7,x-}  :: 
-    _forall_
-    [a{-r3g-} b{-r3h-} c{-r3i-}]
-    =>
-    {Foo{-r3j,x-} a{-r3g-}}
-    -> {Foo{-r3j,x-} b{-r3h-}}
-    -> {Foo{-r3j,x-} c{-r3i-}}
-    -> {Foo{-r3j,x-} (Wibble{-r3y,x-} a{-r3g-} b{-r3h-} c{-r3i-})}
+$g0_g0 =
+    PackBase.unpackCString#{-8F,w-} "xxx"
+$d1{-rE0,x-}  ::  _forall_
+                 [a_tr3g b_tr3h c_tr3i]
+                 =>
+                 {Foo{-r3j,x-} a_tr3g}
+                 -> {Foo{-r3j,x-} b_tr3h}
+                 -> {Foo{-r3j,x-} c_tr3i}
+                 -> {Foo{-r3j,x-} (Wibble{-r3w,x-} a_tr3g b_tr3h c_tr3i)}
 _A>_ 3 {-# L #-}
-$d1{-rJ7,x-} =
-    _/\_ a{-sMG-} b{-sMH-} c{-sMI-} -> \ d.Foo_sLN  :: 
-                                            {Foo{-r3j,x-} a{-sMG-}}
+$d1{-rE0,x-} =
+    _/\_ $x0_tsGS $x1_tsGT $x2_tsGU -> \ $x3_sGV  ::  {Foo{-r3j,x-} $x0_tsGS}
                                         {-# L #-}
-                                        d.Foo_sLN d.Foo_sLM  :: 
-                                                      {Foo{-r3j,x-} b{-sMH-}}
-                                                  {-# L #-}
-                                                  d.Foo_sLM d.Foo_sLL  :: 
-                                                                {Foo{-r3j,x-} c{-sMI-}}
-                                                            {-# L #-}
-                                                            d.Foo_sLL ->
+                                        $x3_sGV $x4_sGW  ::  {Foo{-r3j,x-} $x1_tsGT}
+                                                {-# L #-}
+                                                $x4_sGW $x5_sGX  ::  {Foo{-r3j,x-} $x2_tsGU}
+                                                        {-# L #-}
+                                                        $x5_sGX ->
        let {
-         op_sLp  :: 
-             PrelBase.Int{-3g,p-}
-             -> Wibble{-r3y,x-} a{-sMG-} b{-sMH-} c{-sMI-}
-             -> PrelBase.Bool{-34,p-}
+         $x8_sFS  ::  PrelBase.Int{-3g,W-}
+                      -> Wibble{-r3w,x-} $x0_tsGS $x1_tsGT $x2_tsGU
+                      -> PrelBase.Bool{-34,W-}
          _A>_ 2 {-# L #-}
-         op_sLp =
-             \ x_sLs  :: 
-                   PrelBase.Int{-3g,p-}
+         $x8_sFS =
+             \ $x6_sH5  ::  PrelBase.Int{-3g,W-}
                {-# L #-}
-               x_sLs y_sLq  :: 
-                         Wibble{-r3y,x-} a{-sMG-} b{-sMH-} c{-sMI-}
-                     {-# L #-}
-                     y_sLq ->
-                 IOBase.error{-87,p-}
-                     _@_ PrelBase.Bool{-34,p-} nrlit_sMT } in
+               $x6_sH5 $x7_sH4  ::  Wibble{-r3w,x-} $x0_tsGS $x1_tsGT $x2_tsGU
+                       {-# L #-}
+                       $x7_sH4 ->
+                 IOBase.error{-87,w-} _@_ PrelBase.Bool{-34,W-} $g0_g0 } in
        let {
-         op_sLO  :: 
-             PrelBase.Int{-3g,p-}
-             -> Wibble{-r3y,x-} a{-sMG-} b{-sMH-} c{-sMI-}
-             -> PrelBase.Bool{-34,p-}
+         $x9_sGY  ::  PrelBase.Int{-3g,W-}
+                      -> Wibble{-r3w,x-} $x0_tsGS $x1_tsGT $x2_tsGU
+                      -> PrelBase.Bool{-34,W-}
          _A>_ 2 {-# L #-}
-         op_sLO =
-             op_sLp } in
+         $x9_sGY =
+             $x8_sFS } in
        let {
-         d.Foo_sLP  :: 
-             {Foo{-r3j,x-} (Wibble{-r3y,x-} a{-sMG-} b{-sMH-} c{-sMI-})}
+         $xa_sGZ  ::  {Foo{-r3j,x-} (Wibble{-r3w,x-} $x0_tsGS $x1_tsGT $x2_tsGU)}
          _A>_ 2 {-# L #-}
-         d.Foo_sLP =
-             op_sLp
-       } in 
-         op_sLp
-$d2{-rJ2,x-}  :: 
-    _forall_
-    [a{-r3s-} b{-r3t-} c{-r3u-}]
-    =>
-    {PrelBase.Eval{-24,p-} (Wibble{-r3y,x-} a{-r3s-} b{-r3t-} c{-r3u-})}
+         $xa_sGZ =
+             $x8_sFS
+       } in  $x8_sFS
+$d2{-rDV,x-}  ::  _forall_
+                 [a_tr3r b_tr3s c_tr3t]
+                 =>
+                 {PrelBase.Eval{-24,p-} (Wibble{-r3w,x-} a_tr3r b_tr3s c_tr3t)}
 _A>_ 0 {-# L #-}
-$d2{-rJ2,x-} =
-    _/\_ a{-sMV-} b{-sMW-} c{-sMX-} ->
+$d2{-rDV,x-} =
+    _/\_ $x0_tsH8 $x1_tsH7 $x2_tsH6 ->
        let {
-         d.Eval_sM2  :: 
-             {PrelBase.Eval{-24,p-} (Wibble{-r3y,x-} a{-sMV-} b{-sMW-} c{-sMX-})}
+         $x3_sGM  ::  {PrelBase.Eval{-24,p-} (Wibble{-r3w,x-} $x0_tsH8 $x1_tsH7 $x2_tsH6)}
          {-# L #-}
-         d.Eval_sM2 =
-             PrelBase.void{-8G,p-}
-       } in 
-         PrelBase.void{-8G,p-}
-nrlit_sMU  :: 
-    [PrelBase.Char{-38,p-}]
-{-# L #-}
-nrlit_sMU =
-    PackedString.unpackCString#{-8F,p-}
-       "Class Foo Method op"
-$mop{-rIV,x-}  :: 
-    _forall_
-    [a{-r3w-}]
-    =>
-    {Foo{-r3j,x-} a{-r3w-}}
-    -> PrelBase.Int{-3g,p-}
-    -> a{-r3w-}
-    -> PrelBase.Bool{-34,p-}
+         $x3_sGM =
+             PrelBase.void{-8G,w-}
+       } in  PrelBase.void{-8G,w-}
+MkWibble{-r3y,x-}{i}  ::  _forall_
+                         [a_tr3r b_tr3s c_tr3t]
+                         =>
+                         a_tr3r -> b_tr3s -> c_tr3t -> Wibble{-r3w,x-} a_tr3r b_tr3s c_tr3t
 _A>_ 3 {-# L #-}
-$mop{-rIV,x-} =
-    _/\_ a{-sMJ-} -> \ d.Foo_sMg  :: 
-                          {Foo{-r3j,x-} a{-sMJ-}}
-                      {-# L #-}
-                      d.Foo_sMg ->
-       GHCerr.noDefaultMethodError{-8k,p-}
-           _@_ (PrelBase.Int{-3g,p-} -> a{-sMJ-} -> PrelBase.Bool{-34,p-})
-           nrlit_sMU
-op{-r3z,x-}  :: 
-    _forall_
-    [a{-r3w-}]
-    =>
-    {Foo{-r3j,x-} a{-r3w-}}
-    -> PrelBase.Int{-3g,p-}
-    -> a{-r3w-}
-    -> PrelBase.Bool{-34,p-}
-_A>_ 1 {-# L #-}
-op{-r3z,x-} =
-    _/\_ a{-sMK-} -> \ tpl_sMf  :: 
-                          {Foo{-r3j,x-} a{-sMK-}}
-                      {-# L #-}
-                      tpl_sMf ->
-       tpl_sMf
-MkWibble{-r3x,x-}{i}  :: 
-    _forall_
-    [a{-r3s-} b{-r3t-} c{-r3u-}]
-    =>
-    a{-r3s-}
-    -> b{-r3t-}
-    -> c{-r3u-}
-    -> Wibble{-r3y,x-} a{-r3s-} b{-r3t-} c{-r3u-}
-_A>_ 3 {-# L #-}
-MkWibble{-r3x,x-}{i} =
-    _/\_ a{-sMO-} b{-sMP-} c{-sMQ-} -> \ tpl_sML  :: 
-                                            a{-sMO-}
+MkWibble{-r3y,x-}{i} =
+    _/\_ $x0_tsH0 $x1_tsH1 $x2_tsH2 -> \ $x3_sGL  ::  $x0_tsH0
                                         {-# L #-}
-                                        tpl_sML tpl_sMM  :: 
-                                                    b{-sMP-}
+                                        $x3_sGL $x4_sGK  ::  $x1_tsH1
                                                 {-# L #-}
-                                                tpl_sMM tpl_sMN  :: 
-                                                            c{-sMQ-}
+                                                $x4_sGK $x5_sGJ  ::  $x2_tsH2
                                                         {-# L #-}
-                                                        tpl_sMN ->
-       MkWibble{-r3x,x-}{i}
-           {_@_ a{-sMO-} _@_ b{-sMP-} _@_ c{-sMQ-} tpl_sML tpl_sMM tpl_sMN}
+                                                        $x5_sGJ ->
+       MkWibble{-r3y,x-}{i}
+           {_@_ $x0_tsH0 _@_ $x1_tsH1 _@_ $x2_tsH2 $x3_sGL $x4_sGK $x5_sGJ}
+op{-r3x,x-}  ::  _forall_
+                [a_tr3v]
+                =>
+                {Foo{-r3j,x-} a_tr3v}
+                -> PrelBase.Int{-3g,W-}
+                -> a_tr3v
+                -> PrelBase.Bool{-34,W-}
+_A>_ 1 {-# L #-}
+op{-r3x,x-} =
+    _/\_ $x0_tsH3 -> \ $x1_sGI  ::  {Foo{-r3j,x-} $x0_tsH3}
+                      {-# L #-}
+                      $x1_sGI ->
+       $x1_sGI
diff --git a/ghc/tests/simplCore/should_compile/simpl003.stderr b/ghc/tests/simplCore/should_compile/simpl003.stderr
new file mode 100644 (file)
index 0000000..214ab08
--- /dev/null
@@ -0,0 +1,195 @@
+
+NOTE: Simplifier still going after 4 iterations; bailing out.
+
+
+================================================================================
+Simplified:
+$d1{-rOe,x-}  ::  _forall_
+                 [a_tr41]
+                 =>
+                 {PrelBase.Eval{-24,p-} (IMonadReturn{-r45,x-} a_tr41)}
+_A>_ 0 {-# L #-}
+$d1{-rOe,x-} =
+    _/\_ $x0_ts1mQ -> PrelBase.void{-8G,w-}
+IMonadOk{-ra,x-}{i}  ::  _forall_
+                        [a_tr41]
+                        =>
+                        IMonadState{-r44,x-} -> a_tr41 -> IMonadReturn{-r45,x-} a_tr41
+_A>_ 2 {-# L #-}
+IMonadOk{-ra,x-}{i} =
+    _/\_ $x0_ts1mb -> \ $x1_s1ix  ::  IMonadState{-r44,x-}
+                       {-# L #-}
+                       $x1_s1ix $x2_s1iw  ::  $x0_ts1mb
+                                {-# L #-}
+                                $x2_s1iw ->
+       IMonadOk{-ra,x-}{i} {_@_ $x0_ts1mb $x1_s1ix $x2_s1iw}
+returnI{-rf,x-}{i}  ::  _forall_
+                       [taEj]
+                       =>
+                       taEj -> IMonadState{-r44,x-} -> IMonadReturn{-r45,x-} taEj
+_A>_ 2 {-# L #-}
+returnI{-rf,x-}{i} =
+    _/\_ $x0_ts1mf -> \ $x1_s1iv  ::  $x0_ts1mf
+                       {-# L #-}
+                       $x1_s1iv $x2_s1iu  ::  IMonadState{-r44,x-}
+                                {-# L #-}
+                                $x2_s1iu ->
+       IMonadOk{-ra,x-}{i} {_@_ $x0_ts1mf $x2_s1iu $x1_s1iv}
+IMonadFail{-r9,x-}{i}  ::  _forall_
+                          [a_tr41]
+                          =>
+                          IMonadState{-r44,x-}
+                          -> PrelBase.String{-rgk,p-}
+                          -> IMonadReturn{-r45,x-} a_tr41
+_A>_ 2 {-# L #-}
+IMonadFail{-r9,x-}{i} =
+    _/\_ $x0_ts1mj -> \ $x1_s1it  ::  IMonadState{-r44,x-}
+                       {-# L #-}
+                       $x1_s1it $x2_s1is  ::  PrelBase.String{-rgk,p-}
+                                {-# L #-}
+                                $x2_s1is ->
+       IMonadFail{-r9,x-}{i} {_@_ $x0_ts1mj $x1_s1it $x2_s1is}
+thenI{-rd,x-}{i}  ::  _forall_
+                     [taDN taDA taDE]
+                     =>
+                     (taDN -> IMonadReturn{-r45,x-} taDE)
+                     -> (taDE -> IMonadState{-r44,x-} -> IMonadReturn{-r45,x-} taDA)
+                     -> taDN
+                     -> IMonadReturn{-r45,x-} taDA
+_A>_ 3 {-# L #-}
+thenI{-rd,x-}{i} =
+    _/\_ $x0_ts1mt $x1_ts1mv $x2_ts1mu -> \ $x3_s1hN  ::  $x0_ts1mt
+                                                         -> IMonadReturn{-r45,x-} $x2_ts1mu
+                                           {-# L #-}
+                                           $x3_s1hN $x4_s1i5  ::  $x2_ts1mu
+                                                                  -> IMonadState{-r44,x-}
+                                                                  -> IMonadReturn{-r45,x-} $x1_ts1mv
+                                                    {-# L #-}
+                                                    $x4_s1i5 $x5_s1ir  ::  $x0_ts1mt
+                                                             {-# L #-}
+                                                             $x5_s1ir ->
+       case $x3_s1hN $x5_s1ir of {
+         IMonadFail{-r9,x-}{i} $x6_s1iz $x7_s1iy ->
+             IMonadFail{-r9,x-}{i} {_@_ $x1_ts1mv $x6_s1iz $x7_s1iy};
+         IMonadOk{-ra,x-}{i} $x8_s1iB $x9_s1iA ->
+             $x4_s1i5 $x9_s1iA $x8_s1iB;
+       }
+Rec {
+$g0_s11s{n}  ::  _forall_
+                [tsXl tsXm]
+                =>
+                (tsXl -> IMonadState{-r44,x-} -> IMonadReturn{-r45,x-} tsXm)
+                -> [tsXl]
+                -> IMonadState{-r44,x-}
+                -> IMonadReturn{-r45,x-} [tsXm]
+_A>_ 2 {-# L #-}
+$g0_s11s{n} =
+    _/\_ $x0_ts1iP $x1_ts1iQ -> \ $x2_s1jb  ::  $x0_ts1iP
+                                               -> IMonadState{-r44,x-}
+                                               -> IMonadReturn{-r45,x-} $x1_ts1iQ
+                                 {-# L #-}
+                                 $x2_s1jb $x3_s1iq  ::  [$x0_ts1iP]
+                                          {-# L #-}
+                                          $x3_s1iq ->
+       case $x3_s1iq of {
+         PrelBase.[]{-5i,w-}{i} ->
+             let {
+               $x4_s1mx  ::  [$x1_ts1iQ]
+               _A>_ 0 {-# L #-}
+               $x4_s1mx =
+                   PrelBase.[]{-5i,w-}{i} {_@_ $x1_ts1iQ}
+             } in 
+               \ $x5_s1mw  ::  IMonadState{-r44,x-}
+                 {-# L #-}
+                 $x5_s1mw ->
+                   IMonadOk{-ra,x-}{i} {_@_ [$x1_ts1iQ] $x5_s1mw $x4_s1mx};
+         PrelBase.:{-55,w-}{i} $x6_s1jc $x7_s1jd ->
+             let {
+               $x8_s1jn  ::  IMonadState{-r44,x-}
+                             -> IMonadReturn{-r45,x-} $x1_ts1iQ
+               _A>_ 0 {-# L #-}
+               $x8_s1jn =
+                   $x2_s1jb $x6_s1jc
+             } in 
+               \ $x9_s1my  ::  IMonadState{-r44,x-}
+                 {-# L #-}
+                 $x9_s1my ->
+                   case $x8_s1jn $x9_s1my of {
+                     IMonadFail{-r9,x-}{i} $xa_s1mz $xb_s1mA ->
+                         IMonadFail{-r9,x-}{i} {_@_ [$x1_ts1iQ] $xa_s1mz $xb_s1mA};
+                     IMonadOk{-ra,x-}{i} $xc_s1mB $xd_s1kg ->
+                         let {
+                           $xe_s1jP  ::  IMonadState{-r44,x-}
+                                         -> IMonadReturn{-r45,x-} [$x1_ts1iQ]
+                           _A>_ 0 {-# L #-}
+                           $xe_s1jP =
+                               $g0_s11s{n} _@_ $x0_ts1iP _@_ $x1_ts1iQ $x2_s1jb $x7_s1jd
+                         } in 
+                           case
+                               $g0_s11s{n} _@_ $x0_ts1iP _@_ $x1_ts1iQ $x2_s1jb $x7_s1jd $xc_s1mB
+                           of {
+                             IMonadFail{-r9,x-}{i} $xf_s1mC $xg_s1mD ->
+                                 IMonadFail{-r9,x-}{i} {_@_ [$x1_ts1iQ] $xf_s1mC $xg_s1mD};
+                             IMonadOk{-ra,x-}{i} $xh_s1mE $xi_s1mF ->
+                                 let {
+                                   $xj_s1mG  ::  [$x1_ts1iQ]
+                                   _A>_ 0 {-# L #-}
+                                   $xj_s1mG =
+                                       PrelBase.:{-55,w-}{i} {_@_ $x1_ts1iQ $xd_s1kg $xi_s1mF}
+                                 } in  IMonadOk{-ra,x-}{i} {_@_ [$x1_ts1iQ] $xh_s1mE $xj_s1mG};
+                           };
+                   };
+       }
+end Rec }
+mapI{-rb,x-}{i}  ::  _forall_
+                    [taEH taF6]
+                    =>
+                    (taEH -> IMonadState{-r44,x-} -> IMonadReturn{-r45,x-} taF6)
+                    -> [taEH]
+                    -> IMonadState{-r44,x-}
+                    -> IMonadReturn{-r45,x-} [taF6]
+_A>_ 2 {-# L #-}
+mapI{-rb,x-}{i} =
+    _/\_ $x0_ts1mH $x1_ts1mI -> $g0_s11s{n} _@_ $x0_ts1mH _@_ $x1_ts1mI
+failI{-re,x-}{i}  ::  _forall_
+                     [taE3]
+                     =>
+                     PrelBase.String{-rgk,p-}
+                     -> IMonadState{-r44,x-}
+                     -> IMonadReturn{-r45,x-} taE3
+_A>_ 2 {-# L #-}
+failI{-re,x-}{i} =
+    _/\_ $x0_ts1mM -> \ $x1_s1l0  ::  PrelBase.String{-rgk,p-}
+                       {-# L #-}
+                       $x1_s1l0 $x2_s1kZ  ::  IMonadState{-r44,x-}
+                                {-# L #-}
+                                $x2_s1kZ ->
+       IMonadFail{-r9,x-}{i} {_@_ $x0_ts1mM $x2_s1kZ $x1_s1l0}
+$g1_aOn  ::  IMonadState{-r44,x-}
+            -> IMonadState{-r44,x-}
+            -> IMonadState{-r44,x-}
+_A>_ 0 {-# L #-}
+$g1_aOn =
+    case
+       PrelBase.$d4{-rbh,p-}
+    of {
+    PrelTup.(,,,,,,,,,,){-6b,w-}{i} $x0_s1lt $x1_s1lu $x2_s1lv $x3_s1ls $x4_s1lw $x5_s1lx $x6_s1ly $x7_s1lz $x8_s1lA $x9_s1lB $xa_s1lC  ->
+    $x3_s1ls;}
+tickI{-rc,x-}  ::  IMonadState{-r44,x-}
+                  -> IMonadState{-r44,x-}
+                  -> IMonadReturn{-r45,x-} PrelBase.(){-40,W-}
+_A>_ 2 {-# L #-}
+tickI{-rc,x-} =
+    \ $x0_s1mN  ::  IMonadState{-r44,x-}
+      {-# L #-}
+      $x0_s1mN $x1_s1mO  ::  IMonadState{-r44,x-}
+              {-# L #-}
+              $x1_s1mO ->
+       let {
+         $x2_s1mP  ::  IMonadState{-r44,x-}
+         _A>_ 0 {-# L #-}
+         $x2_s1mP =
+             $g1_aOn $x1_s1mO $x0_s1mN
+       } in 
+         IMonadOk{-ra,x-}{i}
+             {_@_ PrelBase.(){-40,W-} $x2_s1mP PrelBase.(){-60,w-}{i}}
index 95f62e1..cc4724f 100644 (file)
@@ -1,5 +1,6 @@
-TOP = ../../..
+TOP = ..
 include $(TOP)/mk/boilerplate.mk
+
 SUBDIRS = $(wildcard spec* code* clausify*)
-include $(TARGET_MK)
 
+include $(TOP)/mk/target.mk
diff --git a/ghc/tests/stranal/Makefile b/ghc/tests/stranal/Makefile
new file mode 100644 (file)
index 0000000..5268832
--- /dev/null
@@ -0,0 +1,7 @@
+TOP = ..
+include $(TOP)/mk/boilerplate.mk
+
+SUBDIRS = should_compile
+
+include $(TOP)/mk/target.mk
+
index 4cecde8..525335c 100644 (file)
@@ -1,16 +1,7 @@
-TOP = ../../..
+TOP = ../..
 include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/should_compile.mk
 
-HS_SRCS = $(wildcard *.lhs)
-
-SRC_RUNTEST_OPTS += -accept-output -o1 $*.stdout -o2 $*.stderr -x 0
 HC_OPTS += -noC -O -ddump-simpl -dcore-lint -dppr-user
 
-%.o : %.lhs
-
-%.o : %.lhs
-       $(RUNTEST) $(HC) $(RUNTEST_OPTS) -- $(HC_OPTS) -c $< -o $@ -osuf $(subst .,,$(suffix $@)) 
-
-all :: $(HS_OBJS)
-
 include $(TOP)/mk/target.mk
index 1b19558..7f471e0 100644 (file)
 
 
---================================================================================
+================================================================================
 Simplified:
-`$d5'  :: 
-    `{PrelBase.Eval (Pair a{-r3U-} b{-r3V-})}'
+`$d5'  ::  `{PrelBase.Eval (Pair a b)}'
 `$d5' =
-    _/\_ `a{-s1gp-}' `b{-s1gq-}' ->
-       `PrelBase.void'
-`$d4'  :: 
-    `{PrelBase.Eval (LList alpha{-r3S-})}'
+    _/\_ `$x0' `$x1' -> `PrelBase.void'
+`$d4'  ::  `{PrelBase.Eval (LList alpha)}'
 `$d4' =
-    _/\_ `alpha{-s1gr-}' ->
-       `PrelBase.void'
-`$d2'  :: 
-    `{PrelBase.Eval (Tree x{-r3P-})}'
+    _/\_ `$x0' -> `PrelBase.void'
+`$d2'  ::  `{PrelBase.Eval (Tree x)}'
 `$d2' =
-    _/\_ `x{-s1gs-}' ->
-       `PrelBase.void'
-`$d1'  :: 
-    `{PrelBase.Eval (A a{-r3N-})}'
+    _/\_ `$x0' -> `PrelBase.void'
+`$d1'  ::  `{PrelBase.Eval (A a)}'
 `$d1' =
-    _/\_ `a{-s1gt-}' ->
-       `PrelBase.void'
-`MkPair'  :: 
-    `a{-r3U-} -> b{-r3V-} -> Pair a{-r3U-} b{-r3V-}'
-`MkPair' =
-    _/\_ `a{-s1gc-}' `b{-s1gd-}' -> \ `tpl'  :: 
-                                         `a{-s1gc-}'
-                                     `tpl' `tpl'  :: 
-                                               `b{-s1gd-}'
-                                           `tpl' ->
-       `MkPair'
-           {_@_ `a{-s1gc-}' _@_ `b{-s1gd-}' `tpl' `tpl'}
-`MkA'  :: 
-    `a{-r3N-} -> A a{-r3N-} -> A a{-r3N-}'
+    _/\_ `$x0' -> `PrelBase.void'
+`MkA'  ::  `a -> A a -> A a'
 `MkA' =
-    _/\_ `a{-s1ge-}' -> \ `tpl'  :: 
-                             `a{-s1ge-}'
-                         `tpl' `tpl'  :: 
-                                   `A a{-s1ge-}'
-                               `tpl' ->
-       `MkA'
-           {_@_ `a{-s1ge-}' `tpl' `tpl'}
-`FF'  :: 
-    `Boolean'
-`FF' =
-    `FF'
-       {}
-`TT'  :: 
-    `Boolean'
-`TT' =
-    `TT'
-       {}
-`Nill'  :: 
-    `LList alpha{-r3S-}'
+    _/\_ `$x0' -> \ `$x1'  ::  `$x0'
+                   `$x1' `$x2'  ::  `A $x0'
+                         `$x2' ->
+       `MkA' {_@_ `$x0' `$x1' `$x2'}
+`MkPair'  ::  `a -> b -> Pair a b'
+`MkPair' =
+    _/\_ `$x0' `$x1' -> \ `$x2'  ::  `$x0'
+                         `$x2' `$x3'  ::  `$x1'
+                               `$x3' ->
+       `MkPair' {_@_ `$x0' _@_ `$x1' `$x2' `$x3'}
+`Leaf'  ::  `x -> Tree x'
+`Leaf' =
+    _/\_ `$x0' -> \ `$x1'  ::  `$x0'
+                   `$x1' ->
+       `Leaf' {_@_ `$x0' `$x1'}
+`Node'  ::  `Tree x -> Tree x -> Tree x'
+`Node' =
+    _/\_ `$x0' -> \ `$x1'  ::  `Tree $x0'
+                   `$x1' `$x2'  ::  `Tree $x0'
+                         `$x2' ->
+       `Node' {_@_ `$x0' `$x1' `$x2'}
+`Zero'  ::  `Nat'
+`Zero' =
+    `Zero' {}
+`Succ'  ::  `Nat -> Nat'
+`Succ' =
+    \ `$x0'  ::  `Nat'
+      `$x0' ->
+       `Succ' {`$x0'}
+`Nill'  ::  `LList alpha'
 `Nill' =
-    _/\_ `alpha{-s1gf-}' ->
-       `Nill'
-           {_@_ `alpha{-s1gf-}'}
-`Conss'  :: 
-    `alpha{-r3S-} -> LList alpha{-r3S-} -> LList alpha{-r3S-}'
+    _/\_ `$x0' -> `Nill' {_@_ `$x0'}
+`Conss'  ::  `alpha -> LList alpha -> LList alpha'
 `Conss' =
-    _/\_ `alpha{-s1gg-}' -> \ `tpl'  :: 
-                                 `alpha{-s1gg-}'
-                             `tpl' `tpl'  :: 
-                                       `LList alpha{-s1gg-}'
-                                   `tpl' ->
-       `Conss'
-           {_@_ `alpha{-s1gg-}' `tpl' `tpl'}
+    _/\_ `$x0' -> \ `$x1'  ::  `$x0'
+                   `$x1' `$x2'  ::  `LList $x0'
+                         `$x2' ->
+       `Conss' {_@_ `$x0' `$x1' `$x2'}
 Rec {
-`append'  :: 
-    `LList a{-aH9-} -> LList a{-aH9-} -> LList a{-aH9-}'
+`append'  ::  `LList taC4 -> LList taC4 -> LList taC4'
 `append' =
-    _/\_ `a{-s1gh-}' -> \ `xs'  :: 
-                             `LList a{-s1gh-}'
-                         `xs' `ys'  :: 
-                                  `LList a{-s1gh-}'
-                              `ys' ->
-       case `xs' of {
-         `Nill' ->
-             `ys';
-         `Conss' `z' `zs' ->
+    _/\_ `$x0' -> \ `$x1'  ::  `LList $x0'
+                   `$x1' `$x2'  ::  `LList $x0'
+                         `$x2' ->
+       case `$x1' of {
+         `Nill' -> `$x2';
+         `Conss' `$x3' `$x4' ->
              let {
-               `ds'  :: 
-                   `LList a{-s1gh-}'
-               `ds' =
-                   `append'
-                       _@_ `a{-s1gh-}' `zs' `ys'
-             } in 
-               `Conss'
-                   {_@_ `a{-s1gh-}' `z' `ds'};
+               `$x5'  ::  `LList $x0'
+               `$x5' =
+                   `append' _@_ `$x0' `$x4' `$x2'
+             } in  `Conss' {_@_ `$x0' `$x3' `$x5'};
        }
 end Rec }
-`Zero'  :: 
-    `Nat'
-`Zero' =
-    `Zero'
-       {}
-`Succ'  :: 
-    `Nat -> Nat'
-`Succ' =
-    \ `tpl'  :: 
-         `Nat'
-      `tpl' ->
-       `Succ'
-           {`tpl'}
-`Leaf'  :: 
-    `x{-r3P-} -> Tree x{-r3P-}'
-`Leaf' =
-    _/\_ `x{-s1gl-}' -> \ `tpl'  :: 
-                             `x{-s1gl-}'
-                         `tpl' ->
-       `Leaf'
-           {_@_ `x{-s1gl-}' `tpl'}
-`Node'  :: 
-    `Tree x{-r3P-} -> Tree x{-r3P-} -> Tree x{-r3P-}'
-`Node' =
-    _/\_ `x{-s1go-}' -> \ `tpl'  :: 
-                             `Tree x{-s1go-}'
-                         `tpl' `tpl'  :: 
-                                   `Tree x{-s1go-}'
-                               `tpl' ->
-       `Node'
-           {_@_ `x{-s1go-}' `tpl' `tpl'}
-`$d6'  :: 
-    `{PrelBase.Eval Boolean}'
+`FF'  ::  `Boolean'
+`FF' =
+    `FF' {}
+`TT'  ::  `Boolean'
+`TT' =
+    `TT' {}
+`$d6'  ::  `{PrelBase.Eval Boolean}'
 `$d6' =
     `PrelBase.void'
-`$d3'  :: 
-    `{PrelBase.Eval Nat}'
+`$d3'  ::  `{PrelBase.Eval Nat}'
 `$d3' =
     `PrelBase.void'
index d4f4b0f..4b4d5fc 100644 (file)
@@ -1,35 +1,21 @@
 
 
---================================================================================
+================================================================================
 Simplified:
 Rec {
-`s1BQ'  :: 
-    `GHC.Int# -> PrelBase.Int'
-`s1BQ' =
-    \ `ww'  :: 
-         `GHC.Int#'
-      `ww' ->
-       case# `ww' of {
-         0 ->
-             `PrelBase.I#'
-                 {2};
-         `s' ->
-             case
-                 `s1BQ'
-                     `ww'
-             of {
-             `PrelBase.I#' `s1tCY'  ->
-             case# *#! `s1tCY' `ww' of { `s1tDv' ->
-             `PrelBase.I#'
-                 {`s1tDv'};};};
+`$g0'  ::  `GHC.Int# -> PrelBase.Int'
+`$g0' =
+    \ `$x0'  ::  `GHC.Int#'
+      `$x0' ->
+       case# `$x0' of {
+         0 -> `PrelBase.I#' {2};
+         `$x1' ->
+             case `$g0' `$x0' of { `PrelBase.I#' `$x2'  ->
+             case# *#! `$x2' `$x0' of { `$x3' -> `PrelBase.I#' {`$x3'};};};
        }
 end Rec }
-`fact'  :: 
-    `PrelBase.Int -> PrelBase.Int'
+`fact'  ::  `PrelBase.Int -> PrelBase.Int'
 `fact' =
-    \ `n'  :: 
-         `PrelBase.Int'
-      `n' ->
-       case `n' of { `PrelBase.I#' `ww'  ->
-       `s1BQ'
-           `ww';}
+    \ `$x0'  ::  `PrelBase.Int'
+      `$x0' ->
+       case `$x0' of { `PrelBase.I#' `$x1'  -> `$g0' `$x1';}
diff --git a/ghc/tests/stranal/should_compile/fun.hs b/ghc/tests/stranal/should_compile/fun.hs
new file mode 100644 (file)
index 0000000..5bab460
--- /dev/null
@@ -0,0 +1,6 @@
+module Test where
+data Fun = MkFun (Fun -> Fun)
+data LList a = Nill | Conss a (LList a)
+
+g :: Fun -> Fun
+g f = f
diff --git a/ghc/tests/stranal/should_compile/fun.lhs b/ghc/tests/stranal/should_compile/fun.lhs
deleted file mode 100644 (file)
index 8ab0832..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-> module Test where
-> data Fun = MkFun (Fun -> Fun)
-> data LList a = Nill | Conss a (LList a)
-
-> id :: Fun -> Fun
-> id f = f
index e69de29..df85b42 100644 (file)
@@ -0,0 +1,29 @@
+
+
+================================================================================
+Simplified:
+`$d1'  ::  `{PrelBase.Eval (LList a)}'
+`$d1' =
+    _/\_ `$x0' -> `PrelBase.void'
+`MkFun'  ::  `(Fun -> Fun) -> Fun'
+`MkFun' =
+    \ `$x0'  ::  `Fun -> Fun'
+      `$x0' ->
+       `MkFun' {`$x0'}
+`Nill'  ::  `LList a'
+`Nill' =
+    _/\_ `$x0' -> `Nill' {_@_ `$x0'}
+`Conss'  ::  `a -> LList a -> LList a'
+`Conss' =
+    _/\_ `$x0' -> \ `$x1'  ::  `$x0'
+                   `$x1' `$x2'  ::  `LList $x0'
+                         `$x2' ->
+       `Conss' {_@_ `$x0' `$x1' `$x2'}
+`$d2'  ::  `{PrelBase.Eval Fun}'
+`$d2' =
+    `PrelBase.void'
+`g'  ::  `Fun -> Fun'
+`g' =
+    \ `$x0'  ::  `Fun'
+      `$x0' ->
+       `$x0'
diff --git a/ghc/tests/stranal/should_compile/goo.hs b/ghc/tests/stranal/should_compile/goo.hs
new file mode 100644 (file)
index 0000000..00282bb
--- /dev/null
@@ -0,0 +1,10 @@
+module Test where
+data Goo a = Gsimpl | Gcompl ([Goo a]) 
+data Moo a b = Msimple | Mcompl (Moo b a)
+
+
+idGoo :: Goo a -> Goo a
+idGoo x = x
+
+idMoo :: Moo a b -> Moo a b
+idMoo x = x
diff --git a/ghc/tests/stranal/should_compile/goo.lhs b/ghc/tests/stranal/should_compile/goo.lhs
deleted file mode 100644 (file)
index c58b998..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-> module Test where
-> data Goo a = Gsimpl | Gcompl ([Goo a]) 
-> data Moo a b = Msimple | Mcompl (Moo b a)
-
-
-> idGoo :: Goo a -> Goo a
-> idGoo x = x
-
-> idMoo :: Moo a -> Moo a
-> idMoo x = x
index e69de29..7a750e5 100644 (file)
@@ -0,0 +1,36 @@
+
+
+================================================================================
+Simplified:
+`$d2'  ::  `{PrelBase.Eval (Goo a)}'
+`$d2' =
+    _/\_ `$x0' -> `PrelBase.void'
+`$d1'  ::  `{PrelBase.Eval (Moo a b)}'
+`$d1' =
+    _/\_ `$x0' `$x1' -> `PrelBase.void'
+`idMoo'  ::  `Moo taBA taBB -> Moo taBA taBB'
+`idMoo' =
+    _/\_ `$x0' `$x1' -> \ `$x2'  ::  `Moo $x0 $x1'
+                         `$x2' ->
+       `$x2'
+`idGoo'  ::  `Goo taBL -> Goo taBL'
+`idGoo' =
+    _/\_ `$x0' -> \ `$x1'  ::  `Goo $x0'
+                   `$x1' ->
+       `$x1'
+`Msimple'  ::  `Moo a b'
+`Msimple' =
+    _/\_ `$x0' `$x1' -> `Msimple' {_@_ `$x0' _@_ `$x1'}
+`Mcompl'  ::  `Moo b a -> Moo a b'
+`Mcompl' =
+    _/\_ `$x0' `$x1' -> \ `$x2'  ::  `Moo $x1 $x0'
+                         `$x2' ->
+       `Mcompl' {_@_ `$x0' _@_ `$x1' `$x2'}
+`Gsimpl'  ::  `Goo a'
+`Gsimpl' =
+    _/\_ `$x0' -> `Gsimpl' {_@_ `$x0'}
+`Gcompl'  ::  `[Goo a] -> Goo a'
+`Gcompl' =
+    _/\_ `$x0' -> \ `$x1'  ::  `[Goo $x0]'
+                   `$x1' ->
+       `Gcompl' {_@_ `$x0' `$x1'}
diff --git a/ghc/tests/stranal/should_compile/ins.hs b/ghc/tests/stranal/should_compile/ins.hs
new file mode 100644 (file)
index 0000000..8f61d07
--- /dev/null
@@ -0,0 +1,27 @@
+--!! TEST OF DEFACTORISATION FOR FUNCTIONS THAT DROP 
+--!!             POLYMORPHIC VARIABLES
+
+module Test where
+data Boolean = FF | TT
+data Pair a b = MkPair a b
+data LList alpha = Nill | Conss alpha (LList alpha) 
+data Nat = Zero | Succ Nat
+data Tree x = Leaf x | Node (Tree x) (Tree x) 
+data A a = MkA a (A a) 
+
+append :: LList a -> LList a -> LList a
+append  xs ys  = case xs of
+                  Nill -> ys 
+                  Conss z zs  -> Conss z (append zs ys) 
+
+-- The following function drops @b@.
+
+flat :: Tree (Pair a b) -> LList a
+flat t =  case t of
+              Leaf (MkPair a b) -> Conss a Nill 
+              Node l r -> append (flat l) (flat r)
+
+fl :: Boolean -> LList Boolean
+fl x = flat (Leaf (MkPair TT Zero)) 
+
+
diff --git a/ghc/tests/stranal/should_compile/ins.lhs b/ghc/tests/stranal/should_compile/ins.lhs
deleted file mode 100644 (file)
index 71f8ce2..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-TEST OF DEFACTORISATION FOR FUNCTIONS THAT DROP 
-             POLYMORPHIC VARIABLES
-
-> module Test where
-> data Boolean = FF | TT
-> data Pair a b = MkPair a b
-> data LList alpha = Nill | Conss alpha (LList alpha) 
-> data Nat = Zero | Succ Nat
-> data Tree x = Leaf x | Node (Tree x) (Tree x) 
-> data A a = MkA a (A a) 
->
-> append :: LList a -> LList a -> LList a
-> append  xs ys  = case xs of
->                   Nill -> ys 
->                   Conss z zs  -> Conss z (append zs ys) 
-
-The following function drops @b@.
-
-> flat :: Tree (Pair a b) -> LList a
-> flat t =  case t of
->               Leaf (MkPair a b) -> Conss a Nill 
->               Node l r -> append (flat l) (flat r)
->
-> fl :: Boolean -> LList Boolean
-> fl x = flat (Leaf (MkPair TT Zero)) 
->
-
index 641eda7..5216818 100644 (file)
 
 
---================================================================================
+================================================================================
 Simplified:
-`$d5'  :: 
-    `{PrelBase.Eval (Pair a{-r4b-} b{-r4c-})}'
+`$d5'  ::  `{PrelBase.Eval (Pair a b)}'
 `$d5' =
-    _/\_ `a{-s1NX-}' `b{-s1NY-}' ->
-       `PrelBase.void'
-`$d4'  :: 
-    `{PrelBase.Eval (LList alpha{-r49-})}'
+    _/\_ `$x0' `$x1' -> `PrelBase.void'
+`$d4'  ::  `{PrelBase.Eval (LList alpha)}'
 `$d4' =
-    _/\_ `alpha{-s1NZ-}' ->
-       `PrelBase.void'
-`$d2'  :: 
-    `{PrelBase.Eval (Tree x{-r46-})}'
+    _/\_ `$x0' -> `PrelBase.void'
+`$d2'  ::  `{PrelBase.Eval (Tree x)}'
 `$d2' =
-    _/\_ `x{-s1O0-}' ->
-       `PrelBase.void'
-`$d1'  :: 
-    `{PrelBase.Eval (A a{-r44-})}'
+    _/\_ `$x0' -> `PrelBase.void'
+`$d1'  ::  `{PrelBase.Eval (A a)}'
 `$d1' =
-    _/\_ `a{-s1O1-}' ->
-       `PrelBase.void'
-`MkPair'  :: 
-    `a{-r4b-} -> b{-r4c-} -> Pair a{-r4b-} b{-r4c-}'
-`MkPair' =
-    _/\_ `a{-s1NI-}' `b{-s1NJ-}' -> \ `tpl'  :: 
-                                         `a{-s1NI-}'
-                                     `tpl' `tpl'  :: 
-                                               `b{-s1NJ-}'
-                                           `tpl' ->
-       `MkPair'
-           {_@_ `a{-s1NI-}' _@_ `b{-s1NJ-}' `tpl' `tpl'}
-`MkA'  :: 
-    `a{-r44-} -> A a{-r44-} -> A a{-r44-}'
+    _/\_ `$x0' -> `PrelBase.void'
+`MkA'  ::  `a -> A a -> A a'
 `MkA' =
-    _/\_ `a{-s1NK-}' -> \ `tpl'  :: 
-                             `a{-s1NK-}'
-                         `tpl' `tpl'  :: 
-                                   `A a{-s1NK-}'
-                               `tpl' ->
-       `MkA'
-           {_@_ `a{-s1NK-}' `tpl' `tpl'}
-`FF'  :: 
-    `Boolean'
-`FF' =
-    `FF'
-       {}
-`TT'  :: 
-    `Boolean'
-`TT' =
-    `TT'
-       {}
-`Nill'  :: 
-    `LList alpha{-r49-}'
+    _/\_ `$x0' -> \ `$x1'  ::  `$x0'
+                   `$x1' `$x2'  ::  `A $x0'
+                         `$x2' ->
+       `MkA' {_@_ `$x0' `$x1' `$x2'}
+`MkPair'  ::  `a -> b -> Pair a b'
+`MkPair' =
+    _/\_ `$x0' `$x1' -> \ `$x2'  ::  `$x0'
+                         `$x2' `$x3'  ::  `$x1'
+                               `$x3' ->
+       `MkPair' {_@_ `$x0' _@_ `$x1' `$x2' `$x3'}
+`Leaf'  ::  `x -> Tree x'
+`Leaf' =
+    _/\_ `$x0' -> \ `$x1'  ::  `$x0'
+                   `$x1' ->
+       `Leaf' {_@_ `$x0' `$x1'}
+`Node'  ::  `Tree x -> Tree x -> Tree x'
+`Node' =
+    _/\_ `$x0' -> \ `$x1'  ::  `Tree $x0'
+                   `$x1' `$x2'  ::  `Tree $x0'
+                         `$x2' ->
+       `Node' {_@_ `$x0' `$x1' `$x2'}
+`Zero'  ::  `Nat'
+`Zero' =
+    `Zero' {}
+`Succ'  ::  `Nat -> Nat'
+`Succ' =
+    \ `$x0'  ::  `Nat'
+      `$x0' ->
+       `Succ' {`$x0'}
+`Nill'  ::  `LList alpha'
 `Nill' =
-    _/\_ `alpha{-s1NL-}' ->
-       `Nill'
-           {_@_ `alpha{-s1NL-}'}
-`Conss'  :: 
-    `alpha{-r49-} -> LList alpha{-r49-} -> LList alpha{-r49-}'
+    _/\_ `$x0' -> `Nill' {_@_ `$x0'}
+`Conss'  ::  `alpha -> LList alpha -> LList alpha'
 `Conss' =
-    _/\_ `alpha{-s1NM-}' -> \ `tpl'  :: 
-                                 `alpha{-s1NM-}'
-                             `tpl' `tpl'  :: 
-                                       `LList alpha{-s1NM-}'
-                                   `tpl' ->
-       `Conss'
-           {_@_ `alpha{-s1NM-}' `tpl' `tpl'}
+    _/\_ `$x0' -> \ `$x1'  ::  `$x0'
+                   `$x1' `$x2'  ::  `LList $x0'
+                         `$x2' ->
+       `Conss' {_@_ `$x0' `$x1' `$x2'}
 Rec {
-`append'  :: 
-    `LList a{-aHq-} -> LList a{-aHq-} -> LList a{-aHq-}'
+`append'  ::  `LList taCl -> LList taCl -> LList taCl'
 `append' =
-    _/\_ `a{-s1NN-}' -> \ `xs'  :: 
-                             `LList a{-s1NN-}'
-                         `xs' `ys'  :: 
-                                  `LList a{-s1NN-}'
-                              `ys' ->
-       case `xs' of {
-         `Nill' ->
-             `ys';
-         `Conss' `z' `zs' ->
+    _/\_ `$x0' -> \ `$x1'  ::  `LList $x0'
+                   `$x1' `$x2'  ::  `LList $x0'
+                         `$x2' ->
+       case `$x1' of {
+         `Nill' -> `$x2';
+         `Conss' `$x3' `$x4' ->
              let {
-               `ds'  :: 
-                   `LList a{-s1NN-}'
-               `ds' =
-                   `append'
-                       _@_ `a{-s1NN-}' `zs' `ys'
-             } in 
-               `Conss'
-                   {_@_ `a{-s1NN-}' `z' `ds'};
+               `$x5'  ::  `LList $x0'
+               `$x5' =
+                   `append' _@_ `$x0' `$x4' `$x2'
+             } in  `Conss' {_@_ `$x0' `$x3' `$x5'};
        }
 end Rec }
 Rec {
-`flat'  :: 
-    `Tree (Pair a{-aHT-} b{-aHU-}) -> LList a{-aHT-}'
+`flat'  ::  `Tree (Pair taCO taCP) -> LList taCO'
 `flat' =
-    _/\_ `b{-s1NQ-}' `a{-s1NP-}' -> \ `s'  :: 
-                                         `Tree (Pair a{-s1NP-} b{-s1NQ-})'
-                                     `s' ->
-       case `s' of {
-         `Leaf' `ds' ->
-             case `ds' of { `MkPair' `a' `b'  ->
+    _/\_ `$x0' `$x1' -> \ `$x2'  ::  `Tree (Pair $x1 $x0)'
+                         `$x2' ->
+       case `$x2' of {
+         `Leaf' `$x3' ->
+             case `$x3' of { `MkPair' `$x4' `$x5'  ->
              let {
-               `ds'  :: 
-                   `LList a{-s1NP-}'
-               `ds' =
-                   `Nill'
-                       {_@_ `a{-s1NP-}'}
-             } in 
-               `Conss'
-                   {_@_ `a{-s1NP-}' `a' `ds'};};
-         `Node' `l' `r' ->
-             case
-                 `flat'
-                     _@_ `b{-s1NQ-}' _@_ `a{-s1NP-}' `l'
-             of {
-             `ds' ->
+               `$x6'  ::  `LList $x1'
+               `$x6' =
+                   `Nill' {_@_ `$x1'}
+             } in  `Conss' {_@_ `$x1' `$x4' `$x6'};};
+         `Node' `$x7' `$x8' ->
              let {
-               `ds'  :: 
-                   `LList a{-s1NP-}'
-               `ds' =
-                   `flat'
-                       _@_ `b{-s1NQ-}' _@_ `a{-s1NP-}' `r'
+               `$x9'  ::  `LList $x1'
+               `$x9' =
+                   `flat' _@_ `$x0' _@_ `$x1' `$x8'
              } in 
-               `append'
-                   _@_ `a{-s1NP-}' `ds' `ds';};
+               case `flat' _@_ `$x0' _@_ `$x1' `$x7' of { `$xa' ->
+               `append' _@_ `$x1' `$xa' `$x9';};
        }
 end Rec }
-`Zero'  :: 
-    `Nat'
-`Zero' =
-    `Zero'
-       {}
-`Succ'  :: 
-    `Nat -> Nat'
-`Succ' =
-    \ `tpl'  :: 
-         `Nat'
-      `tpl' ->
-       `Succ'
-           {`tpl'}
-`Leaf'  :: 
-    `x{-r46-} -> Tree x{-r46-}'
-`Leaf' =
-    _/\_ `x{-s1NU-}' -> \ `tpl'  :: 
-                             `x{-s1NU-}'
-                         `tpl' ->
-       `Leaf'
-           {_@_ `x{-s1NU-}' `tpl'}
-`Node'  :: 
-    `Tree x{-r46-} -> Tree x{-r46-} -> Tree x{-r46-}'
-`Node' =
-    _/\_ `x{-s1NV-}' -> \ `tpl'  :: 
-                             `Tree x{-s1NV-}'
-                         `tpl' `tpl'  :: 
-                                   `Tree x{-s1NV-}'
-                               `tpl' ->
-       `Node'
-           {_@_ `x{-s1NV-}' `tpl' `tpl'}
-`$d6'  :: 
-    `{PrelBase.Eval Boolean}'
+`FF'  ::  `Boolean'
+`FF' =
+    `FF' {}
+`TT'  ::  `Boolean'
+`TT' =
+    `TT' {}
+`$d6'  ::  `{PrelBase.Eval Boolean}'
 `$d6' =
     `PrelBase.void'
-`$d3'  :: 
-    `{PrelBase.Eval Nat}'
+`$d3'  ::  `{PrelBase.Eval Nat}'
 `$d3' =
     `PrelBase.void'
-`s1h2'  :: 
-    `Pair Boolean Nat'
-`s1h2' =
-    `MkPair'
-       {_@_ `Boolean' _@_ `Nat' `TT' `Zero'}
-`s1h7'  :: 
-    `Tree (Pair Boolean Nat)'
-`s1h7' =
-    `Leaf'
-       {_@_ (`Pair' `Boolean' `Nat') `s1h2'}
-`s1l4'  :: 
-    `LList Boolean'
-`s1l4' =
-    `flat'
-       _@_ `Nat' _@_ `Boolean' `s1h7'
-`fl'  :: 
-    `Boolean -> LList Boolean'
+`$g0'  ::  `Pair Boolean Nat'
+`$g0' =
+    `MkPair' {_@_ `Boolean' _@_ `Nat' `TT' `Zero'}
+`$g1'  ::  `Tree (Pair Boolean Nat)'
+`$g1' =
+    `Leaf' {_@_ (`Pair' `Boolean' `Nat') `$g0'}
+`$g2'  ::  `LList Boolean'
+`$g2' =
+    `flat' _@_ `Nat' _@_ `Boolean' `$g1'
+`fl'  ::  `Boolean -> LList Boolean'
 `fl' =
-    \ `x'  :: 
-         `Boolean'
-      `x' ->
-       `s1l4'
+    \ `$x0'  ::  `Boolean'
+      `$x0' ->
+       `$g2'
diff --git a/ghc/tests/stranal/should_compile/map.hs b/ghc/tests/stranal/should_compile/map.hs
new file mode 100644 (file)
index 0000000..f4ec1ec
--- /dev/null
@@ -0,0 +1,32 @@
+module Test where
+data Boolean = FF | TT
+data Pair a b = MkPair a b
+data LList alpha = Nill | Conss alpha (LList alpha) 
+data Nat = Zero | Succ Nat
+data Tree x = Leaf x | Node (Tree x) (Tree x) 
+data A a = MkA a (A a) 
+
+{-
+map :: (a -> b) -> [a] -> [b]
+map f xs = case xs of
+             []     -> []
+             (y:ys) -> (f y):(map f ys)
+
+map_ide :: [[a]] -> [[a]]
+map_ide = map (\x->x)
+-}
+
+my_id :: a -> a
+my_id x = x
+
+idNat :: Nat -> Nat
+idNat x = x
+
+idBool :: Boolean -> Boolean
+idBool x = x
+
+fun :: (a->b) -> a -> b
+fun f x = g f
+ where 
+  g f   = f x
+
diff --git a/ghc/tests/stranal/should_compile/map.lhs b/ghc/tests/stranal/should_compile/map.lhs
deleted file mode 100644 (file)
index 343e36a..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-> module Test where
-> data Boolean = FF | TT
-> data Pair a b = MkPair a b
-> data LList alpha = Nill | Conss alpha (LList alpha) 
-> data Nat = Zero | Succ Nat
-> data Tree x = Leaf x | Node (Tree x) (Tree x) 
-> data A a = MkA a (A a) 
-
-> {-
-> map :: (a -> b) -> [a] -> [b]
-> map f xs = case xs of
->              []     -> []
->              (y:ys) -> (f y):(map f ys)
-
-> map_ide :: [[a]] -> [[a]]
-> map_ide = map (\x->x)
->-}
-
-> id :: a -> a
-> id x = x
-
-> idNat :: Nat -> Nat
-> idNat x = x
-
-> idBool :: Boolean -> Boolean
-> idBool x = x
-
-> fun :: (a->b) -> a -> b
-> fun f x = g f
->  where 
->   g f   = f x
-
index e69de29..92701e8 100644 (file)
@@ -0,0 +1,89 @@
+
+
+================================================================================
+Simplified:
+`$d5'  ::  `{PrelBase.Eval (Pair a b)}'
+`$d5' =
+    _/\_ `$x0' `$x1' -> `PrelBase.void'
+`$d4'  ::  `{PrelBase.Eval (LList alpha)}'
+`$d4' =
+    _/\_ `$x0' -> `PrelBase.void'
+`$d2'  ::  `{PrelBase.Eval (Tree x)}'
+`$d2' =
+    _/\_ `$x0' -> `PrelBase.void'
+`$d1'  ::  `{PrelBase.Eval (A a)}'
+`$d1' =
+    _/\_ `$x0' -> `PrelBase.void'
+`MkA'  ::  `a -> A a -> A a'
+`MkA' =
+    _/\_ `$x0' -> \ `$x1'  ::  `$x0'
+                   `$x1' `$x2'  ::  `A $x0'
+                         `$x2' ->
+       `MkA' {_@_ `$x0' `$x1' `$x2'}
+`MkPair'  ::  `a -> b -> Pair a b'
+`MkPair' =
+    _/\_ `$x0' `$x1' -> \ `$x2'  ::  `$x0'
+                         `$x2' `$x3'  ::  `$x1'
+                               `$x3' ->
+       `MkPair' {_@_ `$x0' _@_ `$x1' `$x2' `$x3'}
+`fun'  ::  `(taCj -> taCk) -> taCj -> taCk'
+`fun' =
+    _/\_ `$x0' `$x1' -> \ `$x2'  ::  `$x0 -> $x1'
+                         `$x2' `$x3'  ::  `$x0'
+                               `$x3' ->
+       `$x2' `$x3'
+`my_id'  ::  `taCT -> taCT'
+`my_id' =
+    _/\_ `$x0' -> \ `$x1'  ::  `$x0'
+                   `$x1' ->
+       `$x1'
+`Leaf'  ::  `x -> Tree x'
+`Leaf' =
+    _/\_ `$x0' -> \ `$x1'  ::  `$x0'
+                   `$x1' ->
+       `Leaf' {_@_ `$x0' `$x1'}
+`Node'  ::  `Tree x -> Tree x -> Tree x'
+`Node' =
+    _/\_ `$x0' -> \ `$x1'  ::  `Tree $x0'
+                   `$x1' `$x2'  ::  `Tree $x0'
+                         `$x2' ->
+       `Node' {_@_ `$x0' `$x1' `$x2'}
+`Zero'  ::  `Nat'
+`Zero' =
+    `Zero' {}
+`Succ'  ::  `Nat -> Nat'
+`Succ' =
+    \ `$x0'  ::  `Nat'
+      `$x0' ->
+       `Succ' {`$x0'}
+`Nill'  ::  `LList alpha'
+`Nill' =
+    _/\_ `$x0' -> `Nill' {_@_ `$x0'}
+`Conss'  ::  `alpha -> LList alpha -> LList alpha'
+`Conss' =
+    _/\_ `$x0' -> \ `$x1'  ::  `$x0'
+                   `$x1' `$x2'  ::  `LList $x0'
+                         `$x2' ->
+       `Conss' {_@_ `$x0' `$x1' `$x2'}
+`FF'  ::  `Boolean'
+`FF' =
+    `FF' {}
+`TT'  ::  `Boolean'
+`TT' =
+    `TT' {}
+`$d6'  ::  `{PrelBase.Eval Boolean}'
+`$d6' =
+    `PrelBase.void'
+`$d3'  ::  `{PrelBase.Eval Nat}'
+`$d3' =
+    `PrelBase.void'
+`idNat'  ::  `Nat -> Nat'
+`idNat' =
+    \ `$x0'  ::  `Nat'
+      `$x0' ->
+       `$x0'
+`idBool'  ::  `Boolean -> Boolean'
+`idBool' =
+    \ `$x0'  ::  `Boolean'
+      `$x0' ->
+       `$x0'
diff --git a/ghc/tests/stranal/should_compile/moo.lhs b/ghc/tests/stranal/should_compile/moo.lhs
deleted file mode 100644 (file)
index 35967ba..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-> module Test where
-> data Moo a b = Msimple | Mcompl (Moo b a)
-
-
-> idMoo :: Moo a -> Moo a
-> idMoo x = x
diff --git a/ghc/tests/stranal/should_compile/sim.hs b/ghc/tests/stranal/should_compile/sim.hs
new file mode 100644 (file)
index 0000000..d6de6ec
--- /dev/null
@@ -0,0 +1,103 @@
+module Test where
+data Boolean = FF | TT
+data Pair a b = MkPair a b
+data LList alpha = Nill | Conss alpha (LList alpha) 
+data Nat = Zero | Succ Nat
+data Tree x = Leaf x | Node (Tree x) (Tree x) 
+data A a = MkA a (A a) 
+{-
+id :: a -> a
+id x = x      
+
+idb :: Boolean -> Boolean
+idb b = b
+
+swap :: Pair a b -> Pair b a
+swap t = case t of 
+           MkPair x y -> MkPair y x
+
+bang :: A (A a) -> Boolean
+bang x = case x of
+           MkA y ys -> TT
+
+neg :: Boolean -> Boolean
+neg b = case b of 
+         FF -> TT 
+         TT -> FF 
+
+null :: LList x -> Boolean
+null l = case l of 
+           Nill -> TT
+           _ -> FF
+
+loop :: Boolean -> a
+loop b = loop b
+-}
+idl ::  LList a -> LList a
+idl xs  = case xs of
+           Conss y ys -> Conss y (idl ys)
+           _ -> Nill 
+{-
+idn :: Nat -> Nat
+idn n = case n of
+          Zero -> Zero 
+          Succ m -> Succ (idn m)
+
+add :: Nat -> Nat -> Nat
+add a b = case a of 
+            Zero -> b
+            Succ c -> Succ (add c b) 
+
+length :: LList a -> Nat
+length xs = case xs of 
+              Nill -> Zero
+              Conss y ys  -> Succ(length ys) 
+
+before :: LList Nat -> LList Nat
+before xs = case xs of
+              Nill -> Nill
+              Conss y ys -> case y of 
+                             Zero -> Nill
+                             Succ n -> Conss y (before ys)     
+
+reverse :: LList a -> LList a
+reverse rs = case rs of
+               Nill -> Nill
+               Conss y ys -> append (reverse ys) (Conss y Nill) 
+
+f :: Nat -> Nat
+f n = case n of
+        Zero -> Zero
+        Succ m -> Succ (g m)
+
+g :: Nat -> Nat
+g n = case n of
+       Zero -> Zero
+       Succ m -> Succ (f m)
+
+append :: LList a -> LList a -> LList a
+append  xs ys  = case xs of
+                  Nill -> ys 
+                  Conss z zs  -> Conss z (append zs ys) 
+
+flatten :: Tree alpha -> LList alpha
+flatten t = case t of
+              Leaf x   -> Conss x Nill 
+              Node l r -> append (flatten l) (flatten r)
+
+sum :: Tree Nat -> Nat
+sum t = case t of
+          Leaf t   -> t
+          Node l r -> add (sum l) (sum r) 
+
+suml :: LList Nat -> Nat
+suml Nill = Zero
+suml (Conss n ns) = add n (suml ns)
+
+map :: (a -> b) -> LList a -> LList b
+map f xs = case xs of
+             Nill -> Nill
+             Conss y ys -> Conss (f y) (map f ys)
+-}
+
+
diff --git a/ghc/tests/stranal/should_compile/sim.lhs b/ghc/tests/stranal/should_compile/sim.lhs
deleted file mode 100644 (file)
index 6c52104..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-> module Test where
-> data Boolean = FF | TT
-> data Pair a b = MkPair a b
-> data LList alpha = Nill | Conss alpha (LList alpha) 
-> data Nat = Zero | Succ Nat
-> data Tree x = Leaf x | Node (Tree x) (Tree x) 
-> data A a = MkA a (A a) 
->{-
-> id :: a -> a
-> id x = x      
->
-> idb :: Boolean -> Boolean
-> idb b = b
->
-> swap :: Pair a b -> Pair b a
-> swap t = case t of 
->            MkPair x y -> MkPair y x
->
-> bang :: A (A a) -> Boolean
-> bang x = case x of
->            MkA y ys -> TT
->
-> neg :: Boolean -> Boolean
-> neg b = case b of 
->          FF -> TT 
->          TT -> FF 
->
-> null :: LList x -> Boolean
-> null l = case l of 
->            Nill -> TT
->            _ -> FF
->
-> loop :: Boolean -> a
-> loop b = loop b
->-}
-> idl ::  LList a -> LList a
-> idl xs  = case xs of
->            Conss y ys -> Conss y (idl ys)
->            _ -> Nill 
->{-
-> idn :: Nat -> Nat
-> idn n = case n of
->           Zero -> Zero 
->           Succ m -> Succ (idn m)
->
-> add :: Nat -> Nat -> Nat
-> add a b = case a of 
->             Zero -> b
->             Succ c -> Succ (add c b) 
->
-> length :: LList a -> Nat
-> length xs = case xs of 
->               Nill -> Zero
->               Conss y ys  -> Succ(length ys) 
->
-> before :: LList Nat -> LList Nat
-> before xs = case xs of
->               Nill -> Nill
->               Conss y ys -> case y of 
->                              Zero -> Nill
->                              Succ n -> Conss y (before ys)     
->
-> reverse :: LList a -> LList a
-> reverse rs = case rs of
->                Nill -> Nill
->                Conss y ys -> append (reverse ys) (Conss y Nill) 
->
-> f :: Nat -> Nat
-> f n = case n of
->         Zero -> Zero
->         Succ m -> Succ (g m)
->
-> g :: Nat -> Nat
-> g n = case n of
->        Zero -> Zero
->        Succ m -> Succ (f m)
->
-> append :: LList a -> LList a -> LList a
-> append  xs ys  = case xs of
->                   Nill -> ys 
->                   Conss z zs  -> Conss z (append zs ys) 
->
-> flatten :: Tree alpha -> LList alpha
-> flatten t = case t of
->               Leaf x   -> Conss x Nill 
->               Node l r -> append (flatten l) (flatten r)
->
-> sum :: Tree Nat -> Nat
-> sum t = case t of
->           Leaf t   -> t
->           Node l r -> add (sum l) (sum r) 
->
-> suml :: LList Nat -> Nat
-> suml Nill = Zero
-> suml (Conss n ns) = add n (suml ns)
->
-> map :: (a -> b) -> LList a -> LList b
-> map f xs = case xs of
->              Nill -> Nill
->              Conss y ys -> Conss (f y) (map f ys)
->-}
-
-
index cd43601..c61de80 100644 (file)
 
 
---================================================================================
+================================================================================
 Simplified:
-`$d5'  :: 
-    `{PrelBase.Eval (Pair a{-r3R-} b{-r3S-})}'
+`$d5'  ::  `{PrelBase.Eval (Pair a b)}'
 `$d5' =
-    _/\_ `a{-s1g3-}' `b{-s1g4-}' ->
-       `PrelBase.void'
-`$d4'  :: 
-    `{PrelBase.Eval (LList alpha{-r3P-})}'
+    _/\_ `$x0' `$x1' -> `PrelBase.void'
+`$d4'  ::  `{PrelBase.Eval (LList alpha)}'
 `$d4' =
-    _/\_ `alpha{-s1g5-}' ->
-       `PrelBase.void'
-`$d2'  :: 
-    `{PrelBase.Eval (Tree x{-r3M-})}'
+    _/\_ `$x0' -> `PrelBase.void'
+`$d2'  ::  `{PrelBase.Eval (Tree x)}'
 `$d2' =
-    _/\_ `x{-s1g6-}' ->
-       `PrelBase.void'
-`$d1'  :: 
-    `{PrelBase.Eval (A a{-r3K-})}'
+    _/\_ `$x0' -> `PrelBase.void'
+`$d1'  ::  `{PrelBase.Eval (A a)}'
 `$d1' =
-    _/\_ `a{-s1g7-}' ->
-       `PrelBase.void'
-`MkPair'  :: 
-    `a{-r3R-} -> b{-r3S-} -> Pair a{-r3R-} b{-r3S-}'
-`MkPair' =
-    _/\_ `a{-s1fQ-}' `b{-s1fR-}' -> \ `tpl'  :: 
-                                         `a{-s1fQ-}'
-                                     `tpl' `tpl'  :: 
-                                               `b{-s1fR-}'
-                                           `tpl' ->
-       `MkPair'
-           {_@_ `a{-s1fQ-}' _@_ `b{-s1fR-}' `tpl' `tpl'}
-`MkA'  :: 
-    `a{-r3K-} -> A a{-r3K-} -> A a{-r3K-}'
+    _/\_ `$x0' -> `PrelBase.void'
+`MkA'  ::  `a -> A a -> A a'
 `MkA' =
-    _/\_ `a{-s1fS-}' -> \ `tpl'  :: 
-                             `a{-s1fS-}'
-                         `tpl' `tpl'  :: 
-                                   `A a{-s1fS-}'
-                               `tpl' ->
-       `MkA'
-           {_@_ `a{-s1fS-}' `tpl' `tpl'}
-`FF'  :: 
-    `Boolean'
-`FF' =
-    `FF'
-       {}
-`TT'  :: 
-    `Boolean'
-`TT' =
-    `TT'
-       {}
-`Nill'  :: 
-    `LList alpha{-r3P-}'
+    _/\_ `$x0' -> \ `$x1'  ::  `$x0'
+                   `$x1' `$x2'  ::  `A $x0'
+                         `$x2' ->
+       `MkA' {_@_ `$x0' `$x1' `$x2'}
+`MkPair'  ::  `a -> b -> Pair a b'
+`MkPair' =
+    _/\_ `$x0' `$x1' -> \ `$x2'  ::  `$x0'
+                         `$x2' `$x3'  ::  `$x1'
+                               `$x3' ->
+       `MkPair' {_@_ `$x0' _@_ `$x1' `$x2' `$x3'}
+`Leaf'  ::  `x -> Tree x'
+`Leaf' =
+    _/\_ `$x0' -> \ `$x1'  ::  `$x0'
+                   `$x1' ->
+       `Leaf' {_@_ `$x0' `$x1'}
+`Node'  ::  `Tree x -> Tree x -> Tree x'
+`Node' =
+    _/\_ `$x0' -> \ `$x1'  ::  `Tree $x0'
+                   `$x1' `$x2'  ::  `Tree $x0'
+                         `$x2' ->
+       `Node' {_@_ `$x0' `$x1' `$x2'}
+`Zero'  ::  `Nat'
+`Zero' =
+    `Zero' {}
+`Succ'  ::  `Nat -> Nat'
+`Succ' =
+    \ `$x0'  ::  `Nat'
+      `$x0' ->
+       `Succ' {`$x0'}
+`Nill'  ::  `LList alpha'
 `Nill' =
-    _/\_ `alpha{-s1fT-}' ->
-       `Nill'
-           {_@_ `alpha{-s1fT-}'}
-`Conss'  :: 
-    `alpha{-r3P-} -> LList alpha{-r3P-} -> LList alpha{-r3P-}'
+    _/\_ `$x0' -> `Nill' {_@_ `$x0'}
+`Conss'  ::  `alpha -> LList alpha -> LList alpha'
 `Conss' =
-    _/\_ `alpha{-s1fU-}' -> \ `tpl'  :: 
-                                 `alpha{-s1fU-}'
-                             `tpl' `tpl'  :: 
-                                       `LList alpha{-s1fU-}'
-                                   `tpl' ->
-       `Conss'
-           {_@_ `alpha{-s1fU-}' `tpl' `tpl'}
+    _/\_ `$x0' -> \ `$x1'  ::  `$x0'
+                   `$x1' `$x2'  ::  `LList $x0'
+                         `$x2' ->
+       `Conss' {_@_ `$x0' `$x1' `$x2'}
 Rec {
-`idl'  :: 
-    `LList a{-aH5-} -> LList a{-aH5-}'
+`idl'  ::  `LList taC1 -> LList taC1'
 `idl' =
-    _/\_ `a{-s1fV-}' -> \ `xs'  :: 
-                             `LList a{-s1fV-}'
-                         `xs' ->
-       case `xs' of {
-         `Nill' ->
-             `Nill'
-                 {_@_ `a{-s1fV-}'};
-         `Conss' `y' `ys' ->
+    _/\_ `$x0' -> \ `$x1'  ::  `LList $x0'
+                   `$x1' ->
+       case `$x1' of {
+         `Nill' -> `Nill' {_@_ `$x0'};
+         `Conss' `$x2' `$x3' ->
              let {
-               `ds'  :: 
-                   `LList a{-s1fV-}'
-               `ds' =
-                   `idl'
-                       _@_ `a{-s1fV-}' `ys'
-             } in 
-               `Conss'
-                   {_@_ `a{-s1fV-}' `y' `ds'};
+               `$x4'  ::  `LList $x0'
+               `$x4' =
+                   `idl' _@_ `$x0' `$x3'
+             } in  `Conss' {_@_ `$x0' `$x2' `$x4'};
        }
 end Rec }
-`Zero'  :: 
-    `Nat'
-`Zero' =
-    `Zero'
-       {}
-`Succ'  :: 
-    `Nat -> Nat'
-`Succ' =
-    \ `tpl'  :: 
-         `Nat'
-      `tpl' ->
-       `Succ'
-           {`tpl'}
-`Leaf'  :: 
-    `x{-r3M-} -> Tree x{-r3M-}'
-`Leaf' =
-    _/\_ `x{-s1fZ-}' -> \ `tpl'  :: 
-                             `x{-s1fZ-}'
-                         `tpl' ->
-       `Leaf'
-           {_@_ `x{-s1fZ-}' `tpl'}
-`Node'  :: 
-    `Tree x{-r3M-} -> Tree x{-r3M-} -> Tree x{-r3M-}'
-`Node' =
-    _/\_ `x{-s1g2-}' -> \ `tpl'  :: 
-                             `Tree x{-s1g2-}'
-                         `tpl' `tpl'  :: 
-                                   `Tree x{-s1g2-}'
-                               `tpl' ->
-       `Node'
-           {_@_ `x{-s1g2-}' `tpl' `tpl'}
-`$d6'  :: 
-    `{PrelBase.Eval Boolean}'
+`FF'  ::  `Boolean'
+`FF' =
+    `FF' {}
+`TT'  ::  `Boolean'
+`TT' =
+    `TT' {}
+`$d6'  ::  `{PrelBase.Eval Boolean}'
 `$d6' =
     `PrelBase.void'
-`$d3'  :: 
-    `{PrelBase.Eval Nat}'
+`$d3'  ::  `{PrelBase.Eval Nat}'
 `$d3' =
     `PrelBase.void'
diff --git a/ghc/tests/stranal/should_compile/syn.hs b/ghc/tests/stranal/should_compile/syn.hs
new file mode 100644 (file)
index 0000000..e4b1f63
--- /dev/null
@@ -0,0 +1,15 @@
+--!!! THIS TEST IS FOR TYPE SYNONIMS AND FACTORISATION IN THEIR PRESENCE.
+
+module Test where
+data M a = A | B a (M a)
+data L a = N | C a (Syn a)
+type Syn b = L b
+
+idL :: L (Syn c) -> L (Syn c)
+idL N       = N
+idL (C x l) = C x (idL l) 
+
+idM:: M (L (Syn x)) -> M (L (Syn x))
+idM A       = A
+idM (B x l) = B (idL x) (idM l) 
+
diff --git a/ghc/tests/stranal/should_compile/syn.lhs b/ghc/tests/stranal/should_compile/syn.lhs
deleted file mode 100644 (file)
index 59d6bac..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-THIS TEST IS FOR TYPE SYNONIMS AND FACTORISATION IN THEIR PRESENCE.
-
-> module Test where
-> data M a = A | B a (M a)
-> data L a = N | C a (Syn a)
-> type Syn b = L b
->
-> idL :: L (Syn c) -> L (Syn c)
-> idL N       = N
-> idL (C x l) = C x (idL l) 
->
-> idM:: M (L (Syn x)) -> M (L (Syn x))
-> idM A       = A
-> idM (B x l) = B (idL x) (idM l) 
-
index 6300c53..cc51a99 100644 (file)
@@ -1,90 +1,62 @@
 
 
---================================================================================
+================================================================================
 Simplified:
-`$d2'  :: 
-    `{PrelBase.Eval (M a{-r3H-})}'
+`$d2'  ::  `{PrelBase.Eval (M a)}'
 `$d2' =
-    _/\_ `a{-s191-}' ->
-       `PrelBase.void'
-`$d1'  :: 
-    `{PrelBase.Eval (L a{-r3F-})}'
+    _/\_ `$x0' -> `PrelBase.void'
+`$d1'  ::  `{PrelBase.Eval (L a)}'
 `$d1' =
-    _/\_ `a{-s192-}' ->
-       `PrelBase.void'
-`A'  :: 
-    `M a{-r3H-}'
-`A' =
-    _/\_ `a{-s18T-}' ->
-       `A' {_@_ `a{-s18T-}'}
-`B'  :: 
-    `a{-r3H-} -> M a{-r3H-} -> M a{-r3H-}'
-`B' =
-    _/\_ `a{-s18U-}' -> \ `tpl'  :: 
-                             `a{-s18U-}'
-                         `tpl' `tpl'  :: 
-                                   `M a{-s18U-}'
-                               `tpl' ->
-       `B' {_@_ `a{-s18U-}' `tpl' `tpl'}
-`N'  :: 
-    `L a{-r3F-}'
+    _/\_ `$x0' -> `PrelBase.void'
+`N'  ::  `L a'
 `N' =
-    _/\_ `a{-s18V-}' ->
-       `N' {_@_ `a{-s18V-}'}
-`C'  :: 
-    `a{-r3F-} -> Syn a{-r3F-} -> L a{-r3F-}'
+    _/\_ `$x0' -> `N' {_@_ `$x0'}
+`C'  ::  `a -> Syn a -> L a'
 `C' =
-    _/\_ `a{-s18W-}' -> \ `tpl'  :: 
-                             `a{-s18W-}'
-                         `tpl' `tpl'  :: 
-                                   `Syn a{-s18W-}'
-                               `tpl' ->
-       `C' {_@_ `a{-s18W-}' `tpl' `tpl'}
+    _/\_ `$x0' -> \ `$x1'  ::  `$x0'
+                   `$x1' `$x2'  ::  `Syn $x0'
+                         `$x2' ->
+       `C' {_@_ `$x0' `$x1' `$x2'}
 Rec {
-`idL'  :: 
-    `L (Syn c{-aGI-}) -> L (Syn c{-aGI-})'
+`idL'  ::  `L (Syn taBE) -> L (Syn taBE)'
 `idL' =
-    _/\_ `c{-s18X-}' -> \ `ds'  :: 
-                             `L (Syn c{-s18X-})'
-                         `ds' ->
-       case `ds' of {
-         `N' ->
-             `N' {_@_ (`Syn' `c{-s18X-}')};
-         `C' `x' `l' ->
+    _/\_ `$x0' -> \ `$x1'  ::  `L (Syn $x0)'
+                   `$x1' ->
+       case `$x1' of {
+         `N' -> `N' {_@_ (`Syn' `$x0')};
+         `C' `$x2' `$x3' ->
              let {
-               `ds'  :: 
-                   `L (Syn c{-s18X-})'
-               `ds' =
-                   `idL'
-                       _@_ `c{-s18X-}' `l'
-             } in 
-               `C' {_@_ (`Syn' `c{-s18X-}') `x' `ds'};
+               `$x4'  ::  `L (Syn $x0)'
+               `$x4' =
+                   `idL' _@_ `$x0' `$x3'
+             } in  `C' {_@_ (`Syn' `$x0') `$x2' `$x4'};
        }
 end Rec }
+`A'  ::  `M a'
+`A' =
+    _/\_ `$x0' -> `A' {_@_ `$x0'}
+`B'  ::  `a -> M a -> M a'
+`B' =
+    _/\_ `$x0' -> \ `$x1'  ::  `$x0'
+                   `$x1' `$x2'  ::  `M $x0'
+                         `$x2' ->
+       `B' {_@_ `$x0' `$x1' `$x2'}
 Rec {
-`idM'  :: 
-    `M (L (Syn x{-aH8-})) -> M (L (Syn x{-aH8-}))'
+`idM'  ::  `M (L (Syn taC4)) -> M (L (Syn taC4))'
 `idM' =
-    _/\_ `x{-s18Z-}' -> \ `ds'  :: 
-                             `M (L (Syn x{-s18Z-}))'
-                         `ds' ->
-       case `ds' of {
-         `A' ->
-             `A' {_@_ (`L' (`Syn' `x{-s18Z-}'))};
-         `B' `x' `l' ->
+    _/\_ `$x0' -> \ `$x1'  ::  `M (L (Syn $x0))'
+                   `$x1' ->
+       case `$x1' of {
+         `A' -> `A' {_@_ (`L' (`Syn' `$x0'))};
+         `B' `$x2' `$x3' ->
              let {
-               `ds'  :: 
-                   `L (Syn x{-s18Z-})'
-               `ds' =
-                   `idL'
-                       _@_ `x{-s18Z-}' `x' } in
+               `$x4'  ::  `M (L (Syn $x0))'
+               `$x4' =
+                   `idM' _@_ `$x0' `$x3' } in
              let {
-               `ds'  :: 
-                   `M (L (Syn x{-s18Z-}))'
-               `ds' =
-                   `idM'
-                       _@_ `x{-s18Z-}' `l'
-             } in 
-               `B' {_@_ (`L' (`Syn' `x{-s18Z-}')) `ds' `ds'};
+               `$x5'  ::  `L (Syn $x0)'
+               `$x5' =
+                   `idL' _@_ `$x0' `$x2'
+             } in  `B' {_@_ (`L' (`Syn' `$x0')) `$x5' `$x4'};
        }
 end Rec }
diff --git a/ghc/tests/stranal/should_compile/test.hs b/ghc/tests/stranal/should_compile/test.hs
new file mode 100644 (file)
index 0000000..c984c32
--- /dev/null
@@ -0,0 +1,6 @@
+module Test where
+data LList t = Nill | Conss t (LList t)
+data BBool = TTrue | FFalse
+
+f Nill = TTrue
+f (Conss a as) = FFalse
diff --git a/ghc/tests/stranal/should_compile/test.lhs b/ghc/tests/stranal/should_compile/test.lhs
deleted file mode 100644 (file)
index f89509a..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-> module Test where
-> data LList t = Nill | Conss t (LList t)
-> data BBool = TTrue | FFalse
-
-> f Nill = TTrue
-> f (Conss a as) = FFalse
index 6140fc1..78affa4 100644 (file)
@@ -1,53 +1,33 @@
 
 
---================================================================================
+================================================================================
 Simplified:
-`$d2'  :: 
-    `{PrelBase.Eval (LList t{-r3s-})}'
+`$d2'  ::  `{PrelBase.Eval (LList t)}'
 `$d2' =
-    _/\_ `t{-sUf-}' ->
-       `PrelBase.void'
-`Nill'  :: 
-    `LList t{-r3s-}'
-`Nill' =
-    _/\_ `t{-sUc-}' ->
-       `Nill'
-           {_@_ `t{-sUc-}'}
-`Conss'  :: 
-    `t{-r3s-} -> LList t{-r3s-} -> LList t{-r3s-}'
-`Conss' =
-    _/\_ `t{-sUd-}' -> \ `tpl'  :: 
-                            `t{-sUd-}'
-                        `tpl' `tpl'  :: 
-                                  `LList t{-sUd-}'
-                              `tpl' ->
-       `Conss'
-           {_@_ `t{-sUd-}' `tpl' `tpl'}
-`TTrue'  :: 
-    `BBool'
+    _/\_ `$x0' -> `PrelBase.void'
+`TTrue'  ::  `BBool'
 `TTrue' =
-    `TTrue'
-       {}
-`FFalse'  :: 
-    `BBool'
+    `TTrue' {}
+`FFalse'  ::  `BBool'
 `FFalse' =
-    `FFalse'
-       {}
-`f'  :: 
-    `LList t{-aGi-} -> BBool'
+    `FFalse' {}
+`f'  ::  `LList taBg -> BBool'
 `f' =
-    _/\_ `t{-sUe-}' -> \ `ds'  :: 
-                            `LList t{-sUe-}'
-                        `ds' ->
-       case `ds' of {
-         `Nill' ->
-             `TTrue'
-                 {};
-         `Conss' `a' `as' ->
-             `FFalse'
-                 {};
+    _/\_ `$x0' -> \ `$x1'  ::  `LList $x0'
+                   `$x1' ->
+       case `$x1' of {
+         `Nill' -> `TTrue' {};
+         `Conss' `$x2' `$x3' -> `FFalse' {};
        }
-`$d1'  :: 
-    `{PrelBase.Eval BBool}'
+`Nill'  ::  `LList t'
+`Nill' =
+    _/\_ `$x0' -> `Nill' {_@_ `$x0'}
+`Conss'  ::  `t -> LList t -> LList t'
+`Conss' =
+    _/\_ `$x0' -> \ `$x1'  ::  `$x0'
+                   `$x1' `$x2'  ::  `LList $x0'
+                         `$x2' ->
+       `Conss' {_@_ `$x0' `$x1' `$x2'}
+`$d1'  ::  `{PrelBase.Eval BBool}'
 `$d1' =
     `PrelBase.void'
diff --git a/ghc/tests/stranal/should_compile/tst.hs b/ghc/tests/stranal/should_compile/tst.hs
new file mode 100644 (file)
index 0000000..5612921
--- /dev/null
@@ -0,0 +1,3 @@
+module Test where
+a :: [a] -> [[a]]
+a x = [x]
diff --git a/ghc/tests/stranal/should_compile/tst.lhs b/ghc/tests/stranal/should_compile/tst.lhs
deleted file mode 100644 (file)
index edaf20d..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-> module Test where
-> a :: [a] -> [[a]]
-> a x = [x]
index 7461d70..42ad81c 100644 (file)
@@ -1,19 +1,13 @@
 
 
---================================================================================
+================================================================================
 Simplified:
-`a'  :: 
-    `[a{-amL-}] -> [[a{-amL-}]]'
+`a'  ::  `[takb] -> [[takb]]'
 `a' =
-    _/\_ `a{-srv-}' -> \ `s'  :: 
-                            `[a{-srv-}]'
-                        `s' ->
+    _/\_ `$x0' -> \ `$x1'  ::  `[$x0]'
+                   `$x1' ->
        let {
-         `ds'  :: 
-             `[[a{-srv-}]]'
-         `ds' =
-             `PrelBase.[]'
-                 {_@_ [`a{-srv-}']}
-       } in 
-         `PrelBase.:'
-             {_@_ [`a{-srv-}'] `s' `ds'}
+         `$x2'  ::  `[[$x0]]'
+         `$x2' =
+             `PrelBase.[]' {_@_ [`$x0']}
+       } in  `PrelBase.:' {_@_ [`$x0'] `$x1' `$x2'}
diff --git a/ghc/tests/stranal/should_compile/unu.hs b/ghc/tests/stranal/should_compile/unu.hs
new file mode 100644 (file)
index 0000000..54bb25e
--- /dev/null
@@ -0,0 +1,76 @@
+module Test where
+data Boolean = FF | TT
+data Pair a b = Mkpair a b
+data LList alpha = Nill | Conss alpha (LList alpha) 
+data Nat = Zero | Succ Nat
+data Tree t = Leaf t | Node (Tree t) (Tree t) 
+data A a = MkA a (A a) 
+data Foo baz = MkFoo (Foo (Foo baz))
+{-
+ append1 :: LList a -> LList a -> LList a
+ append1 xs ys = append2 xs
+   where
+     append2 xs = case xs of
+                    Nill -> ys
+                    Conss x xs -> Conss x (append3 xs)
+     append3 xs = case xs of
+                    Nill -> ys
+                    Conss x xs -> Conss x (append2 xs)
+
+ loop :: a -> a
+ loop x =  loop x
+
+ hd :: LList b -> b
+ hd Nill         = loop
+ hd (Conss y ys) = y
+
+ hdb :: LList (LList b) -> LList b
+ hdb = hd
+
+ append :: [a] -> [a] -> [a]
+ append [] ys     = ys
+ append (x:xs) ys = x:(append xs ys)
+ f :: [a] -> [a]
+ f y = append x (f y)
+   where  x = append x (f y)
+-}
+app :: LList a -> LList a -> LList a
+app Nill Nill = Nill
+app  xs ys  = case xs of
+                Nill -> ys 
+                Conss z zs  -> Conss z (app zs ys) 
+{-
+ app :: LList a -> LList a -> LList a
+ app  xs ys = case xs of
+               Nill -> case ys of
+                        Nill -> Nill
+                        Conss u us -> ap 
+               Conss a as -> ap 
+  where ap = case xs of
+              Nill -> ys 
+              Conss z zs  -> Conss z (app zs ys) 
+
+ app :: LList a -> LList a -> LList a
+ app  xs ys = case xs of
+               Nill -> case ys of
+                        Nill -> Nill
+                        Conss u us -> ap xs ys
+               Conss a as -> ap xs ys
+
+ ap xs ys = case xs of
+              Nill -> ys 
+              Conss z zs  -> Conss z (app zs ys) 
+
+ ap :: LList a -> LList a -> LList a
+ ap  xs ys  = case xs of
+                 Nill -> ys 
+                 Conss z zs  -> Conss z (ap zs ys) 
+
+ app :: LList a -> LList a -> LList a
+ app  xs ys = case xs of
+               Nill -> case ys of
+                        Nill -> Nill
+                        Conss u us -> ap xs ys
+               Conss a as -> ap xs ys
+-}
diff --git a/ghc/tests/stranal/should_compile/unu.lhs b/ghc/tests/stranal/should_compile/unu.lhs
deleted file mode 100644 (file)
index da6370c..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-> module Test where
-> data Boolean = FF | TT
-> data Pair a b = Mkpair a b
-> data LList alpha = Nill | Conss alpha (LList alpha) 
-> data Nat = Zero | Succ Nat
-> data Tree t = Leaf t | Node (Tree t) (Tree t) 
-> data A a = MkA a (A a) 
-> data Foo baz = MkFoo (Foo (Foo baz))
->{-
-> append1 :: LList a -> LList a -> LList a
-> append1 xs ys = append2 xs
->   where
->     append2 xs = case xs of
->                    Nill -> ys
->                    Conss x xs -> Conss x (append3 xs)
->     append3 xs = case xs of
->                    Nill -> ys
->                    Conss x xs -> Conss x (append2 xs)
->
-> loop :: a -> a
-> loop x =  loop x
->
-> hd :: LList b -> b
-> hd Nill         = loop
-> hd (Conss y ys) = y
->
-> hdb :: LList (LList b) -> LList b
-> hdb = hd
->
-> append :: [a] -> [a] -> [a]
-> append [] ys     = ys
-> append (x:xs) ys = x:(append xs ys)
-> 
-> f :: [a] -> [a]
-> f y = append x (f y)
->   where  x = append x (f y)
->-}
-> app :: LList a -> LList a -> LList a
-> app Nill Nill = Nill
-> app  xs ys  = case xs of
->                 Nill -> ys 
->                 Conss z zs  -> Conss z (app zs ys) 
->{-
-> app :: LList a -> LList a -> LList a
-> app  xs ys = case xs of
->               Nill -> case ys of
->                        Nill -> Nill
->                        Conss u us -> ap 
->               Conss a as -> ap 
->  where ap = case xs of
->              Nill -> ys 
->              Conss z zs  -> Conss z (app zs ys) 
->
-> app :: LList a -> LList a -> LList a
-> app  xs ys = case xs of
->               Nill -> case ys of
->                        Nill -> Nill
->                        Conss u us -> ap xs ys
->               Conss a as -> ap xs ys
->
-> ap xs ys = case xs of
->              Nill -> ys 
->              Conss z zs  -> Conss z (app zs ys) 
->
-> ap :: LList a -> LList a -> LList a
-> ap  xs ys  = case xs of
->                 Nill -> ys 
->                 Conss z zs  -> Conss z (ap zs ys) 
->
-> app :: LList a -> LList a -> LList a
-> app  xs ys = case xs of
->               Nill -> case ys of
->                        Nill -> Nill
->                        Conss u us -> ap xs ys
->               Conss a as -> ap xs ys
->-}
index 6e8d06f..a5a8c1c 100644 (file)
 
 
---================================================================================
+================================================================================
 Simplified:
-`$d6'  :: 
-    `{PrelBase.Eval (Pair a{-r3Z-} b{-r40-})}'
+`$d6'  ::  `{PrelBase.Eval (Pair a b)}'
 `$d6' =
-    _/\_ `a{-s1oF-}' `b{-s1oG-}' ->
-       `PrelBase.void'
-`$d5'  :: 
-    `{PrelBase.Eval (LList alpha{-r3X-})}'
+    _/\_ `$x0' `$x1' -> `PrelBase.void'
+`$d5'  ::  `{PrelBase.Eval (LList alpha)}'
 `$d5' =
-    _/\_ `alpha{-s1oH-}' ->
-       `PrelBase.void'
-`$d3'  :: 
-    `{PrelBase.Eval (Tree t{-r3U-})}'
+    _/\_ `$x0' -> `PrelBase.void'
+`$d3'  ::  `{PrelBase.Eval (Tree t)}'
 `$d3' =
-    _/\_ `t{-s1oI-}' ->
-       `PrelBase.void'
-`$d2'  :: 
-    `{PrelBase.Eval (A a{-r3S-})}'
+    _/\_ `$x0' -> `PrelBase.void'
+`$d2'  ::  `{PrelBase.Eval (A a)}'
 `$d2' =
-    _/\_ `a{-s1oJ-}' ->
-       `PrelBase.void'
-`$d1'  :: 
-    `{PrelBase.Eval (Foo baz{-r3Q-})}'
+    _/\_ `$x0' -> `PrelBase.void'
+`$d1'  ::  `{PrelBase.Eval (Foo baz)}'
 `$d1' =
-    _/\_ `baz{-s1oK-}' ->
-       `PrelBase.void'
-`Mkpair'  :: 
-    `a{-r3Z-} -> b{-r40-} -> Pair a{-r3Z-} b{-r40-}'
-`Mkpair' =
-    _/\_ `a{-s1op-}' `b{-s1oq-}' -> \ `tpl'  :: 
-                                         `a{-s1op-}'
-                                     `tpl' `tpl'  :: 
-                                               `b{-s1oq-}'
-                                           `tpl' ->
-       `Mkpair'
-           {_@_ `a{-s1op-}' _@_ `b{-s1oq-}' `tpl' `tpl'}
-`MkA'  :: 
-    `a{-r3S-} -> A a{-r3S-} -> A a{-r3S-}'
-`MkA' =
-    _/\_ `a{-s1or-}' -> \ `tpl'  :: 
-                             `a{-s1or-}'
-                         `tpl' `tpl'  :: 
-                                   `A a{-s1or-}'
-                               `tpl' ->
-       `MkA'
-           {_@_ `a{-s1or-}' `tpl' `tpl'}
-`MkFoo'  :: 
-    `Foo (Foo baz{-r3Q-}) -> Foo baz{-r3Q-}'
+    _/\_ `$x0' -> `PrelBase.void'
+`MkFoo'  ::  `Foo (Foo baz) -> Foo baz'
 `MkFoo' =
-    _/\_ `baz{-s1os-}' -> \ `tpl'  :: 
-                               `Foo (Foo baz{-s1os-})'
-                           `tpl' ->
-       `MkFoo'
-           {_@_ `baz{-s1os-}' `tpl'}
-`FF'  :: 
-    `Boolean'
-`FF' =
-    `FF'
-       {}
-`TT'  :: 
-    `Boolean'
-`TT' =
-    `TT'
-       {}
-`Nill'  :: 
-    `LList alpha{-r3X-}'
+    _/\_ `$x0' -> \ `$x1'  ::  `Foo (Foo $x0)'
+                   `$x1' ->
+       `MkFoo' {_@_ `$x0' `$x1'}
+`MkA'  ::  `a -> A a -> A a'
+`MkA' =
+    _/\_ `$x0' -> \ `$x1'  ::  `$x0'
+                   `$x1' `$x2'  ::  `A $x0'
+                         `$x2' ->
+       `MkA' {_@_ `$x0' `$x1' `$x2'}
+`Mkpair'  ::  `a -> b -> Pair a b'
+`Mkpair' =
+    _/\_ `$x0' `$x1' -> \ `$x2'  ::  `$x0'
+                         `$x2' `$x3'  ::  `$x1'
+                               `$x3' ->
+       `Mkpair' {_@_ `$x0' _@_ `$x1' `$x2' `$x3'}
+`Leaf'  ::  `t -> Tree t'
+`Leaf' =
+    _/\_ `$x0' -> \ `$x1'  ::  `$x0'
+                   `$x1' ->
+       `Leaf' {_@_ `$x0' `$x1'}
+`Node'  ::  `Tree t -> Tree t -> Tree t'
+`Node' =
+    _/\_ `$x0' -> \ `$x1'  ::  `Tree $x0'
+                   `$x1' `$x2'  ::  `Tree $x0'
+                         `$x2' ->
+       `Node' {_@_ `$x0' `$x1' `$x2'}
+`Zero'  ::  `Nat'
+`Zero' =
+    `Zero' {}
+`Succ'  ::  `Nat -> Nat'
+`Succ' =
+    \ `$x0'  ::  `Nat'
+      `$x0' ->
+       `Succ' {`$x0'}
+`Nill'  ::  `LList alpha'
 `Nill' =
-    _/\_ `alpha{-s1ot-}' ->
-       `Nill'
-           {_@_ `alpha{-s1ot-}'}
-`Conss'  :: 
-    `alpha{-r3X-} -> LList alpha{-r3X-} -> LList alpha{-r3X-}'
+    _/\_ `$x0' -> `Nill' {_@_ `$x0'}
+`Conss'  ::  `alpha -> LList alpha -> LList alpha'
 `Conss' =
-    _/\_ `alpha{-s1ou-}' -> \ `tpl'  :: 
-                                 `alpha{-s1ou-}'
-                             `tpl' `tpl'  :: 
-                                       `LList alpha{-s1ou-}'
-                                   `tpl' ->
-       `Conss'
-           {_@_ `alpha{-s1ou-}' `tpl' `tpl'}
+    _/\_ `$x0' -> \ `$x1'  ::  `$x0'
+                   `$x1' `$x2'  ::  `LList $x0'
+                         `$x2' ->
+       `Conss' {_@_ `$x0' `$x1' `$x2'}
 Rec {
-`app'  :: 
-    `LList a{-aHn-} -> LList a{-aHn-} -> LList a{-aHn-}'
+`app'  ::  `LList taCh -> LList taCh -> LList taCh'
 `app' =
-    _/\_ `a{-s1ov-}' -> \ `ds'  :: 
-                             `LList a{-s1ov-}'
-                         `ds' `ds'  :: 
-                                  `LList a{-s1ov-}'
-                              `ds' ->
-       case `ds' of {
-         `Conss' `ds' `ds' ->
+    _/\_ `$x0' -> \ `$x1'  ::  `LList $x0'
+                   `$x1' `$x2'  ::  `LList $x0'
+                         `$x2' ->
+       case `$x1' of {
+         `Conss' `$x3' `$x4' ->
              let {
-               `ds'  :: 
-                   `LList a{-s1ov-}'
-               `ds' =
-                   `app'
-                       _@_ `a{-s1ov-}' `ds' `ds'
-             } in 
-               `Conss'
-                   {_@_ `a{-s1ov-}' `ds' `ds'};
+               `$x5'  ::  `LList $x0'
+               `$x5' =
+                   `app' _@_ `$x0' `$x4' `$x2'
+             } in  `Conss' {_@_ `$x0' `$x3' `$x5'};
          `Nill' ->
-             case `ds' of {
-               `Conss' `ds' `ds' ->
-                   `Conss'
-                       {_@_ `a{-s1ov-}' `ds' `ds'};
-               `Nill' ->
-                   `Nill'
-                       {_@_ `a{-s1ov-}'};
+             case `$x2' of {
+               `Conss' `$x6' `$x7' -> `Conss' {_@_ `$x0' `$x6' `$x7'};
+               `Nill' -> `Nill' {_@_ `$x0'};
              };
        }
 end Rec }
-`Zero'  :: 
-    `Nat'
-`Zero' =
-    `Zero'
-       {}
-`Succ'  :: 
-    `Nat -> Nat'
-`Succ' =
-    \ `tpl'  :: 
-         `Nat'
-      `tpl' ->
-       `Succ'
-           {`tpl'}
-`Leaf'  :: 
-    `t{-r3U-} -> Tree t{-r3U-}'
-`Leaf' =
-    _/\_ `t{-s1oB-}' -> \ `tpl'  :: 
-                             `t{-s1oB-}'
-                         `tpl' ->
-       `Leaf'
-           {_@_ `t{-s1oB-}' `tpl'}
-`Node'  :: 
-    `Tree t{-r3U-} -> Tree t{-r3U-} -> Tree t{-r3U-}'
-`Node' =
-    _/\_ `t{-s1oE-}' -> \ `tpl'  :: 
-                             `Tree t{-s1oE-}'
-                         `tpl' `tpl'  :: 
-                                   `Tree t{-s1oE-}'
-                               `tpl' ->
-       `Node'
-           {_@_ `t{-s1oE-}' `tpl' `tpl'}
-`$d7'  :: 
-    `{PrelBase.Eval Boolean}'
+`FF'  ::  `Boolean'
+`FF' =
+    `FF' {}
+`TT'  ::  `Boolean'
+`TT' =
+    `TT' {}
+`$d7'  ::  `{PrelBase.Eval Boolean}'
 `$d7' =
     `PrelBase.void'
-`$d4'  :: 
-    `{PrelBase.Eval Nat}'
+`$d4'  ::  `{PrelBase.Eval Nat}'
 `$d4' =
     `PrelBase.void'
index fc964d8..0526897 100644 (file)
@@ -1,19 +1,10 @@
-TOP = ../../../..
+TOP = ../..
 include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/should_compile.mk
 
-HS_SRCS = $(wildcard *.hs)
-
-SRC_RUNTEST_OPTS += -o1 $*.stdout -o2 $*.stderr -x 0
-HC_OPTS += -noC -dcore-lint
-
-%.o : %.hs
-       $(RUNTEST) $(HC) $(RUNTEST_OPTS) -- $(HC_OPTS) -c $< -o $@ 
-
-all :: $(HS_OBJS)
+HC_OPTS += -noC -dcore-lint -fno-warn-incomplete-patterns -hi -ddump-tc
 
 tc019_HC_OPTS = -fglasgow-exts
 tc065_HC_OPTS = -syslib ghc
 
 include $(TOP)/mk/target.mk
-
-
diff --git a/ghc/tests/typecheck/should_compile/tc001.stderr b/ghc/tests/typecheck/should_compile/tc001.stderr
new file mode 100644 (file)
index 0000000..590a4a7
--- /dev/null
@@ -0,0 +1,31 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [taC6] [d.Num_aCa] [([taC6], a{-r3h,x-}, a_aBO)]
+    +_aCe = PrelBase.+{-r3g,p-} taC6 d.Num_aCa
+    d.Num_aCd = d.Num_aCa
+    fromInt_aCf = PrelBase.fromInt{-8R,p-} taC6 d.Num_aCd
+    lit_aCg = fromInt_aCf PrelBase.I#{-5b,w-}{i} 2#
+    +_aCh = +_aCe
+    fromInt_aCj = fromInt_aCf
+    lit_aCk = fromInt_aCj PrelBase.I#{-5b,w-}{i} 3#
+    a_aBO x_r3d
+         = y_r3f +_aCe lit_aCg
+         where
+             {- nonrec -}
+             AbsBinds [] [] [([], y_r3f, y_aBW)]
+                 y_aBW = x_r3d +_aCh lit_aCk
+             {- nonrec -}
+             {- nonrec -}
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+_exports_
+ShouldSucceed a;
+_declarations_
+1 a _:_ _forall_ [ta] {PrelBase.Num ta} => ta -> ta ;;
diff --git a/ghc/tests/typecheck/should_compile/tc002.stderr b/ghc/tests/typecheck/should_compile/tc002.stderr
new file mode 100644 (file)
index 0000000..86e7306
--- /dev/null
@@ -0,0 +1,19 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [] [] [([], b{-r1,x-}, b_aBK)]
+    b_aBK = if PrelBase.True{-5E,w-}{i} then lit_aBW else lit_aBX
+lit_aBW = PrelBase.I#{-5b,w-}{i} 1#
+lit_aBX = PrelBase.I#{-5b,w-}{i} 2#
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+_exports_
+ShouldSucceed b;
+_declarations_
+1 b _:_ PrelBase.Int ;;
diff --git a/ghc/tests/typecheck/should_compile/tc003.stderr b/ghc/tests/typecheck/should_compile/tc003.stderr
new file mode 100644 (file)
index 0000000..a0a57a5
--- /dev/null
@@ -0,0 +1,33 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds
+[]
+[]
+[([], c{-r5,x-}, c_aRg), ([], d{-r4,x-}, d_aRh), ([],
+                                                 e{-r3,x-},
+                                                 e_aRi)]
+    lit_aRS = lit_aRT
+    (c_aRg@(d_aRh, e_aRi))
+       = if PrelBase.True{-5E,w-}{i} then
+             (lit_aRT, lit_aRU)
+         else
+             (lit_aRS, lit_aRV)
+lit_aRT = PrelBase.I#{-5b,w-}{i} 1#
+lit_aRU = PrelBase.I#{-5b,w-}{i} 2#
+lit_aRV = PrelBase.I#{-5b,w-}{i} 3#
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+PrelTup 1 :: $d13 1 $d4 1 $d9 1;
+_exports_
+ShouldSucceed c d e;
+_declarations_
+1 c _:_ (PrelBase.Int, PrelBase.Int) ;;
+1 d _:_ PrelBase.Int ;;
+1 e _:_ PrelBase.Int ;;
diff --git a/ghc/tests/typecheck/should_compile/tc004.stderr b/ghc/tests/typecheck/should_compile/tc004.stderr
new file mode 100644 (file)
index 0000000..4eb6f2d
--- /dev/null
@@ -0,0 +1,17 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [] [] [([], f{-r3e,x-}, f_aku)]
+    f_aku x_r3d
+         = case x_r3d of
+             PrelBase.True{-5E,w-}{i} -> PrelBase.True{-5E,w-}{i}
+             PrelBase.False{-58,w-}{i} -> x_r3d
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed f;
+_declarations_
+1 f _:_ PrelBase.Bool -> PrelBase.Bool ;;
diff --git a/ghc/tests/typecheck/should_compile/tc005.stderr b/ghc/tests/typecheck/should_compile/tc005.stderr
new file mode 100644 (file)
index 0000000..6665044
--- /dev/null
@@ -0,0 +1,24 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds
+[taRr, taRH]
+[d.Num_aRM]
+[([taRr, taRH], g{-r3j,x-}, g_aRj)]
+    fromInt_aRN = PrelBase.fromInt{-8R,p-} taRr d.Num_aRM
+    lit_aRO = fromInt_aRN PrelBase.I#{-5b,w-}{i} 2#
+    g_aRj ((x_r3d PrelBase.:{-55,w-}{i} z_r3e), y_r3f) = x_r3d
+    g_aRj (x_r3h, y_r3i) = lit_aRO
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+PrelTup 1 :: $d13 1 $d4 1 $d9 1;
+_exports_
+ShouldSucceed g;
+_declarations_
+1 g _:_ _forall_ [ta tb] {PrelBase.Num ta} => ([ta], tb) -> ta ;;
diff --git a/ghc/tests/typecheck/should_compile/tc006.stderr b/ghc/tests/typecheck/should_compile/tc006.stderr
new file mode 100644 (file)
index 0000000..0890640
--- /dev/null
@@ -0,0 +1,18 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [] [] [([], h{-r1,x-}, h_aBK)]
+    h_aBK = PrelBase.:{-55,w-}{i} PrelBase.Int{-3g,W-} lit_aBW h_aBK
+lit_aBW = PrelBase.I#{-5b,w-}{i} 1#
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+_exports_
+ShouldSucceed h;
+_declarations_
+1 h _:_ [PrelBase.Int] ;;
diff --git a/ghc/tests/typecheck/should_compile/tc007.stderr b/ghc/tests/typecheck/should_compile/tc007.stderr
new file mode 100644 (file)
index 0000000..2547cd0
--- /dev/null
@@ -0,0 +1,33 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [] [] [([], j{-rY,x-}, j_aBQ)]
+    j_aBQ = lit_aCv
+AbsBinds [] [] [([], k{-rX,x-}, k_aBY), ([], l{-rW,x-}, l_aBZ)]
+    k_aBY
+       = PrelBase.:{-55,w-}{i} PrelBase.Int{-3g,W-}
+             lit_aCt
+             (PrelBase.:{-55,w-}{i} PrelBase.Int{-3g,W-} j{-rY,x-} l_aBZ)
+    l_aBZ = PrelBase.:{-55,w-}{i} PrelBase.Int{-3g,W-} lit_aCu k_aBY
+AbsBinds [] [] [([], m{-rV,x-}, m_aCd)]
+    m_aCd = j{-rY,x-} +_aCs j{-rY,x-}
+d.Num_aCr = PrelBase.$d4{-rau,p-}
++_aCs = PrelBase.+{-rU,p-} PrelBase.Int{-3g,W-} d.Num_aCr
+lit_aCt = PrelBase.I#{-5b,w-}{i} 1#
+lit_aCu = PrelBase.I#{-5b,w-}{i} 0#
+lit_aCv = PrelBase.I#{-5b,w-}{i} 2#
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+_exports_
+ShouldSucceed j k l m;
+_declarations_
+1 j _:_ PrelBase.Int ;;
+1 k _:_ [PrelBase.Int] ;;
+1 l _:_ [PrelBase.Int] ;;
+1 m _:_ PrelBase.Int ;;
diff --git a/ghc/tests/typecheck/should_compile/tc008.stderr b/ghc/tests/typecheck/should_compile/tc008.stderr
new file mode 100644 (file)
index 0000000..7ffc6b2
--- /dev/null
@@ -0,0 +1,22 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [taBU] [d.Num_aBX] [([taBU], n{-r1,x-}, n_aBM)]
+    fromInt_aBY = PrelBase.fromInt{-8R,p-} taBU d.Num_aBX
+    lit_aBZ = fromInt_aBY PrelBase.I#{-5b,w-}{i} 1#
+    fromInt_aC1 = fromInt_aBY
+    lit_aC2 = fromInt_aC1 PrelBase.I#{-5b,w-}{i} 0#
+    n_aBM PrelBase.True{-5E,w-}{i} = lit_aBZ
+    n_aBM PrelBase.False{-58,w-}{i} = lit_aC2
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+_exports_
+ShouldSucceed n;
+_declarations_
+1 n _:_ _forall_ [ta] {PrelBase.Num ta} => PrelBase.Bool -> ta ;;
diff --git a/ghc/tests/typecheck/should_compile/tc009.stderr b/ghc/tests/typecheck/should_compile/tc009.stderr
new file mode 100644 (file)
index 0000000..1058b2e
--- /dev/null
@@ -0,0 +1,23 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [taRx] [d.Num_aRB] [([taRx], o{-r3h,x-}, o_aRg)]
+    +_aRF = PrelBase.+{-r3g,p-} taRx d.Num_aRB
+    d.Num_aRE = d.Num_aRB
+    fromInt_aRG = PrelBase.fromInt{-8R,p-} taRx d.Num_aRE
+    lit_aRH = fromInt_aRG PrelBase.I#{-5b,w-}{i} 1#
+    o_aRg (PrelBase.True{-5E,w-}{i}, x_r3d) = x_r3d
+    o_aRg (PrelBase.False{-58,w-}{i}, y_r3f) = y_r3f +_aRF lit_aRH
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+PrelTup 1 :: $d13 1 $d4 1 $d9 1;
+_exports_
+ShouldSucceed o;
+_declarations_
+1 o _:_ _forall_ [ta] {PrelBase.Num ta} => (PrelBase.Bool, ta) -> ta ;;
diff --git a/ghc/tests/typecheck/should_compile/tc010.stderr b/ghc/tests/typecheck/should_compile/tc010.stderr
new file mode 100644 (file)
index 0000000..457a9ba
--- /dev/null
@@ -0,0 +1,30 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [] [] [([], p{-r3e,x-}, p_aRZ)]
+    lit_aT1 = lit_aT3
+    p_aRZ
+       = [(y_r3d +_aT4 lit_aT1, PrelBase.True{-5E,w-}{i}) |
+              y_r3d <- [lit_aT2, lit_aT3] (PrelBase.Int{-3g,W-})]
+lit_aT2 = PrelBase.I#{-5b,w-}{i} 1#
+lit_aT3 = PrelBase.I#{-5b,w-}{i} 2#
+d.Num_aSR = PrelBase.$d4{-raq,p-}
++_aT4 = PrelBase.+{-r9G,p-} PrelBase.Int{-3g,W-} d.Num_aSR
+d.Monad_aSU = PrelBase.$d25{-raa,p-}
+>>=_aT5 = PrelBase.>>={-811,p-} PrelBase.[]{-3j,W-} d.Monad_aSU
+d.Monad_aSX = d.Monad_aSU
+return_aT6 =
+    PrelBase.return{-816,p-} PrelBase.[]{-3j,W-} d.Monad_aSX
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d24 1 $d25 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $m>> 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Monad 1 MonadZero 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+PrelTup 1 :: $d13 1 $d4 1 $d9 1;
+_exports_
+ShouldSucceed p;
+_declarations_
+1 p _:_ [(PrelBase.Int, PrelBase.Bool)] ;;
diff --git a/ghc/tests/typecheck/should_compile/tc011.stderr b/ghc/tests/typecheck/should_compile/tc011.stderr
new file mode 100644 (file)
index 0000000..90ec9b8
--- /dev/null
@@ -0,0 +1,14 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [taks] [] [([taks], x{-r1,x-}, x_akq)]
+    (x_akq@_) = x_akq
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed x;
+_declarations_
+1 x _:_ _forall_ [ta] => ta ;;
diff --git a/ghc/tests/typecheck/should_compile/tc012.stderr b/ghc/tests/typecheck/should_compile/tc012.stderr
new file mode 100644 (file)
index 0000000..f78cd03
--- /dev/null
@@ -0,0 +1,14 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [takB] [] [([takB], q{-r3e,x-}, q_aks)]
+    q_aks = \ y_r3d -> y_r3d
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed q;
+_declarations_
+1 q _:_ _forall_ [ta] => ta -> ta ;;
diff --git a/ghc/tests/typecheck/should_compile/tc013.stderr b/ghc/tests/typecheck/should_compile/tc013.stderr
new file mode 100644 (file)
index 0000000..c232026
--- /dev/null
@@ -0,0 +1,20 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [] [] [([], r{-r3,x-}, r_aRe), ([], s{-r2,x-}, s_aRf)]
+    (r_aRe, s_aRf) = (lit_aRz, 'a')
+lit_aRz = PrelBase.I#{-5b,w-}{i} 1#
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+PrelTup 1 :: $d13 1 $d4 1 $d9 1;
+_exports_
+ShouldSucceed r s;
+_declarations_
+1 r _:_ PrelBase.Int ;;
+1 s _:_ PrelBase.Char ;;
diff --git a/ghc/tests/typecheck/should_compile/tc014.stderr b/ghc/tests/typecheck/should_compile/tc014.stderr
new file mode 100644 (file)
index 0000000..449aadb
--- /dev/null
@@ -0,0 +1,20 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [] [] [([], t{-rS,x-}, t_aBK)]
+    t_aBK = lit_aC4 +_aC3 t_aBK
+d.Num_aC2 = PrelBase.$d4{-rao,p-}
++_aC3 = PrelBase.+{-rR,p-} PrelBase.Int{-3g,W-} d.Num_aC2
+lit_aC4 = PrelBase.I#{-5b,w-}{i} 1#
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+_exports_
+ShouldSucceed t;
+_declarations_
+1 t _:_ PrelBase.Int ;;
diff --git a/ghc/tests/typecheck/should_compile/tc015.stderr b/ghc/tests/typecheck/should_compile/tc015.stderr
new file mode 100644 (file)
index 0000000..8e3776d
--- /dev/null
@@ -0,0 +1,17 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds
+[tayE, tayH, tayM]
+[]
+[([tayE, tayH, tayM], u{-r3h,x-}, u_ays)]
+    u_ays x_r3d = \ (y_r3f, z_r3g) -> x_r3d
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed u;
+_declarations_
+1 u _:_ _forall_ [ta tb tc] => tc -> (ta, tb) -> tc ;;
diff --git a/ghc/tests/typecheck/should_compile/tc016.stderr b/ghc/tests/typecheck/should_compile/tc016.stderr
new file mode 100644 (file)
index 0000000..5a6dd72
--- /dev/null
@@ -0,0 +1,14 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [takL, takN] [] [([takL, takN], f{-r3f,x-}, f_akt)]
+    f_akt (x_r3d@_) (y_r3e@_) = x_r3d
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed f;
+_declarations_
+1 f _:_ _forall_ [ta tb] => tb -> ta -> tb ;;
diff --git a/ghc/tests/typecheck/should_compile/tc017.stderr b/ghc/tests/typecheck/should_compile/tc017.stderr
new file mode 100644 (file)
index 0000000..3c92bbe
--- /dev/null
@@ -0,0 +1,22 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [] [] [([], v{-r1,x-}, v_aBK)]
+    v_aBK
+       | PrelBase.True{-5E,w-}{i} = v_aBK +_aC5 lit_aC6
+       | PrelBase.False{-58,w-}{i} = v_aBK
+d.Num_aC4 = PrelBase.$d4{-rao,p-}
++_aC5 = PrelBase.+{-r9E,p-} PrelBase.Int{-3g,W-} d.Num_aC4
+lit_aC6 = PrelBase.I#{-5b,w-}{i} 1#
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+_exports_
+ShouldSucceed v;
+_declarations_
+1 v _:_ PrelBase.Int ;;
diff --git a/ghc/tests/typecheck/should_compile/tc018.stderr b/ghc/tests/typecheck/should_compile/tc018.stderr
new file mode 100644 (file)
index 0000000..7b5d2d0
--- /dev/null
@@ -0,0 +1,30 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [] [] [([], w{-r3f,x-}, w_aBQ)]
+    w_aBQ
+       = a_r3d
+       where
+           {- nonrec -}
+           AbsBinds [] [] [([], y_r3e, y_aBP)]
+               y_aBP = lit_aC8
+           {- nonrec -}
+           {- nonrec -}
+           {- nonrec -}
+           AbsBinds [] [] [([], a_r3d, a_aBZ)]
+               a_aBZ = y_r3e
+           {- nonrec -}
+           {- nonrec -}
+lit_aC8 = PrelBase.I#{-5b,w-}{i} 2#
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+_exports_
+ShouldSucceed w;
+_declarations_
+1 w _:_ PrelBase.Int ;;
diff --git a/ghc/tests/typecheck/should_compile/tc019.stderr b/ghc/tests/typecheck/should_compile/tc019.stderr
new file mode 100644 (file)
index 0000000..d99d75f
--- /dev/null
@@ -0,0 +1,35 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds
+[]
+[]
+[([], al{-r3i,x-}, al_aS2), ([], am{-r3h,x-}, am_aS3)]
+    lit_aTo = lit_aTp
+    (al_aS2 PrelBase.:{-55,w-}{i} am_aS3)
+       = [y_r3e +_aTr lit_aTo |
+              (y_r3e, z_r3f) <- [(lit_aTp,
+                                  lit_aTq)] ((PrelBase.Int{-3g,W-}, PrelBase.Int{-3g,W-}))]
+lit_aTp = PrelBase.I#{-5b,w-}{i} 1#
+lit_aTq = PrelBase.I#{-5b,w-}{i} 2#
+d.Num_aTe = PrelBase.$d4{-rat,p-}
++_aTr = PrelBase.+{-r3g,p-} PrelBase.Int{-3g,W-} d.Num_aTe
+d.Monad_aTh = PrelBase.$d25{-rad,p-}
+>>=_aTs = PrelBase.>>={-811,p-} PrelBase.[]{-3j,W-} d.Monad_aTh
+d.Monad_aTk = d.Monad_aTh
+return_aTt =
+    PrelBase.return{-816,p-} PrelBase.[]{-3j,W-} d.Monad_aTk
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d24 1 $d25 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $m>> 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Monad 1 MonadZero 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+PrelTup 1 :: $d13 1 $d4 1 $d9 1;
+_exports_
+ShouldSucceed al am;
+_declarations_
+1 al _:_ PrelBase.Int ;;
+1 am _:_ [PrelBase.Int] ;;
diff --git a/ghc/tests/typecheck/should_compile/tc020.stderr b/ghc/tests/typecheck/should_compile/tc020.stderr
new file mode 100644 (file)
index 0000000..7ec7b1d
--- /dev/null
@@ -0,0 +1,21 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [takG] [] [([takG], f{-r3g,x-}, f_aku)]
+    f_aku x_r3d
+         = a_r3f
+         where
+             {- rec -}
+             AbsBinds [] [] [([], a_r3f, a_akC)]
+                 a_akC = PrelBase.:{-55,w-}{i} takG x_r3d a_akC
+             {- nonrec -}
+             {- nonrec -}
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed f;
+_declarations_
+1 f _:_ _forall_ [ta] => ta -> [ta] ;;
diff --git a/ghc/tests/typecheck/should_compile/tc021.stderr b/ghc/tests/typecheck/should_compile/tc021.stderr
new file mode 100644 (file)
index 0000000..7873760
--- /dev/null
@@ -0,0 +1,23 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [tayv] [] [([tayv], x{-r3g,x-}, x_ayt)]
+    x_ayt = x_ayt
+AbsBinds [tayB, tayD] [] [([tayB, tayD], a{-r3h,x-}, a_ayx)]
+    a_ayx = (x{-r3g,x-} tayB, x{-r3g,x-} tayD)
+AbsBinds
+[tayW, tayS, tayU]
+[]
+[([tayW, tayS, tayU], f{-r3i,x-}, f_ayJ)]
+    f_ayJ x_r3f = a{-r3h,x-} [tayS, tayU]
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed a f x;
+_declarations_
+1 a _:_ _forall_ [ta tb] => (ta, tb) ;;
+1 f _:_ _forall_ [ta tb tc] => ta -> (tb, tc) ;;
+1 x _:_ _forall_ [ta] => ta ;;
diff --git a/ghc/tests/typecheck/should_compile/tc022.stderr b/ghc/tests/typecheck/should_compile/tc022.stderr
new file mode 100644 (file)
index 0000000..4b409de
--- /dev/null
@@ -0,0 +1,17 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [takD] [] [([takD], iD{-r3f,x-}, iD_aku)]
+    iD_aku x_r3e = x_r3e
+AbsBinds [takL] [] [([takL], main{-r3g,x-}, main_akF)]
+    main_akF = iD{-r3f,x-} (takL -> takL) iD{-r3f,x-} takL
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed iD main;
+_declarations_
+1 iD _:_ _forall_ [ta] => ta -> ta ;;
+1 main _:_ _forall_ [ta] => ta -> ta ;;
diff --git a/ghc/tests/typecheck/should_compile/tc023.stderr b/ghc/tests/typecheck/should_compile/tc023.stderr
new file mode 100644 (file)
index 0000000..1e7a98f
--- /dev/null
@@ -0,0 +1,26 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [takP, takR] [] [([takP, takR], k{-r3l,x-}, k_akB)]
+    k_akB x_r3j y_r3k = x_r3j
+AbsBinds
+[taln, talp, talr]
+[]
+[([taln, talp, talr], s{-r3m,x-}, s_akT)]
+    s_akT f_r3f g_r3g x_r3h = f_r3f x_r3h g_r3g x_r3h
+AbsBinds [talA] [] [([talA], main{-r3n,x-}, main_alt)]
+    main_alt
+       = s{-r3m,x-} [talA, GHC.Void{-3T,W-} -> talA, talA] k{-r3l,x-}
+                                                               [GHC.Void{-3T,W-} -> talA, talA]
+                                                           k{-r3l,x-} [GHC.Void{-3T,W-}, talA]
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed k main s;
+_declarations_
+1 k _:_ _forall_ [ta tb] => tb -> ta -> tb ;;
+1 main _:_ _forall_ [ta] => ta -> ta ;;
+1 s _:_ _forall_ [ta tb tc] => (tc -> tb -> ta) -> (tc -> tb) -> tc -> ta ;;
diff --git a/ghc/tests/typecheck/should_compile/tc024.stderr b/ghc/tests/typecheck/should_compile/tc024.stderr
new file mode 100644 (file)
index 0000000..58c7fd9
--- /dev/null
@@ -0,0 +1,28 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [takR, takT] [] [([takR, takT], k{-r3n,x-}, k_akD)]
+    k_akD x_r3l y_r3m = x_r3l
+AbsBinds
+[talp, talr, talt]
+[]
+[([talp, talr, talt], s{-r3o,x-}, s_akV)]
+    s_akV f_r3h g_r3i x_r3j = f_r3h x_r3j g_r3i x_r3j
+AbsBinds [talE] [] [([talE], main{-r3p,x-}, main_alv)]
+    main_alv x_r3f
+            = s{-r3o,x-} [talE, GHC.Void{-3T,W-} -> talE, talE] k{-r3n,x-}
+                                                                    [GHC.Void{-3T,W-}
+                                                                     -> talE, talE]
+                                                                k{-r3n,x-} [GHC.Void{-3T,W-}, talE]
+                                                                x_r3f
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed k main s;
+_declarations_
+1 k _:_ _forall_ [ta tb] => tb -> ta -> tb ;;
+1 main _:_ _forall_ [ta] => ta -> ta ;;
+1 s _:_ _forall_ [ta tb tc] => (tc -> tb -> ta) -> (tc -> tb) -> tc -> ta ;;
diff --git a/ghc/tests/typecheck/should_compile/tc025.stderr b/ghc/tests/typecheck/should_compile/tc025.stderr
new file mode 100644 (file)
index 0000000..98ba08f
--- /dev/null
@@ -0,0 +1,23 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [] [] [([], g{-r3j,x-}, g_akx)]
+    g_akx x_r3d
+         = f_r3f PrelBase.Bool{-34,W-} f_r3f
+                                           PrelBase.Bool{-34,W-} PrelBase.True{-5E,w-}{i} x_r3d
+                                       x_r3d
+         where
+             {- rec -}
+             AbsBinds [takV] [] [([takV], f_r3f, f_akF)]
+                 f_akF x_r3h y_r3i = if x_r3h then y_r3i else f_akF x_r3h y_r3i
+             {- nonrec -}
+             {- nonrec -}
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed g;
+_declarations_
+1 g _:_ PrelBase.Bool -> PrelBase.Bool ;;
diff --git a/ghc/tests/typecheck/should_compile/tc026.stderr b/ghc/tests/typecheck/should_compile/tc026.stderr
new file mode 100644 (file)
index 0000000..00bfdbb
--- /dev/null
@@ -0,0 +1,21 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [takL] [] [([takL], f{-r3i,x-}, f_akx)]
+    f_akx x_r3g y_r3h = if x_r3g then y_r3h else f_akx x_r3g y_r3h
+AbsBinds [] [] [([], g{-r3j,x-}, g_akN)]
+    g_akN x_r3e
+         = f{-r3i,x-} PrelBase.Bool{-34,W-} f{-r3i,x-}
+                                                PrelBase.Bool{-34,W-} PrelBase.True{-5E,w-}{i}
+                                                                      x_r3e
+                                            x_r3e
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed f g;
+_declarations_
+1 f _:_ _forall_ [ta] => PrelBase.Bool -> ta -> ta ;;
+1 g _:_ PrelBase.Bool -> PrelBase.Bool ;;
diff --git a/ghc/tests/typecheck/should_compile/tc027.stderr b/ghc/tests/typecheck/should_compile/tc027.stderr
new file mode 100644 (file)
index 0000000..57f4917
--- /dev/null
@@ -0,0 +1,28 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds
+[tal1]
+[]
+[([tal1], f{-r3n,x-}, f_akC), ([tal1], g{-r3m,x-}, g_akD)]
+    f_akC x_r3h y_r3i = if x_r3h then y_r3i else g_akD y_r3i x_r3h
+    g_akD y_r3k x_r3l = if x_r3l then y_r3k else f_akC x_r3l y_r3k
+AbsBinds [] [] [([], h{-r3o,x-}, h_al3)]
+    h_al3 x_r3f
+         = f{-r3n,x-} PrelBase.Bool{-34,W-} f{-r3n,x-}
+                                                PrelBase.Bool{-34,W-} PrelBase.True{-5E,w-}{i}
+                                                                      x_r3f
+                                            x_r3f
+
+NOTE: Simplifier still going after 4 iterations; bailing out.
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed f g h;
+_declarations_
+1 f _:_ _forall_ [ta] => PrelBase.Bool -> ta -> ta ;;
+1 g _:_ _forall_ [ta] => ta -> PrelBase.Bool -> ta ;;
+1 h _:_ PrelBase.Bool -> PrelBase.Bool ;;
diff --git a/ghc/tests/typecheck/should_compile/tc028.stderr b/ghc/tests/typecheck/should_compile/tc028.stderr
new file mode 100644 (file)
index 0000000..802f82c
--- /dev/null
@@ -0,0 +1,13 @@
+
+
+================================================================================
+Typechecked:
+
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed H;
+_declarations_
+1 type H = (PrelBase.Int, PrelBase.Bool) ;
diff --git a/ghc/tests/typecheck/should_compile/tc029.stderr b/ghc/tests/typecheck/should_compile/tc029.stderr
new file mode 100644 (file)
index 0000000..7c6ec51
--- /dev/null
@@ -0,0 +1,22 @@
+
+
+================================================================================
+Typechecked:
+H{-r4,x-}{i} = \ tpl_B1 -> H{-r4,x-}{i} {tpl_B1}
+M{-r3,x-}{i} = \ tpl_B1 -> M{-r3,x-}{i} {tpl_B1}
+AbsBinds [] [] [([], $d1{-rB5,x-}, d.Eval_aB2)]
+    d.Eval_aB2 = ({-dict-} [] [])
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d2 1 $d38 1 $d40 1 $d42 1 $d45 1 $d47 1 Eval 1;
+_exports_
+ShouldSucceed G K(H M);
+_instances_
+instance {PrelBase.Eval K} = $d1;
+_declarations_
+1 $d1 _:_ {PrelBase.Eval K} ;;
+1 type G = [PrelBase.Int] ;
+1 data K = H PrelBase.Bool |  M G ;
diff --git a/ghc/tests/typecheck/should_compile/tc030.stderr b/ghc/tests/typecheck/should_compile/tc030.stderr
new file mode 100644 (file)
index 0000000..f5cf2ff
--- /dev/null
@@ -0,0 +1,14 @@
+
+
+================================================================================
+Typechecked:
+
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed G H;
+_declarations_
+1 type G = (H, PrelBase.Char) ;
+1 type H = [PrelBase.Bool] ;
diff --git a/ghc/tests/typecheck/should_compile/tc031.stderr b/ghc/tests/typecheck/should_compile/tc031.stderr
new file mode 100644 (file)
index 0000000..dbbb210
--- /dev/null
@@ -0,0 +1,21 @@
+
+
+================================================================================
+Typechecked:
+Node{-r3,x-}{i} =
+    \ tpl_B1 tpl_B2 -> Node{-r3,x-}{i} {tpl_B1 tpl_B2}
+AbsBinds [] [] [([], $d1{-rAT,x-}, d.Eval_aAQ)]
+    d.Eval_aAQ = ({-dict-} [] [])
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d2 1 $d38 1 $d40 1 $d42 1 $d47 1 Eval 1;
+_exports_
+ShouldSucceed Rec(Node);
+_instances_
+instance {PrelBase.Eval Rec} = $d1;
+_declarations_
+1 $d1 _:_ {PrelBase.Eval Rec} ;;
+1 data Rec = Node PrelBase.Int Rec ;
diff --git a/ghc/tests/typecheck/should_compile/tc032.stderr b/ghc/tests/typecheck/should_compile/tc032.stderr
new file mode 100644 (file)
index 0000000..4e64be8
--- /dev/null
@@ -0,0 +1,25 @@
+
+
+================================================================================
+Typechecked:
+Node{-r4,x-}{i} =
+    _/\_ b_tr3h -> \ tpl_B1 tpl_B2 ->
+       Node{-r4,x-}{i} {_@_ b_tr3h tpl_B1 tpl_B2}
+Other{-r3,x-}{i} =
+    _/\_ b_tr3h -> \ tpl_B1 -> Other{-r3,x-}{i} {_@_ b_tr3h tpl_B1}
+AbsBinds [taQa] [] [([taQa], $d1{-rQd,x-}, d.Eval_aQ9)]
+    d.Eval_aQ9 = ({-dict-} [] [])
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d2 1 $d38 1 $d39 1 $d40 1 $d42 1 $d45 1 $d47 1 Eval 1;
+PrelTup 1 :: $d13 1;
+_exports_
+ShouldSucceed AList(Node Other);
+_instances_
+instance _forall_ [b] => {PrelBase.Eval (AList b)} = $d1;
+_declarations_
+1 $d1 _:_ _forall_ [b] => {PrelBase.Eval (AList b)} ;;
+1 data AList b = Node b [b] |  Other (b, PrelBase.Char) ;
diff --git a/ghc/tests/typecheck/should_compile/tc033.stderr b/ghc/tests/typecheck/should_compile/tc033.stderr
new file mode 100644 (file)
index 0000000..3c28282
--- /dev/null
@@ -0,0 +1,27 @@
+
+
+================================================================================
+Typechecked:
+Twist2{-r9,x-}{i} = \ tpl_B1 -> Twist2{-r9,x-}{i} {tpl_B1}
+Twine2{-r8,x-}{i} = \ tpl_B1 -> Twine2{-r8,x-}{i} {tpl_B1}
+AbsBinds [] [] [([], $d1{-rBa,x-}, d.Eval_aB2)]
+    d.Eval_aB2 = ({-dict-} [] [])
+AbsBinds [] [] [([], $d2{-rBc,x-}, d.Eval_aB7)]
+    d.Eval_aB7 = ({-dict-} [] [])
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d2 1 $d38 1 $d40 1 $d42 1 $d47 1 Eval 1;
+_exports_
+ShouldSucceed F Twine(Twine2) Twist(Twist2);
+_instances_
+instance {PrelBase.Eval Twist} = $d1;
+instance {PrelBase.Eval Twine} = $d2;
+_declarations_
+1 $d1 _:_ {PrelBase.Eval Twist} ;;
+1 $d2 _:_ {PrelBase.Eval Twine} ;;
+1 type F = Twine ;
+1 data Twine = Twine2 Twist ;
+1 data Twist = Twist2 Twine ;
diff --git a/ghc/tests/typecheck/should_compile/tc034.stderr b/ghc/tests/typecheck/should_compile/tc034.stderr
new file mode 100644 (file)
index 0000000..cb2d6c4
--- /dev/null
@@ -0,0 +1,37 @@
+
+
+================================================================================
+Typechecked:
+ANull{-r6,x-}{i} = _/\_ a_tr3p -> ANull{-r6,x-}{i} {_@_ a_tr3p}
+ANode{-r5,x-}{i} =
+    _/\_ a_tr3p -> \ tpl_B1 tpl_B2 ->
+       ANode{-r5,x-}{i} {_@_ a_tr3p tpl_B1 tpl_B2}
+AbsBinds [taCx] [d.Num_aCA] [([taCx], g{-r3q,x-}, g_aC9)]
+    fromInt_aCK = PrelBase.fromInt{-8R,p-} taCx d.Num_aCA
+    lit_aCO = fromInt_aCK PrelBase.I#{-5b,w-}{i} 2#
+    fromInt_aCP = fromInt_aCK
+    lit_aCQ = fromInt_aCP PrelBase.I#{-5b,w-}{i} 3#
+    fromInt_aCR = fromInt_aCK
+    lit_aCS = fromInt_aCR PrelBase.I#{-5b,w-}{i} 4#
+    g_aC9 ANull{-r6,x-}{i} = lit_aCO
+    g_aC9 (ANode{-r5,x-}{i} b_r3k (ANode{-r5,x-}{i} c_r3l d_r3m))
+         | b_r3k = lit_aCQ
+         | PrelBase.True{-5E,w-}{i} = lit_aCS
+AbsBinds [taCJ] [] [([taCJ], $d1{-rCN,x-}, d.Eval_aCI)]
+    d.Eval_aCI = ({-dict-} [] [])
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+_exports_
+ShouldSucceed g AList(ANull ANode) IntList;
+_instances_
+instance _forall_ [a] => {PrelBase.Eval (AList a)} = $d1;
+_declarations_
+1 $d1 _:_ _forall_ [a] => {PrelBase.Eval (AList a)} ;;
+1 data AList a = ANull |  ANode a (AList a) ;
+1 type IntList = AList PrelBase.Int ;
+1 g _:_ _forall_ [ta] {PrelBase.Num ta} => AList PrelBase.Bool -> ta ;;
diff --git a/ghc/tests/typecheck/should_compile/tc035.stderr b/ghc/tests/typecheck/should_compile/tc035.stderr
new file mode 100644 (file)
index 0000000..6d63628
--- /dev/null
@@ -0,0 +1,34 @@
+
+
+================================================================================
+Typechecked:
+Var{-r5,x-}{i} =
+    _/\_ a_tr3q -> \ tpl_B1 -> Var{-r5,x-}{i} {_@_ a_tr3q tpl_B1}
+App{-r4,x-}{i} =
+    _/\_ a_tr3q -> \ tpl_B1 tpl_B2 ->
+       App{-r4,x-}{i} {_@_ a_tr3q tpl_B1 tpl_B2}
+AbsBinds [taRI] [] [([taRI], g{-r3t,x-}, g_aRm)]
+    g_aRm (a_r3j, (Var{-r5,x-}{i} name_r3k))
+         = [name_r3k] ([PrelBase.Char{-38,W-}])
+    g_aRm (a_r3m, (App{-r4,x-}{i} e1_r3n e2_r3o))
+         = ++_aS9 [PrelBase.Char{-38,W-}] (g_aRm e1_r3n) (g_aRm e2_r3o)
+AbsBinds [taS5] [] [([taS5], $d1{-rS8,x-}, d.Eval_aS2)]
+    d.Eval_aS2 = ({-dict-} [] [])
+d.MonadPlus_aS4 = PrelBase.$d23{-rpi,p-}
+++_aS9 = PrelBase.++{-ruo,p-} PrelBase.[]{-3j,W-} d.MonadPlus_aS4
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d2 1 $d23 1 $d24 1 $d25 1 $d38 1 $d39 1 $d40 1 $d42 1 $d45 1 $d47 1 $m>> 1 Eval 1 Monad 1 MonadPlus 1 MonadZero 1;
+PrelTup 1 :: $d13 1;
+_exports_
+ShouldSucceed g AnnExpr Expr(Var App);
+_instances_
+instance _forall_ [a] => {PrelBase.Eval (Expr a)} = $d1;
+_declarations_
+1 $d1 _:_ _forall_ [a] => {PrelBase.Eval (Expr a)} ;;
+1 type AnnExpr a = (a, Expr a) ;
+1 data Expr a = Var [PrelBase.Char] |  App (AnnExpr a) (AnnExpr a) ;
+1 g _:_ _forall_ [ta] => (ta, Expr ta) -> [[PrelBase.Char]] ;;
diff --git a/ghc/tests/typecheck/should_compile/tc036.stderr b/ghc/tests/typecheck/should_compile/tc036.stderr
new file mode 100644 (file)
index 0000000..f7d8d4b
--- /dev/null
@@ -0,0 +1,22 @@
+
+
+================================================================================
+Typechecked:
+scsel_APrelBaseEq{-aAP,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B1;}
+op1{-r3g,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B2;}
+AbsBinds [taAO] [d.A_aAN] []
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d16 1 $d33 1 $d8 1 $m/= 1 Eq 1;
+PrelNum 1 :: $d18 1;
+_exports_
+ShouldSucceed A(op1);
+_declarations_
+1 class {PrelBase.Eq a} => A a where {op1 :: a -> a} ;
diff --git a/ghc/tests/typecheck/should_compile/tc037.hi b/ghc/tests/typecheck/should_compile/tc037.hi
deleted file mode 100644 (file)
index 026e6c2..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-interface ShouldSucceed where {
-class Eq' a where {
-    deq :: a -> a -> Bool
-    };
-instance (Eq' a) => Eq' [a] {-# FROMMODULE ShouldSucceed #-}
-}
diff --git a/ghc/tests/typecheck/should_compile/tc037.stderr b/ghc/tests/typecheck/should_compile/tc037.stderr
new file mode 100644 (file)
index 0000000..61a9612
--- /dev/null
@@ -0,0 +1,32 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [takZ] [d.Eq'_alo] [([takZ], $d1{-rlx,x-}, d.Eq'_akS)]
+    d.Eq'_alr = d.Eq'_alo
+    deq_aly = deq{-r3u,x-} takZ d.Eq'_alr
+    deq_alz = deq_alA
+    AbsBinds [] [] [([], deq_alA, deq_akW)]
+       deq_akW PrelBase.[]{-5i,w-}{i} PrelBase.[]{-5i,w-}{i}
+               = PrelBase.True{-5E,w-}{i}
+       deq_akW (x_r3k PrelBase.:{-55,w-}{i} xs_r3l)
+               (y_r3m PrelBase.:{-55,w-}{i} ys_r3n)
+               = if x_r3k deq_aly y_r3m then
+                     deq_alz xs_r3l ys_r3n
+                 else
+                     PrelBase.False{-58,w-}{i}
+       deq_akW other1_r3p other2_r3q = PrelBase.False{-58,w-}{i}
+    d.Eq'_akS = ({-dict-} [] [deq_alA])
+deq{-r3u,x-} = _/\_ t12 -> \ tpl_B1 -> tpl_B1
+AbsBinds [talw] [d.Eq'_alv] []
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed Eq'(deq);
+_instances_
+instance _forall_ [a] {Eq' a} => {Eq' [a]} = $d1;
+_declarations_
+1 $d1 _:_ _forall_ [a] {Eq' a} => {Eq' [a]} ;;
+1 class Eq' a where {deq :: a -> a -> PrelBase.Bool} ;
diff --git a/ghc/tests/typecheck/should_compile/tc038.stderr b/ghc/tests/typecheck/should_compile/tc038.stderr
new file mode 100644 (file)
index 0000000..22d0fa4
--- /dev/null
@@ -0,0 +1,24 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [taC6] [d.Num_aCa] [([taC6], f{-r3f,x-}, f_aBN)]
+    d.Eq_aC8 = PrelBase.scsel_NumPrelBaseEq{-aCd,p-} taC6 d.Num_aCa
+    ==_aCb = PrelBase.=={-8Y,p-} taC6 d.Eq_aC8
+    fromInteger_aCc = PrelBase.fromInteger{-8S,p-} taC6 d.Num_aCa
+    f_aBN (x_r3d PrelBase.:{-55,w-}{i} xs_r3e)
+         = if x_r3d ==_aCb (fromInteger_aCc 2) then
+               xs_r3e
+           else
+               PrelBase.[]{-5i,w-}{i} taC6
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+_exports_
+ShouldSucceed f;
+_declarations_
+1 f _:_ _forall_ [ta] {PrelBase.Num ta} => [ta] -> [ta] ;;
index 0e5bd95..05b8784 100644 (file)
@@ -1,4 +1,4 @@
-module ShouldSucc where
+module ShouldSucceed where
 
 class (Eq a) => A a where
  op1 :: a -> a
diff --git a/ghc/tests/typecheck/should_compile/tc039.stderr b/ghc/tests/typecheck/should_compile/tc039.stderr
new file mode 100644 (file)
index 0000000..f7d8d4b
--- /dev/null
@@ -0,0 +1,22 @@
+
+
+================================================================================
+Typechecked:
+scsel_APrelBaseEq{-aAP,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B1;}
+op1{-r3g,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B2;}
+AbsBinds [taAO] [d.A_aAN] []
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d16 1 $d33 1 $d8 1 $m/= 1 Eq 1;
+PrelNum 1 :: $d18 1;
+_exports_
+ShouldSucceed A(op1);
+_declarations_
+1 class {PrelBase.Eq a} => A a where {op1 :: a -> a} ;
diff --git a/ghc/tests/typecheck/should_compile/tc040.hi b/ghc/tests/typecheck/should_compile/tc040.hi
deleted file mode 100644 (file)
index 41d1ee5..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-interface ShouldSucceed where {
-import PreludeCore(Eq)
-f  ::  Eq a => a -> [a]
-}
diff --git a/ghc/tests/typecheck/should_compile/tc040.stderr b/ghc/tests/typecheck/should_compile/tc040.stderr
new file mode 100644 (file)
index 0000000..054a10b
--- /dev/null
@@ -0,0 +1,30 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [taAV] [d.Eq_aBd] [([taAV], f{-r3e,x-}, f_aAS)]
+    d.Eq_aBf = d.Eq_aBd
+    ==_aBg = PrelBase.=={-8Y,p-} taAV d.Eq_aBf
+    f_aAS x_r3g
+         = g_r3i x_r3g
+         where
+             {- nonrec -}
+             AbsBinds [] [] [([], g_r3i, g_aAX)]
+                 g_aAX y_r3k
+                       = if y_r3k ==_aBg x_r3g then
+                             PrelBase.[]{-5i,w-}{i} taAV
+                         else
+                             [y_r3k] (taAV)
+             {- nonrec -}
+             {- nonrec -}
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d16 1 $d28 1 $d33 1 $d8 1 $m/= 1 Eq 1;
+PrelNum 1 :: $d18 1;
+_exports_
+ShouldSucceed f;
+_declarations_
+1 f _:_ _forall_ [ta] {PrelBase.Eq ta} => ta -> [ta] ;;
diff --git a/ghc/tests/typecheck/should_compile/tc041.stderr b/ghc/tests/typecheck/should_compile/tc041.stderr
new file mode 100644 (file)
index 0000000..e0e415f
--- /dev/null
@@ -0,0 +1,26 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [] [] [([], f{-r1,x-}, f_akM)]
+    f_akM x_r3h y_r3i = op1_ald x_r3h x_r3h
+AbsBinds [] [] [([], $d1{-rlc,x-}, d.H_akY)]
+    AbsBinds [] [] [([], op1_ale, op1_al2)]
+       op1_al2 x_r3n y_r3o = y_r3o
+    d.H_akY = ({-dict-} [] [op1_ale])
+op1{-r3t,x-} = _/\_ t12 -> \ tpl_B1 -> tpl_B1
+AbsBinds [talb] [d.H_al8] []
+d.H_ala = $d1{-rlc,x-}
+op1_ald = op1{-r3t,x-} PrelBase.Bool{-34,W-} d.H_ala
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed f H(op1);
+_instances_
+instance {H PrelBase.Bool} = $d1;
+_declarations_
+1 $d1 _:_ {H PrelBase.Bool} ;;
+1 class H a where {op1 :: a -> a -> a} ;
+1 f _:_ PrelBase.Bool -> PrelBase.Int -> PrelBase.Bool ;;
diff --git a/ghc/tests/typecheck/should_compile/tc042.stderr b/ghc/tests/typecheck/should_compile/tc042.stderr
new file mode 100644 (file)
index 0000000..6af74cd
--- /dev/null
@@ -0,0 +1,137 @@
+
+
+================================================================================
+Typechecked:
+Leaf{-rx,x-}{i} =
+    _/\_ t_tr5p -> \ tpl_B1 -> Leaf{-rx,x-}{i} {_@_ t_tr5p tpl_B1}
+Node{-rw,x-}{i} =
+    _/\_ t_tr5p -> \ tpl_B1 tpl_B2 ->
+       Node{-rw,x-}{i} {_@_ t_tr5p tpl_B1 tpl_B2}
+Zero{-rv,x-}{i} = Zero{-rv,x-}{i} {}
+Succ{-ru,x-}{i} = \ tpl_B1 -> Succ{-ru,x-}{i} {tpl_B1}
+Nil{-rt,x-}{i} = _/\_ alpha_tr5s -> Nil{-rt,x-}{i} {_@_ alpha_tr5s}
+Cons{-rs,x-}{i} =
+    _/\_ alpha_tr5s -> \ tpl_B1 tpl_B2 ->
+       Cons{-rs,x-}{i} {_@_ alpha_tr5s tpl_B1 tpl_B2}
+Mkpair{-r5B,x-}{i} =
+    _/\_ a_tr5u b_tr5v -> \ tpl_B1 tpl_B2 ->
+       Mkpair{-r5B,x-}{i} {_@_ a_tr5u _@_ b_tr5v tpl_B1 tpl_B2}
+FF{-rr,x-}{i} = FF{-rr,x-}{i} {}
+TT{-rq,x-}{i} = TT{-rq,x-}{i} {}
+AbsBinds [] [] [([], before{-r4a,x-}, before_aDu)]
+    before_aDu xs_r4W
+              = case xs_r4W of
+                  Nil{-rt,x-}{i} -> Nil{-rt,x-}{i} Nat{-r5x,x-}
+                  (Cons{-rs,x-}{i} y_r4Z ys_r50)
+                  -> case y_r4Z of
+                       Zero{-rv,x-}{i} -> Nil{-rt,x-}{i} Nat{-r5x,x-}
+                       (Succ{-ru,x-}{i} n_r53)
+                       -> Cons{-rs,x-}{i} Nat{-r5x,x-} y_r4Z before{-r4a,x-} ys_r50
+AbsBinds [taDR] [] [([taDR], lEngth{-r49,x-}, lEngth_aDO)]
+    lEngth_aDO xs_r4Q
+              = case xs_r4Q of
+                  Nil{-rt,x-}{i} -> Zero{-rv,x-}{i}
+                  (Cons{-rs,x-}{i} y_r4T ys_r4U)
+                  -> Succ{-ru,x-}{i} lEngth{-r49,x-} taDR ys_r4U
+AbsBinds [taEe] [] [([taEe], app{-r48,x-}, app_aEb)]
+    app_aEb xs_r4J zs_r4K
+           = case xs_r4J of
+               Nil{-rt,x-}{i} -> zs_r4K
+               (Cons{-rs,x-}{i} y_r4N ys_r4O)
+               -> Cons{-rs,x-}{i} taEe y_r4N app{-r48,x-} taEe ys_r4O zs_r4K
+AbsBinds [taEE] [] [([taEE], rEverse{-r4b,x-}, rEverse_aEB)]
+    rEverse_aEB rs_r55
+               = case rs_r55 of
+                   Nil{-rt,x-}{i} -> Nil{-rt,x-}{i} taEE
+                   (Cons{-rs,x-}{i} y_r58 ys_r59)
+                   -> app{-r48,x-} taEE rEverse{-r4b,x-} taEE ys_r59
+                                        Cons{-rs,x-}{i} taEE y_r58 Nil{-rt,x-}{i} taEE
+AbsBinds [taF8] [] [([taF8], flatten{-r4c,x-}, flatten_aF5)]
+    flatten_aF5 t_r5b
+               = case t_r5b of
+                   (Leaf{-rx,x-}{i} x_r5d)
+                   -> Cons{-rs,x-}{i} taF8 x_r5d Nil{-rt,x-}{i} taF8
+                   (Node{-rw,x-}{i} l_r5f r_r5g)
+                   -> app{-r48,x-} taF8 flatten{-r4c,x-} taF8 l_r5f
+                                        flatten{-r4c,x-} taF8 r_r5g
+AbsBinds [] [] [([], add{-r47,x-}, add_aFx)]
+    add_aFx a_r4D b_r4E
+           = case a_r4D of
+               Zero{-rv,x-}{i} -> b_r4E
+               (Succ{-ru,x-}{i} c_r4H) -> Succ{-ru,x-}{i} add{-r47,x-} c_r4H b_r4E
+AbsBinds [] [] [([], sUm{-r4d,x-}, sUm_aFF)]
+    sUm_aFF t_r5i
+           = case t_r5i of
+               (Leaf{-rx,x-}{i} t_r5k) -> t_r5k
+               (Node{-rw,x-}{i} l_r5m r_r5n)
+               -> add{-r47,x-} sUm{-r4d,x-} l_r5m sUm{-r4d,x-} r_r5n
+AbsBinds [taG1] [] [([taG1], idl{-r46,x-}, idl_aFY)]
+    idl_aFY xs_r4x
+           = case xs_r4x of
+               Nil{-rt,x-}{i} -> Nil{-rt,x-}{i} taG1
+               (Cons{-rs,x-}{i} y_r4A ys_r4B)
+               -> Cons{-rs,x-}{i} taG1 y_r4A idl{-r46,x-} taG1 ys_r4B
+AbsBinds [taGq] [] [([taGq], nUll{-r45,x-}, nUll_aGn)]
+    nUll_aGn l_r4r
+            = case l_r4r of
+                Nil{-rt,x-}{i} -> TT{-rq,x-}{i}
+                (Cons{-rs,x-}{i} y_r4u ys_r4v) -> FF{-rr,x-}{i}
+AbsBinds [] [] [([], neg{-r44,x-}, neg_aGD)]
+    neg_aGD b_r4n
+           = case b_r4n of
+               FF{-rr,x-}{i} -> TT{-rq,x-}{i}
+               TT{-rq,x-}{i} -> FF{-rr,x-}{i}
+AbsBinds [taGR, taGS] [] [([taGS, taGR], swap{-r43,x-}, swap_aGO)]
+    swap_aGO t_r4i
+            = case t_r4i of
+                (Mkpair{-r5B,x-}{i} x_r4k y_r4l)
+                -> Mkpair{-r5B,x-}{i} [taGS, taGR] y_r4l x_r4k
+AbsBinds [] [] [([], idb{-r42,x-}, idb_aH9)]
+    idb_aH9 x_r4g = x_r4g
+AbsBinds [taHF] [] [([taHF], $d1{-rHL,x-}, d.Eval_aHh)]
+    d.Eval_aHh = ({-dict-} [] [])
+AbsBinds [] [] [([], $d2{-rHN,x-}, d.Eval_aHm)]
+    d.Eval_aHm = ({-dict-} [] [])
+AbsBinds [taHG] [] [([taHG], $d3{-rHP,x-}, d.Eval_aHs)]
+    d.Eval_aHs = ({-dict-} [] [])
+AbsBinds [taHH, taHI] [] [([taHH, taHI], $d4{-rHR,x-}, d.Eval_aHz)]
+    d.Eval_aHz = ({-dict-} [] [])
+AbsBinds [] [] [([], $d5{-rHT,x-}, d.Eval_aHE)]
+    d.Eval_aHE = ({-dict-} [] [])
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d2 1 $d38 1 $d40 1 $d42 1 $d47 1 Eval 1;
+_exports_
+ShouldSucceed add app before flatten idb idl lEngth nUll neg rEverse sUm swap Boolean(FF TT) List(Nil Cons) Nat(Zero Succ) Pair(Mkpair) Tree(Leaf Node);
+_instances_
+instance _forall_ [t] => {PrelBase.Eval (Tree t)} = $d1;
+instance {PrelBase.Eval Nat} = $d2;
+instance _forall_ [alpha] => {PrelBase.Eval (List alpha)} = $d3;
+instance _forall_ [a b] => {PrelBase.Eval (Pair a b)} = $d4;
+instance {PrelBase.Eval Boolean} = $d5;
+_declarations_
+1 $d1 _:_ _forall_ [t] => {PrelBase.Eval (Tree t)} ;;
+1 $d2 _:_ {PrelBase.Eval Nat} ;;
+1 $d3 _:_ _forall_ [alpha] => {PrelBase.Eval (List alpha)} ;;
+1 $d4 _:_ _forall_ [a b] => {PrelBase.Eval (Pair a b)} ;;
+1 $d5 _:_ {PrelBase.Eval Boolean} ;;
+1 data Boolean = FF |  TT ;
+1 data List alpha = Nil |  Cons alpha (List alpha) ;
+1 data Nat = Zero |  Succ Nat ;
+1 data Pair a b = Mkpair a b ;
+1 data Tree t = Leaf t |  Node (Tree t) (Tree t) ;
+1 add _:_ Nat -> Nat -> Nat ;;
+1 app _:_ _forall_ [ta] => List ta -> List ta -> List ta ;;
+1 before _:_ List Nat -> List Nat ;;
+1 flatten _:_ _forall_ [ta] => Tree ta -> List ta ;;
+1 idb _:_ Boolean -> Boolean ;;
+1 idl _:_ _forall_ [ta] => List ta -> List ta ;;
+1 lEngth _:_ _forall_ [ta] => List ta -> Nat ;;
+1 nUll _:_ _forall_ [ta] => List ta -> Boolean ;;
+1 neg _:_ Boolean -> Boolean ;;
+1 rEverse _:_ _forall_ [ta] => List ta -> List ta ;;
+1 sUm _:_ Tree Nat -> Nat ;;
+1 swap _:_ _forall_ [ta tb] => Pair tb ta -> Pair ta tb ;;
diff --git a/ghc/tests/typecheck/should_compile/tc043.stderr b/ghc/tests/typecheck/should_compile/tc043.stderr
new file mode 100644 (file)
index 0000000..fc2e717
--- /dev/null
@@ -0,0 +1,43 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [taCy, taCu] [d.A_aCA] [([taCy, taCu], f{-r3B,x-}, f_aCm)]
+    op1_aDr = op1{-r3D,x-} taCu d.A_aCA
+    f_aCm x_r3h = op1_aDr
+AbsBinds [taCN] [d.B_aD3] [([taCN], $d1{-rDs,x-}, d.B_aCG)]
+    op2_aDw = op2_aDx
+    AbsBinds [] [] [([], op2_aDx, op2_aCK)]
+       op2_aCK PrelBase.[]{-5i,w-}{i} = PrelBase.I#{-5b,w-}{i} 0#
+       op2_aCK (x_r3p PrelBase.:{-55,w-}{i} xs_r3q)
+               = lit_aDv +_aDu (op2_aDw xs_r3q)
+    d.B_aCG = ({-dict-} [] [op2_aDx])
+AbsBinds [] [] [([], $d2{-rDt,x-}, d.A_aDb)]
+    AbsBinds [] [] [([], op1_aDy, op1_aDf)]
+       op1_aDf = PrelBase.I#{-5b,w-}{i} 2#
+    d.A_aDb = ({-dict-} [] [op1_aDy])
+op2{-r3E,x-} = _/\_ t12 -> \ tpl_B1 -> tpl_B1
+AbsBinds [taDp] [d.B_aDj] []
+op1{-r3D,x-} = _/\_ t12 -> \ tpl_B1 -> tpl_B1
+AbsBinds [taDq] [d.A_aDm] []
+d.Num_aDo = PrelBase.$d4{-raQ,p-}
++_aDu = PrelBase.+{-rfF,p-} PrelBase.Int{-3g,W-} d.Num_aDo
+lit_aDv = PrelBase.I#{-5b,w-}{i} 1#
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+_exports_
+ShouldSucceed f A(op1) B(op2);
+_instances_
+instance _forall_ [a] {B a} => {B [a]} = $d1;
+instance {A PrelBase.Int} = $d2;
+_declarations_
+1 $d1 _:_ _forall_ [a] {B a} => {B [a]} ;;
+1 $d2 _:_ {A PrelBase.Int} ;;
+1 class A a where {op1 :: a} ;
+1 class B b where {op2 :: b -> PrelBase.Int} ;
+1 f _:_ _forall_ [ta tb] {A tb} => ta -> tb ;;
index 9f98989..84c91d1 100644 (file)
@@ -1,6 +1,6 @@
 -- once produced a bug, here as regression test
 
-module P where
+module ShouldSucceed where
 
 f _ | otherwise = ()
 
diff --git a/ghc/tests/typecheck/should_compile/tc044.stderr b/ghc/tests/typecheck/should_compile/tc044.stderr
new file mode 100644 (file)
index 0000000..6ee2d5c
--- /dev/null
@@ -0,0 +1,16 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [tar6] [] [([tar6], f{-r1,x-}, f_aqX)]
+    f_aqX _ | PrelBase.otherwise{-818,p-} = PrelBase.(){-60,w-}{i}
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: otherwise 1;
+_exports_
+ShouldSucceed f;
+_declarations_
+1 f _:_ _forall_ [ta] => ta -> PrelBase.() ;;
index fc6a72e..4ff3766 100644 (file)
@@ -1,4 +1,4 @@
-module H where
+module ShouldSucceed where
 
 class C a where
  op1 :: a -> a
diff --git a/ghc/tests/typecheck/should_compile/tc045.stderr b/ghc/tests/typecheck/should_compile/tc045.stderr
new file mode 100644 (file)
index 0000000..879c889
--- /dev/null
@@ -0,0 +1,39 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [tald] [] [([tald], $d1{-rlI,x-}, d.C_al6)]
+    AbsBinds [] [] [([], op1_alJ, op1_ala)]
+       op1_ala xs_r3k = xs_r3k
+    d.C_al6 = ({-dict-} [] [op1_alJ])
+AbsBinds
+[talr]
+[d.B_alv, d.C_alw]
+[([talr], $d2{-rlK,x-}, d.B_alk)]
+    d.C_alu = d.C_alw
+    AbsBinds [] [] [([], op2_alM, op2_alo)]
+       op2_alo xs_r3s ys_r3t = xs_r3s
+    d.B_alk = ({-dict-} [d.C_alu] [op2_alM])
+scsel_BShouldSucceedC{-alL,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B1;}
+op2{-r3C,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B2;}
+AbsBinds [talG] [d.B_alC] []
+op1{-r3B,x-} = _/\_ t12 -> \ tpl_B1 -> tpl_B1
+AbsBinds [talH] [d.C_alF] []
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed B(op2) C(op1);
+_instances_
+instance _forall_ [a] => {C [a]} = $d1;
+instance _forall_ [a] {B a} => {B [a]} = $d2;
+_declarations_
+1 $d1 _:_ _forall_ [a] => {C [a]} ;;
+1 $d2 _:_ _forall_ [a] {B a, C [a]} => {B [a]} ;;
+1 class {C a} => B a where {op2 :: a -> a -> a} ;
+1 class C a where {op1 :: a -> a} ;
index dbbf3a1..c1ae30c 100644 (file)
@@ -1,4 +1,4 @@
-module H where
+module ShouldSucceed where
 
 class C a where
  op1 :: a -> a
diff --git a/ghc/tests/typecheck/should_compile/tc046.stderr b/ghc/tests/typecheck/should_compile/tc046.stderr
new file mode 100644 (file)
index 0000000..18c2be9
--- /dev/null
@@ -0,0 +1,22 @@
+
+
+================================================================================
+Typechecked:
+scsel_BShouldSucceedC{-akS,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B1;}
+op2{-r3n,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B2;}
+AbsBinds [takQ] [d.B_akM] []
+op1{-r3m,x-} = _/\_ t12 -> \ tpl_B1 -> tpl_B1
+AbsBinds [takR] [d.C_akP] []
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed B(op2) C(op1);
+_declarations_
+1 class {C a} => B a where {op2 :: a -> a -> a} ;
+1 class C a where {op1 :: a -> a} ;
diff --git a/ghc/tests/typecheck/should_compile/tc047.stderr b/ghc/tests/typecheck/should_compile/tc047.stderr
new file mode 100644 (file)
index 0000000..756d497
--- /dev/null
@@ -0,0 +1,34 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [tayV, tayY] [] [([tayV, tayY], sd{-r3w,x-}, sd_ayO)]
+    sd_ayO (f_r3s, s_r3t) = s_r3t
+AbsBinds [tazn, tazr] [] [([tazn, tazr], mp{-r3x,x-}, mp_az3)]
+    mp_az3 f_r3m PrelBase.[]{-5i,w-}{i} = PrelBase.[]{-5i,w-}{i} tazr
+    mp_az3 f_r3o (x_r3p PrelBase.:{-55,w-}{i} xs_r3q)
+          = PrelBase.:{-55,w-}{i} tazr (f_r3o x_r3p) (mp_az3 f_r3o xs_r3q)
+AbsBinds
+[taA2, tazZ, taA0]
+[]
+[([taA2, tazZ, taA0], f{-r3y,x-}, f_azx)]
+    f_azx x_r3g
+         = ranOAL_r3i [taA0, tazZ]
+         where
+             {- nonrec -}
+             AbsBinds [tazP, tazS] [] [([tazP, tazS], ranOAL_r3i, ranOAL_azF)]
+                 ranOAL_azF xs_r3k
+                            = mp{-r3x,x-} [(tazS, tazP), tazP] sd{-r3w,x-} [tazS, tazP] xs_r3k
+             {- nonrec -}
+             {- nonrec -}
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed f mp sd OL;
+_declarations_
+1 type OL a = [a] ;
+1 f _:_ _forall_ [ta tb tc] => ta -> [(tb, tc)] -> [tc] ;;
+1 mp _:_ _forall_ [ta tb] => (ta -> tb) -> [ta] -> [tb] ;;
+1 sd _:_ _forall_ [ta tb] => (ta, tb) -> tb ;;
diff --git a/ghc/tests/typecheck/should_compile/tc048.stderr b/ghc/tests/typecheck/should_compile/tc048.stderr
new file mode 100644 (file)
index 0000000..d4227e7
--- /dev/null
@@ -0,0 +1,64 @@
+
+
+================================================================================
+Typechecked:
+MkAFE{-r3X,x-}{i} =
+    _/\_ n_tr3K a_tr3L b_tr3M -> \ tpl_B1 ->
+       MkAFE{-r3X,x-}{i} {_@_ n_tr3K _@_ a_tr3L _@_ b_tr3M tpl_B1}
+MkFG{-r3W,x-}{i} =
+    _/\_ a_tr3O b_tr3P -> \ tpl_B1 ->
+       MkFG{-r3W,x-}{i} {_@_ a_tr3O _@_ b_tr3P tpl_B1}
+MkOL{-r3V,x-}{i} =
+    _/\_ a_tr3R -> \ tpl_B1 -> MkOL{-r3V,x-}{i} {_@_ a_tr3R tpl_B1}
+AbsBinds [taR8, taRb] [] [([taR8, taRb], sNd{-r3v,x-}, sNd_aR1)]
+    sNd_aR1 (f_r3F, s_r3G) = s_r3G
+AbsBinds [taRA, taRE] [] [([taRA, taRE], mAp{-r3u,x-}, mAp_aRg)]
+    mAp_aRg f_r3z PrelBase.[]{-5i,w-}{i} = PrelBase.[]{-5i,w-}{i} taRE
+    mAp_aRg f_r3B (x_r3C PrelBase.:{-55,w-}{i} xs_r3D)
+           = PrelBase.:{-55,w-}{i} taRE (f_r3B x_r3C) (mAp_aRg f_r3B xs_r3D)
+AbsBinds
+[taRU, taRV]
+[]
+[([taRU, taRV], ranOAL{-r3s,x-}, ranOAL_aRP)]
+    ranOAL_aRP (MkOL{-r3V,x-}{i} xs_r3x)
+              = mAp{-r3u,x-} [(taRU, taRV), taRV] sNd{-r3v,x-} [taRU, taRV]
+                                                  xs_r3x
+AbsBinds
+[taSn, taSo, taSp]
+[]
+[([taSn, taSo, taSp], ranAFE{-r3t,x-}, ranAFE_aSe)]
+    ranAFE_aSe (MkAFE{-r3X,x-}{i} nfs_r3I)
+              = ranOAL{-r3s,x-} [taSn, FG{-r3T,x-} taSo taSp] nfs_r3I
+AbsBinds
+[taSQ, taSR, taSS]
+[]
+[([taSQ, taSR, taSS], $d1{-rSY,x-}, d.Eval_aSC)]
+    d.Eval_aSC = ({-dict-} [] [])
+AbsBinds [taST, taSU] [] [([taST, taSU], $d2{-rT0,x-}, d.Eval_aSJ)]
+    d.Eval_aSJ = ({-dict-} [] [])
+AbsBinds [taSV] [] [([taSV], $d3{-rT2,x-}, d.Eval_aSP)]
+    d.Eval_aSP = ({-dict-} [] [])
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d2 1 $d38 1 $d40 1 $d42 1 $d45 1 $d47 1 Eval 1;
+PrelTup 1 :: $d13 1;
+_exports_
+ShouldSucceed mAp ranAFE ranOAL sNd AFE(MkAFE) FG(MkFG) OL(MkOL);
+_instances_
+instance _forall_ [n a b] => {PrelBase.Eval (AFE n a b)} = $d1;
+instance _forall_ [a b] => {PrelBase.Eval (FG a b)} = $d2;
+instance _forall_ [a] => {PrelBase.Eval (OL a)} = $d3;
+_declarations_
+1 $d1 _:_ _forall_ [n a b] => {PrelBase.Eval (AFE n a b)} ;;
+1 $d2 _:_ _forall_ [a b] => {PrelBase.Eval (FG a b)} ;;
+1 $d3 _:_ _forall_ [a] => {PrelBase.Eval (OL a)} ;;
+1 data AFE n a b = MkAFE (OL (n, FG a b)) ;
+1 data FG a b = MkFG (OL (a, b)) ;
+1 data OL a = MkOL [a] ;
+1 mAp _:_ _forall_ [ta tb] => (ta -> tb) -> [ta] -> [tb] ;;
+1 ranAFE _:_ _forall_ [ta tb tc] => AFE ta tb tc -> [FG tb tc] ;;
+1 ranOAL _:_ _forall_ [ta tb] => OL (ta, tb) -> [tb] ;;
+1 sNd _:_ _forall_ [ta tb] => (ta, tb) -> tb ;;
diff --git a/ghc/tests/typecheck/should_compile/tc049.stderr b/ghc/tests/typecheck/should_compile/tc049.stderr
new file mode 100644 (file)
index 0000000..7c87764
--- /dev/null
@@ -0,0 +1,129 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [] [] [([], main3{-r3W,x-}, main3_aSS)]
+    main3_aSS
+       = [[lit_aXD] (PrelBase.Int{-3g,W-}),
+          [lit_aXE] (PrelBase.Int{-3g,W-})] ([PrelBase.Int{-3g,W-}])
+         ==_aXC [[lit_aXF] (PrelBase.Int{-3g,W-})] ([PrelBase.Int{-3g,W-}])
+AbsBinds [] [] [([], main2{-r3X,x-}, main2_aTq)]
+    main2_aTq = "Hello" ==_aXB "Goodbye"
+AbsBinds [] [] [([], main1{-r3Y,x-}, main1_aTz)]
+    main1_aTz
+       = [[(lit_aXz,
+            PrelBase.True{-5E,w-}{i})] ((PrelBase.Int{-3g,W-}, PrelBase.Bool{-34,W-}))] ([(PrelBase.Int{-3g,W-}, PrelBase.Bool{-34,W-})])
+         ==_aXy [[(lit_aXA,
+                   PrelBase.False{-58,w-}{i})] ((PrelBase.Int{-3g,W-}, PrelBase.Bool{-34,W-}))] ([(PrelBase.Int{-3g,W-}, PrelBase.Bool{-34,W-})])
+AbsBinds
+[taUG]
+[d.Eq_aUY]
+[([taUG], mem3{-r40,x-}, mem3_aUe), ([taUG],
+                                    mem4{-r3Z,x-},
+                                    mem4_aUf)]
+    d.Eq_aUW = PrelBase.$d28{-rb4,p-} taUG d.Eq_aUY
+    ==_aXG = PrelBase.=={-8Y,p-} [taUG] d.Eq_aUW
+    mem3_aUe x_r3N PrelBase.[]{-5i,w-}{i} = PrelBase.False{-58,w-}{i}
+    mem3_aUe x_r3P (y_r3Q PrelBase.:{-55,w-}{i} ys_r3R)
+            = if [x_r3P] (taUG) ==_aXG [y_r3Q] (taUG) then
+                  mem4_aUf x_r3P ys_r3R
+              else
+                  PrelBase.False{-58,w-}{i}
+    mem4_aUf y_r3T (x_r3U PrelBase.:{-55,w-}{i} xs_r3V)
+            = mem3_aUe y_r3T xs_r3V
+AbsBinds [] [] [([], oR1{-r42,x-}, oR1_aV0)]
+    oR1_aV0 a_r3E b_r3F
+           = if a_r3E then PrelBase.True{-5E,w-}{i} else b_r3F
+AbsBinds [] [] [([], oR{-r44,x-}, oR_aVe)]
+    oR_aVe a_r3v b_r3w
+          = if a_r3v then PrelBase.True{-5E,w-}{i} else b_r3w
+AbsBinds
+[taWa]
+[d.Eq_aWd]
+[([taWa], mem2{-r41,x-}, mem2_aVs), ([taWa],
+                                    mem1{-r43,x-},
+                                    mem1_aVt)]
+    ==_aXH = PrelBase.=={-8Y,p-} taWa d.Eq_aWd
+    ==_aXI = ==_aXH
+    mem2_aVs x_r3H PrelBase.[]{-5i,w-}{i} = PrelBase.False{-58,w-}{i}
+    mem2_aVs x_r3J (y_r3K PrelBase.:{-55,w-}{i} ys_r3L)
+            = (x_r3J ==_aXH y_r3K) oR{-r44,x-} (mem1_aVt x_r3J ys_r3L)
+    mem1_aVt x_r3y PrelBase.[]{-5i,w-}{i} = PrelBase.False{-58,w-}{i}
+    mem1_aVt x_r3A (y_r3B PrelBase.:{-55,w-}{i} ys_r3C)
+            = (x_r3A ==_aXI y_r3B) oR1{-r42,x-} (mem2_aVs x_r3A ys_r3C)
+AbsBinds [taWA] [d.Eq_aWD] [([taWA], mem{-r45,x-}, mem_aWf)]
+    ==_aXJ = PrelBase.=={-8Y,p-} taWA d.Eq_aWD
+    mem_aWf x_r3p PrelBase.[]{-5i,w-}{i} = PrelBase.False{-58,w-}{i}
+    mem_aWf x_r3r (y_r3s PrelBase.:{-55,w-}{i} ys_r3t)
+           = (x_r3r ==_aXJ y_r3s) oR{-r44,x-} (mem_aWf x_r3r ys_r3t)
+AbsBinds
+[taWZ]
+[d.Ord_aX3, d.Num_aX6]
+[([taWZ], fib{-r46,x-}, fib_aWF)]
+    <=_aXK = PrelBase.<={-rgd,p-} taWZ d.Ord_aX3
+    fromInt_aXL = PrelBase.fromInt{-8R,p-} taWZ d.Num_aX6
+    lit_aXM = fromInt_aXL PrelBase.I#{-5b,w-}{i} 2#
+    d.Num_aX8 = d.Num_aX6
+    +_aXN = PrelBase.+{-rg6,p-} taWZ d.Num_aX8
+    d.Num_aXa = d.Num_aX6
+    -_aXO = PrelBase.-{-817,p-} taWZ d.Num_aXa
+    fromInt_aXP = fromInt_aXL
+    lit_aXQ = fromInt_aXP PrelBase.I#{-5b,w-}{i} 1#
+    -_aXR = -_aXO
+    lit_aXS = lit_aXM
+    fib_aWF n_r3n
+           = if n_r3n <=_aXK lit_aXM then
+                 n_r3n
+             else
+                 (fib_aWF n_r3n -_aXO lit_aXQ) +_aXN (fib_aWF n_r3n -_aXR lit_aXS)
+d.Eq_aXj = PrelBase.$d8{-rbE,p-}
+d.Eq_aXk = PrelBase.$d33{-rba,p-}
+d.Eq_aXh =
+    PrelTup.$d9{-rwm,p-} [PrelBase.Int{-3g,W-}, PrelBase.Bool{-34,W-}]
+       [d.Eq_aXj, d.Eq_aXk]
+d.Eq_aXf =
+    PrelBase.$d28{-rb4,p-}
+       (PrelBase.Int{-3g,W-}, PrelBase.Bool{-34,W-})
+       d.Eq_aXh
+d.Eq_aXd =
+    PrelBase.$d28{-rb4,p-}
+       [(PrelBase.Int{-3g,W-}, PrelBase.Bool{-34,W-})]
+       d.Eq_aXf
+==_aXy =
+    PrelBase.=={-8Y,p-}
+       [[(PrelBase.Int{-3g,W-}, PrelBase.Bool{-34,W-})]]
+       d.Eq_aXd
+lit_aXz = PrelBase.I#{-5b,w-}{i} 1#
+lit_aXA = PrelBase.I#{-5b,w-}{i} 2#
+d.Eq_aXq = PrelBase.$d34{-rbb,p-}
+d.Eq_aXo = PrelBase.$d28{-rb4,p-} PrelBase.Char{-38,W-} d.Eq_aXq
+==_aXB = PrelBase.=={-8Y,p-} [PrelBase.Char{-38,W-}] d.Eq_aXo
+d.Eq_aXx = d.Eq_aXj
+d.Eq_aXv = PrelBase.$d28{-rb4,p-} PrelBase.Int{-3g,W-} d.Eq_aXx
+d.Eq_aXt = PrelBase.$d28{-rb4,p-} [PrelBase.Int{-3g,W-}] d.Eq_aXv
+==_aXC = PrelBase.=={-8Y,p-} [[PrelBase.Int{-3g,W-}]] d.Eq_aXt
+lit_aXD = lit_aXz
+lit_aXE = lit_aXA
+lit_aXF = PrelBase.I#{-5b,w-}{i} 3#
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d15 1 $d16 1 $d2 1 $d22 1 $d27 1 $d28 1 $d3 1 $d33 1 $d34 1 $d35 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d46 1 $d47 1 $d50 1 $d51 1 $d52 1 $d55 1 $d56 1 $d7 1 $d8 1 $d9 1 $m- 1 $m/= 1 $m< 1 $m<= 1 $m> 1 $m>= 1 $mcompare 1 $mfromInt 1 $mmax 1 $mmin 1 $mshowList 1 Eq 1 Eval 1 Num 1 Ord 1 Ordering 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d17 1 $d18 1 $d29 1 $d33 1 $d34 1 $d35 1;
+PrelTup 1 :: $d13 1 $d4 1 $d49 1 $d9 1;
+_exports_
+ShouldSucceed fib main1 main2 main3 mem mem1 mem2 mem3 mem4 oR oR1;
+_declarations_
+1 fib _:_ _forall_ [ta] {PrelBase.Ord ta, PrelBase.Num ta} => ta -> ta ;;
+1 main1 _:_ PrelBase.Bool ;;
+1 main2 _:_ PrelBase.Bool ;;
+1 main3 _:_ PrelBase.Bool ;;
+1 mem _:_ _forall_ [ta] {PrelBase.Eq ta} => ta -> [ta] -> PrelBase.Bool ;;
+1 mem1 _:_ _forall_ [ta] {PrelBase.Eq ta} => ta -> [ta] -> PrelBase.Bool ;;
+1 mem2 _:_ _forall_ [ta] {PrelBase.Eq ta} => ta -> [ta] -> PrelBase.Bool ;;
+1 mem3 _:_ _forall_ [ta] {PrelBase.Eq ta} => ta -> [ta] -> PrelBase.Bool ;;
+1 mem4 _:_ _forall_ [ta] {PrelBase.Eq ta} => ta -> [ta] -> PrelBase.Bool ;;
+1 oR _:_ PrelBase.Bool -> PrelBase.Bool -> PrelBase.Bool ;;
+1 oR1 _:_ PrelBase.Bool -> PrelBase.Bool -> PrelBase.Bool ;;
diff --git a/ghc/tests/typecheck/should_compile/tc050.stderr b/ghc/tests/typecheck/should_compile/tc050.stderr
new file mode 100644 (file)
index 0000000..e5f1f50
--- /dev/null
@@ -0,0 +1,60 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds
+[taCD, taCz]
+[d.Foo_aCF, d.Num_aCI]
+[([taCD, taCz], g{-r3F,x-}, g_aCl)]
+    o_and_aDR = o_and{-r3I,x-} taCz d.Foo_aCF
+    fromInt_aDY = PrelBase.fromInt{-8R,p-} taCz d.Num_aCI
+    lit_aDZ = fromInt_aDY PrelBase.I#{-5b,w-}{i} 1#
+    g_aCl x_r3j y_r3k = o_and_aDR x_r3j lit_aDZ
+AbsBinds [taD1] [] [([taD1], f{-r3G,x-}, f_aCK)]
+    f_aCK x_r3g y_r3h = o_and_aDU x_r3g PrelBase.False{-58,w-}{i}
+AbsBinds [] [] [([], $d1{-rDS,x-}, d.Foo_aD8)]
+    AbsBinds [] [] [([], o_and_aE0, o_and_aDc)]
+       lit_aE1 = lit_aDV
+       ==_aE2 = ==_aDW
+       ==_aE3 = ==_aDW
+       lit_aE4 = lit_aDX
+       ==_aE5 = ==_aDW
+       o_and_aDc x_r3p 0 = PrelBase.I#{-5b,w-}{i} 0#
+       o_and_aDc 0 x_r3r = PrelBase.I#{-5b,w-}{i} 0#
+       o_and_aDc 1 1 = PrelBase.I#{-5b,w-}{i} 1#
+    d.Foo_aD8 = ({-dict-} [] [o_and_aE0])
+AbsBinds [] [] [([], $d2{-rDT,x-}, d.Foo_aDA)]
+    AbsBinds [] [] [([], o_and_aE6, o_and_aDE)]
+       o_and_aDE PrelBase.False{-58,w-}{i} x_r3y
+                 = PrelBase.False{-58,w-}{i}
+       o_and_aDE x_r3A PrelBase.False{-58,w-}{i}
+                 = PrelBase.False{-58,w-}{i}
+       o_and_aDE PrelBase.True{-5E,w-}{i} PrelBase.True{-5E,w-}{i}
+                 = PrelBase.True{-5E,w-}{i}
+    d.Foo_aDA = ({-dict-} [] [o_and_aE6])
+o_and{-r3I,x-} = _/\_ t12 -> \ tpl_B1 -> tpl_B1
+AbsBinds [taDQ] [d.Foo_aDK] []
+d.Foo_aDM = $d2{-rDT,x-}
+o_and_aDU = o_and{-r3I,x-} PrelBase.Bool{-34,W-} d.Foo_aDM
+lit_aDV = PrelBase.I#{-5b,w-}{i} 0#
+d.Eq_aDP = PrelBase.$d8{-rbh,p-}
+==_aDW = PrelBase.=={-8Y,p-} PrelBase.Int{-3g,W-} d.Eq_aDP
+lit_aDX = PrelBase.I#{-5b,w-}{i} 1#
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+_exports_
+ShouldSucceed f g Foo(o_and);
+_instances_
+instance {Foo PrelBase.Int} = $d1;
+instance {Foo PrelBase.Bool} = $d2;
+_declarations_
+1 $d1 _:_ {Foo PrelBase.Int} ;;
+1 $d2 _:_ {Foo PrelBase.Bool} ;;
+1 class Foo a where {o_and :: a -> a -> a} ;
+1 f _:_ _forall_ [ta] => PrelBase.Bool -> ta -> PrelBase.Bool ;;
+1 g _:_ _forall_ [ta tb] {Foo tb, PrelBase.Num tb} => tb -> ta -> tb ;;
diff --git a/ghc/tests/typecheck/should_compile/tc051.stderr b/ghc/tests/typecheck/should_compile/tc051.stderr
new file mode 100644 (file)
index 0000000..25ad280
--- /dev/null
@@ -0,0 +1,42 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [] [] [([], $d1{-rlY,x-}, d.Ord'_alb)]
+    d.Eq'_alg = $d3{-rm0,x-}
+    AbsBinds [] [] [([], lt_am2, lt_alf)]
+       lt_alf x_r3j y_r3k = PrelBase.True{-5E,w-}{i}
+    d.Ord'_alb = ({-dict-} [d.Eq'_alg] [lt_am2])
+AbsBinds [taly] [d.Eq'_alB] [([taly], $d2{-rlZ,x-}, d.Eq'_alr)]
+    AbsBinds [] [] [([], doubleeq_am3, doubleeq_alv)]
+       doubleeq_alv x_r3s y_r3t = PrelBase.True{-5E,w-}{i}
+    d.Eq'_alr = ({-dict-} [] [doubleeq_am3])
+AbsBinds [] [] [([], $d3{-rm0,x-}, d.Eq'_alI)]
+    AbsBinds [] [] [([], doubleeq_am4, doubleeq_alM)]
+       doubleeq_alM x_r3z y_r3A = PrelBase.True{-5E,w-}{i}
+    d.Eq'_alI = ({-dict-} [] [doubleeq_am4])
+scsel_Ord'ShouldSucceedEq'{-am1,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B1;}
+lt{-r3J,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B2;}
+AbsBinds [talW] [d.Ord'_alS] []
+doubleeq{-r3I,x-} = _/\_ t12 -> \ tpl_B1 -> tpl_B1
+AbsBinds [talX] [d.Eq'_alV] []
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed Eq'(doubleeq) Ord'(lt);
+_instances_
+instance {Ord' PrelBase.Int} = $d1;
+instance _forall_ [a] {Eq' a} => {Eq' [a]} = $d2;
+instance {Eq' PrelBase.Int} = $d3;
+_declarations_
+1 $d1 _:_ {Ord' PrelBase.Int} ;;
+1 $d2 _:_ _forall_ [a] {Eq' a} => {Eq' [a]} ;;
+1 $d3 _:_ {Eq' PrelBase.Int} ;;
+1 class Eq' a where {doubleeq :: a -> a -> PrelBase.Bool} ;
+1 class {Eq' a} => Ord' a where {lt :: a -> a -> PrelBase.Bool} ;
diff --git a/ghc/tests/typecheck/should_compile/tc052.stderr b/ghc/tests/typecheck/should_compile/tc052.stderr
new file mode 100644 (file)
index 0000000..5f56597
--- /dev/null
@@ -0,0 +1,15 @@
+
+
+================================================================================
+Typechecked:
+
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed A B C;
+_declarations_
+1 type A a = B a ;
+1 type B c = C ;
+1 type C = PrelBase.Int ;
diff --git a/ghc/tests/typecheck/should_compile/tc053.stderr b/ghc/tests/typecheck/should_compile/tc053.stderr
new file mode 100644 (file)
index 0000000..1746c5b
--- /dev/null
@@ -0,0 +1,48 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds
+[taCq]
+[d.Eq'_aCv, d.Num_aCy]
+[([taCq], f{-r3A,x-}, f_aCf)]
+    d.Eq'_aCt = $d1{-rDn,x-} taCq d.Eq'_aCv
+    deq_aDp = deq{-r3B,x-} [taCq] d.Eq'_aCt
+    fromInt_aDq = PrelBase.fromInt{-8R,p-} taCq d.Num_aCy
+    lit_aDr = fromInt_aDq PrelBase.I#{-5b,w-}{i} 1#
+    f_aCf x_r3f = deq_aDp x_r3f [lit_aDr] (taCq)
+AbsBinds [taCP] [d.Eq'_aD1] [([taCP], $d1{-rDn,x-}, d.Eq'_aCE)]
+    d.Eq'_aD5 = d.Eq'_aD1
+    deq_aDs = deq{-r3B,x-} taCP d.Eq'_aD5
+    deq_aDt = deq_aDu
+    AbsBinds [] [] [([], deq_aDu, deq_aCI)]
+       deq_aCI (a_r3m PrelBase.:{-55,w-}{i} as_r3n)
+               (b_r3o PrelBase.:{-55,w-}{i} bs_r3p)
+               = if deq_aDs a_r3m b_r3o then
+                     deq_aDt as_r3n bs_r3p
+                 else
+                     PrelBase.False{-58,w-}{i}
+    d.Eq'_aCE = ({-dict-} [] [deq_aDu])
+AbsBinds [] [] [([], $d2{-rDo,x-}, d.Eq'_aDb)]
+    AbsBinds [] [] [([], deq_aDv, deq_aDf)]
+       deq_aDf x_r3v y_r3w = PrelBase.True{-5E,w-}{i}
+    d.Eq'_aDb = ({-dict-} [] [deq_aDv])
+deq{-r3B,x-} = _/\_ t12 -> \ tpl_B1 -> tpl_B1
+AbsBinds [taDm] [d.Eq'_aDl] []
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+_exports_
+ShouldSucceed f Eq'(deq);
+_instances_
+instance _forall_ [a] {Eq' a} => {Eq' [a]} = $d1;
+instance {Eq' PrelBase.Int} = $d2;
+_declarations_
+1 $d1 _:_ _forall_ [a] {Eq' a} => {Eq' [a]} ;;
+1 $d2 _:_ {Eq' PrelBase.Int} ;;
+1 class Eq' a where {deq :: a -> a -> PrelBase.Bool} ;
+1 f _:_ _forall_ [ta] {Eq' ta, PrelBase.Num ta} => [ta] -> PrelBase.Bool ;;
diff --git a/ghc/tests/typecheck/should_compile/tc054.stderr b/ghc/tests/typecheck/should_compile/tc054.stderr
new file mode 100644 (file)
index 0000000..2924ab6
--- /dev/null
@@ -0,0 +1,50 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds
+[taCH, taCC]
+[d.Ord'_aCJ, d.Num_aCM]
+[([taCH, taCC], f{-r3D,x-}, f_aCo)]
+    lt_aDm = lt{-r3G,x-} taCC d.Ord'_aCJ
+    fromInt_aDq = PrelBase.fromInt{-8R,p-} taCC d.Num_aCM
+    lit_aDr = fromInt_aDq PrelBase.I#{-5b,w-}{i} 1#
+    f_aCo x_r3h y_r3i
+         | lt_aDm x_r3h lit_aDr = PrelBase.True{-5E,w-}{i}
+         | PrelBase.otherwise{-818,p-} = PrelBase.False{-58,w-}{i}
+AbsBinds [] [] [([], $d1{-rDn,x-}, d.Ord'_aCR)]
+    d.Eq'_aCW = $d2{-rDo,x-}
+    AbsBinds [] [] [([], lt_aDs, lt_aCV)]
+       lt_aCV x_r3n y_r3o = PrelBase.True{-5E,w-}{i}
+    d.Ord'_aCR = ({-dict-} [d.Eq'_aCW] [lt_aDs])
+AbsBinds [] [] [([], $d2{-rDo,x-}, d.Eq'_aD6)]
+    AbsBinds [] [] [([], doubleeq_aDt, doubleeq_aDa)]
+       doubleeq_aDa x_r3u y_r3v = PrelBase.True{-5E,w-}{i}
+    d.Eq'_aD6 = ({-dict-} [] [doubleeq_aDt])
+scsel_Ord'ShouldSucceedEq'{-aDp,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B1;}
+lt{-r3G,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B2;}
+AbsBinds [taDk] [d.Ord'_aDg] []
+doubleeq{-r3F,x-} = _/\_ t12 -> \ tpl_B1 -> tpl_B1
+AbsBinds [taDl] [d.Eq'_aDj] []
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $mfromInt 1 $mshowList 1 otherwise 1 Eq 1 Eval 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+_exports_
+ShouldSucceed f Eq'(doubleeq) Ord'(lt);
+_instances_
+instance {Ord' PrelBase.Int} = $d1;
+instance {Eq' PrelBase.Int} = $d2;
+_declarations_
+1 $d1 _:_ {Ord' PrelBase.Int} ;;
+1 $d2 _:_ {Eq' PrelBase.Int} ;;
+1 class Eq' a where {doubleeq :: a -> a -> PrelBase.Bool} ;
+1 class {Eq' a} => Ord' a where {lt :: a -> a -> PrelBase.Bool} ;
+1 f _:_ _forall_ [ta tb] {Ord' tb, PrelBase.Num tb} => tb -> ta -> PrelBase.Bool ;;
diff --git a/ghc/tests/typecheck/should_compile/tc055.stderr b/ghc/tests/typecheck/should_compile/tc055.stderr
new file mode 100644 (file)
index 0000000..15e0430
--- /dev/null
@@ -0,0 +1,22 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds
+[tayU, tayW]
+[]
+[([tayU, tayW], x{-r3i,x-}, x_ayt), ([tayU, tayW],
+                                    y{-r3h,x-},
+                                    y_ayu)]
+    (x_ayt, y_ayu) = (\ p_r3e -> p_r3e, \ q_r3g -> q_r3g)
+
+NOTE: Simplifier still going after 4 iterations; bailing out.
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed x y;
+_declarations_
+1 x _:_ _forall_ [ta tb] => ta -> ta ;;
+1 y _:_ _forall_ [ta tb] => tb -> tb ;;
diff --git a/ghc/tests/typecheck/should_compile/tc056.stderr b/ghc/tests/typecheck/should_compile/tc056.stderr
new file mode 100644 (file)
index 0000000..032b701
--- /dev/null
@@ -0,0 +1,55 @@
+tc056.hs:15:warning:
+    Duplicated class assertion `Eq' a' in context: `(Eq' a, Eq' a)'
+
+
+================================================================================
+Typechecked:
+AbsBinds
+[taCJ, taCG]
+[d.Eq'_aCN, d.Num_aCR]
+[([taCJ, taCG], f{-r3E,x-}, f_aCq)]
+    d.Eq'_aCO = d.Eq'_aCN
+    d.Eq'_aCL = $d1{-rDw,x-} taCG [d.Eq'_aCN, d.Eq'_aCO]
+    doubleeq_aDz = doubleeq{-r3G,x-} [taCG] d.Eq'_aCL
+    fromInt_aDA = PrelBase.fromInt{-8R,p-} taCG d.Num_aCR
+    lit_aDB = fromInt_aDA PrelBase.I#{-5b,w-}{i} 1#
+    f_aCq x_r3h y_r3i = doubleeq_aDz x_r3h [lit_aDB] (taCG)
+AbsBinds
+[taD4]
+[d.Eq'_aD7, d.Eq'_aD8]
+[([taD4], $d1{-rDw,x-}, d.Eq'_aCX)]
+    AbsBinds [] [] [([], doubleeq_aDC, doubleeq_aD1)]
+       doubleeq_aD1 x_r3p y_r3q = PrelBase.True{-5E,w-}{i}
+    d.Eq'_aCX = ({-dict-} [] [doubleeq_aDC])
+AbsBinds [] [] [([], $d2{-rDx,x-}, d.Eq'_aDg)]
+    AbsBinds [] [] [([], doubleeq_aDD, doubleeq_aDk)]
+       doubleeq_aDk x_r3w y_r3x = PrelBase.True{-5E,w-}{i}
+    d.Eq'_aDg = ({-dict-} [] [doubleeq_aDD])
+scsel_Ord'ShouldSucceedEq'{-aDy,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B1;}
+lt{-r3H,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B2;}
+AbsBinds [taDu] [d.Ord'_aDq] []
+doubleeq{-r3G,x-} = _/\_ t12 -> \ tpl_B1 -> tpl_B1
+AbsBinds [taDv] [d.Eq'_aDt] []
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+_exports_
+ShouldSucceed f Eq'(doubleeq) Ord'(lt);
+_instances_
+instance _forall_ [a] {Eq' a, Eq' a} => {Eq' [a]} = $d1;
+instance {Eq' PrelBase.Int} = $d2;
+_declarations_
+1 $d1 _:_ _forall_ [a] {Eq' a, Eq' a} => {Eq' [a]} ;;
+1 $d2 _:_ {Eq' PrelBase.Int} ;;
+1 class Eq' a where {doubleeq :: a -> a -> PrelBase.Bool} ;
+1 class {Eq' a} => Ord' a where {lt :: a -> a -> PrelBase.Bool} ;
+1 f _:_ _forall_ [ta tb] {Eq' tb, PrelBase.Num tb} => [tb] -> ta -> PrelBase.Bool ;;
diff --git a/ghc/tests/typecheck/should_compile/tc057.hi b/ghc/tests/typecheck/should_compile/tc057.hi
deleted file mode 100644 (file)
index 3613dfa..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-interface ShouldSucceed where {
-class Eq' a where { deq }
-instance <Eq' Int>
-instance Eq' a => <Eq' [a]>
-dand  ::  Bool -> Bool -> Bool
-f  ::  Eq' t93 => t93 -> t93 -> Bool
-}
diff --git a/ghc/tests/typecheck/should_compile/tc057.stderr b/ghc/tests/typecheck/should_compile/tc057.stderr
new file mode 100644 (file)
index 0000000..bbc303f
--- /dev/null
@@ -0,0 +1,55 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [] [] [([], dand{-r3j,x-}, dand_aCq)]
+    dand_aCq PrelBase.True{-5E,w-}{i} PrelBase.True{-5E,w-}{i}
+            = PrelBase.True{-5E,w-}{i}
+    dand_aCq x_r3m y_r3n = PrelBase.False{-58,w-}{i}
+AbsBinds [taCI] [d.Eq'_aCY] [([taCI], f{-r3i,x-}, f_aCF)]
+    d.Eq'_aD0 = d.Eq'_aCY
+    deq_aE1 = deq{-r3M,x-} taCI d.Eq'_aD0
+    f_aCF p_r3p q_r3q
+         = dand{-r3j,x-} deq_aE1 p_r3p q_r3q
+                         deq_aDZ [lit_aE0] (PrelBase.Int{-3g,W-})
+                                 [PrelBase.I#{-5b,w-}{i} 2#] (PrelBase.Int{-3g,W-})
+AbsBinds [taDj] [d.Eq'_aDv] [([taDj], $d1{-rDX,x-}, d.Eq'_aD8)]
+    d.Eq'_aDz = d.Eq'_aDv
+    f_aE2 = f{-r3i,x-} taDj d.Eq'_aDz
+    d.Eq'_aDB = d.Eq'_aD8
+    f_aE3 = f{-r3i,x-} [taDj] d.Eq'_aDB
+    AbsBinds [] [] [([], deq_aE4, deq_aDc)]
+       deq_aDc (a_r3y PrelBase.:{-55,w-}{i} as_r3z)
+               (b_r3A PrelBase.:{-55,w-}{i} bs_r3B)
+               = dand{-r3j,x-} f_aE2 a_r3y b_r3A f_aE3 as_r3z bs_r3B
+    d.Eq'_aD8 = ({-dict-} [] [deq_aE4])
+AbsBinds [] [] [([], $d2{-rDY,x-}, d.Eq'_aDH)]
+    AbsBinds [] [] [([], deq_aE5, deq_aDL)]
+       deq_aDL x_r3H y_r3I = PrelBase.True{-5E,w-}{i}
+    d.Eq'_aDH = ({-dict-} [] [deq_aE5])
+deq{-r3M,x-} = _/\_ t12 -> \ tpl_B1 -> tpl_B1
+AbsBinds [taDW] [d.Eq'_aDR] []
+d.Eq'_aDV = $d2{-rDY,x-}
+d.Eq'_aDT = $d1{-rDX,x-} PrelBase.Int{-3g,W-} d.Eq'_aDV
+deq_aDZ = deq{-r3M,x-} [PrelBase.Int{-3g,W-}] d.Eq'_aDT
+lit_aE0 = PrelBase.I#{-5b,w-}{i} 1#
+
+NOTE: Simplifier still going after 4 iterations; bailing out.
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+_exports_
+ShouldSucceed dand f Eq'(deq);
+_instances_
+instance _forall_ [a] {Eq' a} => {Eq' [a]} = $d1;
+instance {Eq' PrelBase.Int} = $d2;
+_declarations_
+1 $d1 _:_ _forall_ [a] {Eq' a} => {Eq' [a]} ;;
+1 $d2 _:_ {Eq' PrelBase.Int} ;;
+1 class Eq' a where {deq :: a -> a -> PrelBase.Bool} ;
+1 dand _:_ PrelBase.Bool -> PrelBase.Bool -> PrelBase.Bool ;;
+1 f _:_ _forall_ [ta] {Eq' ta} => ta -> ta -> PrelBase.Bool ;;
diff --git a/ghc/tests/typecheck/should_compile/tc058.stderr b/ghc/tests/typecheck/should_compile/tc058.stderr
new file mode 100644 (file)
index 0000000..c3d731c
--- /dev/null
@@ -0,0 +1,59 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds
+[taCQ, taCN]
+[d.Ord2_aCV, d.Num_aCY]
+[([taCQ, taCN], f{-r3M,x-}, f_aCx)]
+    d.Eq2_aCU = scsel_Ord2ShouldSucceedEq2{-aDW,x-} taCN d.Ord2_aCV
+    d.Eq2_aCS = $d1{-rDT,x-} taCN [d.Eq2_aCU, d.Ord2_aCV]
+    doubleeq_aDX = doubleeq{-r3N,x-} [taCN] d.Eq2_aCS
+    fromInt_aDY = PrelBase.fromInt{-8R,p-} taCN d.Num_aCY
+    lit_aDZ = fromInt_aDY PrelBase.I#{-5b,w-}{i} 1#
+    f_aCx x_r3h y_r3i = doubleeq_aDX x_r3h [lit_aDZ] (taCN)
+AbsBinds
+[taDc]
+[d.Eq2_aDf, d.Ord2_aDg]
+[([taDc], $d1{-rDT,x-}, d.Eq2_aD5)]
+    AbsBinds [] [] [([], doubleeq_aE0, doubleeq_aD9)]
+       doubleeq_aD9 xs_r3q ys_r3r = PrelBase.True{-5E,w-}{i}
+    d.Eq2_aD5 = ({-dict-} [] [doubleeq_aE0])
+AbsBinds [] [] [([], $d2{-rDU,x-}, d.Ord2_aDo)]
+    d.Eq2_aDt = $d3{-rDV,x-}
+    AbsBinds [] [] [([], lt_aE1, lt_aDs)]
+       lt_aDs x_r3x y_r3y = PrelBase.True{-5E,w-}{i}
+    d.Ord2_aDo = ({-dict-} [d.Eq2_aDt] [lt_aE1])
+AbsBinds [] [] [([], $d3{-rDV,x-}, d.Eq2_aDD)]
+    AbsBinds [] [] [([], doubleeq_aE2, doubleeq_aDH)]
+       doubleeq_aDH x_r3E y_r3F = PrelBase.True{-5E,w-}{i}
+    d.Eq2_aDD = ({-dict-} [] [doubleeq_aE2])
+scsel_Ord2ShouldSucceedEq2{-aDW,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B1;}
+lt{-r3O,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B2;}
+AbsBinds [taDR] [d.Ord2_aDN] []
+doubleeq{-r3N,x-} = _/\_ t12 -> \ tpl_B1 -> tpl_B1
+AbsBinds [taDS] [d.Eq2_aDQ] []
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+_exports_
+ShouldSucceed f Eq2(doubleeq) Ord2(lt);
+_instances_
+instance _forall_ [a] {Eq2 a, Ord2 a} => {Eq2 [a]} = $d1;
+instance {Ord2 PrelBase.Int} = $d2;
+instance {Eq2 PrelBase.Int} = $d3;
+_declarations_
+1 $d1 _:_ _forall_ [a] {Eq2 a, Ord2 a} => {Eq2 [a]} ;;
+1 $d2 _:_ {Ord2 PrelBase.Int} ;;
+1 $d3 _:_ {Eq2 PrelBase.Int} ;;
+1 class Eq2 a where {doubleeq :: a -> a -> PrelBase.Bool} ;
+1 class {Eq2 a} => Ord2 a where {lt :: a -> a -> PrelBase.Bool} ;
+1 f _:_ _forall_ [ta tb] {Ord2 tb, PrelBase.Num tb} => [tb] -> ta -> PrelBase.Bool ;;
diff --git a/ghc/tests/typecheck/should_compile/tc059.stderr b/ghc/tests/typecheck/should_compile/tc059.stderr
new file mode 100644 (file)
index 0000000..1efc33c
--- /dev/null
@@ -0,0 +1,60 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds
+[taCB]
+[d.Eq2_aCG, d.Num_aCJ]
+[([taCB], f{-r3J,x-}, f_aCq)]
+    d.Eq2_aCE = $d1{-rDT,x-} taCB d.Eq2_aCG
+    deq_aDV = deq{-r3K,x-} [taCB] d.Eq2_aCE
+    fromInt_aDW = PrelBase.fromInt{-8R,p-} taCB d.Num_aCJ
+    lit_aDX = fromInt_aDW PrelBase.I#{-5b,w-}{i} 1#
+    f_aCq x_r3g = deq_aDV x_r3g [lit_aDX] (taCB)
+AbsBinds [taD0] [d.Eq2_aDq] [([taD0], $d1{-rDT,x-}, d.Eq2_aCP)]
+    d.Eq2_aDt = d.Eq2_aDq
+    deq_aDY = deq{-r3K,x-} taD0 d.Eq2_aDt
+    d.Eq2_aDv = d.Eq2_aDq
+    foo_aDZ = foo{-r3L,x-} taD0 d.Eq2_aDv
+    deq_aE0 = deq_aE2
+    foo_aE1 = foo_aE3
+    AbsBinds [] [] [([], deq_aE2, deq_aCT)]
+       deq_aCT (a_r3n PrelBase.:{-55,w-}{i} as_r3o)
+               (b_r3p PrelBase.:{-55,w-}{i} bs_r3q)
+               = if deq_aDY a_r3n foo_aDZ b_r3p then
+                     deq_aE0 as_r3o foo_aE1 bs_r3q
+                 else
+                     PrelBase.False{-58,w-}{i}
+    AbsBinds [] [] [([], foo_aE3, foo_aDn)]
+       foo_aDn x_r3u = x_r3u
+    d.Eq2_aCP = ({-dict-} [] [deq_aE2, foo_aE3])
+AbsBinds [] [] [([], $d2{-rDU,x-}, d.Eq2_aDB)]
+    AbsBinds [] [] [([], deq_aE4, deq_aDF)]
+       deq_aDF x_r3A y_r3B = PrelBase.True{-5E,w-}{i}
+    AbsBinds [] [] [([], foo_aE5, foo_aDM)]
+       foo_aDM x_r3F = x_r3F
+    d.Eq2_aDB = ({-dict-} [] [deq_aE4, foo_aE5])
+deq{-r3K,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B1;}
+foo{-r3L,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B2;}
+AbsBinds [taDS] [d.Eq2_aDR] []
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+_exports_
+ShouldSucceed f Eq2(deq foo);
+_instances_
+instance _forall_ [a] {Eq2 a} => {Eq2 [a]} = $d1;
+instance {Eq2 PrelBase.Int} = $d2;
+_declarations_
+1 $d1 _:_ _forall_ [a] {Eq2 a} => {Eq2 [a]} ;;
+1 $d2 _:_ {Eq2 PrelBase.Int} ;;
+1 class Eq2 a where {deq :: a -> a -> PrelBase.Bool; foo :: a -> a} ;
+1 f _:_ _forall_ [ta] {Eq2 ta, PrelBase.Num ta} => [ta] -> PrelBase.Bool ;;
diff --git a/ghc/tests/typecheck/should_compile/tc060.stderr b/ghc/tests/typecheck/should_compile/tc060.stderr
new file mode 100644 (file)
index 0000000..fcb4ced
--- /dev/null
@@ -0,0 +1,35 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [] [] [([], $d1{-rlE,x-}, d.Eq2_akU)]
+    AbsBinds [] [] [([], deq_alF, deq_akY)]
+       deq_akY x_r3h y_r3i = PrelBase.True{-5E,w-}{i}
+    d.Eq2_akU = ({-dict-} [] [deq_alF])
+AbsBinds [tali] [d.Eq2_alu] [([tali], $d2{-rlG,x-}, d.Eq2_al7)]
+    d.Eq2_aly = d.Eq2_alu
+    deq_alH = deq{-r3x,x-} tali d.Eq2_aly
+    deq_alI = deq_alJ
+    AbsBinds [] [] [([], deq_alJ, deq_alb)]
+       deq_alb (a_r3q PrelBase.:{-55,w-}{i} as_r3r)
+               (b_r3s PrelBase.:{-55,w-}{i} bs_r3t)
+               = if deq_alH a_r3q b_r3s then
+                     deq_alI as_r3r bs_r3t
+                 else
+                     PrelBase.False{-58,w-}{i}
+    d.Eq2_al7 = ({-dict-} [] [deq_alJ])
+deq{-r3x,x-} = _/\_ t12 -> \ tpl_B1 -> tpl_B1
+AbsBinds [talD] [d.Eq2_alC] []
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed Eq2(deq);
+_instances_
+instance {Eq2 PrelBase.Int} = $d1;
+instance _forall_ [a] {Eq2 a} => {Eq2 [a]} = $d2;
+_declarations_
+1 $d1 _:_ {Eq2 PrelBase.Int} ;;
+1 $d2 _:_ _forall_ [a] {Eq2 a} => {Eq2 [a]} ;;
+1 class Eq2 a where {deq :: a -> a -> PrelBase.Bool} ;
diff --git a/ghc/tests/typecheck/should_compile/tc061.stderr b/ghc/tests/typecheck/should_compile/tc061.stderr
new file mode 100644 (file)
index 0000000..6d1544a
--- /dev/null
@@ -0,0 +1,31 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [] [] [([], $d1{-rlB,x-}, d.Eq1_akU)]
+    AbsBinds [] [] [([], deq_alC, deq_akY)]
+       deq_akY x_r3h y_r3i = PrelBase.True{-5E,w-}{i}
+    d.Eq1_akU = ({-dict-} [] [deq_alC])
+AbsBinds [tali] [d.Eq1_alr] [([tali], $d2{-rlD,x-}, d.Eq1_al7)]
+    d.Eq1_alv = d.Eq1_alr
+    deq_alE = deq{-r3x,x-} tali d.Eq1_alv
+    AbsBinds [] [] [([], deq_alF, deq_alb)]
+       deq_alb (a_r3q PrelBase.:{-55,w-}{i} as_r3r)
+               (b_r3s PrelBase.:{-55,w-}{i} bs_r3t)
+               = deq_alE a_r3q b_r3s
+    d.Eq1_al7 = ({-dict-} [] [deq_alF])
+deq{-r3x,x-} = _/\_ t12 -> \ tpl_B1 -> tpl_B1
+AbsBinds [talA] [d.Eq1_alz] []
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed Eq1(deq);
+_instances_
+instance {Eq1 PrelBase.Int} = $d1;
+instance _forall_ [a] {Eq1 a} => {Eq1 [a]} = $d2;
+_declarations_
+1 $d1 _:_ {Eq1 PrelBase.Int} ;;
+1 $d2 _:_ _forall_ [a] {Eq1 a} => {Eq1 [a]} ;;
+1 class Eq1 a where {deq :: a -> a -> PrelBase.Bool} ;
diff --git a/ghc/tests/typecheck/should_compile/tc062.stderr b/ghc/tests/typecheck/should_compile/tc062.stderr
new file mode 100644 (file)
index 0000000..5c14f52
--- /dev/null
@@ -0,0 +1,41 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [tal9] [d.Eq1_alj] [([tal9], f{-r3C,x-}, f_akX)]
+    d.Eq1_alh = $d1{-rm8,x-} tal9 d.Eq1_alj
+    deq_ama = deq{-r3D,x-} [tal9] d.Eq1_alh
+    f_akX x_r3f (y_r3g PrelBase.:{-55,w-}{i} ys_r3h)
+         = deq_ama x_r3f ys_r3h
+AbsBinds [talA] [d.Eq1_alM] [([talA], $d1{-rm8,x-}, d.Eq1_alp)]
+    d.Eq1_alQ = d.Eq1_alM
+    deq_amb = deq{-r3D,x-} talA d.Eq1_alQ
+    deq_amc = deq_amd
+    AbsBinds [] [] [([], deq_amd, deq_alt)]
+       deq_alt (a_r3o PrelBase.:{-55,w-}{i} as_r3p)
+               (b_r3q PrelBase.:{-55,w-}{i} bs_r3r)
+               = if deq_amb a_r3o b_r3q then
+                     deq_amc as_r3p bs_r3r
+                 else
+                     PrelBase.False{-58,w-}{i}
+    d.Eq1_alp = ({-dict-} [] [deq_amd])
+AbsBinds [] [] [([], $d2{-rm9,x-}, d.Eq1_alW)]
+    AbsBinds [] [] [([], deq_ame, deq_am0)]
+       deq_am0 x_r3x y_r3y = PrelBase.True{-5E,w-}{i}
+    d.Eq1_alW = ({-dict-} [] [deq_ame])
+deq{-r3D,x-} = _/\_ t12 -> \ tpl_B1 -> tpl_B1
+AbsBinds [tam7] [d.Eq1_am6] []
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed f Eq1(deq);
+_instances_
+instance _forall_ [a] {Eq1 a} => {Eq1 [a]} = $d1;
+instance {Eq1 PrelBase.Int} = $d2;
+_declarations_
+1 $d1 _:_ _forall_ [a] {Eq1 a} => {Eq1 [a]} ;;
+1 $d2 _:_ {Eq1 PrelBase.Int} ;;
+1 class Eq1 a where {deq :: a -> a -> PrelBase.Bool} ;
+1 f _:_ _forall_ [ta] {Eq1 ta} => [ta] -> [ta] -> PrelBase.Bool ;;
diff --git a/ghc/tests/typecheck/should_compile/tc063.stderr b/ghc/tests/typecheck/should_compile/tc063.stderr
new file mode 100644 (file)
index 0000000..bf00699
--- /dev/null
@@ -0,0 +1,42 @@
+
+
+================================================================================
+Typechecked:
+Tag{-r3G,x-}{i} =
+    _/\_ a_tr3C -> \ tpl_B1 -> Tag{-r3G,x-}{i} {_@_ a_tr3C tpl_B1}
+AbsBinds [taBx] [d.Reps_aBA] [([taBx], g{-r3D,x-}, g_aBo)]
+    f_aCe = f{-r3H,x-} taBx d.Reps_aBA
+    g_aBo x_r3h = f_aCe x_r3h x_r3h
+AbsBinds [taCc] [] [([taCc], $d3{-rCh,x-}, d.Eval_aBG)]
+    d.Eval_aBG = ({-dict-} [] [])
+AbsBinds [] [] [([], $d1{-rCi,x-}, d.Reps_aBL)]
+    AbsBinds [] [] [([], f_aCk, f_aBP)]
+       f_aBP PrelBase.True{-5E,w-}{i} PrelBase.True{-5E,w-}{i}
+             = PrelBase.True{-5E,w-}{i}
+       f_aBP x_r3n y_r3o = PrelBase.False{-58,w-}{i}
+    d.Reps_aBL = ({-dict-} [] [f_aCk])
+AbsBinds [taC5] [] [([taC5], $d2{-rCj,x-}, d.Reps_aBY)]
+    AbsBinds [] [] [([], f_aCl, f_aC2)]
+       f_aC2 x_r3v y_r3w = y_r3w
+    d.Reps_aBY = ({-dict-} [] [f_aCl])
+f{-r3H,x-} = _/\_ t12 -> \ tpl_B1 -> tpl_B1
+AbsBinds [taCd] [d.Reps_aCb] []
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d2 1 $d38 1 $d40 1 $d42 1 $d47 1 Eval 1;
+_exports_
+ShouldSucceed g Reps(f) X(Tag);
+_instances_
+instance {Reps PrelBase.Bool} = $d1;
+instance _forall_ [q] => {Reps (X q)} = $d2;
+instance _forall_ [a] => {PrelBase.Eval (X a)} = $d3;
+_declarations_
+1 $d1 _:_ {Reps PrelBase.Bool} ;;
+1 $d2 _:_ _forall_ [q] => {Reps (X q)} ;;
+1 $d3 _:_ _forall_ [a] => {PrelBase.Eval (X a)} ;;
+1 class Reps r where {f :: r -> r -> r} ;
+1 data X a = Tag a ;
+1 g _:_ _forall_ [ta] {Reps ta} => ta -> ta ;;
diff --git a/ghc/tests/typecheck/should_compile/tc064.stderr b/ghc/tests/typecheck/should_compile/tc064.stderr
new file mode 100644 (file)
index 0000000..1cf473d
--- /dev/null
@@ -0,0 +1,24 @@
+
+
+================================================================================
+Typechecked:
+FF{-r5,x-}{i} = FF{-r5,x-}{i} {}
+TT{-r4,x-}{i} = TT{-r4,x-}{i} {}
+AbsBinds [] [] [([], idb{-r6,x-}, idb_aAU)]
+    idb_aAU x_r3k = x_r3k
+AbsBinds [] [] [([], $d1{-rB4,x-}, d.Eval_aB1)]
+    d.Eval_aB1 = ({-dict-} [] [])
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d2 1 $d38 1 $d40 1 $d42 1 $d47 1 Eval 1;
+_exports_
+ShouldSucceed idb Boolean(FF TT);
+_instances_
+instance {PrelBase.Eval Boolean} = $d1;
+_declarations_
+1 $d1 _:_ {PrelBase.Eval Boolean} ;;
+1 data Boolean = FF |  TT ;
+1 idb _:_ Boolean -> Boolean ;;
index 14de593..1cc308e 100644 (file)
@@ -1,4 +1,4 @@
-module Digraphs where
+module ShouldSucceed where
 
 import TheUtils
 import Set
diff --git a/ghc/tests/typecheck/should_compile/tc065.stderr b/ghc/tests/typecheck/should_compile/tc065.stderr
new file mode 100644 (file)
index 0000000..e7bd19f
--- /dev/null
@@ -0,0 +1,310 @@
+
+
+================================================================================
+Typechecked:
+Succeeded{-rd,x-}{i} =
+    _/\_ a_tr8i b_tr8j -> \ tpl_B1 ->
+       Succeeded{-rd,x-}{i} {_@_ a_tr8i _@_ b_tr8j tpl_B1}
+Failed{-rc,x-}{i} =
+    _/\_ a_tr8i b_tr8j -> \ tpl_B1 ->
+       Failed{-rc,x-}{i} {_@_ a_tr8i _@_ b_tr8j tpl_B1}
+MkDigraph{-r8z,x-}{i} =
+    _/\_ vertex_tr8t -> \ tpl_B1 ->
+       MkDigraph{-r8z,x-}{i} {_@_ vertex_tr8t tpl_B1}
+AbsBinds
+[ta14c]
+[d.Eq_a14r]
+[([ta14c], isRecursiveCycle{-r6D,x-}, isRecursiveCycle_a147)]
+    d.Eq_a14v = d.Eq_a14r
+    d.Eq_a14w = d.Eq_a14r
+    d.Eq_a14t =
+       PrelTup.$d9{-rDa,p-} [ta14c, ta14c] [d.Eq_a14v, d.Eq_a14w]
+    elem_a1gA = PrelList.elem{-rDi,p-} (ta14c, ta14c) d.Eq_a14t
+    isRecursiveCycle_a147 [vertex_r8c] edges_r8d
+                         = (vertex_r8c, vertex_r8c) elem_a1gA edges_r8d
+    isRecursiveCycle_a147 cycle_r8f edges_r8g
+                         = PrelBase.True{-5E,w-}{i}
+AbsBinds
+[ta14I, ta14J, ta14K]
+[d.Eq_a15B, d.Ord_a15C]
+[([ta14J, ta14I, ta14K], lookupVertex{-r6C,x-}, lookupVertex_a14F)]
+    d.Eq_a15E = d.Eq_a15B
+    ==_a1gB = PrelBase.=={-8Y,p-} ta14I d.Eq_a15E
+    lookupVertex_a14F flat_info_r84 vertex_r85
+                     = PrelList.head{-rEs,p-} ta14K code_list_r87
+                     where
+                         {- nonrec -}
+                         AbsBinds [] [] [([], code_list_r87, code_list_a14O)]
+                             code_list_a14O
+                                 = [code_r8a |
+                                        (vertex'_r89, _, _, code_r8a) <- flat_info_r84, vertex_r85
+                                                                                        ==_a1gB vertex'_r89]
+                         {- nonrec -}
+                         {- nonrec -}
+AbsBinds
+[ta15X, ta160, ta161]
+[d.Eq_a17I, d.Ord_a17J]
+[([ta160, ta161, ta15X], mkEdges{-r6B,x-}, mkEdges_a15U)]
+    d.Ord_a17F = d.Ord_a17J
+    d.MonadZero_a17G = PrelBase.$d24{-ri3,p-}
+    mkEdges_a15U vertices_r7M flat_info_r7N
+                = [(source_vertex_r7X, target_vertex_r82) |
+                       (source_vertex_r7X, _, used_names_r7Y, _) <- flat_info_r7N, target_name_r80 <- Set.setToList{-rge,p-}
+                                                                                                          ta160 used_names_r7Y, target_vertex_r82 <- vertices_defining_a1gC target_name_r80
+                                                                                                                                                                            flat_info_r7N]
+                where
+                    {- nonrec -}
+                    AbsBinds
+                    [ta16m, ta16r, ta16u, aa16w, ta16z]
+                    [d.Ord_a16M, d.MonadZero_a16S]
+                    [([ta16m, ta16r, ta16u, aa16w, ta16z],
+                      vertices_defining_r7P,
+                      vertices_defining_a163)]
+                        d.Monad_a16O =
+                            PrelBase.scsel_MonadZeroPrelBaseMonad{-a1gH,p-} aa16w
+                                d.MonadZero_a16S
+                        elementOf_a1gD = Set.elementOf{-rg7,p-} ta16z d.Ord_a16M
+                        >>=_a1gE = PrelBase.>>={-811,p-} aa16w d.Monad_a16O
+                        d.Monad_a16Q = d.Monad_a16O
+                        return_a1gF = PrelBase.return{-816,p-} aa16w d.Monad_a16Q
+                        zero_a1gG = PrelBase.zero{-810,p-} aa16w d.MonadZero_a16S
+                        vertices_defining_a163 name_r7R flat_info_r7S
+                                               = [vertex_r7U |
+                                                      (vertex_r7U, names_defined_r7V, _, _) <- flat_info_r7S, name_r7R
+                                                                                                              elementOf_a1gD names_defined_r7V]
+                    {- nonrec -}
+                    vertices_defining_a1gC =
+                        vertices_defining_r7P
+                            [ta15X, Set.Set{-rg4,p-} ta160, ta161, PrelBase.[]{-3j,W-}, ta160]
+                            [d.Ord_a17F, d.MonadZero_a17G]
+                    {- nonrec -}
+AbsBinds
+[ta180, ta181, ta182]
+[]
+[([ta181, ta182, ta180], mkVertices{-r6A,x-}, mkVertices_a17X)]
+    mkVertices_a17X info_r7I
+                   = [vertex_r7K | (vertex_r7K, _, _, _) <- info_r7I]
+AbsBinds
+[ta18F]
+[d.Eq_a18W]
+[([ta18F], isCyclic{-r6y,x-}, isCyclic_a18C)]
+    d.Eq_a190 = d.Eq_a18W
+    d.Eq_a191 = d.Eq_a18W
+    d.Eq_a18Y =
+       PrelTup.$d9{-rDa,p-} [ta18F, ta18F] [d.Eq_a190, d.Eq_a191]
+    elem_a1gI = PrelList.elem{-rDi,p-} (ta18F, ta18F) d.Eq_a18Y
+    isCyclic_a18C edges_r7r [v_r7s]
+                 = (v_r7s, v_r7s) elem_a1gI edges_r7r
+    isCyclic_a18C edges_r7u vs_r7v = PrelBase.True{-5E,w-}{i}
+AbsBinds [ta1au] [d.Eq_a1aw] [([ta1au], dfs{-r6F,x-}, dfs_a193)]
+    elem_a1gJ = PrelList.elem{-rDi,p-} ta1au d.Eq_a1aw
+    dfs_a193 r_r7e (vs_r7f, ns_r7g) PrelBase.[]{-5i,w-}{i}
+            = (vs_r7f, ns_r7g)
+    dfs_a193 r_r7i
+            (vs_r7j, ns_r7k)
+            (x_r7l PrelBase.:{-55,w-}{i} xs_r7m)
+            | x_r7l elem_a1gJ vs_r7j = dfs_a193 r_r7i (vs_r7j, ns_r7k) xs_r7m
+            | PrelBase.otherwise{-818,p-}
+            = dfs_a193 r_r7i
+                       (vs'_r7o,
+                        ++_a1gs ta1au (PrelBase.:{-55,w-}{i} ta1au x_r7l ns'_r7p) ns_r7k)
+                       xs_r7m
+            where
+                {- nonrec -}
+                AbsBinds [] [] [([], vs'_r7o, vs'_a19M), ([], ns'_r7p, ns'_a19N)]
+                    (vs'_a19M, ns'_a19N)
+                        = dfs_a193 r_r7i
+                                   (PrelBase.:{-55,w-}{i} ta1au x_r7l vs_r7j,
+                                    PrelBase.[]{-5i,w-}{i} ta1au)
+                                   r_r7i x_r7l
+                {- nonrec -}
+                {- nonrec -}
+AbsBinds
+[ta1aG]
+[d.Eq_a1eb]
+[([ta1aG], stronglyConnComp{-r6x,x-}, stronglyConnComp_a1aD)]
+    d.Eq_a1e9 = d.Eq_a1eb
+    d.Eq_a1e6 = d.Eq_a1eb
+    d.Eq_a1ed = d.Eq_a1eb
+    dfs_a1gK = dfs{-r6F,x-} ta1aG d.Eq_a1ed
+    d.Eq_a1e7 = d.Eq_a1eb
+    stronglyConnComp_a1aD es_r6H vs_r6I
+                         = PrelTup.snd{-rDg,p-}
+                               [[ta1aG], [[ta1aG]]] span_tree_a1gL new_range_a1gM reversed_edges_r6K
+                                                                   (PrelBase.[]{-5i,w-}{i} ta1aG,
+                                                                    PrelBase.[]{-5i,w-}{i} [ta1aG])
+                                                                   PrelTup.snd{-rDg,p-}
+                                                                       [[ta1aG], [ta1aG]] dfs_a1gK new_range_a1gN es_r6H
+                                                                                                   (PrelBase.[]{-5i,w-}{i}
+                                                                                                        ta1aG,
+                                                                                                    PrelBase.[]{-5i,w-}{i}
+                                                                                                        ta1aG)
+                                                                                                   vs_r6I
+                         where
+                             {- rec -}
+                             AbsBinds
+                             [ta1c5]
+                             [d.Eq_a1c7]
+                             [([ta1c5], span_tree_r6N, span_tree_a1aK)]
+                                 elem_a1gO = PrelList.elem{-rDi,p-} ta1c5 d.Eq_a1c7
+                                 d.Eq_a1c9 = d.Eq_a1c7
+                                 dfs_a1gP = dfs{-r6F,x-} ta1c5 d.Eq_a1c9
+                                 span_tree_a1aK r_r71 (vs_r72, ns_r73) PrelBase.[]{-5i,w-}{i}
+                                                = (vs_r72, ns_r73)
+                                 span_tree_a1aK r_r75
+                                                (vs_r76, ns_r77)
+                                                (x_r78 PrelBase.:{-55,w-}{i} xs_r79)
+                                                | x_r78 elem_a1gO vs_r76
+                                                = span_tree_a1aK r_r75 (vs_r76, ns_r77) xs_r79
+                                                | PrelBase.otherwise{-818,p-}
+                                                = span_tree_a1aK r_r75
+                                                                 (vs'_r7b,
+                                                                  PrelBase.:{-55,w-}{i} [ta1c5]
+                                                                      (PrelBase.:{-55,w-}{i} ta1c5
+                                                                           x_r78 ns'_r7c)
+                                                                      ns_r77)
+                                                                 xs_r79
+                                                where
+                                                    {- nonrec -}
+                                                    AbsBinds
+                                                    []
+                                                    []
+                                                    [([], vs'_r7b, vs'_a1bt), ([],
+                                                                               ns'_r7c,
+                                                                               ns'_a1bu)]
+                                                        (vs'_a1bt, ns'_a1bu)
+                                                            = dfs_a1gP r_r75
+                                                                       (PrelBase.:{-55,w-}{i} ta1c5
+                                                                            x_r78 vs_r76,
+                                                                        PrelBase.[]{-5i,w-}{i}
+                                                                            ta1c5)
+                                                                       r_r75 x_r78
+                                                    {- nonrec -}
+                                                    {- nonrec -}
+                             {- nonrec -}
+                             span_tree_a1gL = span_tree_r6N ta1aG d.Eq_a1e9
+                             {- nonrec -}
+                             {- rec -}
+                             AbsBinds
+                             [ta1cF, ta1cI]
+                             [d.Eq_a1cK]
+                             [([ta1cF, ta1cI], new_range_r6M, new_range_a1cb)]
+                                 ==_a1gQ = PrelBase.=={-8Y,p-} ta1cF d.Eq_a1cK
+                                 new_range_a1cb PrelBase.[]{-5i,w-}{i} w_r6U
+                                                = PrelBase.[]{-5i,w-}{i} ta1cI
+                                 new_range_a1cb ((x_r6W, y_r6X) PrelBase.:{-55,w-}{i} xys_r6Y)
+                                                w_r6Z
+                                                = if x_r6W ==_a1gQ w_r6Z then
+                                                      PrelBase.:{-55,w-}{i} ta1cI
+                                                          y_r6X (new_range_a1cb xys_r6Y w_r6Z)
+                                                  else
+                                                      new_range_a1cb xys_r6Y w_r6Z
+                             {- nonrec -}
+                             new_range_a1gM = new_range_r6M [ta1aG, ta1aG] d.Eq_a1e6
+                             new_range_a1gN = new_range_r6M [ta1aG, ta1aG] d.Eq_a1e7
+                             {- nonrec -}
+                             {- nonrec -}
+                             AbsBinds [ta1cZ] [] [([ta1cZ], swap_r6L, swap_a1cQ)]
+                                 swap_a1cQ (x_r6R, y_r6S) = (y_r6S, x_r6R)
+                             {- nonrec -}
+                             {- nonrec -}
+                             {- nonrec -}
+                             AbsBinds [] [] [([], reversed_edges_r6K, reversed_edges_a1d6)]
+                                 reversed_edges_a1d6
+                                     = map_a1gr [Edge{-r8x,x-} ta1aG, Edge{-r8x,x-} ta1aG] swap_r6L
+                                                                                               ta1aG
+                                                                                           es_r6H
+                             {- nonrec -}
+                             {- nonrec -}
+AbsBinds
+[ta1eo]
+[d.Eq_a1fh]
+[([ta1eo], topSort{-r6z,x-}, topSort_a1el)]
+    d.Eq_a1fp = d.Eq_a1fh
+    isCyclic_a1gR = isCyclic{-r6y,x-} ta1eo d.Eq_a1fp
+    d.Eq_a1fr = d.Eq_a1fh
+    stronglyConnComp_a1gS = stronglyConnComp{-r6x,x-} ta1eo d.Eq_a1fr
+    topSort_a1el edges_r7x vertices_r7y
+                = case cycles_r7B of
+                    PrelBase.[]{-5i,w-}{i}
+                    -> Succeeded{-rd,x-}{i} [[ta1eo], [[ta1eo]]] [v_r7F |
+                                                                      [v_r7F] <- singletons_r7C]
+                    _ -> Failed{-rc,x-}{i} [[ta1eo], [[ta1eo]]] cycles_r7B
+                where
+                    {- nonrec -}
+                    AbsBinds [] [] [([], sccs_r7A, sccs_a1es)]
+                        sccs_a1es = stronglyConnComp_a1gS edges_r7x vertices_r7y
+                    {- nonrec -}
+                    {- nonrec -}
+                    {- nonrec -}
+                    AbsBinds
+                    []
+                    []
+                    [([], cycles_r7B, cycles_a1ez), ([],
+                                                     singletons_r7C,
+                                                     singletons_a1eA)]
+                        (cycles_a1ez, singletons_a1eA)
+                            = List.partition{-rhs,p-} [ta1eo] isCyclic_a1gR edges_r7x sccs_r7A
+                    {- nonrec -}
+                    {- nonrec -}
+AbsBinds [ta1fx] [] [([ta1fx], mkDigraph{-r6E,x-}, mkDigraph_a1ft)]
+    mkDigraph_a1ft = MkDigraph{-r8z,x-}{i} ta1fx
+AbsBinds
+[ta1g2, ta1g3]
+[]
+[([ta1g2, ta1g3], $d1{-r1gl,x-}, d.Eval_a1fE)]
+    d.Eval_a1fE = ({-dict-} [] [])
+AbsBinds [ta1g4] [] [([ta1g4], $d2{-r1gn,x-}, d.Eval_a1fK)]
+    d.Eval_a1fK = ({-dict-} [] [])
+d.Monad_a1fM = PrelBase.$d25{-ri4,p-}
+>>=_a1go = PrelBase.>>={-811,p-} PrelBase.[]{-3j,W-} d.Monad_a1fM
+d.Monad_a1fP = d.Monad_a1fM
+return_a1gp =
+    PrelBase.return{-816,p-} PrelBase.[]{-3j,W-} d.Monad_a1fP
+d.MonadZero_a1fR = PrelBase.$d24{-ri3,p-}
+zero_a1gq =
+    PrelBase.zero{-810,p-} PrelBase.[]{-3j,W-} d.MonadZero_a1fR
+d.Functor_a1fU = PrelBase.$d26{-ri5,p-}
+map_a1gr = PrelBase.map{-rn5,p-} PrelBase.[]{-3j,W-} d.Functor_a1fU
+d.MonadPlus_a1fX = PrelBase.$d23{-ri2,p-}
+++_a1gs = PrelBase.++{-rn8,p-} PrelBase.[]{-3j,W-} d.MonadPlus_a1fX
+>>=_a1gt = >>=_a1go
+return_a1gu = return_a1gp
+>>=_a1gv = >>=_a1go
+return_a1gw = return_a1gp
+>>=_a1gx = >>=_a1go
+return_a1gy = return_a1gp
+zero_a1gz = zero_a1gq
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+List 1 :: partition 1;
+PrelBase 1 :: $d15 1 $d16 1 $d2 1 $d23 1 $d24 1 $d25 1 $d26 1 $d27 1 $d28 1 $d33 1 $d35 1 $d38 1 $d40 1 $d42 1 $d45 1 $d46 1 $d47 1 $d50 1 $d52 1 $d7 1 $d8 1 $m/= 1 $m< 1 $m<= 1 $m> 1 $m>= 1 $m>> 1 $mcompare 1 $mmax 1 $mmin 1 otherwise 1 Eq 1 Eval 1 Functor 1 Monad 1 MonadPlus 1 MonadZero 1 Ord 1 Ordering 1;
+PrelList 1 :: elem 1 head 1;
+PrelNum 1 :: $d17 1 $d18 1;
+PrelTup 1 :: $d11 1 $d13 1 $d15 1 $d49 1 $d51 1 $d9 1 snd 1;
+Set 1 :: $d1 1 $d2 1 elementOf 1 setToList 1 Set 1;
+_exports_
+ShouldSucceed dfs isCyclic isRecursiveCycle lookupVertex mkDigraph mkEdges mkVertices stronglyConnComp topSort Cycle Digraph(MkDigraph) Edge FlattenedDependencyInfo MaybeErr(Succeeded Failed);
+_instances_
+instance _forall_ [a b] => {PrelBase.Eval (MaybeErr a b)} = $d1;
+instance _forall_ [vertex] => {PrelBase.Eval (Digraph vertex)} = $d2;
+_declarations_
+1 $d1 _:_ _forall_ [a b] => {PrelBase.Eval (MaybeErr a b)} ;;
+1 $d2 _:_ _forall_ [vertex] => {PrelBase.Eval (Digraph vertex)} ;;
+1 type Cycle vertex = [vertex] ;
+1 data Digraph vertex = MkDigraph [vertex] ;
+1 type Edge vertex = (vertex, vertex) ;
+1 type FlattenedDependencyInfo vertex name code = [(vertex, Set.Set name, Set.Set name, code)] ;
+1 data MaybeErr a b = Succeeded a |  Failed b ;
+1 dfs _:_ _forall_ [ta] {PrelBase.Eq ta} => (ta -> [ta]) -> ([ta], [ta]) -> [ta] -> ([ta], [ta]) ;;
+1 isCyclic _:_ _forall_ [ta] {PrelBase.Eq ta} => [Edge ta] -> [ta] -> PrelBase.Bool ;;
+1 isRecursiveCycle _:_ _forall_ [ta] {PrelBase.Eq ta} => Cycle ta -> [Edge ta] -> PrelBase.Bool ;;
+1 lookupVertex _:_ _forall_ [ta tb tc] {PrelBase.Eq tb, PrelBase.Ord ta} => FlattenedDependencyInfo tb ta tc -> tb -> tc ;;
+1 mkDigraph _:_ _forall_ [ta] => [ta] -> Digraph ta ;;
+1 mkEdges _:_ _forall_ [ta tb tc] {PrelBase.Eq tc, PrelBase.Ord ta} => [tc] -> FlattenedDependencyInfo tc ta tb -> [Edge tc] ;;
+1 mkVertices _:_ _forall_ [ta tb tc] => FlattenedDependencyInfo tc ta tb -> [tc] ;;
+1 stronglyConnComp _:_ _forall_ [ta] {PrelBase.Eq ta} => [Edge ta] -> [ta] -> [[ta]] ;;
+1 topSort _:_ _forall_ [ta] {PrelBase.Eq ta} => [Edge ta] -> [ta] -> MaybeErr [ta] [[ta]] ;;
diff --git a/ghc/tests/typecheck/should_compile/tc066.stderr b/ghc/tests/typecheck/should_compile/tc066.stderr
new file mode 100644 (file)
index 0000000..a3091ef
--- /dev/null
@@ -0,0 +1,31 @@
+
+
+================================================================================
+Typechecked:
+MkPair{-r3o,x-}{i} =
+    _/\_ a_tr3k b_tr3l -> \ tpl_B1 tpl_B2 ->
+       MkPair{-r3o,x-}{i} {_@_ a_tr3k _@_ b_tr3l tpl_B1 tpl_B2}
+AbsBinds
+[taBY, taC1, aaC2]
+[d.Monad_aCe]
+[([taBY, taC1, aaC2], f{-r3m,x-}, f_aBM)]
+    >>=_aCt = PrelBase.>>={-811,p-} aaC2 d.Monad_aCe
+    d.Monad_aCg = d.Monad_aCe
+    return_aCx = PrelBase.return{-816,p-} aaC2 d.Monad_aCg
+    f_aBM x_r3f = [a_r3i | (MkPair{-r3o,x-}{i} c_r3h a_r3i) <- x_r3f]
+AbsBinds [taCr, taCs] [] [([taCr, taCs], $d1{-rCw,x-}, d.Eval_aCn)]
+    d.Eval_aCn = ({-dict-} [] [])
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d2 1 $d38 1 $d40 1 $d42 1 $d47 1 $m>> 1 Eval 1 Monad 1 MonadZero 1;
+_exports_
+ShouldSucceed f Pair(MkPair);
+_instances_
+instance _forall_ [a b] => {PrelBase.Eval (Pair a b)} = $d1;
+_declarations_
+1 $d1 _:_ _forall_ [a b] => {PrelBase.Eval (Pair a b)} ;;
+1 data Pair a b = MkPair a b ;
+1 f _:_ _forall_ [ta tb ac :: (* -> *)] {PrelBase.Monad ac} => ac (Pair ta tb) -> ac tb ;;
index 59df103..853caf3 100644 (file)
@@ -1,4 +1,4 @@
-module ShouldSucc where
+module ShouldSucceed where
 
 f [] = []
 f (x:xs) = x : (f xs)
diff --git a/ghc/tests/typecheck/should_compile/tc067.stderr b/ghc/tests/typecheck/should_compile/tc067.stderr
new file mode 100644 (file)
index 0000000..e0528c1
--- /dev/null
@@ -0,0 +1,16 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [takL] [] [([takL], f{-r3g,x-}, f_aku)]
+    f_aku PrelBase.[]{-5i,w-}{i} = PrelBase.[]{-5i,w-}{i} takL
+    f_aku (x_r3e PrelBase.:{-55,w-}{i} xs_r3f)
+         = PrelBase.:{-55,w-}{i} takL x_r3e (f_aku xs_r3f)
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed f;
+_declarations_
+1 f _:_ _forall_ [ta] => [ta] -> [ta] ;;
index 01f2d87..f455d41 100644 (file)
@@ -1,4 +1,4 @@
-module ShouldSucc where
+module ShouldSucceed where
 
 data T a = D (B a) | C
 data B b = X | Y b
diff --git a/ghc/tests/typecheck/should_compile/tc068.stderr b/ghc/tests/typecheck/should_compile/tc068.stderr
new file mode 100644 (file)
index 0000000..80cafb3
--- /dev/null
@@ -0,0 +1,60 @@
+
+
+================================================================================
+Typechecked:
+X{-r9,x-}{i} = _/\_ b_tr3U -> X{-r9,x-}{i} {_@_ b_tr3U}
+Y{-r8,x-}{i} =
+    _/\_ b_tr3U -> \ tpl_B1 -> Y{-r8,x-}{i} {_@_ b_tr3U tpl_B1}
+D{-r7,x-}{i} =
+    _/\_ a_tr3W -> \ tpl_B1 -> D{-r7,x-}{i} {_@_ a_tr3W tpl_B1}
+C{-r6,x-}{i} = _/\_ a_tr3W -> C{-r6,x-}{i} {_@_ a_tr3W}
+AbsBinds [taDA] [] [([taDA], $d3{-rDE,x-}, d.Eval_aBV)]
+    d.Eval_aBV = ({-dict-} [] [])
+AbsBinds [taDB] [] [([taDB], $d4{-rDG,x-}, d.Eval_aC1)]
+    d.Eval_aC1 = ({-dict-} [] [])
+AbsBinds [taCe] [d.Eq_aCH] [([taCe], $d1{-rDH,x-}, d.Eq_aC7)]
+    d.Eq_aCL = d.Eq_aCH
+    ==_aDJ = PrelBase.=={-8Y,p-} taCe d.Eq_aCL
+    ==_aDK = ==_aDL
+    AbsBinds [] [] [([], ==_aDL, ==_aCb)]
+       ==_aCb X{-r9,x-}{i} X{-r9,x-}{i} = PrelBase.True{-5E,w-}{i}
+       ==_aCb (Y{-r8,x-}{i} a_r3r) (Y{-r8,x-}{i} b_r3s)
+              = a_r3r ==_aDJ b_r3s
+       ==_aCb a_r3u b_r3v = PrelBase.False{-58,w-}{i}
+    AbsBinds [] [] [([], /=_aDM, /=_aCA)]
+       /=_aCA a_r3z b_r3A = PrelBase.not{-rgM,p-} a_r3z ==_aDK b_r3A
+    d.Eq_aC7 = ({-dict-} [] [==_aDL, /=_aDM])
+AbsBinds [taD1] [d.Eq_aDs] [([taD1], $d2{-rDI,x-}, d.Eq_aCS)]
+    d.Eq_aDy = d.Eq_aDs
+    d.Eq_aDw = $d1{-rDH,x-} taD1 d.Eq_aDy
+    ==_aDN = PrelBase.=={-8Y,p-} (B{-r3X,x-} taD1) d.Eq_aDw
+    ==_aDO = ==_aDP
+    AbsBinds [] [] [([], ==_aDP, ==_aCW)]
+       ==_aCW (D{-r7,x-}{i} x_r3H) (D{-r7,x-}{i} y_r3I)
+              = x_r3H ==_aDN y_r3I
+       ==_aCW C{-r6,x-}{i} C{-r6,x-}{i} = PrelBase.True{-5E,w-}{i}
+       ==_aCW a_r3L b_r3M = PrelBase.False{-58,w-}{i}
+    AbsBinds [] [] [([], /=_aDQ, /=_aDl)]
+       /=_aDl a_r3Q b_r3R = PrelBase.not{-rgM,p-} a_r3Q ==_aDO b_r3R
+    d.Eq_aCS = ({-dict-} [] [==_aDP, /=_aDQ])
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d16 1 $d2 1 $d33 1 $d38 1 $d40 1 $d42 1 $d47 1 $d8 1 $m/= 1 not 1 Eq 1 Eval 1;
+PrelNum 1 :: $d18 1;
+_exports_
+ShouldSucceed B(X Y) T(D C);
+_instances_
+instance _forall_ [b] {PrelBase.Eq b} => {PrelBase.Eq (B b)} = $d1;
+instance _forall_ [a] {PrelBase.Eq a} => {PrelBase.Eq (T a)} = $d2;
+instance _forall_ [b] => {PrelBase.Eval (B b)} = $d3;
+instance _forall_ [a] => {PrelBase.Eval (T a)} = $d4;
+_declarations_
+1 $d1 _:_ _forall_ [b] {PrelBase.Eq b} => {PrelBase.Eq (B b)} ;;
+1 $d2 _:_ _forall_ [a] {PrelBase.Eq a} => {PrelBase.Eq (T a)} ;;
+1 $d3 _:_ _forall_ [b] => {PrelBase.Eval (B b)} ;;
+1 $d4 _:_ _forall_ [a] => {PrelBase.Eval (T a)} ;;
+1 data B b = X |  Y b ;
+1 data T a = D (B a) |  C ;
diff --git a/ghc/tests/typecheck/should_compile/tc069.stderr b/ghc/tests/typecheck/should_compile/tc069.stderr
new file mode 100644 (file)
index 0000000..bad9079
--- /dev/null
@@ -0,0 +1,25 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [] [] [([], x{-r3i,x-}, x_akw)]
+    x_akw = 'a'
+AbsBinds [] [] [([], y{-r3h,x-}, y_akz), ([], ys{-r3g,x-}, ys_akA)]
+    (y_akz PrelBase.:{-55,w-}{i} ys_akA)
+       = ['a', 'b', 'c'] (PrelBase.Char{-38,W-})
+       where
+           {- nonrec -}
+           AbsBinds [] [] [([], p_r3f, p_akI)]
+               p_akI = x{-r3i,x-}
+           {- nonrec -}
+           {- nonrec -}
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed x y ys;
+_declarations_
+1 x _:_ PrelBase.Char ;;
+1 y _:_ PrelBase.Char ;;
+1 ys _:_ [PrelBase.Char] ;;
diff --git a/ghc/tests/typecheck/should_compile/tc070.stderr b/ghc/tests/typecheck/should_compile/tc070.stderr
new file mode 100644 (file)
index 0000000..1cf473d
--- /dev/null
@@ -0,0 +1,24 @@
+
+
+================================================================================
+Typechecked:
+FF{-r5,x-}{i} = FF{-r5,x-}{i} {}
+TT{-r4,x-}{i} = TT{-r4,x-}{i} {}
+AbsBinds [] [] [([], idb{-r6,x-}, idb_aAU)]
+    idb_aAU x_r3k = x_r3k
+AbsBinds [] [] [([], $d1{-rB4,x-}, d.Eval_aB1)]
+    d.Eval_aB1 = ({-dict-} [] [])
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d2 1 $d38 1 $d40 1 $d42 1 $d47 1 Eval 1;
+_exports_
+ShouldSucceed idb Boolean(FF TT);
+_instances_
+instance {PrelBase.Eval Boolean} = $d1;
+_declarations_
+1 $d1 _:_ {PrelBase.Eval Boolean} ;;
+1 data Boolean = FF |  TT ;
+1 idb _:_ Boolean -> Boolean ;;
index ea4cb74..44e4129 100644 (file)
@@ -1,5 +1,5 @@
 
-module ShouldSucc where
+module ShouldSucceed where
 
 f [] = []
 f (x:xs) = x : (f xs)
diff --git a/ghc/tests/typecheck/should_compile/tc073.stderr b/ghc/tests/typecheck/should_compile/tc073.stderr
new file mode 100644 (file)
index 0000000..e0528c1
--- /dev/null
@@ -0,0 +1,16 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [takL] [] [([takL], f{-r3g,x-}, f_aku)]
+    f_aku PrelBase.[]{-5i,w-}{i} = PrelBase.[]{-5i,w-}{i} takL
+    f_aku (x_r3e PrelBase.:{-55,w-}{i} xs_r3f)
+         = PrelBase.:{-55,w-}{i} takL x_r3e (f_aku xs_r3f)
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed f;
+_declarations_
+1 f _:_ _forall_ [ta] => [ta] -> [ta] ;;
index 01f2d87..f455d41 100644 (file)
@@ -1,4 +1,4 @@
-module ShouldSucc where
+module ShouldSucceed where
 
 data T a = D (B a) | C
 data B b = X | Y b
diff --git a/ghc/tests/typecheck/should_compile/tc074.stderr b/ghc/tests/typecheck/should_compile/tc074.stderr
new file mode 100644 (file)
index 0000000..80cafb3
--- /dev/null
@@ -0,0 +1,60 @@
+
+
+================================================================================
+Typechecked:
+X{-r9,x-}{i} = _/\_ b_tr3U -> X{-r9,x-}{i} {_@_ b_tr3U}
+Y{-r8,x-}{i} =
+    _/\_ b_tr3U -> \ tpl_B1 -> Y{-r8,x-}{i} {_@_ b_tr3U tpl_B1}
+D{-r7,x-}{i} =
+    _/\_ a_tr3W -> \ tpl_B1 -> D{-r7,x-}{i} {_@_ a_tr3W tpl_B1}
+C{-r6,x-}{i} = _/\_ a_tr3W -> C{-r6,x-}{i} {_@_ a_tr3W}
+AbsBinds [taDA] [] [([taDA], $d3{-rDE,x-}, d.Eval_aBV)]
+    d.Eval_aBV = ({-dict-} [] [])
+AbsBinds [taDB] [] [([taDB], $d4{-rDG,x-}, d.Eval_aC1)]
+    d.Eval_aC1 = ({-dict-} [] [])
+AbsBinds [taCe] [d.Eq_aCH] [([taCe], $d1{-rDH,x-}, d.Eq_aC7)]
+    d.Eq_aCL = d.Eq_aCH
+    ==_aDJ = PrelBase.=={-8Y,p-} taCe d.Eq_aCL
+    ==_aDK = ==_aDL
+    AbsBinds [] [] [([], ==_aDL, ==_aCb)]
+       ==_aCb X{-r9,x-}{i} X{-r9,x-}{i} = PrelBase.True{-5E,w-}{i}
+       ==_aCb (Y{-r8,x-}{i} a_r3r) (Y{-r8,x-}{i} b_r3s)
+              = a_r3r ==_aDJ b_r3s
+       ==_aCb a_r3u b_r3v = PrelBase.False{-58,w-}{i}
+    AbsBinds [] [] [([], /=_aDM, /=_aCA)]
+       /=_aCA a_r3z b_r3A = PrelBase.not{-rgM,p-} a_r3z ==_aDK b_r3A
+    d.Eq_aC7 = ({-dict-} [] [==_aDL, /=_aDM])
+AbsBinds [taD1] [d.Eq_aDs] [([taD1], $d2{-rDI,x-}, d.Eq_aCS)]
+    d.Eq_aDy = d.Eq_aDs
+    d.Eq_aDw = $d1{-rDH,x-} taD1 d.Eq_aDy
+    ==_aDN = PrelBase.=={-8Y,p-} (B{-r3X,x-} taD1) d.Eq_aDw
+    ==_aDO = ==_aDP
+    AbsBinds [] [] [([], ==_aDP, ==_aCW)]
+       ==_aCW (D{-r7,x-}{i} x_r3H) (D{-r7,x-}{i} y_r3I)
+              = x_r3H ==_aDN y_r3I
+       ==_aCW C{-r6,x-}{i} C{-r6,x-}{i} = PrelBase.True{-5E,w-}{i}
+       ==_aCW a_r3L b_r3M = PrelBase.False{-58,w-}{i}
+    AbsBinds [] [] [([], /=_aDQ, /=_aDl)]
+       /=_aDl a_r3Q b_r3R = PrelBase.not{-rgM,p-} a_r3Q ==_aDO b_r3R
+    d.Eq_aCS = ({-dict-} [] [==_aDP, /=_aDQ])
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d16 1 $d2 1 $d33 1 $d38 1 $d40 1 $d42 1 $d47 1 $d8 1 $m/= 1 not 1 Eq 1 Eval 1;
+PrelNum 1 :: $d18 1;
+_exports_
+ShouldSucceed B(X Y) T(D C);
+_instances_
+instance _forall_ [b] {PrelBase.Eq b} => {PrelBase.Eq (B b)} = $d1;
+instance _forall_ [a] {PrelBase.Eq a} => {PrelBase.Eq (T a)} = $d2;
+instance _forall_ [b] => {PrelBase.Eval (B b)} = $d3;
+instance _forall_ [a] => {PrelBase.Eval (T a)} = $d4;
+_declarations_
+1 $d1 _:_ _forall_ [b] {PrelBase.Eq b} => {PrelBase.Eq (B b)} ;;
+1 $d2 _:_ _forall_ [a] {PrelBase.Eq a} => {PrelBase.Eq (T a)} ;;
+1 $d3 _:_ _forall_ [b] => {PrelBase.Eval (B b)} ;;
+1 $d4 _:_ _forall_ [a] => {PrelBase.Eval (T a)} ;;
+1 data B b = X |  Y b ;
+1 data T a = D (B a) |  C ;
diff --git a/ghc/tests/typecheck/should_compile/tc076.stderr b/ghc/tests/typecheck/should_compile/tc076.stderr
new file mode 100644 (file)
index 0000000..7ab7488
--- /dev/null
@@ -0,0 +1,25 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [] [] [([], x{-r3,x-}, x_aBl)]
+    x_aBl
+       = [[PrelBase.True{-5E,w-}{i}] (PrelBase.Bool{-34,W-})] ([PrelBase.Bool{-34,W-}])
+AbsBinds [] [] [([], xs{-r2,x-}, xs_aBt)]
+    xs_aBt = [x_r3j | x_r3h <- x{-r3,x-}, x_r3j <- x_r3h]
+d.Monad_aBL = PrelBase.$d25{-rae,p-}
+>>=_aBS = PrelBase.>>={-811,p-} PrelBase.[]{-3j,W-} d.Monad_aBL
+d.Monad_aBO = d.Monad_aBL
+return_aBT =
+    PrelBase.return{-816,p-} PrelBase.[]{-3j,W-} d.Monad_aBO
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d24 1 $d25 1 $m>> 1 Monad 1 MonadZero 1;
+_exports_
+ShouldSucceed x xs;
+_declarations_
+1 x _:_ [[PrelBase.Bool]] ;;
+1 xs _:_ [PrelBase.Bool] ;;
index c9bb8d5..45e4d11 100644 (file)
@@ -1,6 +1,6 @@
 --!!! make sure context of EQ is minimised in interface file.
 --
-module M where
+module ShouldSucceed where
 
 data NUM = ONE | TWO
 class (Num a) => ORD a
diff --git a/ghc/tests/typecheck/should_compile/tc077.stderr b/ghc/tests/typecheck/should_compile/tc077.stderr
new file mode 100644 (file)
index 0000000..6ae9286
--- /dev/null
@@ -0,0 +1,39 @@
+
+
+================================================================================
+Typechecked:
+ONE{-r7,x-}{i} = ONE{-r7,x-}{i} {}
+TWO{-r6,x-}{i} = TWO{-r6,x-}{i} {}
+AbsBinds [] [] [([], $d1{-rCq,x-}, d.Eval_aCf)]
+    d.Eval_aCf = ({-dict-} [] [])
+scsel_EQShouldSucceedORD{-aCr,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,,){-63,w-}{i} tpl_B1 tpl_B2 tpl_B3  ->
+       tpl_B1;}
+scsel_EQPrelBaseShow{-aCs,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,,){-63,w-}{i} tpl_B1 tpl_B2 tpl_B3  ->
+       tpl_B2;}
+==={-r3r,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,,){-63,w-}{i} tpl_B1 tpl_B2 tpl_B3  ->
+       tpl_B3;}
+AbsBinds [taCm] [d.EQ_aCi] []
+scsel_ORDPrelBaseNum{-aCt,x-} = _/\_ t12 -> \ tpl_B1 -> tpl_B1
+AbsBinds [taCn] [d.ORD_aCl] []
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+_exports_
+ShouldSucceed EQ(===) NUM(ONE TWO) ORD;
+_instances_
+instance {PrelBase.Eval NUM} = $d1;
+_declarations_
+1 $d1 _:_ {PrelBase.Eval NUM} ;;
+1 class {ORD a, PrelBase.Show a} => EQ a where {=== :: a -> a -> PrelBase.Bool} ;
+1 data NUM = ONE |  TWO ;
+1 class {PrelBase.Num a} => ORD a ;
diff --git a/ghc/tests/typecheck/should_compile/tc078.stderr b/ghc/tests/typecheck/should_compile/tc078.stderr
new file mode 100644 (file)
index 0000000..c1826d7
--- /dev/null
@@ -0,0 +1,80 @@
+tc078.hs:7: No explicit method nor default method for `PrelBase.=='
+           in an instance declaration for `PrelBase.Eq'
+
+
+================================================================================
+Typechecked:
+MkBar{-r3m,x-}{i} =
+    _/\_ a_tr3k -> \ tpl_B1 tpl_B2 ->
+       MkBar{-r3m,x-}{i} {_@_ a_tr3k tpl_B1 tpl_B2}
+AbsBinds [taDD] [] [([taDD], $d3{-rDH,x-}, d.Eval_aBH)]
+    d.Eval_aBH = ({-dict-} [] [])
+AbsBinds
+[taBV]
+[d.Ord_aCP, d.Eq_aCQ]
+[([taBV], $d1{-rDI,x-}, d.Ord_aBN)]
+    d.Eq_aCO = d.Eq_aCQ
+    d.Ord_aCU = d.Ord_aBN
+    $mcompare_aDK =
+       PrelBase.$mcompare{-rf4,p-} (Bar{-r3l,x-} taBV) d.Ord_aCU
+    d.Ord_aCW = d.Ord_aBN
+    $m<_aDL = PrelBase.$m<{-reZ,p-} (Bar{-r3l,x-} taBV) d.Ord_aCW
+    d.Ord_aCY = d.Ord_aBN
+    $m<=_aDM = PrelBase.$m<={-rf0,p-} (Bar{-r3l,x-} taBV) d.Ord_aCY
+    d.Ord_aD0 = d.Ord_aBN
+    $m>=_aDN = PrelBase.$m>={-rf2,p-} (Bar{-r3l,x-} taBV) d.Ord_aD0
+    d.Ord_aD2 = d.Ord_aBN
+    $m>_aDO = PrelBase.$m>{-rf1,p-} (Bar{-r3l,x-} taBV) d.Ord_aD2
+    d.Ord_aD4 = d.Ord_aBN
+    $mmax_aDP = PrelBase.$mmax{-rf8,p-} (Bar{-r3l,x-} taBV) d.Ord_aD4
+    d.Ord_aD6 = d.Ord_aBN
+    $mmin_aDQ = PrelBase.$mmin{-rf9,p-} (Bar{-r3l,x-} taBV) d.Ord_aD6
+    AbsBinds [] [] [([], compare_aDR, compare_aBS)]
+       compare_aBS = $mcompare_aDK
+    AbsBinds [] [] [([], <_aDS, <_aC2)]
+       <_aC2 = $m<_aDL
+    AbsBinds [] [] [([], <=_aDT, <=_aCb)]
+       <=_aCb = $m<=_aDM
+    AbsBinds [] [] [([], >=_aDU, >=_aCk)]
+       >=_aCk = $m>=_aDN
+    AbsBinds [] [] [([], >_aDV, >_aCt)]
+       >_aCt = $m>_aDO
+    AbsBinds [] [] [([], max_aDW, max_aCC)]
+       max_aCC = $mmax_aDP
+    AbsBinds [] [] [([], min_aDX, min_aCL)]
+       min_aCL = $mmin_aDQ
+    d.Ord_aBN =
+       ({-dict-}
+        [d.Eq_aCO]
+        [compare_aDR, <_aDS, <=_aDT, >=_aDU, >_aDV, max_aDW, min_aDX])
+AbsBinds [taDo] [d.Eq_aDx] [([taDo], $d2{-rDJ,x-}, d.Eq_aDg)]
+    d.Eq_aDB = d.Eq_aDg
+    $m/=_aDY = PrelBase.$m/={-reY,p-} (Bar{-r3l,x-} taDo) d.Eq_aDB
+    AbsBinds [] [] [([], ==_aDZ, ==_aDl)]
+       ==_aDl
+           = GHCerr.noDefaultMethodError{-8k,w-}
+                 (Bar{-r3l,x-} taDo
+                  -> Bar{-r3l,x-} taDo
+                  -> PrelBase.Bool{-34,W-}) "<NoSrcLoc>|PrelBase.=="
+    AbsBinds [] [] [([], /=_aE0, /=_aDu)]
+       /=_aDu = $m/=_aDY
+    d.Eq_aDg = ({-dict-} [] [==_aDZ, /=_aE0])
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldFail 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d15 1 $d16 1 $d2 1 $d33 1 $d35 1 $d38 1 $d40 1 $d42 1 $d46 1 $d47 1 $d50 1 $d52 1 $d7 1 $d8 1 $m/= 1 $m< 1 $m<= 1 $m> 1 $m>= 1 $mcompare 1 $mmax 1 $mmin 1 Eq 1 Eval 1 Ord 1 Ordering 1;
+PrelNum 1 :: $d17 1 $d18 1;
+_exports_
+ShouldFail Bar(MkBar);
+_instances_
+instance _forall_ [a] {PrelBase.Ord a} => {PrelBase.Ord (Bar a)} = $d1;
+instance _forall_ [a] {PrelBase.Eq a} => {PrelBase.Eq (Bar a)} = $d2;
+instance _forall_ [a] => {PrelBase.Eval (Bar a)} = $d3;
+_declarations_
+1 $d1 _:_ _forall_ [a] {PrelBase.Ord a, PrelBase.Eq (Bar a)} => {PrelBase.Ord (Bar a)} ;;
+1 $d2 _:_ _forall_ [a] {PrelBase.Eq a} => {PrelBase.Eq (Bar a)} ;;
+1 $d3 _:_ _forall_ [a] => {PrelBase.Eval (Bar a)} ;;
+1 data Bar a = MkBar PrelBase.Int a ;
index d49f4ce..99a73cc 100644 (file)
@@ -2,7 +2,7 @@
 --!!! "easy" to check default methods and such...
 --!!! (this is the example given in TcClassDcl)
 --
-module Test where
+module ShouldSucceed where
 
 class Foo a where
     op1 :: a -> Bool
diff --git a/ghc/tests/typecheck/should_compile/tc079.stderr b/ghc/tests/typecheck/should_compile/tc079.stderr
new file mode 100644 (file)
index 0000000..4f1209d
--- /dev/null
@@ -0,0 +1,70 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [taC2] [d.Foo_aCq] [([taC2], $d1{-rDQ,x-}, d.Foo_aBS)]
+    d.Foo_aCs = d.Foo_aBS
+    $mop1_aDU = $mop1{-rBV,x-} [taC2] d.Foo_aCs
+    d.Foo_aCu = d.Foo_aBS
+    $mop2_aDV = $mop2{-rBZ,x-} [taC2] d.Foo_aCu
+    AbsBinds [] [] [([], op1_aDW, op1_aBY)]
+       op1_aBY = $mop1_aDU
+    AbsBinds [taCk] [d.Ord_aCn] [([taCk], op2_aDX, op2_aCb)]
+       d.Ord_aCp = d.Ord_aCn
+       $mop2_aDY = $mop2_aDV taCk d.Ord_aCp
+       op2_aCb = $mop2_aDY
+    d.Foo_aBS = ({-dict-} [] [op1_aDW, op2_aDX])
+AbsBinds [] [] [([], $d2{-rDR,x-}, d.Foo_aCA)]
+    AbsBinds [] [] [([], op1_aDZ, op1_aCF)]
+       op1_aCF = $mop1_aDS
+    AbsBinds [taD0] [d.Ord_aD3] [([taD0], op2_aE0, op2_aCR)]
+       d.Ord_aD7 = d.Ord_aD3
+       $mop2_aE1 = $mop2_aDT taD0 d.Ord_aD7
+       op2_aCR = $mop2_aE1
+    d.Foo_aCA = ({-dict-} [] [op1_aDZ, op2_aE0])
+op1{-r3C,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B1;}
+op2{-r3D,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B2;}
+AbsBinds
+[taDi]
+[d.Foo_aDI]
+[([taDi], $mop1{-rBV,x-}, op1_aE2), ([taDi],
+                                    $mop2{-rBZ,x-},
+                                    op2_aE4)]
+    d.Foo_aDK = d.Foo_aDI
+    op1_aE3 = op1{-r3C,x-} taDi d.Foo_aDK
+    AbsBinds [] [] [([], op1_aE2, op1_aDf)]
+       op1_aDf x_r3u = PrelBase.True{-5E,w-}{i}
+    AbsBinds [taDu] [d.Ord_aDE] [([taDu], op2_aE4, op2_aDo)]
+       d.Ord_aDG = d.Ord_aDE
+       <_aE5 = PrelBase.<{-rfI,p-} taDu d.Ord_aDG
+       op2_aDo x_r3y y_r3z z_r3A
+               = if (op1_aE3 x_r3y) PrelBase.&&{-r3B,p-} (y_r3z <_aE5 z_r3A) then
+                     y_r3z
+                 else
+                     z_r3A
+d.Foo_aDM = $d2{-rDR,x-}
+$mop1_aDS = $mop1{-rBV,x-} PrelBase.Int{-3g,W-} d.Foo_aDM
+d.Foo_aDP = d.Foo_aDM
+$mop2_aDT = $mop2{-rBZ,x-} PrelBase.Int{-3g,W-} d.Foo_aDP
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d15 1 $d16 1 $d27 1 $d28 1 $d33 1 $d35 1 $d50 1 $d52 1 $d7 1 $d8 1 $m/= 1 $m< 1 $m<= 1 $m> 1 $m>= 1 $mcompare 1 $mmax 1 $mmin 1 && 1 Eq 1 Ord 1 Ordering 1;
+PrelNum 1 :: $d17 1 $d18 1;
+_exports_
+ShouldSucceed Foo(op1 op2);
+_instances_
+instance _forall_ [a] {Foo a} => {Foo [a]} = $d1;
+instance {Foo PrelBase.Int} = $d2;
+_declarations_
+1 $d1 _:_ _forall_ [a] {Foo a} => {Foo [a]} ;;
+1 $d2 _:_ {Foo PrelBase.Int} ;;
+1 $mop1 _:_ _forall_ [a] {Foo a} => a -> PrelBase.Bool ;;
+1 $mop2 _:_ _forall_ [a] {Foo a} => _forall_ [b] {PrelBase.Ord b} => a -> b -> b -> b ;;
+1 class Foo a where {op1 = :: a -> PrelBase.Bool; op2 = :: _forall_ [b] {PrelBase.Ord b} => a -> b -> b -> b} ;
index d9ad6e9..2f01f96 100644 (file)
@@ -1,15 +1,20 @@
 --module Parse(Parse(..),whiteSpace,seperatedBy) where
 --import StdLib
+module ShouldSucceed where
+
+import Char
+
 class Parse a where
        parseFile :: String -> [a]
+       parseLine :: String -> a
+       parseType :: String -> (a,String)
+       parse :: String -> (a,String)
+       forced :: a -> Bool
+
        parseFile string | all forced x = x
                       where x = map parseLine (lines' string)
-       parseLine :: String -> a
        parseLine = pl.parse where pl (a,_) = a
-       parse :: String -> (a,String)
        parse = parseType.whiteSpace
-       parseType :: String -> (a,String)
-       forced :: a -> Bool
        forced x = True
 
 instance Parse Int where
diff --git a/ghc/tests/typecheck/should_compile/tc080.stderr b/ghc/tests/typecheck/should_compile/tc080.stderr
new file mode 100644 (file)
index 0000000..bbc7fcf
--- /dev/null
@@ -0,0 +1,334 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [] [] [([], charToInt{-r3R,x-}, charToInt_aZA)]
+    charToInt_aZA x_r4E
+                 = (PrelBase.ord{-riq,p-} x_r4E) -_a1a5 (PrelBase.ord{-riq,p-} '0')
+AbsBinds [] [] [([], strToInt{-r3Q,x-}, strToInt_aZI)]
+    d.Integral_a10K = PrelNum.$d36{-rI6,p-}
+    strToInt_aZI x_r4v
+                = strToInt'_a1ai (PrelList.length{-rz0,p-}
+                                      PrelBase.Char{-38,W-} x_r4v)
+                                 -_a19Z lit_a1a0
+                                 x_r4v
+                where
+                    {- rec -}
+                    AbsBinds
+                    [ta10j]
+                    [d.Integral_a10t]
+                    [([ta10j], strToInt'_r4x, strToInt'_aZL)]
+                        d.Real_a19S =
+                            PrelNum.scsel_IntegralPrelNumReal{-a1an,p-} ta10j d.Integral_a10t
+                        d.Num_a10w =
+                            PrelNum.scsel_RealPrelBaseNum{-a1ao,p-} ta10j d.Real_a19S
+                        d.Num_a10s = PrelBase.$d4{-rcO,p-}
+                        ^_a1aj =
+                            PrelNum.^{-rAz,p-} [ta10j, PrelBase.Int{-3g,W-}]
+                                [d.Num_a10s, d.Integral_a10t]
+                        -_a1ak = PrelBase.-{-817,p-} ta10j d.Num_a10w
+                        d.Num_a10z = d.Num_a10w
+                        fromInt_a1al = PrelBase.fromInt{-8R,p-} ta10j d.Num_a10z
+                        lit_a1am = fromInt_a1al PrelBase.I#{-5b,w-}{i} 1#
+                        strToInt'_aZL _ PrelBase.[]{-5i,w-}{i} = lit_a1a1
+                        strToInt'_aZL x_r4A (a_r4B PrelBase.:{-55,w-}{i} l_r4C)
+                                      = ((charToInt{-r3R,x-} a_r4B) *_a1a3 (lit_a1a4 ^_a1aj x_r4A))
+                                        +_a1a2 (strToInt'_aZL x_r4A -_a1ak lit_a1am l_r4C)
+                    {- nonrec -}
+                    strToInt'_a1ai = strToInt'_r4x PrelBase.Int{-3g,W-} d.Integral_a10K
+                    {- nonrec -}
+AbsBinds [ta10Z] [] [([ta10Z], span'{-r3O,x-}, span'_a10W)]
+    span'_a10W p_r49 PrelBase.[]{-5i,w-}{i}
+              = (PrelBase.[]{-5i,w-}{i} ta10Z, PrelBase.[]{-5i,w-}{i} ta10Z)
+    span'_a10W p_r4b (x_r4c PrelBase.:{-55,w-}{i} xs'_r4d)
+              | p_r4b x_r4c
+              = fixLeak_r4f [[ta10Z], ta10Z] x_r4c
+                                             span'{-r3O,x-} ta10Z p_r4b xs'_r4d
+              where
+                  {- nonrec -}
+                  AbsBinds
+                  [ta11F, ta11H]
+                  []
+                  [([ta11F, ta11H], fixLeak_r4f, fixLeak_a11j)]
+                      fixLeak_a11j x_r4h (xs_r4i, ys_r4j)
+                                   = (PrelBase.:{-55,w-}{i} ta11H x_r4h xs_r4i, ys_r4j)
+                  {- nonrec -}
+                  {- nonrec -}
+    span'_a10W _ xs_r4l = (PrelBase.[]{-5i,w-}{i} ta10Z, xs_r4l)
+AbsBinds [] [] [([], lines'{-r3P,x-}, lines'_a121)]
+    lines'_a121 "" = PrelBase.[]{-5i,w-}{i} [PrelBase.Char{-38,W-}]
+    lines'_a121 s_r4o
+               = plumb_r4q span'{-r3O,x-} PrelBase.Char{-38,W-} /=_a19Y '\n' s_r4o
+               where
+                   {- nonrec -}
+                   AbsBinds [] [] [([], plumb_r4q, plumb_a126)]
+                       plumb_a126 (l_r4s, s'_r4t)
+                                  = PrelBase.:{-55,w-}{i} [PrelBase.Char{-38,W-}]
+                                        l_r4s
+                                        (if PrelList.null{-rz6,p-}
+                                                PrelBase.Char{-38,W-} s'_r4t then
+                                             PrelBase.[]{-5i,w-}{i} [PrelBase.Char{-38,W-}]
+                                         else
+                                             lines'{-r3P,x-} PrelList.tail{-rzj,p-}
+                                                                 PrelBase.Char{-38,W-} s'_r4t)
+                   {- nonrec -}
+                   {- nonrec -}
+AbsBinds [] [] [([], whiteSpace{-r3N,x-}, whiteSpace_a12C)]
+    whiteSpace_a12C
+       = PrelBase.dropWhile{-rhV,p-}
+             PrelBase.Char{-38,W-} PrelBase.isSpace{-rig,p-}
+AbsBinds [] [] [([], seperatedBy{-r3M,x-}, seperatedBy_a12G)]
+    seperatedBy_a12G ch_r3W PrelBase.[]{-5i,w-}{i}
+                    = PrelBase.[]{-5i,w-}{i} PrelBase.String{-r5n,p-}
+    seperatedBy_a12G ch_r3Y xs_r3Z
+                    = twaddle_r41 ch_r3Y
+                                  span'{-r3O,x-} PrelBase.Char{-38,W-} \ x_r47
+                                                                         -> x_r47 /=_a19W ch_r3Y
+                                                                       xs_r3Z
+                    where
+                        {- nonrec -}
+                        AbsBinds [] [] [([], twaddle_r41, twaddle_a12N)]
+                            twaddle_a12N ch_r43 (l_r44, (_ PrelBase.:{-55,w-}{i} r_r45))
+                                         = PrelBase.:{-55,w-}{i} PrelBase.String{-r5n,p-}
+                                               l_r44 (seperatedBy{-r3M,x-} ch_r43 r_r45)
+                        {- nonrec -}
+                        {- nonrec -}
+AbsBinds
+[ta13E]
+[d.Parse_a154]
+[([ta13E], $d1{-r19T,x-}, d.Parse_a13s)]
+    d.Parse_a158 = d.Parse_a13s
+    $mparseFile_a1ap = $mparseFile{-r13v,x-} [ta13E] d.Parse_a158
+    d.Parse_a15a = d.Parse_a13s
+    $mparseLine_a1aq = $mparseLine{-r13z,x-} [ta13E] d.Parse_a15a
+    d.Parse_a15e = d.Parse_a154
+    parseLine_a1ar = parseLine{-r4R,x-} ta13E d.Parse_a15e
+    d.Parse_a15k = d.Parse_a13s
+    $mparse_a1as = $mparse{-r13A,x-} [ta13E] d.Parse_a15k
+    d.Parse_a15m = d.Parse_a154
+    forced_a1at = forced{-r5S,x-} ta13E d.Parse_a15m
+    AbsBinds [] [] [([], parseFile_a1au, parseFile_a13y)]
+       parseFile_a13y = $mparseFile_a1ap
+    AbsBinds [] [] [([], parseLine_a1av, parseLine_a13L)]
+       parseLine_a13L = $mparseLine_a1aq
+    AbsBinds [] [] [([], parseType_a1aw, parseType_a13T)]
+       parseType_a13T more_r4L
+                      = (map_a1a6 [PrelBase.String{-r5n,p-}, ta13E] parseLine_a1ar
+                                                                    seperatedBy{-r3M,x-} ','
+                                                                                         ++_a1a7
+                                                                                             PrelBase.Char{-38,W-}
+                                                                                             l_r4N
+                                                                                             ",",
+                         out_r4O)
+                      where
+                          {- nonrec -}
+                          AbsBinds [] [] [([], l_r4N, l_a13W), ([], out_r4O, out_a13X)]
+                              (l_a13W, (']' PrelBase.:{-55,w-}{i} out_a13X))
+                                  = span'{-r3O,x-} PrelBase.Char{-38,W-} \ x_r4Q
+                                                                           -> x_r4Q /=_a1a8 ']'
+                                                                         PrelList.tail{-rzj,p-}
+                                                                             PrelBase.Char{-38,W-} more_r4L
+                          {- nonrec -}
+                          {- nonrec -}
+    AbsBinds [] [] [([], parse_a1ax, parse_a14R)]
+       parse_a14R = $mparse_a1as
+    AbsBinds [] [] [([], forced_a1ay, forced_a14Z)]
+       forced_a14Z = PrelList.all{-rwP,p-} ta13E forced_a1at
+    d.Parse_a13s =
+       ({-dict-}
+        []
+        [parseFile_a1au, parseLine_a1av, parseType_a1aw, parse_a1ax, forced_a1ay])
+AbsBinds [] [] [([], $d2{-r19U,x-}, d.Parse_a15s)]
+    AbsBinds [] [] [([], parseFile_a1az, parseFile_a15x)]
+       parseFile_a15x = $mparseFile_a1a9
+    AbsBinds [] [] [([], parseLine_a1aA, parseLine_a15H)]
+       parseLine_a15H = $mparseLine_a1aa
+    AbsBinds [] [] [([], parseType_a1aB, parseType_a15Q)]
+       parseType_a15Q (ch_r4Z PrelBase.:{-55,w-}{i} str_r50)
+                      = (ch_r4Z, str_r50)
+    AbsBinds [] [] [([], parse_a1aC, parse_a164)]
+       parse_a164 = $mparse_a1ab
+    AbsBinds [] [] [([], forced_a1aD, forced_a16d)]
+       forced_a16d n_r54 = PrelBase.True{-5E,w-}{i}
+    d.Parse_a15s =
+       ({-dict-}
+        []
+        [parseFile_a1az, parseLine_a1aA, parseType_a1aB, parse_a1aC, forced_a1aD])
+AbsBinds [] [] [([], $d3{-r19V,x-}, d.Parse_a16q)]
+    AbsBinds [] [] [([], parseFile_a1aE, parseFile_a16v)]
+       parseFile_a16v = $mparseFile_a1ac
+    AbsBinds [] [] [([], parseLine_a1aF, parseLine_a16F)]
+       parseLine_a16F = $mparseLine_a1ad
+    AbsBinds [] [] [([], parseType_a1aG, parseType_a16O)]
+       parseType_a16O str_r5a
+                      = pl_r5c PrelBase.String{-r5n,p-} span'{-r3O,x-}
+                                                            PrelBase.Char{-38,W-} PrelBase.isDigit{-ria,p-}
+                                                                                  str_r5a
+                      where
+                          {- nonrec -}
+                          AbsBinds [ta178] [] [([ta178], pl_r5c, pl_a16R)]
+                              pl_a16R (l_r5e, r_r5f) = (strToInt{-r3Q,x-} l_r5e, r_r5f)
+                          {- nonrec -}
+                          {- nonrec -}
+    AbsBinds [] [] [([], parse_a1aH, parse_a17h)]
+       parse_a17h = $mparse_a1ae
+    AbsBinds [] [] [([], forced_a1aI, forced_a17q)]
+       forced_a17q n_r5j
+                   | n_r5j >=_a1af lit_a1ag = PrelBase.True{-5E,w-}{i}
+    d.Parse_a16q =
+       ({-dict-}
+        []
+        [parseFile_a1aE, parseLine_a1aF, parseType_a1aG, parse_a1aH, forced_a1aI])
+parseFile{-r5P,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case
+           tpl_B1
+       of {
+       PrelTup.(,,,,){-65,w-}{i} tpl_B1 tpl_B2 tpl_B3 tpl_B4 tpl_B5  ->
+       tpl_B1;}
+parseLine{-r4R,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case
+           tpl_B1
+       of {
+       PrelTup.(,,,,){-65,w-}{i} tpl_B1 tpl_B2 tpl_B3 tpl_B4 tpl_B5  ->
+       tpl_B2;}
+parseType{-r5Q,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case
+           tpl_B1
+       of {
+       PrelTup.(,,,,){-65,w-}{i} tpl_B1 tpl_B2 tpl_B3 tpl_B4 tpl_B5  ->
+       tpl_B3;}
+parse{-r5R,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case
+           tpl_B1
+       of {
+       PrelTup.(,,,,){-65,w-}{i} tpl_B1 tpl_B2 tpl_B3 tpl_B4 tpl_B5  ->
+       tpl_B4;}
+forced{-r5S,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case
+           tpl_B1
+       of {
+       PrelTup.(,,,,){-65,w-}{i} tpl_B1 tpl_B2 tpl_B3 tpl_B4 tpl_B5  ->
+       tpl_B5;}
+AbsBinds
+[ta182]
+[d.Parse_a197]
+[([ta182], $mparseFile{-r13v,x-}, parseFile_a1aJ), ([ta182],
+                                                   $mparseLine{-r13z,x-},
+                                                   parseLine_a1aO), ([ta182],
+                                                                     $mparse{-r13A,x-},
+                                                                     parse_a1aP), ([ta182],
+                                                                                   $mforced{-r13B,x-},
+                                                                                   forced_a1aQ)]
+    d.Parse_a199 = d.Parse_a197
+    forced_a1aK = forced{-r5S,x-} ta182 d.Parse_a199
+    d.Parse_a19d = d.Parse_a197
+    parseLine_a1aL = parseLine{-r4R,x-} ta182 d.Parse_a19d
+    d.Parse_a19f = d.Parse_a197
+    parse_a1aM = parse{-r5R,x-} ta182 d.Parse_a19f
+    d.Parse_a19h = d.Parse_a197
+    parseType_a1aN = parseType{-r5Q,x-} ta182 d.Parse_a19h
+    AbsBinds [] [] [([], parseFile_a1aJ, parseFile_a17K)]
+       parseFile_a17K string_r5A
+                      | PrelList.all{-rwP,p-} ta182 forced_a1aK x_r5C = x_r5C
+                      where
+                          {- nonrec -}
+                          AbsBinds [] [] [([], x_r5C, x_a17N)]
+                              x_a17N
+                                  = map_a1ah [PrelBase.String{-r5n,p-}, ta182] parseLine_a1aL
+                                                                               lines'{-r3P,x-} string_r5A
+                          {- nonrec -}
+                          {- nonrec -}
+    AbsBinds [] [] [([], parseLine_a1aO, parseLine_a18o)]
+       parseLine_a18o
+           = PrelBase..{-rc2,p-}
+                 [(ta182, PrelBase.String{-r5n,p-}), PrelBase.String{-r5n,p-}, ta182]
+                 (pl_r5G [ta182, PrelBase.String{-r5n,p-}]) parse_a1aM
+           where
+               {- nonrec -}
+               AbsBinds [ta18v, ta18y] [] [([ta18v, ta18y], pl_r5G, pl_a18n)]
+                   pl_a18n (a_r5I, _) = a_r5I
+               {- nonrec -}
+               {- nonrec -}
+    AbsBinds [] [] [([], parse_a1aP, parse_a18R)]
+       parse_a18R
+           = PrelBase..{-rc2,p-}
+                 [PrelBase.String{-r5n,p-}, PrelBase.String{-r5n,p-}, (ta182, PrelBase.String{-r5n,p-})]
+                 parseType_a1aN whiteSpace{-r3N,x-}
+    AbsBinds [] [] [([], forced_a1aQ, forced_a192)]
+       forced_a192 x_r5O = PrelBase.True{-5E,w-}{i}
+d.Eq_a19j = PrelBase.$d34{-rcI,p-}
+/=_a19W = PrelBase./={-rhx,p-} PrelBase.Char{-38,W-} d.Eq_a19j
+d.Eq_a19o = d.Eq_a19j
+d.Eq_a19m = PrelBase.$d28{-rcB,p-} PrelBase.Char{-38,W-} d.Eq_a19o
+==_a19X = PrelBase.=={-8Y,p-} [PrelBase.Char{-38,W-}] d.Eq_a19m
+/=_a19Y = /=_a19W
+d.Num_a19q = PrelBase.$d4{-rcO,p-}
+-_a19Z = PrelBase.-{-817,p-} PrelBase.Int{-3g,W-} d.Num_a19q
+lit_a1a0 = PrelBase.I#{-5b,w-}{i} 1#
+lit_a1a1 = PrelBase.I#{-5b,w-}{i} 0#
+d.Num_a19t = d.Num_a19q
++_a1a2 = PrelBase.+{-rhC,p-} PrelBase.Int{-3g,W-} d.Num_a19t
+d.Num_a19v = d.Num_a19q
+*_a1a3 = PrelBase.*{-rhD,p-} PrelBase.Int{-3g,W-} d.Num_a19v
+lit_a1a4 = PrelBase.I#{-5b,w-}{i} 10#
+-_a1a5 = -_a19Z
+d.Functor_a19x = PrelBase.$d26{-rcz,p-}
+map_a1a6 = PrelBase.map{-rhy,p-} PrelBase.[]{-3j,W-} d.Functor_a19x
+d.MonadPlus_a19A = PrelBase.$d23{-rcw,p-}
+++_a1a7 = PrelBase.++{-rhB,p-} PrelBase.[]{-3j,W-} d.MonadPlus_a19A
+/=_a1a8 = /=_a19W
+d.Parse_a19D = $d2{-r19U,x-}
+$mparseFile_a1a9 =
+    $mparseFile{-r13v,x-} PrelBase.Char{-38,W-} d.Parse_a19D
+d.Parse_a19G = d.Parse_a19D
+$mparseLine_a1aa =
+    $mparseLine{-r13z,x-} PrelBase.Char{-38,W-} d.Parse_a19G
+d.Parse_a19I = d.Parse_a19D
+$mparse_a1ab = $mparse{-r13A,x-} PrelBase.Char{-38,W-} d.Parse_a19I
+d.Parse_a19K = $d3{-r19V,x-}
+$mparseFile_a1ac =
+    $mparseFile{-r13v,x-} PrelBase.Int{-3g,W-} d.Parse_a19K
+d.Parse_a19N = d.Parse_a19K
+$mparseLine_a1ad =
+    $mparseLine{-r13z,x-} PrelBase.Int{-3g,W-} d.Parse_a19N
+d.Parse_a19P = d.Parse_a19K
+$mparse_a1ae = $mparse{-r13A,x-} PrelBase.Int{-3g,W-} d.Parse_a19P
+d.Ord_a19R = PrelBase.$d7{-rda,p-}
+>=_a1af = PrelBase.>={-8Z,p-} PrelBase.Int{-3g,W-} d.Ord_a19R
+lit_a1ag = lit_a1a1
+map_a1ah = map_a1a6
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d11 1 $d12 1 $d14 1 $d15 1 $d16 1 $d2 1 $d22 1 $d23 1 $d24 1 $d25 1 $d26 1 $d27 1 $d28 1 $d3 1 $d31 1 $d32 1 $d33 1 $d34 1 $d35 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d46 1 $d47 1 $d50 1 $d51 1 $d52 1 $d55 1 $d56 1 $d6 1 $d7 1 $d8 1 $d9 1 $m- 1 $m/= 1 $m< 1 $m<= 1 $m> 1 $m>= 1 $m>> 1 $mcompare 1 $menumFromThenTo 1 $menumFromTo 1 $mfromInt 1 $mmax 1 $mmin 1 $mshowList 1 . 1 dropWhile 1 isDigit 1 isSpace 1 ord 1 Enum 1 Eq 1 Eval 1 Functor 1 Monad 1 MonadPlus 1 MonadZero 1 Num 1 Ord 1 Ordering 1 Show 1 String 1;
+PrelList 1 :: all 1 length 1 null 1 tail 1;
+PrelNum 1 :: $d1 1 $d10 1 $d15 1 $d16 1 $d17 1 $d18 1 $d2 1 $d29 1 $d30 1 $d31 1 $d32 1 $d33 1 $d34 1 $d35 1 $d36 1 $d37 1 $d38 1 $d39 1 $d5 1 $d6 1 $d7 1 $d8 1 $mdiv 1 $mdivMod 1 $mmod 1 $mquot 1 $mrem 1 ^ 1 Integral 1 Ratio 1 Rational 1 Real 1;
+PrelTup 1 :: $d13 1 $d4 1 $d49 1 $d9 1;
+_exports_
+ShouldSucceed charToInt lines' seperatedBy span' strToInt whiteSpace Parse(parseFile parseLine parseType parse forced);
+_instances_
+instance _forall_ [a] {Parse a} => {Parse [a]} = $d1;
+instance {Parse PrelBase.Char} = $d2;
+instance {Parse PrelBase.Int} = $d3;
+_declarations_
+1 $d1 _:_ _forall_ [a] {Parse a} => {Parse [a]} ;;
+1 $d2 _:_ {Parse PrelBase.Char} ;;
+1 $d3 _:_ {Parse PrelBase.Int} ;;
+1 $mforced _:_ _forall_ [a] {Parse a} => a -> PrelBase.Bool ;;
+1 $mparse _:_ _forall_ [a] {Parse a} => PrelBase.String -> (a, PrelBase.String) ;;
+1 $mparseFile _:_ _forall_ [a] {Parse a} => PrelBase.String -> [a] ;;
+1 $mparseLine _:_ _forall_ [a] {Parse a} => PrelBase.String -> a ;;
+1 class Parse a where {parseFile = :: PrelBase.String -> [a]; parseLine = :: PrelBase.String -> a; parseType :: PrelBase.String -> (a, PrelBase.String); parse = :: PrelBase.String -> (a, PrelBase.String); forced = :: a -> PrelBase.Bool} ;
+1 charToInt _:_ PrelBase.Char -> PrelBase.Int ;;
+1 lines' _:_ [PrelBase.Char] -> [[PrelBase.Char]] ;;
+1 seperatedBy _:_ PrelBase.Char -> PrelBase.String -> [PrelBase.String] ;;
+1 span' _:_ _forall_ [ta] => (ta -> PrelBase.Bool) -> [ta] -> ([ta], [ta]) ;;
+1 strToInt _:_ PrelBase.String -> PrelBase.Int ;;
+1 whiteSpace _:_ PrelBase.String -> PrelBase.String ;;
diff --git a/ghc/tests/typecheck/should_compile/tc081.hs b/ghc/tests/typecheck/should_compile/tc081.hs
deleted file mode 100644 (file)
index 6590550..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
---!!! an example Simon made up
---
-module ShouldSucceed where
-
-f x = (x+1, x<3, g True, g 'c')
-       where
-       g y = if x>2 then [] else [y]
-{-
-Here the type-check of g will yield an LIE with an Ord dict
-for x.  g still has type forall a. a -> [a].  The dictionary is
-free, bound by the x.
-
-It should be ok to add the signature:
--}
-
-f2 x = (x+1, x<3, g2 True, g2 'c')
-       where
-       -- NB: this sig:
-       g2 :: a -> [a]
-       g2 y = if x>2 then [] else [y]
-{-
-or to write:
--}
-
-f3 x = (x+1, x<3, g3 True, g3 'c')
-       where
-       -- NB: this line:
-       g3 = (\ y -> if x>2 then [] else [y])::(a -> [a])
index f2ccb36..07df34b 100644 (file)
@@ -1,6 +1,6 @@
 --!!! tc082: an instance for functions
 --
-module N where
+module ShouldSucceed where
 
 class Normal a
        where
diff --git a/ghc/tests/typecheck/should_compile/tc082.stderr b/ghc/tests/typecheck/should_compile/tc082.stderr
new file mode 100644 (file)
index 0000000..ec3b654
--- /dev/null
@@ -0,0 +1,32 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [tary] [] [([tary], f{-r3p,x-}, f_arl)]
+    d.Normal_arA = $d1{-rrW,x-} [GHC.Void{-3T,W-}, GHC.Void{-3T,W-}]
+    normal_arX =
+       normal{-r3r,x-} (GHC.Void{-3T,W-} -> GHC.Void{-3T,W-}) d.Normal_arA
+    f_arl x_r3f = normal_arX PrelBase.id{-r9U,p-} GHC.Void{-3T,W-}
+AbsBinds
+[tarP, tarQ]
+[]
+[([tarP, tarQ], $d1{-rrW,x-}, d.Normal_arI)]
+    AbsBinds [] [] [([], normal_arY, normal_arM)]
+       normal_arM _ = PrelBase.True{-5E,w-}{i}
+    d.Normal_arI = ({-dict-} [] [normal_arY])
+normal{-r3r,x-} = _/\_ t12 -> \ tpl_B1 -> tpl_B1
+AbsBinds [tarV] [d.Normal_arU] []
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: id 1;
+_exports_
+ShouldSucceed f Normal(normal);
+_instances_
+instance _forall_ [a b] => {Normal (a -> b)} = $d1;
+_declarations_
+1 $d1 _:_ _forall_ [a b] => {Normal (a -> b)} ;;
+1 class Normal a where {normal :: a -> PrelBase.Bool} ;
+1 f _:_ _forall_ [ta] => ta -> PrelBase.Bool ;;
diff --git a/ghc/tests/typecheck/should_compile/tc083.hs b/ghc/tests/typecheck/should_compile/tc083.hs
deleted file mode 100644 (file)
index 1c5321e..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---!!! instances with no binds;
---!!! be sure we get a legit .hi file
---
-module Bar where
-
-import ClassFoo
-
-instance Foo Int
-
-instance Foo a => Foo [a]
index 572bbe3..597a296 100644 (file)
@@ -7,7 +7,7 @@
    Simon PJ
 -}
 
-module Foo where
+module ShouldSucceed where
 
 
 g :: Num a => Bool -> a -> b -> a
diff --git a/ghc/tests/typecheck/should_compile/tc084.stderr b/ghc/tests/typecheck/should_compile/tc084.stderr
new file mode 100644 (file)
index 0000000..5771a4f
--- /dev/null
@@ -0,0 +1,33 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds
+[taC7, taCa]
+[d.Num_aCi]
+[([taCa, taC7], g{-r3h,x-}, g_aC3)]
+    d.Num_aCk = d.Num_aCi
+    +_aCR = PrelBase.+{-rfr,p-} taC7 d.Num_aCk
+    d.Num_aCm = d.Num_aCi
+    -_aCS = PrelBase.-{-817,p-} taC7 d.Num_aCm
+    g_aC3 b_r3l x_r3m y_r3n
+         = if b_r3l then x_r3m +_aCR x_r3m else x_r3m -_aCS x_r3m
+AbsBinds [taCu] [] [([taCu], f{-r3i,x-}, f_aCo)]
+    g_aCT = g{-r3h,x-} [taCu, PrelBase.Int{-3g,W-}] d.Num_aCz
+    f_aCo = g_aCT PrelBase.True{-5E,w-}{i}
+AbsBinds [taCQ] [] [([taCQ], h{-r3j,x-}, h_aCB)]
+    h_aCB y_r3p x_r3q = f{-r3i,x-} taCQ x_r3q y_r3p
+d.Num_aCz = PrelBase.$d4{-raC,p-}
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+_exports_
+ShouldSucceed f g h;
+_declarations_
+1 f _:_ _forall_ [ta] => PrelBase.Int -> ta -> PrelBase.Int ;;
+1 g _:_ _forall_ [ta tb] {PrelBase.Num tb} => PrelBase.Bool -> tb -> ta -> tb ;;
+1 h _:_ _forall_ [ta] => ta -> PrelBase.Int -> PrelBase.Int ;;
index fe5ad6a..ca2822f 100644 (file)
@@ -1,6 +1,6 @@
 --!!! From a bug report from Satnam.
 --!!! To do with re-exporting importees from PreludeGla* modules.
-module Foo ( module GlaExts, module Foo ) where
+module ShouldSucceed ( module GlaExts ) where
 
 --OLD: import PreludeGlaIO
 import GlaExts
diff --git a/ghc/tests/typecheck/should_compile/tc085.stderr b/ghc/tests/typecheck/should_compile/tc085.stderr
new file mode 100644 (file)
index 0000000..2e14883
--- /dev/null
@@ -0,0 +1,32 @@
+
+
+================================================================================
+Typechecked:
+FooData{-r5,l-}{i} = FooData{-r5,l-}{i} {}
+AbsBinds [] [] [([], $d1{-rBr,x-}, d.Eval_aBo)]
+    d.Eval_aBo = ({-dict-} [] [])
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+GlaExts 1 ::;
+PrelBase 1 :: $d2 1 $d38 1 $d40 1 $d42 1 $d47 1 Eval 1;
+_exports_
+ArrBase boundsOfArray boundsOfByteArray freezeAddrArray freezeArray freezeCharArray freezeDoubleArray freezeFloatArray freezeIntArray indexAddrArray indexAddrOffAddr indexCharArray indexCharOffAddr indexDoubleArray indexDoubleOffAddr indexFloatArray indexFloatOffAddr indexIntArray indexIntOffAddr newAddrArray newArray newCharArray newDoubleArray newFloatArray newIntArray readAddrArray readArray readCharArray readDoubleArray readFloatArray readIntArray thawArray unsafeFreezeArray unsafeFreezeByteArray writeAddrArray writeArray writeCharArray writeDoubleArray writeFloatArray writeIntArray ByteArray(ByteArray) MutableArray(MutableArray) MutableByteArray(MutableByteArray);
+Foreign Addr(A#) Word(W#);
+GHC *# *## **## +# +## -# -## /## /=# /=## <# <## <=# <=## ==# ==## ># >## >=# >=## acosDouble# acosFloat# addr2Int# and# asinDouble# asinFloat# atanDouble# atanFloat# chr# cmpInteger# cosDouble# cosFloat# coshDouble# coshFloat# deRefStablePtr# decodeDouble# decodeFloat# delay# divideFloat# double2Float# double2Int# encodeDouble# encodeFloat# eqAddr# eqChar# eqFloat# eqWord# errorIO# expDouble# expFloat# float2Double# float2Int# fork# geAddr# geChar# geFloat# geWord# gtAddr# gtChar# gtFloat# gtWord# iShiftL# iShiftRA# iShiftRL# indexAddrArray# indexAddrOffAddr# indexAddrOffForeignObj# indexArray# indexCharArray# indexCharOffAddr# indexCharOffForeignObj# indexDoubleArray# indexDoubleOffAddr# indexDoubleOffForeignObj# indexFloatArray# indexFloatOffAddr# indexFloatOffForeignObj# indexIntArray# indexIntOffAddr# indexIntOffForeignObj# int2Addr# int2Double# int2Float# int2Integer# int2Word# integer2Int# leAddr# leChar# leFloat# leWord# logDouble# logFloat# ltAddr# ltChar# ltFloat# ltWord# makeForeignObj# makeStablePtr# minusFloat# minusInteger# neAddr# neChar# neFloat# neWord# negateDouble# negateFloat# negateInt# negateInteger# newAddrArray# newArray# newCharArray# newDoubleArray# newFloatArray# newIntArray# newSynchVar# not# or# ord# par# parAt# parAtForNow# parGlobal# parLocal# plusFloat# plusInteger# powerFloat# putMVar# quotInt# quotRemInteger# readAddrArray# readArray# readCharArray# readDoubleArray# readFloatArray# readIntArray# realWorld# remInt# sameMutableArray# sameMutableByteArray# seq# shiftL# shiftRA# shiftRL# sinDouble# sinFloat# sinhDouble# sinhFloat# sqrtDouble# sqrtFloat# takeMVar# tanDouble# tanFloat# tanhDouble# tanhFloat# timesFloat# timesInteger# unsafeFreezeArray# unsafeFreezeByteArray# waitRead# waitWrite# word2Int# writeAddrArray# writeArray# writeCharArray# writeDoubleArray# writeFloatArray# writeForeignObj# writeIntArray# -> Addr# All Array# ByteArray# Char# Double# Float# ForeignObj# Int# MutableArray# MutableByteArray# RealWorld StablePtr# State# SynchVar# Void Word#;
+IOBase ioToPrimIO ioToST primIOToIO seqIO_Prim stToIO thenIO_Prim trace;
+Ix Ix;
+PrelBase Char(C#) Double(D#) Float(F#) Int(I#) Integer(J#) Lift(Lift);
+STBase fixPrimIO listPrimIO mapAndUnzipPrimIO mapPrimIO returnPrimIO seqPrimIO thenPrimIO PrimIO ST;
+UnsafeST unsafeInterleavePrimIO unsafePerformPrimIO;
+_fixities_
+infixr 1 seqIO_Prim;
+infixr 1 thenIO_Prim;
+_instances_
+instance {PrelBase.Eval FooData} = $d1;
+_declarations_
+1 $d1 _:_ {PrelBase.Eval FooData} ;;
+1 data FooData = FooData ;
+1 type FooType = PrelBase.Int ;
index 4d9ba6e..1f0f427 100644 (file)
@@ -22,7 +22,7 @@ SPJ note: the type signature on "multiply" should be
 
 -}
 
-module Rings( Group, Ring ) where
+module ShouldSucceed( Group, Ring ) where
 
 import qualified Prelude( Ord(..), Eq(..), Num(..) )
 import Prelude hiding( Ord(..), Eq(..), Num(..), MonadZero( zero ) )
diff --git a/ghc/tests/typecheck/should_compile/tc086.stderr b/ghc/tests/typecheck/should_compile/tc086.stderr
new file mode 100644 (file)
index 0000000..35f78eb
--- /dev/null
@@ -0,0 +1,124 @@
+
+
+================================================================================
+Typechecked:
+scsel_RingShouldSucceedGroup{-aFJ,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B1;}
+*{-r6D,l-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case tpl_B1 of { PrelTup.(,){-62,w-}{i} tpl_B1 tpl_B2  -> tpl_B2;}
+AbsBinds [taE5] [d.Ring_aFn] [([taE5], $m*{-rFK,x-}, *_aFL)]
+    d.Group_aFk = scsel_RingShouldSucceedGroup{-aFJ,x-} taE5 d.Ring_aFn
+    AbsBinds [] [] [([], *_aFL, *_aE2)]
+       *_aE2 a_r6L b_r6M
+             = multiply_aFO a_r6L b_r6M
+             where
+                 {- rec -}
+                 AbsBinds
+                 [taEe]
+                 [d.Group_aF3]
+                 [([taEe], multiply_r6O, multiply_aEb)]
+                     d.Group_aF5 = d.Group_aF3
+                     compare_aFP = compare{-r6w,l-} taEe d.Group_aF5
+                     d.Group_aF7 = d.Group_aF3
+                     zero_aFQ = zero{-r6A,l-} taEe d.Group_aF7
+                     zero_aFR = zero_aFQ
+                     d.Group_aF9 = d.Group_aF3
+                     -_aFS = -{-r6z,l-} taEe d.Group_aF9
+                     zero_aFT = zero_aFQ
+                     d.Group_aFb = d.Group_aF3
+                     multiply_aFU = multiply_r6O taEe d.Group_aFb
+                     -_aFV = -_aFS
+                     zero_aFW = zero_aFQ
+                     compare_aFX = compare_aFP
+                     d.Group_aFd = d.Group_aF3
+                     one_aFY = one{-r6B,l-} taEe d.Group_aFd
+                     d.Group_aFf = d.Group_aF3
+                     +_aFZ = +{-r6y,l-} taEe d.Group_aFf
+                     multiply_aG0 = multiply_aFU
+                     -_aG1 = -_aFS
+                     one_aG2 = one_aFY
+                     multiply_aEb a_r6S b_r6T
+                                  = case compare_aFP a_r6S zero_aFQ of
+                                      PrelBase.EQ{-r2a,p-}{i} -> zero_aFR
+                                      PrelBase.LT{-r28,p-}{i}
+                                      -> zero_aFT -_aFS (multiply_aFU zero_aFW -_aFV a_r6S b_r6T)
+                                      PrelBase.GT{-r2c,p-}{i}
+                                      -> case compare_aFX a_r6S one_aFY of
+                                           PrelBase.EQ{-r2a,p-}{i} -> b_r6T
+                                           _
+                                           -> b_r6T +_aFZ (multiply_aG0 a_r6S -_aG1 one_aG2 b_r6T)
+                 {- nonrec -}
+                 multiply_aFO = multiply_r6O taE5 d.Group_aFk
+                 {- nonrec -}
+compare{-r6w,l-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case
+           tpl_B1
+       of {
+       PrelTup.(,,,,,){-66,w-}{i} tpl_B1 tpl_B2 tpl_B3 tpl_B4 tpl_B5 tpl_B6  ->
+       tpl_B1;}
+fromInteger{-r6x,l-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case
+           tpl_B1
+       of {
+       PrelTup.(,,,,,){-66,w-}{i} tpl_B1 tpl_B2 tpl_B3 tpl_B4 tpl_B5 tpl_B6  ->
+       tpl_B2;}
++{-r6y,l-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case
+           tpl_B1
+       of {
+       PrelTup.(,,,,,){-66,w-}{i} tpl_B1 tpl_B2 tpl_B3 tpl_B4 tpl_B5 tpl_B6  ->
+       tpl_B3;}
+-{-r6z,l-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case
+           tpl_B1
+       of {
+       PrelTup.(,,,,,){-66,w-}{i} tpl_B1 tpl_B2 tpl_B3 tpl_B4 tpl_B5 tpl_B6  ->
+       tpl_B4;}
+zero{-r6A,l-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case
+           tpl_B1
+       of {
+       PrelTup.(,,,,,){-66,w-}{i} tpl_B1 tpl_B2 tpl_B3 tpl_B4 tpl_B5 tpl_B6  ->
+       tpl_B5;}
+one{-r6B,l-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case
+           tpl_B1
+       of {
+       PrelTup.(,,,,,){-66,w-}{i} tpl_B1 tpl_B2 tpl_B3 tpl_B4 tpl_B5 tpl_B6  ->
+       tpl_B6;}
+AbsBinds
+[taFt]
+[d.Group_aFG]
+[([taFt], $mzero{-rFM,x-}, zero_aG3), ([taFt],
+                                      $mone{-rFN,x-},
+                                      one_aG6)]
+    d.Group_aFI = d.Group_aFG
+    fromInteger_aG4 = fromInteger{-r6x,l-} taFt d.Group_aFI
+    fromInteger_aG5 = fromInteger_aG4
+    AbsBinds [] [] [([], zero_aG3, zero_aFs)]
+       zero_aFs = fromInteger_aG4 0
+    AbsBinds [] [] [([], one_aG6, one_aFA)]
+       one_aFA = fromInteger_aG5 1
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d28 1 $d3 1 $d33 1 $d34 1 $d35 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d46 1 $d47 1 $d55 1 $d56 1 $d8 1 $d9 1 $m- 1 $m/= 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Num 1 Ordering 1 Ordering 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+_exports_
+ShouldSucceed Group Ring;
+_declarations_
+1 $m* _:_ _forall_ [a] {Ring a} => a -> a -> a ;;
+1 $mone _:_ _forall_ [a] {Group a} => a ;;
+1 $mzero _:_ _forall_ [a] {Group a} => a ;;
+1 class Group a where {compare :: a -> a -> PrelBase.Ordering; fromInteger :: PrelBase.Integer -> a; + :: a -> a -> a; - :: a -> a -> a; zero = :: a; one = :: a} ;
+1 class {Group a} => Ring a where {* = :: a -> a -> a} ;
index 8477427..cb4b925 100644 (file)
@@ -1,4 +1,4 @@
-module SOL where
+module ShouldSucceed where
 
 import GlaExts
 
diff --git a/ghc/tests/typecheck/should_compile/tc087.stderr b/ghc/tests/typecheck/should_compile/tc087.stderr
new file mode 100644 (file)
index 0000000..8e9cafe
--- /dev/null
@@ -0,0 +1,188 @@
+
+
+================================================================================
+Typechecked:
+Null{-rf,x-}{i} =
+    _/\_ t_ar59 a_tr5a -> Null{-rf,x-}{i} {_@_ t_ar59 _@_ a_tr5a}
+Cons{-re,x-}{i} =
+    _/\_ t_ar59 a_tr5a -> \ tpl_B1 tpl_B2 ->
+       Cons{-re,x-}{i} {_@_ t_ar59 _@_ a_tr5a tpl_B1 tpl_B2}
+AbsBinds [ta13I] [d.Num_a13T] [([ta13I], out{-r4v,x-}, out_a13F)]
+    d.Eq_a13V = PrelBase.scsel_NumPrelBaseEq{-a19a,p-} ta13I d.Num_a13T
+    ==_a196 = PrelBase.=={-8Y,p-} ta13I d.Eq_a13V
+    d.Num_a13X = d.Num_a13T
+    sum_a197 = PrelList.sum{-ro0,p-} ta13I d.Num_a13X
+    d.Num_a140 = d.Num_a13T
+    fromInt_a198 = PrelBase.fromInt{-8R,p-} ta13I d.Num_a140
+    lit_a199 = fromInt_a198 PrelBase.I#{-5b,w-}{i} 0#
+    out_a13F x_r4O
+            | (sum_a197 x_r4O) ==_a196 lit_a199 = PrelIO.putStr{-riO,p-} "ok\n"
+            | PrelBase.otherwise{-818,p-} = PrelIO.putStr{-riO,p-} "ok\n"
+out_a18N = out{-r4v,x-} PrelBase.Int{-3g,W-} d.Num_a18n
+out_a18O = out{-r4v,x-} PrelBase.Double{-3a,W-} d.Num_a18o
+AbsBinds
+[ta14p, aa14q]
+[d.PriorityQueue_a14u, d.Ord_a14w]
+[([ta14p, aa14q], insertMany{-r4x,x-}, insertMany_a143)]
+    insert_a14r = insert{-r5d,x-} aa14q d.PriorityQueue_a14u
+    insert_a19b = insert_a14r ta14p d.Ord_a14w
+    insertMany_a143 x_r4G q_r4H
+                   = PrelBase.foldr{-89,w-} [ta14p, aa14q ta14p] insert_a19b
+                                                                 q_r4H
+                                                                 x_r4G
+AbsBinds
+[aa153, ta155]
+[d.PriorityQueue_a158, d.Ord_a15a]
+[([aa153, ta155], toOrderedList{-r4w,x-}, toOrderedList_a14y)]
+    splitMin_a156 = splitMin{-r5f,x-} aa153 d.PriorityQueue_a158
+    splitMin_a19c = splitMin_a156 ta155 d.Ord_a15a
+    toOrderedList_a14y q_r4A
+                      = case splitMin_a19c q_r4A of
+                          Null{-rf,x-}{i} -> PrelBase.[]{-5i,w-}{i} ta155
+                          (Cons{-re,x-}{i} a_r4D q_r4E)
+                          -> PrelBase.:{-55,w-}{i} ta155 a_r4D (toOrderedList_a14y q_r4E)
+AbsBinds
+[aa15w, ta15x]
+[d.PriorityQueue_a15A, d.Ord_a15B]
+[([aa15w, ta15x], pqSort{-r4y,x-}, pqSort_a15c)]
+    toOrderedList_a19d =
+       toOrderedList{-r4w,x-} [aa15w, ta15x]
+           [d.PriorityQueue_a15A, d.Ord_a15B]
+    d.PriorityQueue_a15D = d.PriorityQueue_a15A
+    d.Ord_a15E = d.Ord_a15B
+    insertMany_a19e =
+       insertMany{-r4x,x-} [ta15x, aa15w]
+           [d.PriorityQueue_a15D, d.Ord_a15E]
+    pqSort_a15c q_r4J x_r4K
+               = toOrderedList_a19d insertMany_a19e x_r4K q_r4J
+AbsBinds
+[aa15R]
+[d.PriorityQueue_a16G]
+[([aa15R], check{-r4u,x-}, check_a15N)]
+    d.PriorityQueue_a17d = d.PriorityQueue_a16G
+    d.Ord_a17e = PrelBase.$d7{-rcM,p-}
+    pqSort_a19f =
+       pqSort{-r4y,x-} [aa15R, PrelBase.Int{-3g,W-}]
+           [d.PriorityQueue_a17d, d.Ord_a17e]
+    d.Ord_a16H = d.Ord_a17e
+    d.PriorityQueue_a17l = d.PriorityQueue_a16G
+    d.Ord_a17m = PrelNum.$d17{-rwV,p-}
+    pqSort_a19g =
+       pqSort{-r4y,x-} [aa15R, PrelBase.Double{-3a,W-}]
+           [d.PriorityQueue_a17l, d.Ord_a17m]
+    d.Ord_a16I = d.Ord_a17m
+    check_a15N empty_r4M
+              = do
+                  PrelIO.putStr{-riO,p-} "*** sorting\n"
+                  out_a18N pqSort_a19f empty_a19h
+                                       [(enumFromTo_a18W) lit_a18U .. lit_a18V]
+                  out_a18O pqSort_a19g empty_a19i
+                                       [(enumFromThenTo_a193) lit_a18Y, lit_a190 .. lit_a192]
+              where
+                  {- nonrec -}
+                  empty_a19h = empty_r4M PrelBase.Int{-3g,W-} d.Ord_a16H
+                  empty_a19i = empty_r4M PrelBase.Double{-3a,W-} d.Ord_a16I
+                  {- nonrec -}
+AbsBinds
+[aa18I, ta18J]
+[]
+[([aa18I, ta18J], $d1{-r18S,x-}, d.Eval_a17F)]
+    d.Eval_a17F = ({-dict-} [] [])
+empty{-r5b,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case
+           tpl_B1
+       of {
+       PrelTup.(,,,,){-65,w-}{i} tpl_B1 tpl_B2 tpl_B3 tpl_B4 tpl_B5  ->
+       tpl_B1;}
+single{-r5c,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case
+           tpl_B1
+       of {
+       PrelTup.(,,,,){-65,w-}{i} tpl_B1 tpl_B2 tpl_B3 tpl_B4 tpl_B5  ->
+       tpl_B2;}
+insert{-r5d,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case
+           tpl_B1
+       of {
+       PrelTup.(,,,,){-65,w-}{i} tpl_B1 tpl_B2 tpl_B3 tpl_B4 tpl_B5  ->
+       tpl_B3;}
+meld{-r5e,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case
+           tpl_B1
+       of {
+       PrelTup.(,,,,){-65,w-}{i} tpl_B1 tpl_B2 tpl_B3 tpl_B4 tpl_B5  ->
+       tpl_B4;}
+splitMin{-r5f,x-} =
+    _/\_ t12 -> \ tpl_B1 ->
+       case
+           tpl_B1
+       of {
+       PrelTup.(,,,,){-65,w-}{i} tpl_B1 tpl_B2 tpl_B3 tpl_B4 tpl_B5  ->
+       tpl_B5;}
+AbsBinds
+[aa17N]
+[d.PriorityQueue_a18i]
+[([aa17N], $minsert{-r18T,x-}, insert_a19j)]
+    d.PriorityQueue_a18k = d.PriorityQueue_a18i
+    meld_a189 = meld{-r5e,x-} aa17N d.PriorityQueue_a18k
+    d.PriorityQueue_a18m = d.PriorityQueue_a18i
+    single_a188 = single{-r5c,x-} aa17N d.PriorityQueue_a18m
+    AbsBinds [ta17Q] [d.Ord_a18c] [([ta17Q], insert_a19j, insert_a17L)]
+       d.Ord_a18e = d.Ord_a18c
+       meld_a19k = meld_a189 ta17Q d.Ord_a18e
+       d.Ord_a18g = d.Ord_a18c
+       single_a19l = single_a188 ta17Q d.Ord_a18g
+       insert_a17L a_r56 q_r57 = (single_a19l a_r56) meld_a19k q_r57
+d.Num_a18n = PrelBase.$d4{-rcq,p-}
+lit_a18U = PrelBase.I#{-5b,w-}{i} 1#
+lit_a18V = PrelBase.I#{-5b,w-}{i} 99#
+d.Enum_a18r = PrelBase.$d6{-rcL,p-}
+enumFromTo_a18W =
+    PrelBase.enumFromTo{-8W,p-} PrelBase.Int{-3g,W-} d.Enum_a18r
+d.Num_a18o = PrelNum.$d16{-rwU,p-}
+d.Fractional_a18w = PrelNum.$d14{-rwS,p-}
+fromRational_a18X =
+    PrelNum.fromRational{-8T,p-} PrelBase.Double{-3a,W-}
+       d.Fractional_a18w
+lit_a18Y = fromRational_a18X 1.0000000000000000
+fromRational_a18Z = fromRational_a18X
+lit_a190 = fromRational_a18Z 1.1000000000000001
+fromRational_a191 = fromRational_a18X
+lit_a192 = fromRational_a191 99.900000000000006
+d.Enum_a18B = PrelNum.$d8{-rxr,p-}
+enumFromThenTo_a193 =
+    PrelBase.enumFromThenTo{-8X,p-} PrelBase.Double{-3a,W-} d.Enum_a18B
+d.Monad_a18E = IOBase.$d3{-rm9,p-}
+>>=_a194 = PrelBase.>>={-811,p-} IOBase.IO{-3e,p-} d.Monad_a18E
+d.Monad_a18H = d.Monad_a18E
+return_a195 =
+    PrelBase.return{-816,p-} IOBase.IO{-3e,p-} d.Monad_a18H
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+IOBase 1 :: $d2 1 $d3 1 $d7 1 IO 1;
+PrelBase 1 :: $d1 1 $d11 1 $d12 1 $d14 1 $d15 1 $d16 1 $d2 1 $d22 1 $d24 1 $d25 1 $d27 1 $d28 1 $d3 1 $d31 1 $d32 1 $d33 1 $d34 1 $d35 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d46 1 $d47 1 $d50 1 $d51 1 $d52 1 $d55 1 $d56 1 $d6 1 $d7 1 $d8 1 $d9 1 $m- 1 $m/= 1 $m< 1 $m<= 1 $m> 1 $m>= 1 $m>> 1 $mcompare 1 $menumFromThenTo 1 $menumFromTo 1 $mfromInt 1 $mmax 1 $mmin 1 $mshowList 1 otherwise 1 Enum 1 Eq 1 Eval 1 Monad 1 MonadZero 1 Num 1 Ord 1 Ordering 1 Show 1 String 1;
+PrelIO 1 :: putStr 1;
+PrelList 1 :: sum 1;
+PrelNum 1 :: $d1 1 $d10 1 $d14 1 $d15 1 $d16 1 $d17 1 $d18 1 $d2 1 $d29 1 $d30 1 $d31 1 $d32 1 $d33 1 $d34 1 $d35 1 $d36 1 $d37 1 $d38 1 $d39 1 $d4 1 $d5 1 $d6 1 $d7 1 $d8 1 $mdiv 1 $mdivMod 1 $mmod 1 $mquot 1 $mrecip 1 $mrem 1 Fractional 1 Integral 1 Ratio 1 Rational 1 Real 1;
+PrelTup 1 :: $d13 1 $d4 1 $d49 1 $d9 1;
+_exports_
+ShouldSucceed check insertMany out pqSort toOrderedList PriorityQueue(empty single insert meld splitMin) SeqView(Null Cons);
+_instances_
+instance _forall_ [t :: (* -> *) a] => {PrelBase.Eval (SeqView t a)} = $d1;
+_declarations_
+1 $d1 _:_ _forall_ [t :: (* -> *) a] => {PrelBase.Eval (SeqView t a)} ;;
+1 $minsert _:_ _forall_ [q :: (* -> *)] {PriorityQueue q} => _forall_ [a] {PrelBase.Ord a} => a -> q a -> q a ;;
+1 class PriorityQueue q :: (* -> *) where {empty :: _forall_ [a] {PrelBase.Ord a} => q a; single :: _forall_ [a] {PrelBase.Ord a} => a -> q a; insert = :: _forall_ [a] {PrelBase.Ord a} => a -> q a -> q a; meld :: _forall_ [a] {PrelBase.Ord a} => q a -> q a -> q a; splitMin :: _forall_ [a] {PrelBase.Ord a} => q a -> SeqView q a} ;
+1 data SeqView t :: (* -> *) a = Null |  Cons a (t a) ;
+1 check _:_ _forall_ [aa :: (* -> *)] {PriorityQueue aa} => (_forall_ [tb] {PrelBase.Ord tb} => aa tb) -> IOBase.IO PrelBase.() ;;
+1 insertMany _:_ _forall_ [ta ab :: (* -> *)] {PriorityQueue ab, PrelBase.Ord ta} => [ta] -> ab ta -> ab ta ;;
+1 out _:_ _forall_ [ta] {PrelBase.Num ta} => [ta] -> IOBase.IO PrelBase.() ;;
+1 pqSort _:_ _forall_ [aa :: (* -> *) tb] {PriorityQueue aa, PrelBase.Ord tb} => aa tb -> [tb] -> [tb] ;;
+1 toOrderedList _:_ _forall_ [aa :: (* -> *) tb] {PriorityQueue aa, PrelBase.Ord tb} => aa tb -> [tb] ;;
index e1b8b88..5423200 100644 (file)
@@ -1,6 +1,6 @@
 -- Check that "->" is an instance of Eval
 
-module Foo where
+module ShouldSucceed where
 
 instance (Eq b) => Eq (a -> b) where
        (==) f g = error "attempt to compare functions"
diff --git a/ghc/tests/typecheck/should_compile/tc088.stderr b/ghc/tests/typecheck/should_compile/tc088.stderr
new file mode 100644 (file)
index 0000000..3304d5f
--- /dev/null
@@ -0,0 +1,74 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds
+[taD0, taD1]
+[d.Num_aEx, d.Eq_aEy, d.Show_aEz, d.Eval_aEA]
+[([taD0, taD1], $d1{-rFx,x-}, d.Num_aCT)]
+    d.Eq_aEw = d.Eq_aEy
+    d.Show_aEB = d.Show_aEz
+    d.Eval_aEC = d.Eval_aEA
+    d.Num_aEG = d.Num_aEx
+    +_aFz = PrelBase.+{-rgc,p-} taD1 d.Num_aEG
+    d.Num_aEI = d.Num_aEx
+    -_aFA = PrelBase.-{-817,p-} taD1 d.Num_aEI
+    d.Num_aEK = d.Num_aEx
+    *_aFB = PrelBase.*{-rgd,p-} taD1 d.Num_aEK
+    d.Num_aEM = d.Num_aEx
+    negate_aFC = PrelBase.negate{-rge,p-} taD1 d.Num_aEM
+    d.Num_aEO = d.Num_aEx
+    abs_aFD = PrelBase.abs{-rgf,p-} taD1 d.Num_aEO
+    d.Num_aEQ = d.Num_aEx
+    signum_aFE = PrelBase.signum{-rgg,p-} taD1 d.Num_aEQ
+    d.Num_aES = d.Num_aEx
+    fromInteger_aFF = PrelBase.fromInteger{-8S,p-} taD1 d.Num_aES
+    d.Num_aEU = d.Num_aEx
+    fromInt_aFG = PrelBase.fromInt{-8R,p-} taD1 d.Num_aEU
+    AbsBinds [] [] [([], +_aFH, +_aCX)]
+       +_aCX f_r3h g_r3i = \ a_r3k -> (f_r3h a_r3k) +_aFz (g_r3i a_r3k)
+    AbsBinds [] [] [([], -_aFI, -_aDd)]
+       -_aDd f_r3o g_r3p = \ a_r3r -> (f_r3o a_r3r) -_aFA (g_r3p a_r3r)
+    AbsBinds [] [] [([], *_aFJ, *_aDr)]
+       *_aDr f_r3v g_r3w = \ a_r3y -> (f_r3v a_r3y) *_aFB (g_r3w a_r3y)
+    AbsBinds [] [] [([], negate_aFK, negate_aDF)]
+       negate_aDF f_r3C = \ a_r3E -> negate_aFC f_r3C a_r3E
+    AbsBinds [] [] [([], abs_aFL, abs_aDR)]
+       abs_aDR f_r3I = \ a_r3K -> abs_aFD f_r3I a_r3K
+    AbsBinds [] [] [([], signum_aFM, signum_aE3)]
+       signum_aE3 f_r3O = \ a_r3Q -> signum_aFE f_r3O a_r3Q
+    AbsBinds [] [] [([], fromInteger_aFN, fromInteger_aEf)]
+       fromInteger_aEf n_r3U = \ a_r3W -> fromInteger_aFF n_r3U
+    AbsBinds [] [] [([], fromInt_aFO, fromInt_aEq)]
+       fromInt_aEq n_r40 = \ a_r42 -> fromInt_aFG n_r40
+    d.Num_aCT =
+       ({-dict-}
+        [d.Eq_aEw, d.Show_aEB, d.Eval_aEC]
+        [+_aFH, -_aFI, *_aFJ, negate_aFK, abs_aFL, signum_aFM, fromInteger_aFN, fromInt_aFO])
+AbsBinds
+[taFe, taFf]
+[d.Eq_aFr]
+[([taFe, taFf], $d2{-rFy,x-}, d.Eq_aF7)]
+    d.Eq_aFv = d.Eq_aF7
+    $m/=_aFP = PrelBase.$m/={-rfO,p-} (taFe -> taFf) d.Eq_aFv
+    AbsBinds [] [] [([], ==_aFQ, ==_aFb)]
+       ==_aFb f_r4a g_r4b
+              = IOBase.error{-87,w-}
+                    PrelBase.Bool{-34,W-} "attempt to compare functions"
+    AbsBinds [] [] [([], /=_aFR, /=_aFo)]
+       /=_aFo = $m/=_aFP
+    d.Eq_aF7 = ({-dict-} [] [==_aFQ, /=_aFR])
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum ShouldSucceed
+_usages_
+PrelBase 1 :: $d1 1 $d12 1 $d16 1 $d2 1 $d22 1 $d28 1 $d3 1 $d33 1 $d34 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d47 1 $d55 1 $d8 1 $d9 1 $m- 1 $m/= 1 $mfromInt 1 $mshowList 1 Eq 1 Eval 1 Num 1 Show 1 String 1;
+PrelNum 1 :: $d10 1 $d16 1 $d18 1 $d29 1 $d33 1 $d35 1;
+_exports_
+_instances_
+instance _forall_ [a b] {PrelBase.Num b} => {PrelBase.Num (a -> b)} = $d1;
+instance _forall_ [a b] {PrelBase.Eq b} => {PrelBase.Eq (a -> b)} = $d2;
+_declarations_
+1 $d1 _:_ _forall_ [a b] {PrelBase.Num b, PrelBase.Eq (a -> b), PrelBase.Show (a -> b), PrelBase.Eval (a -> b)} => {PrelBase.Num (a -> b)} ;;
+1 $d2 _:_ _forall_ [a b] {PrelBase.Eq b} => {PrelBase.Eq (a -> b)} ;;
index 1143906..ff78722 100644 (file)
@@ -1,6 +1,6 @@
 --!!! Stress test for type checker
 
-module Prims where
+module ShouldSucceed where
 
 import Prelude hiding (head)
 
diff --git a/ghc/tests/typecheck/should_compile/tc089.stderr b/ghc/tests/typecheck/should_compile/tc089.stderr
new file mode 100644 (file)
index 0000000..7e29d78
--- /dev/null
@@ -0,0 +1,464 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds
+[taBv, taBy, taBB]
+[]
+[([taBv, taBy, taBB], s_3_2{-r5Z,x-}, s_3_2_aBn)]
+    s_3_2_aBn (v0_r4o, v1_r4p, v2_r4q) = v2_r4q
+AbsBinds
+[taBO, taBR, taBU]
+[]
+[([taBO, taBR, taBU], s_3_1{-r60,x-}, s_3_1_aBG)]
+    s_3_1_aBG (v0_r4k, v1_r4l, v2_r4m) = v1_r4l
+AbsBinds
+[taC7, taCa, taCd]
+[]
+[([taC7, taCa, taCd], s_3_0{-r61,x-}, s_3_0_aBZ)]
+    s_3_0_aBZ (v0_r4g, v1_r4h, v2_r4i) = v0_r4g
+AbsBinds [taCr] [] [([taCr], s_1_0{-r62,x-}, s_1_0_aCi)]
+    s_1_0_aCi v0_r4e = v0_r4e
+AbsBinds
+[taCA, taCD]
+[]
+[([taCA, taCD], s_2_1{-r63,x-}, s_2_1_aCt)]
+    s_2_1_aCt (v0_r4b, v1_r4c) = v1_r4c
+AbsBinds
+[taCP, taCS]
+[]
+[([taCP, taCS], s_2_0{-r64,x-}, s_2_0_aCI)]
+    s_2_0_aCI (v0_r48, v1_r49) = v0_r48
+AbsBinds
+[taDh, taDf]
+[]
+[([taDh, taDf], f_rec{-r66,x-}, f_rec_aCX)]
+    f_rec_aCX f0_r3Y a_r3Z = f0_r3Y s_1_0{-r62,x-} taDf a_r3Z
+AbsBinds
+[taDC, taDE, taDG]
+[]
+[([taDC, taDE, taDG], absIf{-r69,x-}, absIf_aDj)]
+    absIf_aDj a_r3N b_r3O c_r3P = a_r3N
+AbsBinds [taDP] [] [([taDP], head{-r6b,x-}, head_aDI)]
+    head_aDI (x_r3K PrelBase.:{-55,w-}{i} xs_r3L) = x_r3K
+AbsBinds [taDZ] [] [([taDZ], bottom{-r6a,x-}, bottom_aDV)]
+    bottom_aDV = head{-r6b,x-} taDZ
+AbsBinds [taEf] [] [([taEf], fac_rec0{-r5T,x-}, fac_rec0_aE1)]
+    fac_rec0_aE1 n_r4H a_r4I
+                = bottom{-r6a,x-} taEf [n_r4H, a_r4I] (taEf)
+AbsBinds [taEs] [] [([taEs], f_rec0{-r5P,x-}, f_rec0_aEj)]
+    f_rec0_aEj a_r4Q = bottom{-r6a,x-} taEs [a_r4Q] (taEs)
+AbsBinds [taEF] [] [([taEF], f_rec1{-r5Q,x-}, f_rec1_aEw)]
+    f_rec1_aEw a_r4O
+              = f_rec{-r66,x-} [taEF, taEF] f_rec0{-r5P,x-} taEF a_r4O
+AbsBinds [taEU] [] [([taEU], f_rec2{-r5R,x-}, f_rec2_aEL)]
+    f_rec2_aEL a_r4M
+              = f_rec{-r66,x-} [taEU, taEU] f_rec1{-r5Q,x-} taEU a_r4M
+AbsBinds [taF9] [] [([taF9], f{-r5S,x-}, f_aF0)]
+    f_aF0 a_r4K
+         = f_rec{-r66,x-} [taF9, taF9] f_rec2{-r5R,x-} taF9 a_r4K
+AbsBinds [taFD] [] [([taFD], g_rec0{-r5F,x-}, g_rec0_aFf)]
+    g_rec0_aFf x_r5B y_r5C z_r5D p_r5E
+              = bottom{-r6a,x-} taFD [x_r5B, y_r5C, z_r5D, p_r5E] (taFD)
+AbsBinds [taFV] [] [([taFV], absAnd{-r68,x-}, absAnd_aFH)]
+    absAnd_aFH a_r3R b_r3S = head{-r6b,x-} taFV [a_r3R, b_r3S] (taFV)
+AbsBinds [taG1] [] [([taG1], one{-r6c,x-}, one_aFZ)]
+    one_aFZ = one_aFZ
+AbsBinds
+[taGE, taH1, taH3, taH6, taH7]
+[]
+[([taGE, taH1, taH3, taH6, taH7], fac_rec{-r67,x-}, fac_rec_aG3)]
+    fac_rec_aG3 fac0_r3U n_r3V a_r3W
+               = absIf{-r69,x-} [taH7, taGE, taH1] absAnd{-r68,x-}
+                                                       taH1 s_3_0{-r61,x-} [taH1, taH6, taH3] n_r3V
+                                                            one{-r6c,x-} taH1
+                                                   s_2_0{-r64,x-} [taH7, taH6] a_r3W
+                                                   fac0_r3U absAnd{-r68,x-} taH3 s_3_2{-r5Z,x-}
+                                                                                     [taH1, taH6, taH3] n_r3V
+                                                                                 one{-r6c,x-} taH3
+                                                            absAnd{-r68,x-} taH6 s_3_1{-r60,x-}
+                                                                                     [taH1, taH6, taH3] n_r3V
+                                                                                 s_2_1{-r63,x-}
+                                                                                     [taH7, taH6] a_r3W
+AbsBinds
+[taHo, taHw, taHx]
+[]
+[([taHo, taHw, taHx], fac_rec1{-r5U,x-}, fac_rec1_aH9)]
+    fac_rec1_aH9 n_r4E a_r4F
+                = fac_rec{-r67,x-} [taHw, taHo, taHw, taHw, taHx] fac_rec0{-r5T,x-}
+                                                                      taHw
+                                                                  n_r4E
+                                                                  a_r4F
+AbsBinds
+[taHO, taHW, taHZ, taI0, taI1]
+[]
+[([taHO, taHW, taHZ, taI0, taI1], fac_rec2{-r5V,x-}, fac_rec2_aHz)]
+    fac_rec2_aHz n_r4B a_r4C
+                = fac_rec{-r67,x-}
+                      [taI0, taHO, (taI0, taHW, taHW), (taHZ, taHW), taI1] fac_rec1{-r5U,x-}
+                                                                               [taI0, taHW, taHZ]
+                                                                           n_r4B
+                                                                           a_r4C
+AbsBinds
+[taIi, taIr, taIs, taIu, taIx, taIy, taIz]
+[]
+[([taIi, taIr, taIs, taIu, taIx, taIy, taIz],
+  fac_rec3{-r5W,x-},
+  fac_rec3_aI3)]
+    fac_rec3_aI3 n_r4y a_r4z
+                = fac_rec{-r67,x-}
+                      [taIy, taIi, (taIy, (taIr, taIs), (taIu, taIs, taIs)), (taIx, (taIr, taIs)), taIz] fac_rec2{-r5V,x-}
+                                                                                                             [taIy, taIs, taIr, taIu, taIx]
+                                                                                                         n_r4y
+                                                                                                         a_r4z
+AbsBinds
+[taIQ, taJ1, taJ2, taJ3, taJ5, taJ6, taJ9, taJa, taJb]
+[]
+[([taIQ, taJ1, taJ2, taJ3, taJ5, taJ6, taJ9, taJa, taJb],
+  fac_rec4{-r5X,x-},
+  fac_rec4_aIB)]
+    fac_rec4_aIB n_r4v a_r4w
+                = fac_rec{-r67,x-}
+                      [taJa, taIQ, (taJa, (taJ1, (taJ2, taJ3)), (taJ5, (taJ2, taJ3), (taJ6, taJ3, taJ3))), (taJ9, (taJ1, (taJ2, taJ3))), taJb] fac_rec3{-r5W,x-}
+                                                                                                                                                   [taJa, taJ2, taJ3, taJ6, taJ1, taJ5, taJ9]
+                                                                                                                                               n_r4v
+                                                                                                                                               a_r4w
+AbsBinds
+[taJs, taJF, taJG, taJH, taJI, taJK, taJL, taJM, taJP, taJQ, taJR]
+[]
+[([taJs, taJF, taJG, taJH, taJI, taJK, taJL, taJM, taJP, taJQ,
+   taJR],
+  fac{-r5Y,x-},
+  fac_aJd)]
+    fac_aJd n_r4s a_r4t
+           = fac_rec{-r67,x-}
+                 [taJQ, taJs, (taJQ, (taJF, (taJG, (taJH, taJI))), (taJK, (taJG, (taJH, taJI)), (taJL, (taJH, taJI), (taJM, taJI, taJI)))), (taJP, (taJF, (taJG, (taJH, taJI)))), taJR] fac_rec4{-r5X,x-}
+                                                                                                                                                                                            [taJQ, taJG, taJH, taJI, taJL, taJM, taJF, taJK, taJP]
+                                                                                                                                                                                        n_r4s
+                                                                                                                                                                                        a_r4t
+AbsBinds
+[taKR, taL3, taL5, taL8, taLE, taLF, taLH, taLJ, taLR, taLS, taLT]
+[]
+[([taKR, taL3, taL5, taL8, taLE, taLF, taLH, taLJ, taLR, taLS,
+   taLT],
+  g_rec{-r65,x-},
+  g_rec_aJT)]
+    g_rec_aJT g0_r41 g1_r42 x_r43 y_r44 z_r45 p_r46
+             = absIf{-r69,x-} [taLF, taKR, taLS] absAnd{-r68,x-}
+                                                     taLS s_3_0{-r61,x-} [taLS, taLT, taLR] p_r46
+                                                          one{-r6c,x-} taLS
+                                                 absAnd{-r68,x-} taLF s_1_0{-r62,x-} taLF x_r43
+                                                                      s_3_0{-r61,x-}
+                                                                          [taLF, taLE, taLH] z_r45
+                                                 absAnd{-r68,x-} taKR g0_r41 s_1_0{-r62,x-}
+                                                                                 taL3 y_r44
+                                                                             one{-r6c,x-} taL5
+                                                                             one{-r6c,x-} taL8
+                                                                             absAnd{-r68,x-}
+                                                                                 taLT s_3_1{-r60,x-}
+                                                                                          [taLS, taLT, taLR] p_r46
+                                                                                      one{-r6c,x-}
+                                                                                          taLT
+                                                                      g1_r42 s_3_2{-r5Z,x-}
+                                                                                 [taLF, taLE, taLH] z_r45
+                                                                             s_3_1{-r60,x-}
+                                                                                 [taLF, taLE, taLH] z_r45
+                                                                             one{-r6c,x-} taLJ
+                                                                             absAnd{-r68,x-}
+                                                                                 taLR s_3_2{-r5Z,x-}
+                                                                                          [taLS, taLT, taLR] p_r46
+                                                                                      one{-r6c,x-}
+                                                                                          taLR
+AbsBinds
+[taMu, taMC, taMJ]
+[]
+[([taMu, taMC, taMJ], g_rec1{-r5G,x-}, g_rec1_aLX)]
+    g_rec1_aLX x_r5w y_r5x z_r5y p_r5z
+              = g_rec{-r65,x-}
+                    [taMC, taMC, taMC, taMC, taMC, taMJ, taMC, taMC, taMC, taMu, taMC] g_rec0{-r5F,x-}
+                                                                                           taMC
+                                                                                       g_rec0{-r5F,x-}
+                                                                                           taMC
+                                                                                       x_r5w
+                                                                                       y_r5x
+                                                                                       z_r5y
+                                                                                       p_r5z
+AbsBinds
+[taNi, taNo, taNq, taNu, taNz, taNB, taNF]
+[]
+[([taNi, taNo, taNq, taNu, taNz, taNB, taNF],
+  g_rec2{-r5H,x-},
+  g_rec2_aML)]
+    g_rec2_aML x_r5r y_r5s z_r5t p_r5u
+              = g_rec{-r65,x-}
+                    [taNu, taNo, taNq, (taNo, taNq, taNq), taNB, taNF, taNz, (taNz, taNB, taNB), (taNu, taNB, taNB), taNi, (taNu, taNq, taNq)] g_rec1{-r5G,x-}
+                                                                                                                                                   [taNu, taNq, taNo]
+                                                                                                                                               g_rec1{-r5G,x-}
+                                                                                                                                                   [taNu, taNB, taNz]
+                                                                                                                                               x_r5r
+                                                                                                                                               y_r5s
+                                                                                                                                               z_r5t
+                                                                                                                                               p_r5u
+AbsBinds
+[taOe, taOo, taOs, taOw, taOx, taOy, taOH, taOJ, taOL, taOP, taOQ, taOR]
+[]
+[([taOe, taOo, taOs, taOw, taOx, taOy, taOH, taOJ, taOL, taOP,
+   taOQ, taOR],
+  g_rec3{-r5I,x-},
+  g_rec3_aNH)]
+    g_rec3_aNH x_r5m y_r5n z_r5o p_r5p
+              = g_rec{-r65,x-}
+                    [taOy, taOo, GHC.Void{-3T,W-}, (taOo, taOs, GHC.Void{-3T,W-}), taOJ, taOR, taOH, (taOH, taOL, GHC.Void{-3T,W-}), (taOy, (taOP, taOQ, taOQ), (taOP, taOL, taOL)), taOe, (taOy, (taOw, taOx, taOx), (taOw, taOs, taOs))] g_rec2{-r5H,x-}
+                                                                                                                                                                                                                                               [taOy, GHC.Void{-3T,W-}, taOx, taOw, GHC.Void{-3T,W-}, taOs, taOo]
+                                                                                                                                                                                                                                           g_rec2{-r5H,x-}
+                                                                                                                                                                                                                                               [taOy, taOJ, taOQ, taOP, GHC.Void{-3T,W-}, taOL, taOH]
+                                                                                                                                                                                                                                           x_r5m
+                                                                                                                                                                                                                                           y_r5n
+                                                                                                                                                                                                                                           z_r5o
+                                                                                                                                                                                                                                           p_r5p
+AbsBinds
+[taPq, taPF, taPN, taPO, taPP, taPQ, taPR, taPS, taPT, taPU, taQ8, taQa, taQg, taQh, taQi, taQj, taQk, taQl, taQm, taQn]
+[]
+[([taPq, taPF, taPN, taPO, taPP, taPQ, taPR, taPS, taPT, taPU,
+   taQ8, taQa, taQg, taQh, taQi, taQj, taQk, taQl, taQm, taQn],
+  g_rec4{-r5J,x-},
+  g_rec4_aOT)]
+    g_rec4_aOT x_r5h y_r5i z_r5j p_r5k
+              = g_rec{-r65,x-}
+                    [taPU, taPF, GHC.Void{-3T,W-}, (taPF, GHC.Void{-3T,W-}, GHC.Void{-3T,W-}), taQa, taQn, taQ8, (taQ8, GHC.Void{-3T,W-}, GHC.Void{-3T,W-}), (taPU, (taQg, (taQh, taQi, taQi), (taQh, taQj, taQj)), (taQg, (taQk, taQl, taQl), (taQk, taQm, taQm))), taPq, (taPU, (taPN, (taPO, taPP, taPP), (taPO, taPQ, taPQ)), (taPN, (taPR, taPS, taPS), (taPR, taPT, taPT)))] g_rec3{-r5I,x-}
+                                                                                                                                                                                                                                                                                                                                                                                       [taPU, GHC.Void{-3T,W-}, taPQ, taPO, taPP, taPN, GHC.Void{-3T,W-}, GHC.Void{-3T,W-}, taPT, taPR, taPS, taPF]
+                                                                                                                                                                                                                                                                                                                                                                                   g_rec3{-r5I,x-}
+                                                                                                                                                                                                                                                                                                                                                                                       [taPU, taQa, taQj, taQh, taQi, taQg, GHC.Void{-3T,W-}, GHC.Void{-3T,W-}, taQm, taQk, taQl, taQ8]
+                                                                                                                                                                                                                                                                                                                                                                                   x_r5h
+                                                                                                                                                                                                                                                                                                                                                                                   y_r5i
+                                                                                                                                                                                                                                                                                                                                                                                   z_r5j
+                                                                                                                                                                                                                                                                                                                                                                                   p_r5k
+AbsBinds
+[taQW, taRj, taRr, taRs, taRt, taRu, taRv, taRw, taRx, taRy, taRz, taRA, taRB, taRC, taRD, taRE, taRF, taRG, taS2, taS4, taSa, taSb, taSc, taSd, taSe, taSf, taSg, taSh, taSi, taSj, taSk, taSl, taSm, taSn, taSo, taSp]
+[]
+[([taQW, taRj, taRr, taRs, taRt, taRu, taRv, taRw, taRx, taRy,
+   taRz, taRA, taRB, taRC, taRD, taRE, taRF, taRG, taS2, taS4, taSa,
+   taSb, taSc, taSd, taSe, taSf, taSg, taSh, taSi, taSj, taSk, taSl,
+   taSm, taSn, taSo, taSp],
+  g_rec5{-r5K,x-},
+  g_rec5_aQp)]
+    g_rec5_aQp x_r5c y_r5d z_r5e p_r5f
+              = g_rec{-r65,x-}
+                    [taRG, taRj, GHC.Void{-3T,W-}, (taRj, GHC.Void{-3T,W-}, GHC.Void{-3T,W-}), taS4, taSp, taS2, (taS2, GHC.Void{-3T,W-}, GHC.Void{-3T,W-}), (taRG, (taSa, (taSb, (taSc, taSd, taSd), (taSc, taSe, taSe)), (taSb, (taSf, taSg, taSg), (taSf, taSh, taSh))), (taSa, (taSi, (taSj, taSk, taSk), (taSj, taSl, taSl)), (taSi, (taSm, taSn, taSn), (taSm, taSo, taSo)))), taQW, (taRG, (taRr, (taRs, (taRt, taRu, taRu), (taRt, taRv, taRv)), (taRs, (taRw, taRx, taRx), (taRw, taRy, taRy))), (taRr, (taRz, (taRA, taRB, taRB), (taRA, taRC, taRC)), (taRz, (taRD, taRE, taRE), (taRD, taRF, taRF))))] g_rec4{-r5J,x-}
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       [taRG, GHC.Void{-3T,W-}, taRs, taRt, taRu, taRv, taRw, taRx, taRy, taRr, GHC.Void{-3T,W-}, GHC.Void{-3T,W-}, taRz, taRA, taRB, taRC, taRD, taRE, taRF, taRj]
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   g_rec4{-r5J,x-}
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       [taRG, taS4, taSb, taSc, taSd, taSe, taSf, taSg, taSh, taSa, GHC.Void{-3T,W-}, GHC.Void{-3T,W-}, taSi, taSj, taSk, taSl, taSm, taSn, taSo, taS2]
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   x_r5c
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   y_r5d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   z_r5e
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   p_r5f
+AbsBinds
+[taSY, taTB, taTJ, taTK, taTL, taTM, taTN, taTO, taTP, taTQ, taTR, taTS, taTT, taTU, taTV, taTW, taTX, taTY, taTZ, taU0, taU1, taU2, taU3, taU4, taU5, taU6, taU7, taU8, taU9, taUa, taUb, taUc, taUd, taUe, taUQ, taUS, taUY, taUZ, taV0, taV1, taV2, taV3, taV4, taV5, taV6, taV7, taV8, taV9, taVa, taVb, taVc, taVd, taVe, taVf, taVg, taVh, taVi, taVj, taVk, taVl, taVm, taVn, taVo, taVp, taVq, taVr, taVs, taVt]
+[]
+[([taSY, taTB, taTJ, taTK, taTL, taTM, taTN, taTO, taTP, taTQ,
+   taTR, taTS, taTT, taTU, taTV, taTW, taTX, taTY, taTZ, taU0, taU1,
+   taU2, taU3, taU4, taU5, taU6, taU7, taU8, taU9, taUa, taUb, taUc,
+   taUd, taUe, taUQ, taUS, taUY, taUZ, taV0, taV1, taV2, taV3, taV4,
+   taV5, taV6, taV7, taV8, taV9, taVa, taVb, taVc, taVd, taVe, taVf,
+   taVg, taVh, taVi, taVj, taVk, taVl, taVm, taVn, taVo, taVp, taVq,
+   taVr, taVs, taVt],
+  g_rec6{-r5L,x-},
+  g_rec6_aSr)]
+    g_rec6_aSr x_r57 y_r58 z_r59 p_r5a
+              = g_rec{-r65,x-}
+                    [taUe, taTB, GHC.Void{-3T,W-}, (taTB, GHC.Void{-3T,W-}, GHC.Void{-3T,W-}), taUS, taVt, taUQ, (taUQ, GHC.Void{-3T,W-}, GHC.Void{-3T,W-}), (taUe, (taUY, (taUZ, (taV0, (taV1, taV2, taV2), (taV1, taV3, taV3)), (taV0, (taV4, taV5, taV5), (taV4, taV6, taV6))), (taUZ, (taV7, (taV8, taV9, taV9), (taV8, taVa, taVa)), (taV7, (taVb, taVc, taVc), (taVb, taVd, taVd)))), (taUY, (taVe, (taVf, (taVg, taVh, taVh), (taVg, taVi, taVi)), (taVf, (taVj, taVk, taVk), (taVj, taVl, taVl))), (taVe, (taVm, (taVn, taVo, taVo), (taVn, taVp, taVp)), (taVm, (taVq, taVr, taVr), (taVq, taVs, taVs))))), taSY, (taUe, (taTJ, (taTK, (taTL, (taTM, taTN, taTN), (taTM, taTO, taTO)), (taTL, (taTP, taTQ, taTQ), (taTP, taTR, taTR))), (taTK, (taTS, (taTT, taTU, taTU), (taTT, taTV, taTV)), (taTS, (taTW, taTX, taTX), (taTW, taTY, taTY)))), (taTJ, (taTZ, (taU0, (taU1, taU2, taU2), (taU1, taU3, taU3)), (taU0, (taU4, taU5, taU5), (taU4, taU6, taU6))), (taTZ, (taU7, (taU8, taU9, taU9), (taU8, taUa, taUa)), (taU7, (taUb, taUc, taUc), (taUb, taUd, taUd)))))] g_rec5{-r5K,x-}
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       [taUe, GHC.Void{-3T,W-}, taTK, taTL, taTM, taTN, taTO, taTP, taTQ, taTR, taTS, taTT, taTU, taTV, taTW, taTX, taTY, taTJ, GHC.Void{-3T,W-}, GHC.Void{-3T,W-}, taTZ, taU0, taU1, taU2, taU3, taU4, taU5, taU6, taU7, taU8, taU9, taUa, taUb, taUc, taUd, taTB]
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   g_rec5{-r5K,x-}
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       [taUe, taUS, taUZ, taV0, taV1, taV2, taV3, taV4, taV5, taV6, taV7, taV8, taV9, taVa, taVb, taVc, taVd, taUY, GHC.Void{-3T,W-}, GHC.Void{-3T,W-}, taVe, taVf, taVg, taVh, taVi, taVj, taVk, taVl, taVm, taVn, taVo, taVp, taVq, taVr, taVs, taUQ]
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   x_r57
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   y_r58
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   z_r59
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   p_r5a
+AbsBinds
+[taW2, taXb, taXj, taXk, taXl, taXm, taXn, taXo, taXp, taXq, taXr, taXs, taXt, taXu, taXv, taXw, taXx, taXy, taXz, taXA, taXB, taXC, taXD, taXE, taXF, taXG, taXH, taXI, taXJ, taXK, taXL, taXM, taXN, taXO, taXP, taXQ, taXR, taXS, taXT, taXU, taXV, taXW, taXX, taXY, taXZ, taY0, taY1, taY2, taY3, taY4, taY5, taY6, taY7, taY8, taY9, taYa, taYb, taYc, taYd, taYe, taYf, taYg, taYh, taYi, taYj, taYk, taZs, taZu, taZA, taZB, taZC, taZD, taZE, taZF, taZG, taZH, taZI, taZJ, taZK, taZL, taZM, taZN, taZO, taZP, taZQ, taZR, taZS, taZT, taZU, taZV, taZW, taZX, taZY, taZZ, ta100, ta101, ta102, ta103, ta104, ta105, ta106, ta107, ta108, ta109, ta10a, ta10b, ta10c, ta10d, ta10e, ta10f, ta10g, ta10h, ta10i, ta10j, ta10k, ta10l, ta10m, ta10n, ta10o, ta10p, ta10q, ta10r, ta10s, ta10t, ta10u, ta10v, ta10w, ta10x, ta10y, ta10z, ta10A, ta10B]
+[]
+[([taW2, taXb, taXj, taXk, taXl, taXm, taXn, taXo, taXp, taXq,
+   taXr, taXs, taXt, taXu, taXv, taXw, taXx, taXy, taXz, taXA, taXB,
+   taXC, taXD, taXE, taXF, taXG, taXH, taXI, taXJ, taXK, taXL, taXM,
+   taXN, taXO, taXP, taXQ, taXR, taXS, taXT, taXU, taXV, taXW, taXX,
+   taXY, taXZ, taY0, taY1, taY2, taY3, taY4, taY5, taY6, taY7, taY8,
+   taY9, taYa, taYb, taYc, taYd, taYe, taYf, taYg, taYh, taYi, taYj,
+   taYk, taZs, taZu, taZA, taZB, taZC, taZD, taZE, taZF, taZG, taZH,
+   taZI, taZJ, taZK, taZL, taZM, taZN, taZO, taZP, taZQ, taZR, taZS,
+   taZT, taZU, taZV, taZW, taZX, taZY, taZZ, ta100, ta101, ta102,
+   ta103, ta104, ta105, ta106, ta107, ta108, ta109, ta10a, ta10b,
+   ta10c, ta10d, ta10e, ta10f, ta10g, ta10h, ta10i, ta10j, ta10k,
+   ta10l, ta10m, ta10n, ta10o, ta10p, ta10q, ta10r, ta10s, ta10t,
+   ta10u, ta10v, ta10w, ta10x, ta10y, ta10z, ta10A, ta10B],
+  g_rec7{-r5M,x-},
+  g_rec7_aVv)]
+    g_rec7_aVv x_r52 y_r53 z_r54 p_r55
+              = g_rec{-r65,x-}
+                    [taYk, taXb, GHC.Void{-3T,W-}, (taXb, GHC.Void{-3T,W-}, GHC.Void{-3T,W-}), taZu, ta10B, taZs, (taZs, GHC.Void{-3T,W-}, GHC.Void{-3T,W-}), (taYk, (taZA, (taZB, (taZC, (taZD, (taZE, taZF, taZF), (taZE, taZG, taZG)), (taZD, (taZH, taZI, taZI), (taZH, taZJ, taZJ))), (taZC, (taZK, (taZL, taZM, taZM), (taZL, taZN, taZN)), (taZK, (taZO, taZP, taZP), (taZO, taZQ, taZQ)))), (taZB, (taZR, (taZS, (taZT, taZU, taZU), (taZT, taZV, taZV)), (taZS, (taZW, taZX, taZX), (taZW, taZY, taZY))), (taZR, (taZZ, (ta100, ta101, ta101), (ta100, ta102, ta102)), (taZZ, (ta103, ta104, ta104), (ta103, ta105, ta105))))), (taZA, (ta106, (ta107, (ta108, (ta109, ta10a, ta10a), (ta109, ta10b, ta10b)), (ta108, (ta10c, ta10d, ta10d), (ta10c, ta10e, ta10e))), (ta107, (ta10f, (ta10g, ta10h, ta10h), (ta10g, ta10i, ta10i)), (ta10f, (ta10j, ta10k, ta10k), (ta10j, ta10l, ta10l)))), (ta106, (ta10m, (ta10n, (ta10o, ta10p, ta10p), (ta10o, ta10q, ta10q)), (ta10n, (ta10r, ta10s, ta10s), (ta10r, ta10t, ta10t))), (ta10m, (ta10u, (ta10v, ta10w, ta10w), (ta10v, ta10x, ta10x)), (ta10u, (ta10y, ta10z, ta10z), (ta10y, ta10A, ta10A)))))), taW2, (taYk, (taXj, (taXk, (taXl, (taXm, (taXn, taXo, taXo), (taXn, taXp, taXp)), (taXm, (taXq, taXr, taXr), (taXq, taXs, taXs))), (taXl, (taXt, (taXu, taXv, taXv), (taXu, taXw, taXw)), (taXt, (taXx, taXy, taXy), (taXx, taXz, taXz)))), (taXk, (taXA, (taXB, (taXC, taXD, taXD), (taXC, taXE, taXE)), (taXB, (taXF, taXG, taXG), (taXF, taXH, taXH))), (taXA, (taXI, (taXJ, taXK, taXK), (taXJ, taXL, taXL)), (taXI, (taXM, taXN, taXN), (taXM, taXO, taXO))))), (taXj, (taXP, (taXQ, (taXR, (taXS, taXT, taXT), (taXS, taXU, taXU)), (taXR, (taXV, taXW, taXW), (taXV, taXX, taXX))), (taXQ, (taXY, (taXZ, taY0, taY0), (taXZ, taY1, taY1)), (taXY, (taY2, taY3, taY3), (taY2, taY4, taY4)))), (taXP, (taY5, (taY6, (taY7, taY8, taY8), (taY7, taY9, taY9)), (taY6, (taYa, taYb, taYb), (taYa, taYc, taYc))), (taY5, (taYd, (taYe, taYf, taYf), (taYe, taYg, taYg)), (taYd, (taYh, taYi, taYi), (taYh, taYj, taYj))))))] g_rec6{-r5L,x-}
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  [taYk, GHC.Void{-3T,W-}, taXk, taXl, taXm, taXn, taXo, taXp, taXq, taXr, taXs, taXt, taXu, taXv, taXw, taXx, taXy, taXz, taXA, taXB, taXC, taXD, taXE, taXF, taXG, taXH, taXI, taXJ, taXK, taXL, taXM, taXN, taXO, taXj, GHC.Void{-3T,W-}, GHC.Void{-3T,W-}, taXP, taXQ, taXR, taXS, taXT, taXU, taXV, taXW, taXX, taXY, taXZ, taY0, taY1, taY2, taY3, taY4, taY5, taY6, taY7, taY8, taY9, taYa, taYb, taYc, taYd, taYe, taYf, taYg, taYh, taYi, taYj, taXb]
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              g_rec6{-r5L,x-}
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  [taYk, taZu, taZB, taZC, taZD, taZE, taZF, taZG, taZH, taZI, taZJ, taZK, taZL, taZM, taZN, taZO, taZP, taZQ, taZR, taZS, taZT, taZU, taZV, taZW, taZX, taZY, taZZ, ta100, ta101, ta102, ta103, ta104, ta105, taZA, GHC.Void{-3T,W-}, GHC.Void{-3T,W-}, ta106, ta107, ta108, ta109, ta10a, ta10b, ta10c, ta10d, ta10e, ta10f, ta10g, ta10h, ta10i, ta10j, ta10k, ta10l, ta10m, ta10n, ta10o, ta10p, ta10q, ta10r, ta10s, ta10t, ta10u, ta10v, ta10w, ta10x, ta10y, ta10z, ta10A, taZs]
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              x_r52
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              y_r53
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              z_r54
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              p_r55
+AbsBinds
+[ta11a, ta13l, ta13t, ta13u, ta13v, ta13w, ta13x, ta13y, ta13z, ta13A, ta13B, ta13C, ta13D, ta13E, ta13F, ta13G, ta13H, ta13I, ta13J, ta13K, ta13L, ta13M, ta13N, ta13O, ta13P, ta13Q, ta13R, ta13S, ta13T, ta13U, ta13V, ta13W, ta13X, ta13Y, ta13Z, ta140, ta141, ta142, ta143, ta144, ta145, ta146, ta147, ta148, ta149, ta14a, ta14b, ta14c, ta14d, ta14e, ta14f, ta14g, ta14h, ta14i, ta14j, ta14k, ta14l, ta14m, ta14n, ta14o, ta14p, ta14q, ta14r, ta14s, ta14t, ta14u, ta14v, ta14w, ta14x, ta14y, ta14z, ta14A, ta14B, ta14C, ta14D, ta14E, ta14F, ta14G, ta14H, ta14I, ta14J, ta14K, ta14L, ta14M, ta14N, ta14O, ta14P, ta14Q, ta14R, ta14S, ta14T, ta14U, ta14V, ta14W, ta14X, ta14Y, ta14Z, ta150, ta151, ta152, ta153, ta154, ta155, ta156, ta157, ta158, ta159, ta15a, ta15b, ta15c, ta15d, ta15e, ta15f, ta15g, ta15h, ta15i, ta15j, ta15k, ta15l, ta15m, ta15n, ta15o, ta15p, ta15q, ta15r, ta15s, ta15t, ta15u, ta15v, ta15w, ta17G, ta17I, ta17O, ta17P, ta17Q, ta17R, ta17S, ta17T, ta17U, ta17V, ta17W, ta17X, ta17Y, ta17Z, ta180, ta181, ta182, ta183, ta184, ta185, ta186, ta187, ta188, ta189, ta18a, ta18b, ta18c, ta18d, ta18e, ta18f, ta18g, ta18h, ta18i, ta18j, ta18k, ta18l, ta18m, ta18n, ta18o, ta18p, ta18q, ta18r, ta18s, ta18t, ta18u, ta18v, ta18w, ta18x, ta18y, ta18z, ta18A, ta18B, ta18C, ta18D, ta18E, ta18F, ta18G, ta18H, ta18I, ta18J, ta18K, ta18L, ta18M, ta18N, ta18O, ta18P, ta18Q, ta18R, ta18S, ta18T, ta18U, ta18V, ta18W, ta18X, ta18Y, ta18Z, ta190, ta191, ta192, ta193, ta194, ta195, ta196, ta197, ta198, ta199, ta19a, ta19b, ta19c, ta19d, ta19e, ta19f, ta19g, ta19h, ta19i, ta19j, ta19k, ta19l, ta19m, ta19n, ta19o, ta19p, ta19q, ta19r, ta19s, ta19t, ta19u, ta19v, ta19w, ta19x, ta19y, ta19z, ta19A, ta19B, ta19C, ta19D, ta19E, ta19F, ta19G, ta19H, ta19I, ta19J, ta19K, ta19L, ta19M, ta19N, ta19O, ta19P, ta19Q, ta19R]
+[]
+[([ta11a, ta13l, ta13t, ta13u, ta13v, ta13w, ta13x, ta13y, ta13z,
+   ta13A, ta13B, ta13C, ta13D, ta13E, ta13F, ta13G, ta13H, ta13I,
+   ta13J, ta13K, ta13L, ta13M, ta13N, ta13O, ta13P, ta13Q, ta13R,
+   ta13S, ta13T, ta13U, ta13V, ta13W, ta13X, ta13Y, ta13Z, ta140,
+   ta141, ta142, ta143, ta144, ta145, ta146, ta147, ta148, ta149,
+   ta14a, ta14b, ta14c, ta14d, ta14e, ta14f, ta14g, ta14h, ta14i,
+   ta14j, ta14k, ta14l, ta14m, ta14n, ta14o, ta14p, ta14q, ta14r,
+   ta14s, ta14t, ta14u, ta14v, ta14w, ta14x, ta14y, ta14z, ta14A,
+   ta14B, ta14C, ta14D, ta14E, ta14F, ta14G, ta14H, ta14I, ta14J,
+   ta14K, ta14L, ta14M, ta14N, ta14O, ta14P, ta14Q, ta14R, ta14S,
+   ta14T, ta14U, ta14V, ta14W, ta14X, ta14Y, ta14Z, ta150, ta151,
+   ta152, ta153, ta154, ta155, ta156, ta157, ta158, ta159, ta15a,
+   ta15b, ta15c, ta15d, ta15e, ta15f, ta15g, ta15h, ta15i, ta15j,
+   ta15k, ta15l, ta15m, ta15n, ta15o, ta15p, ta15q, ta15r, ta15s,
+   ta15t, ta15u, ta15v, ta15w, ta17G, ta17I, ta17O, ta17P, ta17Q,
+   ta17R, ta17S, ta17T, ta17U, ta17V, ta17W, ta17X, ta17Y, ta17Z,
+   ta180, ta181, ta182, ta183, ta184, ta185, ta186, ta187, ta188,
+   ta189, ta18a, ta18b, ta18c, ta18d, ta18e, ta18f, ta18g, ta18h,
+   ta18i, ta18j, ta18k, ta18l, ta18m, ta18n, ta18o, ta18p, ta18q,
+   ta18r, ta18s, ta18t, ta18u, ta18v, ta18w, ta18x, ta18y, ta18z,
+   ta18A, ta18B, ta18C, ta18D, ta18E, ta18F, ta18G, ta18H, ta18I,
+   ta18J, ta18K, ta18L, ta18M, ta18N, ta18O, ta18P, ta18Q, ta18R,
+   ta18S, ta18T, ta18U, ta18V, ta18W, ta18X, ta18Y, ta18Z, ta190,
+   ta191, ta192, ta193, ta194, ta195, ta196, ta197, ta198, ta199,
+   ta19a, ta19b, ta19c, ta19d, ta19e, ta19f, ta19g, ta19h, ta19i,
+   ta19j, ta19k, ta19l, ta19m, ta19n, ta19o, ta19p, ta19q, ta19r,
+   ta19s, ta19t, ta19u, ta19v, ta19w, ta19x, ta19y, ta19z, ta19A,
+   ta19B, ta19C, ta19D, ta19E, ta19F, ta19G, ta19H, ta19I, ta19J,
+   ta19K, ta19L, ta19M, ta19N, ta19O, ta19P, ta19Q, ta19R],
+  g_rec8{-r5N,x-},
+  g_rec8_a10D)]
+    g_rec8_a10D x_r4X y_r4Y z_r4Z p_r50
+               = g_rec{-r65,x-}
+                     [ta15w, ta13l, GHC.Void{-3T,W-}, (ta13l, GHC.Void{-3T,W-}, GHC.Void{-3T,W-}), ta17I, ta19R, ta17G, (ta17G, GHC.Void{-3T,W-}, GHC.Void{-3T,W-}), (ta15w, (ta17O, (ta17P, (ta17Q, (ta17R, (ta17S, (ta17T, ta17U, ta17U), (ta17T, ta17V, ta17V)), (ta17S, (ta17W, ta17X, ta17X), (ta17W, ta17Y, ta17Y))), (ta17R, (ta17Z, (ta180, ta181, ta181), (ta180, ta182, ta182)), (ta17Z, (ta183, ta184, ta184), (ta183, ta185, ta185)))), (ta17Q, (ta186, (ta187, (ta188, ta189, ta189), (ta188, ta18a, ta18a)), (ta187, (ta18b, ta18c, ta18c), (ta18b, ta18d, ta18d))), (ta186, (ta18e, (ta18f, ta18g, ta18g), (ta18f, ta18h, ta18h)), (ta18e, (ta18i, ta18j, ta18j), (ta18i, ta18k, ta18k))))), (ta17P, (ta18l, (ta18m, (ta18n, (ta18o, ta18p, ta18p), (ta18o, ta18q, ta18q)), (ta18n, (ta18r, ta18s, ta18s), (ta18r, ta18t, ta18t))), (ta18m, (ta18u, (ta18v, ta18w, ta18w), (ta18v, ta18x, ta18x)), (ta18u, (ta18y, ta18z, ta18z), (ta18y, ta18A, ta18A)))), (ta18l, (ta18B, (ta18C, (ta18D, ta18E, ta18E), (ta18D, ta18F, ta18F)), (ta18C, (ta18G, ta18H, ta18H), (ta18G, ta18I, ta18I))), (ta18B, (ta18J, (ta18K, ta18L, ta18L), (ta18K, ta18M, ta18M)), (ta18J, (ta18N, ta18O, ta18O), (ta18N, ta18P, ta18P)))))), (ta17O, (ta18Q, (ta18R, (ta18S, (ta18T, (ta18U, ta18V, ta18V), (ta18U, ta18W, ta18W)), (ta18T, (ta18X, ta18Y, ta18Y), (ta18X, ta18Z, ta18Z))), (ta18S, (ta190, (ta191, ta192, ta192), (ta191, ta193, ta193)), (ta190, (ta194, ta195, ta195), (ta194, ta196, ta196)))), (ta18R, (ta197, (ta198, (ta199, ta19a, ta19a), (ta199, ta19b, ta19b)), (ta198, (ta19c, ta19d, ta19d), (ta19c, ta19e, ta19e))), (ta197, (ta19f, (ta19g, ta19h, ta19h), (ta19g, ta19i, ta19i)), (ta19f, (ta19j, ta19k, ta19k), (ta19j, ta19l, ta19l))))), (ta18Q, (ta19m, (ta19n, (ta19o, (ta19p, ta19q, ta19q), (ta19p, ta19r, ta19r)), (ta19o, (ta19s, ta19t, ta19t), (ta19s, ta19u, ta19u))), (ta19n, (ta19v, (ta19w, ta19x, ta19x), (ta19w, ta19y, ta19y)), (ta19v, (ta19z, ta19A, ta19A), (ta19z, ta19B, ta19B)))), (ta19m, (ta19C, (ta19D, (ta19E, ta19F, ta19F), (ta19E, ta19G, ta19G)), (ta19D, (ta19H, ta19I, ta19I), (ta19H, ta19J, ta19J))), (ta19C, (ta19K, (ta19L, ta19M, ta19M), (ta19L, ta19N, ta19N)), (ta19K, (ta19O, ta19P, ta19P), (ta19O, ta19Q, ta19Q))))))), ta11a, (ta15w, (ta13t, (ta13u, (ta13v, (ta13w, (ta13x, (ta13y, ta13z, ta13z), (ta13y, ta13A, ta13A)), (ta13x, (ta13B, ta13C, ta13C), (ta13B, ta13D, ta13D))), (ta13w, (ta13E, (ta13F, ta13G, ta13G), (ta13F, ta13H, ta13H)), (ta13E, (ta13I, ta13J, ta13J), (ta13I, ta13K, ta13K)))), (ta13v, (ta13L, (ta13M, (ta13N, ta13O, ta13O), (ta13N, ta13P, ta13P)), (ta13M, (ta13Q, ta13R, ta13R), (ta13Q, ta13S, ta13S))), (ta13L, (ta13T, (ta13U, ta13V, ta13V), (ta13U, ta13W, ta13W)), (ta13T, (ta13X, ta13Y, ta13Y), (ta13X, ta13Z, ta13Z))))), (ta13u, (ta140, (ta141, (ta142, (ta143, ta144, ta144), (ta143, ta145, ta145)), (ta142, (ta146, ta147, ta147), (ta146, ta148, ta148))), (ta141, (ta149, (ta14a, ta14b, ta14b), (ta14a, ta14c, ta14c)), (ta149, (ta14d, ta14e, ta14e), (ta14d, ta14f, ta14f)))), (ta140, (ta14g, (ta14h, (ta14i, ta14j, ta14j), (ta14i, ta14k, ta14k)), (ta14h, (ta14l, ta14m, ta14m), (ta14l, ta14n, ta14n))), (ta14g, (ta14o, (ta14p, ta14q, ta14q), (ta14p, ta14r, ta14r)), (ta14o, (ta14s, ta14t, ta14t), (ta14s, ta14u, ta14u)))))), (ta13t, (ta14v, (ta14w, (ta14x, (ta14y, (ta14z, ta14A, ta14A), (ta14z, ta14B, ta14B)), (ta14y, (ta14C, ta14D, ta14D), (ta14C, ta14E, ta14E))), (ta14x, (ta14F, (ta14G, ta14H, ta14H), (ta14G, ta14I, ta14I)), (ta14F, (ta14J, ta14K, ta14K), (ta14J, ta14L, ta14L)))), (ta14w, (ta14M, (ta14N, (ta14O, ta14P, ta14P), (ta14O, ta14Q, ta14Q)), (ta14N, (ta14R, ta14S, ta14S), (ta14R, ta14T, ta14T))), (ta14M, (ta14U, (ta14V, ta14W, ta14W), (ta14V, ta14X, ta14X)), (ta14U, (ta14Y, ta14Z, ta14Z), (ta14Y, ta150, ta150))))), (ta14v, (ta151, (ta152, (ta153, (ta154, ta155, ta155), (ta154, ta156, ta156)), (ta153, (ta157, ta158, ta158), (ta157, ta159, ta159))), (ta152, (ta15a, (ta15b, ta15c, ta15c), (ta15b, ta15d, ta15d)), (ta15a, (ta15e, ta15f, ta15f), (ta15e, ta15g, ta15g)))), (ta151, (ta15h, (ta15i, (ta15j, ta15k, ta15k), (ta15j, ta15l, ta15l)), (ta15i, (ta15m, ta15n, ta15n), (ta15m, ta15o, ta15o))), (ta15h, (ta15p, (ta15q, ta15r, ta15r), (ta15q, ta15s, ta15s)), (ta15p, (ta15t, ta15u, ta15u), (ta15t, ta15v, ta15v)))))))] g_rec7{-r5M,x-}
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              [ta15w, GHC.Void{-3T,W-}, ta13u, ta13v, ta13w, ta13x, ta13y, ta13z, ta13A, ta13B, ta13C, ta13D, ta13E, ta13F, ta13G, ta13H, ta13I, ta13J, ta13K, ta13L, ta13M, ta13N, ta13O, ta13P, ta13Q, ta13R, ta13S, ta13T, ta13U, ta13V, ta13W, ta13X, ta13Y, ta13Z, ta140, ta141, ta142, ta143, ta144, ta145, ta146, ta147, ta148, ta149, ta14a, ta14b, ta14c, ta14d, ta14e, ta14f, ta14g, ta14h, ta14i, ta14j, ta14k, ta14l, ta14m, ta14n, ta14o, ta14p, ta14q, ta14r, ta14s, ta14t, ta14u, ta13t, GHC.Void{-3T,W-}, GHC.Void{-3T,W-}, ta14v, ta14w, ta14x, ta14y, ta14z, ta14A, ta14B, ta14C, ta14D, ta14E, ta14F, ta14G, ta14H, ta14I, ta14J, ta14K, ta14L, ta14M, ta14N, ta14O, ta14P, ta14Q, ta14R, ta14S, ta14T, ta14U, ta14V, ta14W, ta14X, ta14Y, ta14Z, ta150, ta151, ta152, ta153, ta154, ta155, ta156, ta157, ta158, ta159, ta15a, ta15b, ta15c, ta15d, ta15e, ta15f, ta15g, ta15h, ta15i, ta15j, ta15k, ta15l, ta15m, ta15n, ta15o, ta15p, ta15q, ta15r, ta15s, ta15t, ta15u, ta15v, ta13l]
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          g_rec7{-r5M,x-}
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              [ta15w, ta17I, ta17P, ta17Q, ta17R, ta17S, ta17T, ta17U, ta17V, ta17W, ta17X, ta17Y, ta17Z, ta180, ta181, ta182, ta183, ta184, ta185, ta186, ta187, ta188, ta189, ta18a, ta18b, ta18c, ta18d, ta18e, ta18f, ta18g, ta18h, ta18i, ta18j, ta18k, ta18l, ta18m, ta18n, ta18o, ta18p, ta18q, ta18r, ta18s, ta18t, ta18u, ta18v, ta18w, ta18x, ta18y, ta18z, ta18A, ta18B, ta18C, ta18D, ta18E, ta18F, ta18G, ta18H, ta18I, ta18J, ta18K, ta18L, ta18M, ta18N, ta18O, ta18P, ta17O, GHC.Void{-3T,W-}, GHC.Void{-3T,W-}, ta18Q, ta18R, ta18S, ta18T, ta18U, ta18V, ta18W, ta18X, ta18Y, ta18Z, ta190, ta191, ta192, ta193, ta194, ta195, ta196, ta197, ta198, ta199, ta19a, ta19b, ta19c, ta19d, ta19e, ta19f, ta19g, ta19h, ta19i, ta19j, ta19k, ta19l, ta19m, ta19n, ta19o, ta19p, ta19q, ta19r, ta19s, ta19t, ta19u, ta19v, ta19w, ta19x, ta19y, ta19z, ta19A, ta19B, ta19C, ta19D, ta19E, ta19F, ta19G, ta19H, ta19I, ta19J, ta19K, ta19L, ta19M, ta19N, ta19O, ta19P, ta19Q, ta17G]
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          x_r4X
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          y_r4Y
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          z_r4Z
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          p_r50
+AbsBinds
+[ta1aq, ta1eF, ta1eN, ta1eO, ta1eP, ta1eQ, ta1eR, ta1eS, ta1eT, ta1eU, ta1eV, ta1eW, ta1eX, ta1eY, ta1eZ, ta1f0, ta1f1, ta1f2, ta1f3, ta1f4, ta1f5, ta1f6, ta1f7, ta1f8, ta1f9, ta1fa, ta1fb, ta1fc, ta1fd, ta1fe, ta1ff, ta1fg, ta1fh, ta1fi, ta1fj, ta1fk, ta1fl, ta1fm, ta1fn, ta1fo, ta1fp, ta1fq, ta1fr, ta1fs, ta1ft, ta1fu, ta1fv, ta1fw, ta1fx, ta1fy, ta1fz, ta1fA, ta1fB, ta1fC, ta1fD, ta1fE, ta1fF, ta1fG, ta1fH, ta1fI, ta1fJ, ta1fK, ta1fL, ta1fM, ta1fN, ta1fO, ta1fP, ta1fQ, ta1fR, ta1fS, ta1fT, ta1fU, ta1fV, ta1fW, ta1fX, ta1fY, ta1fZ, ta1g0, ta1g1, ta1g2, ta1g3, ta1g4, ta1g5, ta1g6, ta1g7, ta1g8, ta1g9, ta1ga, ta1gb, ta1gc, ta1gd, ta1ge, ta1gf, ta1gg, ta1gh, ta1gi, ta1gj, ta1gk, ta1gl, ta1gm, ta1gn, ta1go, ta1gp, ta1gq, ta1gr, ta1gs, ta1gt, ta1gu, ta1gv, ta1gw, ta1gx, ta1gy, ta1gz, ta1gA, ta1gB, ta1gC, ta1gD, ta1gE, ta1gF, ta1gG, ta1gH, ta1gI, ta1gJ, ta1gK, ta1gL, ta1gM, ta1gN, ta1gO, ta1gP, ta1gQ, ta1gR, ta1gS, ta1gT, ta1gU, ta1gV, ta1gW, ta1gX, ta1gY, ta1gZ, ta1h0, ta1h1, ta1h2, ta1h3, ta1h4, ta1h5, ta1h6, ta1h7, ta1h8, ta1h9, ta1ha, ta1hb, ta1hc, ta1hd, ta1he, ta1hf, ta1hg, ta1hh, ta1hi, ta1hj, ta1hk, ta1hl, ta1hm, ta1hn, ta1ho, ta1hp, ta1hq, ta1hr, ta1hs, ta1ht, ta1hu, ta1hv, ta1hw, ta1hx, ta1hy, ta1hz, ta1hA, ta1hB, ta1hC, ta1hD, ta1hE, ta1hF, ta1hG, ta1hH, ta1hI, ta1hJ, ta1hK, ta1hL, ta1hM, ta1hN, ta1hO, ta1hP, ta1hQ, ta1hR, ta1hS, ta1hT, ta1hU, ta1hV, ta1hW, ta1hX, ta1hY, ta1hZ, ta1i0, ta1i1, ta1i2, ta1i3, ta1i4, ta1i5, ta1i6, ta1i7, ta1i8, ta1i9, ta1ia, ta1ib, ta1ic, ta1id, ta1ie, ta1if, ta1ig, ta1ih, ta1ii, ta1ij, ta1ik, ta1il, ta1im, ta1in, ta1io, ta1ip, ta1iq, ta1ir, ta1is, ta1it, ta1iu, ta1iv, ta1iw, ta1ix, ta1iy, ta1iz, ta1iA, ta1iB, ta1iC, ta1iD, ta1iE, ta1iF, ta1iG, ta1iH, ta1iI, ta1iJ, ta1iK, ta1iL, ta1iM, ta1iN, ta1iO, ta1iP, ta1iQ, ta1iR, ta1iS, ta1iT, ta1iU, ta1n8, ta1na, ta1ng, ta1nh, ta1ni, ta1nj, ta1nk, ta1nl, ta1nm, ta1nn, ta1no, ta1np, ta1nq, ta1nr, ta1ns, ta1nt, ta1nu, ta1nv, ta1nw, ta1nx, ta1ny, ta1nz, ta1nA, ta1nB, ta1nC, ta1nD, ta1nE, ta1nF, ta1nG, ta1nH, ta1nI, ta1nJ, ta1nK, ta1nL, ta1nM, ta1nN, ta1nO, ta1nP, ta1nQ, ta1nR, ta1nS, ta1nT, ta1nU, ta1nV, ta1nW, ta1nX, ta1nY, ta1nZ, ta1o0, ta1o1, ta1o2, ta1o3, ta1o4, ta1o5, ta1o6, ta1o7, ta1o8, ta1o9, ta1oa, ta1ob, ta1oc, ta1od, ta1oe, ta1of, ta1og, ta1oh, ta1oi, ta1oj, ta1ok, ta1ol, ta1om, ta1on, ta1oo, ta1op, ta1oq, ta1or, ta1os, ta1ot, ta1ou, ta1ov, ta1ow, ta1ox, ta1oy, ta1oz, ta1oA, ta1oB, ta1oC, ta1oD, ta1oE, ta1oF, ta1oG, ta1oH, ta1oI, ta1oJ, ta1oK, ta1oL, ta1oM, ta1oN, ta1oO, ta1oP, ta1oQ, ta1oR, ta1oS, ta1oT, ta1oU, ta1oV, ta1oW, ta1oX, ta1oY, ta1oZ, ta1p0, ta1p1, ta1p2, ta1p3, ta1p4, ta1p5, ta1p6, ta1p7, ta1p8, ta1p9, ta1pa, ta1pb, ta1pc, ta1pd, ta1pe, ta1pf, ta1pg, ta1ph, ta1pi, ta1pj, ta1pk, ta1pl, ta1pm, ta1pn, ta1po, ta1pp, ta1pq, ta1pr, ta1ps, ta1pt, ta1pu, ta1pv, ta1pw, ta1px, ta1py, ta1pz, ta1pA, ta1pB, ta1pC, ta1pD, ta1pE, ta1pF, ta1pG, ta1pH, ta1pI, ta1pJ, ta1pK, ta1pL, ta1pM, ta1pN, ta1pO, ta1pP, ta1pQ, ta1pR, ta1pS, ta1pT, ta1pU, ta1pV, ta1pW, ta1pX, ta1pY, ta1pZ, ta1q0, ta1q1, ta1q2, ta1q3, ta1q4, ta1q5, ta1q6, ta1q7, ta1q8, ta1q9, ta1qa, ta1qb, ta1qc, ta1qd, ta1qe, ta1qf, ta1qg, ta1qh, ta1qi, ta1qj, ta1qk, ta1ql, ta1qm, ta1qn, ta1qo, ta1qp, ta1qq, ta1qr, ta1qs, ta1qt, ta1qu, ta1qv, ta1qw, ta1qx, ta1qy, ta1qz, ta1qA, ta1qB, ta1qC, ta1qD, ta1qE, ta1qF, ta1qG, ta1qH, ta1qI, ta1qJ, ta1qK, ta1qL, ta1qM, ta1qN, ta1qO, ta1qP, ta1qQ, ta1qR, ta1qS, ta1qT, ta1qU, ta1qV, ta1qW, ta1qX, ta1qY, ta1qZ, ta1r0, ta1r1, ta1r2, ta1r3, ta1r4, ta1r5, ta1r6, ta1r7, ta1r8, ta1r9, ta1ra, ta1rb, ta1rc, ta1rd, ta1re, ta1rf, ta1rg, ta1rh, ta1ri, ta1rj, ta1rk, ta1rl, ta1rm, ta1rn]
+[]
+[([ta1aq, ta1eF, ta1eN, ta1eO, ta1eP, ta1eQ, ta1eR, ta1eS, ta1eT,
+   ta1eU, ta1eV, ta1eW, ta1eX, ta1eY, ta1eZ, ta1f0, ta1f1, ta1f2,
+   ta1f3, ta1f4, ta1f5, ta1f6, ta1f7, ta1f8, ta1f9, ta1fa, ta1fb,
+   ta1fc, ta1fd, ta1fe, ta1ff, ta1fg, ta1fh, ta1fi, ta1fj, ta1fk,
+   ta1fl, ta1fm, ta1fn, ta1fo, ta1fp, ta1fq, ta1fr, ta1fs, ta1ft,
+   ta1fu, ta1fv, ta1fw, ta1fx, ta1fy, ta1fz, ta1fA, ta1fB, ta1fC,
+   ta1fD, ta1fE, ta1fF, ta1fG, ta1fH, ta1fI, ta1fJ, ta1fK, ta1fL,
+   ta1fM, ta1fN, ta1fO, ta1fP, ta1fQ, ta1fR, ta1fS, ta1fT, ta1fU,
+   ta1fV, ta1fW, ta1fX, ta1fY, ta1fZ, ta1g0, ta1g1, ta1g2, ta1g3,
+   ta1g4, ta1g5, ta1g6, ta1g7, ta1g8, ta1g9, ta1ga, ta1gb, ta1gc,
+   ta1gd, ta1ge, ta1gf, ta1gg, ta1gh, ta1gi, ta1gj, ta1gk, ta1gl,
+   ta1gm, ta1gn, ta1go, ta1gp, ta1gq, ta1gr, ta1gs, ta1gt, ta1gu,
+   ta1gv, ta1gw, ta1gx, ta1gy, ta1gz, ta1gA, ta1gB, ta1gC, ta1gD,
+   ta1gE, ta1gF, ta1gG, ta1gH, ta1gI, ta1gJ, ta1gK, ta1gL, ta1gM,
+   ta1gN, ta1gO, ta1gP, ta1gQ, ta1gR, ta1gS, ta1gT, ta1gU, ta1gV,
+   ta1gW, ta1gX, ta1gY, ta1gZ, ta1h0, ta1h1, ta1h2, ta1h3, ta1h4,
+   ta1h5, ta1h6, ta1h7, ta1h8, ta1h9, ta1ha, ta1hb, ta1hc, ta1hd,
+   ta1he, ta1hf, ta1hg, ta1hh, ta1hi, ta1hj, ta1hk, ta1hl, ta1hm,
+   ta1hn, ta1ho, ta1hp, ta1hq, ta1hr, ta1hs, ta1ht, ta1hu, ta1hv,
+   ta1hw, ta1hx, ta1hy, ta1hz, ta1hA, ta1hB, ta1hC, ta1hD, ta1hE,
+   ta1hF, ta1hG, ta1hH, ta1hI, ta1hJ, ta1hK, ta1hL, ta1hM, ta1hN,
+   ta1hO, ta1hP, ta1hQ, ta1hR, ta1hS, ta1hT, ta1hU, ta1hV, ta1hW,
+   ta1hX, ta1hY, ta1hZ, ta1i0, ta1i1, ta1i2, ta1i3, ta1i4, ta1i5,
+   ta1i6, ta1i7, ta1i8, ta1i9, ta1ia, ta1ib, ta1ic, ta1id, ta1ie,
+   ta1if, ta1ig, ta1ih, ta1ii, ta1ij, ta1ik, ta1il, ta1im, ta1in,
+   ta1io, ta1ip, ta1iq, ta1ir, ta1is, ta1it, ta1iu, ta1iv, ta1iw,
+   ta1ix, ta1iy, ta1iz, ta1iA, ta1iB, ta1iC, ta1iD, ta1iE, ta1iF,
+   ta1iG, ta1iH, ta1iI, ta1iJ, ta1iK, ta1iL, ta1iM, ta1iN, ta1iO,
+   ta1iP, ta1iQ, ta1iR, ta1iS, ta1iT, ta1iU, ta1n8, ta1na, ta1ng,
+   ta1nh, ta1ni, ta1nj, ta1nk, ta1nl, ta1nm, ta1nn, ta1no, ta1np,
+   ta1nq, ta1nr, ta1ns, ta1nt, ta1nu, ta1nv, ta1nw, ta1nx, ta1ny,
+   ta1nz, ta1nA, ta1nB, ta1nC, ta1nD, ta1nE, ta1nF, ta1nG, ta1nH,
+   ta1nI, ta1nJ, ta1nK, ta1nL, ta1nM, ta1nN, ta1nO, ta1nP, ta1nQ,
+   ta1nR, ta1nS, ta1nT, ta1nU, ta1nV, ta1nW, ta1nX, ta1nY, ta1nZ,
+   ta1o0, ta1o1, ta1o2, ta1o3, ta1o4, ta1o5, ta1o6, ta1o7, ta1o8,
+   ta1o9, ta1oa, ta1ob, ta1oc, ta1od, ta1oe, ta1of, ta1og, ta1oh,
+   ta1oi, ta1oj, ta1ok, ta1ol, ta1om, ta1on, ta1oo, ta1op, ta1oq,
+   ta1or, ta1os, ta1ot, ta1ou, ta1ov, ta1ow, ta1ox, ta1oy, ta1oz,
+   ta1oA, ta1oB, ta1oC, ta1oD, ta1oE, ta1oF, ta1oG, ta1oH, ta1oI,
+   ta1oJ, ta1oK, ta1oL, ta1oM, ta1oN, ta1oO, ta1oP, ta1oQ, ta1oR,
+   ta1oS, ta1oT, ta1oU, ta1oV, ta1oW, ta1oX, ta1oY, ta1oZ, ta1p0,
+   ta1p1, ta1p2, ta1p3, ta1p4, ta1p5, ta1p6, ta1p7, ta1p8, ta1p9,
+   ta1pa, ta1pb, ta1pc, ta1pd, ta1pe, ta1pf, ta1pg, ta1ph, ta1pi,
+   ta1pj, ta1pk, ta1pl, ta1pm, ta1pn, ta1po, ta1pp, ta1pq, ta1pr,
+   ta1ps, ta1pt, ta1pu, ta1pv, ta1pw, ta1px, ta1py, ta1pz, ta1pA,
+   ta1pB, ta1pC, ta1pD, ta1pE, ta1pF, ta1pG, ta1pH, ta1pI, ta1pJ,
+   ta1pK, ta1pL, ta1pM, ta1pN, ta1pO, ta1pP, ta1pQ, ta1pR, ta1pS,
+   ta1pT, ta1pU, ta1pV, ta1pW, ta1pX, ta1pY, ta1pZ, ta1q0, ta1q1,
+   ta1q2, ta1q3, ta1q4, ta1q5, ta1q6, ta1q7, ta1q8, ta1q9, ta1qa,
+   ta1qb, ta1qc, ta1qd, ta1qe, ta1qf, ta1qg, ta1qh, ta1qi, ta1qj,
+   ta1qk, ta1ql, ta1qm, ta1qn, ta1qo, ta1qp, ta1qq, ta1qr, ta1qs,
+   ta1qt, ta1qu, ta1qv, ta1qw, ta1qx, ta1qy, ta1qz, ta1qA, ta1qB,
+   ta1qC, ta1qD, ta1qE, ta1qF, ta1qG, ta1qH, ta1qI, ta1qJ, ta1qK,
+   ta1qL, ta1qM, ta1qN, ta1qO, ta1qP, ta1qQ, ta1qR, ta1qS, ta1qT,
+   ta1qU, ta1qV, ta1qW, ta1qX, ta1qY, ta1qZ, ta1r0, ta1r1, ta1r2,
+   ta1r3, ta1r4, ta1r5, ta1r6, ta1r7, ta1r8, ta1r9, ta1ra, ta1rb,
+   ta1rc, ta1rd, ta1re, ta1rf, ta1rg, ta1rh, ta1ri, ta1rj, ta1rk,
+   ta1rl, ta1rm, ta1rn],
+  g{-r5O,x-},
+  g_a19T)]
+    g_a19T x_r4S y_r4T z_r4U p_r4V
+          = g_rec{-r65,x-}
+                [ta1iU, ta1eF, GHC.Void{-3T,W-}, (ta1eF, GHC.Void{-3T,W-}, GHC.Void{-3T,W-}), ta1na, ta1rn, ta1n8, (ta1n8, GHC.Void{-3T,W-}, GHC.Void{-3T,W-}), (ta1iU, (ta1ng, (ta1nh, (ta1ni, (ta1nj, (ta1nk, (ta1nl, (ta1nm, ta1nn, ta1nn), (ta1nm, ta1no, ta1no)), (ta1nl, (ta1np, ta1nq, ta1nq), (ta1np, ta1nr, ta1nr))), (ta1nk, (ta1ns, (ta1nt, ta1nu, ta1nu), (ta1nt, ta1nv, ta1nv)), (ta1ns, (ta1nw, ta1nx, ta1nx), (ta1nw, ta1ny, ta1ny)))), (ta1nj, (ta1nz, (ta1nA, (ta1nB, ta1nC, ta1nC), (ta1nB, ta1nD, ta1nD)), (ta1nA, (ta1nE, ta1nF, ta1nF), (ta1nE, ta1nG, ta1nG))), (ta1nz, (ta1nH, (ta1nI, ta1nJ, ta1nJ), (ta1nI, ta1nK, ta1nK)), (ta1nH, (ta1nL, ta1nM, ta1nM), (ta1nL, ta1nN, ta1nN))))), (ta1ni, (ta1nO, (ta1nP, (ta1nQ, (ta1nR, ta1nS, ta1nS), (ta1nR, ta1nT, ta1nT)), (ta1nQ, (ta1nU, ta1nV, ta1nV), (ta1nU, ta1nW, ta1nW))), (ta1nP, (ta1nX, (ta1nY, ta1nZ, ta1nZ), (ta1nY, ta1o0, ta1o0)), (ta1nX, (ta1o1, ta1o2, ta1o2), (ta1o1, ta1o3, ta1o3)))), (ta1nO, (ta1o4, (ta1o5, (ta1o6, ta1o7, ta1o7), (ta1o6, ta1o8, ta1o8)), (ta1o5, (ta1o9, ta1oa, ta1oa), (ta1o9, ta1ob, ta1ob))), (ta1o4, (ta1oc, (ta1od, ta1oe, ta1oe), (ta1od, ta1of, ta1of)), (ta1oc, (ta1og, ta1oh, ta1oh), (ta1og, ta1oi, ta1oi)))))), (ta1nh, (ta1oj, (ta1ok, (ta1ol, (ta1om, (ta1on, ta1oo, ta1oo), (ta1on, ta1op, ta1op)), (ta1om, (ta1oq, ta1or, ta1or), (ta1oq, ta1os, ta1os))), (ta1ol, (ta1ot, (ta1ou, ta1ov, ta1ov), (ta1ou, ta1ow, ta1ow)), (ta1ot, (ta1ox, ta1oy, ta1oy), (ta1ox, ta1oz, ta1oz)))), (ta1ok, (ta1oA, (ta1oB, (ta1oC, ta1oD, ta1oD), (ta1oC, ta1oE, ta1oE)), (ta1oB, (ta1oF, ta1oG, ta1oG), (ta1oF, ta1oH, ta1oH))), (ta1oA, (ta1oI, (ta1oJ, ta1oK, ta1oK), (ta1oJ, ta1oL, ta1oL)), (ta1oI, (ta1oM, ta1oN, ta1oN), (ta1oM, ta1oO, ta1oO))))), (ta1oj, (ta1oP, (ta1oQ, (ta1oR, (ta1oS, ta1oT, ta1oT), (ta1oS, ta1oU, ta1oU)), (ta1oR, (ta1oV, ta1oW, ta1oW), (ta1oV, ta1oX, ta1oX))), (ta1oQ, (ta1oY, (ta1oZ, ta1p0, ta1p0), (ta1oZ, ta1p1, ta1p1)), (ta1oY, (ta1p2, ta1p3, ta1p3), (ta1p2, ta1p4, ta1p4)))), (ta1oP, (ta1p5, (ta1p6, (ta1p7, ta1p8, ta1p8), (ta1p7, ta1p9, ta1p9)), (ta1p6, (ta1pa, ta1pb, ta1pb), (ta1pa, ta1pc, ta1pc))), (ta1p5, (ta1pd, (ta1pe, ta1pf, ta1pf), (ta1pe, ta1pg, ta1pg)), (ta1pd, (ta1ph, ta1pi, ta1pi), (ta1ph, ta1pj, ta1pj))))))), (ta1ng, (ta1pk, (ta1pl, (ta1pm, (ta1pn, (ta1po, (ta1pp, ta1pq, ta1pq), (ta1pp, ta1pr, ta1pr)), (ta1po, (ta1ps, ta1pt, ta1pt), (ta1ps, ta1pu, ta1pu))), (ta1pn, (ta1pv, (ta1pw, ta1px, ta1px), (ta1pw, ta1py, ta1py)), (ta1pv, (ta1pz, ta1pA, ta1pA), (ta1pz, ta1pB, ta1pB)))), (ta1pm, (ta1pC, (ta1pD, (ta1pE, ta1pF, ta1pF), (ta1pE, ta1pG, ta1pG)), (ta1pD, (ta1pH, ta1pI, ta1pI), (ta1pH, ta1pJ, ta1pJ))), (ta1pC, (ta1pK, (ta1pL, ta1pM, ta1pM), (ta1pL, ta1pN, ta1pN)), (ta1pK, (ta1pO, ta1pP, ta1pP), (ta1pO, ta1pQ, ta1pQ))))), (ta1pl, (ta1pR, (ta1pS, (ta1pT, (ta1pU, ta1pV, ta1pV), (ta1pU, ta1pW, ta1pW)), (ta1pT, (ta1pX, ta1pY, ta1pY), (ta1pX, ta1pZ, ta1pZ))), (ta1pS, (ta1q0, (ta1q1, ta1q2, ta1q2), (ta1q1, ta1q3, ta1q3)), (ta1q0, (ta1q4, ta1q5, ta1q5), (ta1q4, ta1q6, ta1q6)))), (ta1pR, (ta1q7, (ta1q8, (ta1q9, ta1qa, ta1qa), (ta1q9, ta1qb, ta1qb)), (ta1q8, (ta1qc, ta1qd, ta1qd), (ta1qc, ta1qe, ta1qe))), (ta1q7, (ta1qf, (ta1qg, ta1qh, ta1qh), (ta1qg, ta1qi, ta1qi)), (ta1qf, (ta1qj, ta1qk, ta1qk), (ta1qj, ta1ql, ta1ql)))))), (ta1pk, (ta1qm, (ta1qn, (ta1qo, (ta1qp, (ta1qq, ta1qr, ta1qr), (ta1qq, ta1qs, ta1qs)), (ta1qp, (ta1qt, ta1qu, ta1qu), (ta1qt, ta1qv, ta1qv))), (ta1qo, (ta1qw, (ta1qx, ta1qy, ta1qy), (ta1qx, ta1qz, ta1qz)), (ta1qw, (ta1qA, ta1qB, ta1qB), (ta1qA, ta1qC, ta1qC)))), (ta1qn, (ta1qD, (ta1qE, (ta1qF, ta1qG, ta1qG), (ta1qF, ta1qH, ta1qH)), (ta1qE, (ta1qI, ta1qJ, ta1qJ), (ta1qI, ta1qK, ta1qK))), (ta1qD, (ta1qL, (ta1qM, ta1qN, ta1qN), (ta1qM, ta1qO, ta1qO)), (ta1qL, (ta1qP, ta1qQ, ta1qQ), (ta1qP, ta1qR, ta1qR))))), (ta1qm, (ta1qS, (ta1qT, (ta1qU, (ta1qV, ta1qW, ta1qW), (ta1qV, ta1qX, ta1qX)), (ta1qU, (ta1qY, ta1qZ, ta1qZ), (ta1qY, ta1r0, ta1r0))), (ta1qT, (ta1r1, (ta1r2, ta1r3, ta1r3), (ta1r2, ta1r4, ta1r4)), (ta1r1, (ta1r5, ta1r6, ta1r6), (ta1r5, ta1r7, ta1r7)))), (ta1qS, (ta1r8, (ta1r9, (ta1ra, ta1rb, ta1rb), (ta1ra, ta1rc, ta1rc)), (ta1r9, (ta1rd, ta1re, ta1re), (ta1rd, ta1rf, ta1rf))), (ta1r8, (ta1rg, (ta1rh, ta1ri, ta1ri), (ta1rh, ta1rj, ta1rj)), (ta1rg, (ta1rk, ta1rl, ta1rl), (ta1rk, ta1rm, ta1rm)))))))), ta1aq, (ta1iU, (ta1eN, (ta1eO, (ta1eP, (ta1eQ, (ta1eR, (ta1eS, (ta1eT, ta1eU, ta1eU), (ta1eT, ta1eV, ta1eV)), (ta1eS, (ta1eW, ta1eX, ta1eX), (ta1eW, ta1eY, ta1eY))), (ta1eR, (ta1eZ, (ta1f0, ta1f1, ta1f1), (ta1f0, ta1f2, ta1f2)), (ta1eZ, (ta1f3, ta1f4, ta1f4), (ta1f3, ta1f5, ta1f5)))), (ta1eQ, (ta1f6, (ta1f7, (ta1f8, ta1f9, ta1f9), (ta1f8, ta1fa, ta1fa)), (ta1f7, (ta1fb, ta1fc, ta1fc), (ta1fb, ta1fd, ta1fd))), (ta1f6, (ta1fe, (ta1ff, ta1fg, ta1fg), (ta1ff, ta1fh, ta1fh)), (ta1fe, (ta1fi, ta1fj, ta1fj), (ta1fi, ta1fk, ta1fk))))), (ta1eP, (ta1fl, (ta1fm, (ta1fn, (ta1fo, ta1fp, ta1fp), (ta1fo, ta1fq, ta1fq)), (ta1fn, (ta1fr, ta1fs, ta1fs), (ta1fr, ta1ft, ta1ft))), (ta1fm, (ta1fu, (ta1fv, ta1fw, ta1fw), (ta1fv, ta1fx, ta1fx)), (ta1fu, (ta1fy, ta1fz, ta1fz), (ta1fy, ta1fA, ta1fA)))), (ta1fl, (ta1fB, (ta1fC, (ta1fD, ta1fE, ta1fE), (ta1fD, ta1fF, ta1fF)), (ta1fC, (ta1fG, ta1fH, ta1fH), (ta1fG, ta1fI, ta1fI))), (ta1fB, (ta1fJ, (ta1fK, ta1fL, ta1fL), (ta1fK, ta1fM, ta1fM)), (ta1fJ, (ta1fN, ta1fO, ta1fO), (ta1fN, ta1fP, ta1fP)))))), (ta1eO, (ta1fQ, (ta1fR, (ta1fS, (ta1fT, (ta1fU, ta1fV, ta1fV), (ta1fU, ta1fW, ta1fW)), (ta1fT, (ta1fX, ta1fY, ta1fY), (ta1fX, ta1fZ, ta1fZ))), (ta1fS, (ta1g0, (ta1g1, ta1g2, ta1g2), (ta1g1, ta1g3, ta1g3)), (ta1g0, (ta1g4, ta1g5, ta1g5), (ta1g4, ta1g6, ta1g6)))), (ta1fR, (ta1g7, (ta1g8, (ta1g9, ta1ga, ta1ga), (ta1g9, ta1gb, ta1gb)), (ta1g8, (ta1gc, ta1gd, ta1gd), (ta1gc, ta1ge, ta1ge))), (ta1g7, (ta1gf, (ta1gg, ta1gh, ta1gh), (ta1gg, ta1gi, ta1gi)), (ta1gf, (ta1gj, ta1gk, ta1gk), (ta1gj, ta1gl, ta1gl))))), (ta1fQ, (ta1gm, (ta1gn, (ta1go, (ta1gp, ta1gq, ta1gq), (ta1gp, ta1gr, ta1gr)), (ta1go, (ta1gs, ta1gt, ta1gt), (ta1gs, ta1gu, ta1gu))), (ta1gn, (ta1gv, (ta1gw, ta1gx, ta1gx), (ta1gw, ta1gy, ta1gy)), (ta1gv, (ta1gz, ta1gA, ta1gA), (ta1gz, ta1gB, ta1gB)))), (ta1gm, (ta1gC, (ta1gD, (ta1gE, ta1gF, ta1gF), (ta1gE, ta1gG, ta1gG)), (ta1gD, (ta1gH, ta1gI, ta1gI), (ta1gH, ta1gJ, ta1gJ))), (ta1gC, (ta1gK, (ta1gL, ta1gM, ta1gM), (ta1gL, ta1gN, ta1gN)), (ta1gK, (ta1gO, ta1gP, ta1gP), (ta1gO, ta1gQ, ta1gQ))))))), (ta1eN, (ta1gR, (ta1gS, (ta1gT, (ta1gU, (ta1gV, (ta1gW, ta1gX, ta1gX), (ta1gW, ta1gY, ta1gY)), (ta1gV, (ta1gZ, ta1h0, ta1h0), (ta1gZ, ta1h1, ta1h1))), (ta1gU, (ta1h2, (ta1h3, ta1h4, ta1h4), (ta1h3, ta1h5, ta1h5)), (ta1h2, (ta1h6, ta1h7, ta1h7), (ta1h6, ta1h8, ta1h8)))), (ta1gT, (ta1h9, (ta1ha, (ta1hb, ta1hc, ta1hc), (ta1hb, ta1hd, ta1hd)), (ta1ha, (ta1he, ta1hf, ta1hf), (ta1he, ta1hg, ta1hg))), (ta1h9, (ta1hh, (ta1hi, ta1hj, ta1hj), (ta1hi, ta1hk, ta1hk)), (ta1hh, (ta1hl, ta1hm, ta1hm), (ta1hl, ta1hn, ta1hn))))), (ta1gS, (ta1ho, (ta1hp, (ta1hq, (ta1hr, ta1hs, ta1hs), (ta1hr, ta1ht, ta1ht)), (ta1hq, (ta1hu, ta1hv, ta1hv), (ta1hu, ta1hw, ta1hw))), (ta1hp, (ta1hx, (ta1hy, ta1hz, ta1hz), (ta1hy, ta1hA, ta1hA)), (ta1hx, (ta1hB, ta1hC, ta1hC), (ta1hB, ta1hD, ta1hD)))), (ta1ho, (ta1hE, (ta1hF, (ta1hG, ta1hH, ta1hH), (ta1hG, ta1hI, ta1hI)), (ta1hF, (ta1hJ, ta1hK, ta1hK), (ta1hJ, ta1hL, ta1hL))), (ta1hE, (ta1hM, (ta1hN, ta1hO, ta1hO), (ta1hN, ta1hP, ta1hP)), (ta1hM, (ta1hQ, ta1hR, ta1hR), (ta1hQ, ta1hS, ta1hS)))))), (ta1gR, (ta1hT, (ta1hU, (ta1hV, (ta1hW, (ta1hX, ta1hY, ta1hY), (ta1hX, ta1hZ, ta1hZ)), (ta1hW, (ta1i0, ta1i1, ta1i1), (ta1i0, ta1i2, ta1i2))), (ta1hV, (ta1i3, (ta1i4, ta1i5, ta1i5), (ta1i4, ta1i6, ta1i6)), (ta1i3, (ta1i7, ta1i8, ta1i8), (ta1i7, ta1i9, ta1i9)))), (ta1hU, (ta1ia, (ta1ib, (ta1ic, ta1id, ta1id), (ta1ic, ta1ie, ta1ie)), (ta1ib, (ta1if, ta1ig, ta1ig), (ta1if, ta1ih, ta1ih))), (ta1ia, (ta1ii, (ta1ij, ta1ik, ta1ik), (ta1ij, ta1il, ta1il)), (ta1ii, (ta1im, ta1in, ta1in), (ta1im, ta1io, ta1io))))), (ta1hT, (ta1ip, (ta1iq, (ta1ir, (ta1is, ta1it, ta1it), (ta1is, ta1iu, ta1iu)), (ta1ir, (ta1iv, ta1iw, ta1iw), (ta1iv, ta1ix, ta1ix))), (ta1iq, (ta1iy, (ta1iz, ta1iA, ta1iA), (ta1iz, ta1iB, ta1iB)), (ta1iy, (ta1iC, ta1iD, ta1iD), (ta1iC, ta1iE, ta1iE)))), (ta1ip, (ta1iF, (ta1iG, (ta1iH, ta1iI, ta1iI), (ta1iH, ta1iJ, ta1iJ)), (ta1iG, (ta1iK, ta1iL, ta1iL), (ta1iK, ta1iM, ta1iM))), (ta1iF, (ta1iN, (ta1iO, ta1iP, ta1iP), (ta1iO, ta1iQ, ta1iQ)), (ta1iN, (ta1iR, ta1iS, ta1iS), (ta1iR, ta1iT, ta1iT))))))))] g_rec8{-r5N,x-}
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         [ta1iU, GHC.Void{-3T,W-}, ta1eO, ta1eP, ta1eQ, ta1eR, ta1eS, ta1eT, ta1eU, ta1eV, ta1eW, ta1eX, ta1eY, ta1eZ, ta1f0, ta1f1, ta1f2, ta1f3, ta1f4, ta1f5, ta1f6, ta1f7, ta1f8, ta1f9, ta1fa, ta1fb, ta1fc, ta1fd, ta1fe, ta1ff, ta1fg, ta1fh, ta1fi, ta1fj, ta1fk, ta1fl, ta1fm, ta1fn, ta1fo, ta1fp, ta1fq, ta1fr, ta1fs, ta1ft, ta1fu, ta1fv, ta1fw, ta1fx, ta1fy, ta1fz, ta1fA, ta1fB, ta1fC, ta1fD, ta1fE, ta1fF, ta1fG, ta1fH, ta1fI, ta1fJ, ta1fK, ta1fL, ta1fM, ta1fN, ta1fO, ta1fP, ta1fQ, ta1fR, ta1fS, ta1fT, ta1fU, ta1fV, ta1fW, ta1fX, ta1fY, ta1fZ, ta1g0, ta1g1, ta1g2, ta1g3, ta1g4, ta1g5, ta1g6, ta1g7, ta1g8, ta1g9, ta1ga, ta1gb, ta1gc, ta1gd, ta1ge, ta1gf, ta1gg, ta1gh, ta1gi, ta1gj, ta1gk, ta1gl, ta1gm, ta1gn, ta1go, ta1gp, ta1gq, ta1gr, ta1gs, ta1gt, ta1gu, ta1gv, ta1gw, ta1gx, ta1gy, ta1gz, ta1gA, ta1gB, ta1gC, ta1gD, ta1gE, ta1gF, ta1gG, ta1gH, ta1gI, ta1gJ, ta1gK, ta1gL, ta1gM, ta1gN, ta1gO, ta1gP, ta1gQ, ta1eN, GHC.Void{-3T,W-}, GHC.Void{-3T,W-}, ta1gR, ta1gS, ta1gT, ta1gU, ta1gV, ta1gW, ta1gX, ta1gY, ta1gZ, ta1h0, ta1h1, ta1h2, ta1h3, ta1h4, ta1h5, ta1h6, ta1h7, ta1h8, ta1h9, ta1ha, ta1hb, ta1hc, ta1hd, ta1he, ta1hf, ta1hg, ta1hh, ta1hi, ta1hj, ta1hk, ta1hl, ta1hm, ta1hn, ta1ho, ta1hp, ta1hq, ta1hr, ta1hs, ta1ht, ta1hu, ta1hv, ta1hw, ta1hx, ta1hy, ta1hz, ta1hA, ta1hB, ta1hC, ta1hD, ta1hE, ta1hF, ta1hG, ta1hH, ta1hI, ta1hJ, ta1hK, ta1hL, ta1hM, ta1hN, ta1hO, ta1hP, ta1hQ, ta1hR, ta1hS, ta1hT, ta1hU, ta1hV, ta1hW, ta1hX, ta1hY, ta1hZ, ta1i0, ta1i1, ta1i2, ta1i3, ta1i4, ta1i5, ta1i6, ta1i7, ta1i8, ta1i9, ta1ia, ta1ib, ta1ic, ta1id, ta1ie, ta1if, ta1ig, ta1ih, ta1ii, ta1ij, ta1ik, ta1il, ta1im, ta1in, ta1io, ta1ip, ta1iq, ta1ir, ta1is, ta1it, ta1iu, ta1iv, ta1iw, ta1ix, ta1iy, ta1iz, ta1iA, ta1iB, ta1iC, ta1iD, ta1iE, ta1iF, ta1iG, ta1iH, ta1iI, ta1iJ, ta1iK, ta1iL, ta1iM, ta1iN, ta1iO, ta1iP, ta1iQ, ta1iR, ta1iS, ta1iT, ta1eF]
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     g_rec8{-r5N,x-}
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         [ta1iU, ta1na, ta1nh, ta1ni, ta1nj, ta1nk, ta1nl, ta1nm, ta1nn, ta1no, ta1np, ta1nq, ta1nr, ta1ns, ta1nt, ta1nu, ta1nv, ta1nw, ta1nx, ta1ny, ta1nz, ta1nA, ta1nB, ta1nC, ta1nD, ta1nE, ta1nF, ta1nG, ta1nH, ta1nI, ta1nJ, ta1nK, ta1nL, ta1nM, ta1nN, ta1nO, ta1nP, ta1nQ, ta1nR, ta1nS, ta1nT, ta1nU, ta1nV, ta1nW, ta1nX, ta1nY, ta1nZ, ta1o0, ta1o1, ta1o2, ta1o3, ta1o4, ta1o5, ta1o6, ta1o7, ta1o8, ta1o9, ta1oa, ta1ob, ta1oc, ta1od, ta1oe, ta1of, ta1og, ta1oh, ta1oi, ta1oj, ta1ok, ta1ol, ta1om, ta1on, ta1oo, ta1op, ta1oq, ta1or, ta1os, ta1ot, ta1ou, ta1ov, ta1ow, ta1ox, ta1oy, ta1oz, ta1oA, ta1oB, ta1oC, ta1oD, ta1oE, ta1oF, ta1oG, ta1oH, ta1oI, ta1oJ, ta1oK, ta1oL, ta1oM, ta1oN, ta1oO, ta1oP, ta1oQ, ta1oR, ta1oS, ta1oT, ta1oU, ta1oV, ta1oW, ta1oX, ta1oY, ta1oZ, ta1p0, ta1p1, ta1p2, ta1p3, ta1p4, ta1p5, ta1p6, ta1p7, ta1p8, ta1p9, ta1pa, ta1pb, ta1pc, ta1pd, ta1pe, ta1pf, ta1pg, ta1ph, ta1pi, ta1pj, ta1ng, GHC.Void{-3T,W-}, GHC.Void{-3T,W-}, ta1pk, ta1pl, ta1pm, ta1pn, ta1po, ta1pp, ta1pq, ta1pr, ta1ps, ta1pt, ta1pu, ta1pv, ta1pw, ta1px, ta1py, ta1pz, ta1pA, ta1pB, ta1pC, ta1pD, ta1pE, ta1pF, ta1pG, ta1pH, ta1pI, ta1pJ, ta1pK, ta1pL, ta1pM, ta1pN, ta1pO, ta1pP, ta1pQ, ta1pR, ta1pS, ta1pT, ta1pU, ta1pV, ta1pW, ta1pX, ta1pY, ta1pZ, ta1q0, ta1q1, ta1q2, ta1q3, ta1q4, ta1q5, ta1q6, ta1q7, ta1q8, ta1q9, ta1qa, ta1qb, ta1qc, ta1qd, ta1qe, ta1qf, ta1qg, ta1qh, ta1qi, ta1qj, ta1qk, ta1ql, ta1qm, ta1qn, ta1qo, ta1qp, ta1qq, ta1qr, ta1qs, ta1qt, ta1qu, ta1qv, ta1qw, ta1qx, ta1qy, ta1qz, ta1qA, ta1qB, ta1qC, ta1qD, ta1qE, ta1qF, ta1qG, ta1qH, ta1qI, ta1qJ, ta1qK, ta1qL, ta1qM, ta1qN, ta1qO, ta1qP, ta1qQ, ta1qR, ta1qS, ta1qT, ta1qU, ta1qV, ta1qW, ta1qX, ta1qY, ta1qZ, ta1r0, ta1r1, ta1r2, ta1r3, ta1r4, ta1r5, ta1r6, ta1r7, ta1r8, ta1r9, ta1ra, ta1rb, ta1rc, ta1rd, ta1re, ta1rf, ta1rg, ta1rh, ta1ri, ta1rj, ta1rk, ta1rl, ta1rm, ta1n8]
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     x_r4S
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     y_r4T
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     z_r4U
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     p_r4V
+
+NOTE: Simplifier still going after 4 iterations; bailing out.
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_exports_
+ShouldSucceed absAnd absIf bottom f f_rec f_rec0 f_rec1 f_rec2 fac fac_rec fac_rec0 fac_rec1 fac_rec2 fac_rec3 fac_rec4 g g_rec g_rec0 g_rec1 g_rec2 g_rec3 g_rec4 g_rec5 g_rec6 g_rec7 g_rec8 head one s_1_0 s_2_0 s_2_1 s_3_0 s_3_1 s_3_2;
+_declarations_
+1 absAnd _:_ _forall_ [ta] => ta -> ta -> ta ;;
+1 absIf _:_ _forall_ [ta tb tc] => tc -> ta -> tb -> tc ;;
+1 bottom _:_ _forall_ [ta] => [ta] -> ta ;;
+1 f _:_ _forall_ [ta] => ta -> ta ;;
+1 f_rec _:_ _forall_ [ta tb] => (tb -> ta) -> tb -> ta ;;
+1 f_rec0 _:_ _forall_ [ta] => ta -> ta ;;
+1 f_rec1 _:_ _forall_ [ta] => ta -> ta ;;
+1 f_rec2 _:_ _forall_ [ta] => ta -> ta ;;
+1 fac _:_ _forall_ [ta tb tc td te tf tg th ti tj tk] => (ta, (ti, (tb, (tc, (td, te)))), (tj, (tb, (tc, (td, te))), (tf, (tc, (td, te)), (tg, (td, te), (th, te, te))))) -> (tk, (ti, (tb, (tc, (td, te))))) -> ta ;;
+1 fac_rec _:_ _forall_ [ta tb tc td te] => (tc -> td -> ta) -> (tb, td, tc) -> (te, td) -> tb ;;
+1 fac_rec0 _:_ _forall_ [ta] => ta -> ta -> ta ;;
+1 fac_rec1 _:_ _forall_ [ta tb tc] => (ta, tb, tb) -> (tc, tb) -> ta ;;
+1 fac_rec2 _:_ _forall_ [ta tb tc td te] => (ta, (tc, tb), (td, tb, tb)) -> (te, (tc, tb)) -> ta ;;
+1 fac_rec3 _:_ _forall_ [ta tb tc td te tf tg] => (ta, (te, (tb, tc)), (tf, (tb, tc), (td, tc, tc))) -> (tg, (te, (tb, tc))) -> ta ;;
+1 fac_rec4 _:_ _forall_ [ta tb tc td te tf tg th ti] => (ta, (tg, (tb, (tc, td))), (th, (tb, (tc, td)), (te, (tc, td), (tf, td, td)))) -> (ti, (tg, (tb, (tc, td)))) -> ta ;;
+1 g _:_ _forall_ [ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ttq ttr tts ttt ttu ttv ttw ttx tty ttz ttA ttB ttC ttD ttE ttF ttG ttH ttI ttJ ttK ttL ttM ttN ttO ttP ttQ ttR ttS ttT ttU ttV ttW ttX ttY ttZ tt10 tt11 tt12 tt13 tt14 tt15 tt16 tt17 tt18 tt19 tt1a tt1b tt1c tt1d tt1e tt1f tt1g tt1h tt1i tt1j tt1k tt1l tt1m tt1n tt1o tt1p tt1q tt1r tt1s tt1t tt1u tt1v tt1w tt1x tt1y tt1z tt1A tt1B tt1C tt1D tt1E tt1F tt1G tt1H tt1I tt1J tt1K tt1L tt1M tt1N tt1O tt1P tt1Q tt1R tt1S tt1T tt1U tt1V tt1W tt1X tt1Y tt1Z tt20 tt21 tt22 tt23 tt24 tt25 tt26 tt27 tt28 tt29 tt2a tt2b tt2c tt2d tt2e tt2f tt2g tt2h tt2i tt2j tt2k tt2l tt2m tt2n tt2o tt2p tt2q tt2r tt2s tt2t tt2u tt2v tt2w tt2x tt2y tt2z tt2A tt2B tt2C tt2D tt2E tt2F tt2G tt2H tt2I tt2J tt2K tt2L tt2M tt2N tt2O tt2P tt2Q tt2R tt2S tt2T tt2U tt2V tt2W tt2X tt2Y tt2Z tt30 tt31 tt32 tt33 tt34 tt35 tt36 tt37 tt38 tt39 tt3a tt3b tt3c tt3d tt3e tt3f tt3g tt3h tt3i tt3j tt3k tt3l tt3m tt3n tt3o tt3p tt3q tt3r tt3s tt3t tt3u tt3v tt3w tt3x tt3y tt3z tt3A tt3B tt3C tt3D tt3E tt3F tt3G tt3H tt3I tt3J tt3K tt3L tt3M tt3N tt3O tt3P tt3Q tt3R tt3S tt3T tt3U tt3V tt3W tt3X tt3Y tt3Z tt40 tt41 tt42 tt43 tt44 tt45 tt46 tt47 tt48 tt49 tt4a tt4b tt4c tt4d tt4e tt4f tt4g tt4h tt4i tt4j tt4k tt4l tt4m tt4n tt4o tt4p tt4q tt4r tt4s tt4t tt4u tt4v tt4w tt4x tt4y tt4z tt4A tt4B tt4C tt4D tt4E tt4F tt4G tt4H tt4I tt4J tt4K tt4L tt4M tt4N tt4O tt4P tt4Q tt4R tt4S tt4T tt4U tt4V tt4W tt4X tt4Y tt4Z tt50 tt51 tt52 tt53 tt54 tt55 tt56 tt57 tt58 tt59 tt5a tt5b tt5c tt5d tt5e tt5f tt5g tt5h tt5i tt5j tt5k tt5l tt5m tt5n tt5o tt5p tt5q tt5r tt5s tt5t tt5u tt5v tt5w tt5x tt5y tt5z tt5A tt5B tt5C tt5D tt5E tt5F tt5G tt5H tt5I tt5J tt5K tt5L tt5M tt5N tt5O tt5P tt5Q tt5R tt5S tt5T tt5U tt5V tt5W tt5X tt5Y tt5Z tt60 tt61 tt62 tt63 tt64 tt65 tt66 tt67 tt68 tt69 tt6a tt6b tt6c tt6d tt6e tt6f tt6g tt6h tt6i tt6j tt6k tt6l tt6m tt6n tt6o tt6p tt6q tt6r tt6s tt6t tt6u tt6v tt6w tt6x tt6y tt6z tt6A tt6B tt6C tt6D tt6E tt6F tt6G tt6H tt6I tt6J tt6K tt6L tt6M tt6N tt6O tt6P tt6Q tt6R tt6S tt6T tt6U tt6V tt6W tt6X tt6Y tt6Z tt70 tt71 tt72 tt73 tt74 tt75 tt76 tt77 tt78 tt79 tt7a tt7b tt7c tt7d tt7e tt7f tt7g tt7h tt7i tt7j tt7k tt7l tt7m tt7n tt7o tt7p tt7q tt7r tt7s tt7t tt7u tt7v tt7w tt7x tt7y tt7z tt7A tt7B tt7C tt7D tt7E tt7F tt7G tt7H tt7I tt7J tt7K tt7L tt7M tt7N tt7O tt7P tt7Q tt7R tt7S tt7T tt7U tt7V tt7W tt7X tt7Y tt7Z tt80 tt81 tt82 tt83 tt84 tt85 tt86 tt87 tt88 tt89 tt8a tt8b tt8c tt8d tt8e tt8f tt8g tt8h tt8i tt8j] => tt8j -> tb -> (tt8j, tt4b, tt4a) -> (ta, (tt49, (tc, (td, (te, (tf, (tg, (th, (ti, tj, tj), (ti, tk, tk)), (th, (tl, tm, tm), (tl, tn, tn))), (tg, (to, (tp, tq, tq), (tp, tr, tr)), (to, (ts, tt, tt), (ts, tu, tu)))), (tf, (tv, (tw, (tx, ty, ty), (tx, tz, tz)), (tw, (ttq, ttr, ttr), (ttq, tts, tts))), (tv, (ttt, (ttu, ttv, ttv), (ttu, ttw, ttw)), (ttt, (ttx, tty, tty), (ttx, ttz, ttz))))), (te, (ttA, (ttB, (ttC, (ttD, ttE, ttE), (ttD, ttF, ttF)), (ttC, (ttG, ttH, ttH), (ttG, ttI, ttI))), (ttB, (ttJ, (ttK, ttL, ttL), (ttK, ttM, ttM)), (ttJ, (ttN, ttO, ttO), (ttN, ttP, ttP)))), (ttA, (ttQ, (ttR, (ttS, ttT, ttT), (ttS, ttU, ttU)), (ttR, (ttV, ttW, ttW), (ttV, ttX, ttX))), (ttQ, (ttY, (ttZ, tt10, tt10), (ttZ, tt11, tt11)), (ttY, (tt12, tt13, tt13), (tt12, tt14, tt14)))))), (td, (tt15, (tt16, (tt17, (tt18, (tt19, tt1a, tt1a), (tt19, tt1b, tt1b)), (tt18, (tt1c, tt1d, tt1d), (tt1c, tt1e, tt1e))), (tt17, (tt1f, (tt1g, tt1h, tt1h), (tt1g, tt1i, tt1i)), (tt1f, (tt1j, tt1k, tt1k), (tt1j, tt1l, tt1l)))), (tt16, (tt1m, (tt1n, (tt1o, tt1p, tt1p), (tt1o, tt1q, tt1q)), (tt1n, (tt1r, tt1s, tt1s), (tt1r, tt1t, tt1t))), (tt1m, (tt1u, (tt1v, tt1w, tt1w), (tt1v, tt1x, tt1x)), (tt1u, (tt1y, tt1z, tt1z), (tt1y, tt1A, tt1A))))), (tt15, (tt1B, (tt1C, (tt1D, (tt1E, tt1F, tt1F), (tt1E, tt1G, tt1G)), (tt1D, (tt1H, tt1I, tt1I), (tt1H, tt1J, tt1J))), (tt1C, (tt1K, (tt1L, tt1M, tt1M), (tt1L, tt1N, tt1N)), (tt1K, (tt1O, tt1P, tt1P), (tt1O, tt1Q, tt1Q)))), (tt1B, (tt1R, (tt1S, (tt1T, tt1U, tt1U), (tt1T, tt1V, tt1V)), (tt1S, (tt1W, tt1X, tt1X), (tt1W, tt1Y, tt1Y))), (tt1R, (tt1Z, (tt20, tt21, tt21), (tt20, tt22, tt22)), (tt1Z, (tt23, tt24, tt24), (tt23, tt25, tt25))))))), (tc, (tt26, (tt27, (tt28, (tt29, (tt2a, (tt2b, tt2c, tt2c), (tt2b, tt2d, tt2d)), (tt2a, (tt2e, tt2f, tt2f), (tt2e, tt2g, tt2g))), (tt29, (tt2h, (tt2i, tt2j, tt2j), (tt2i, tt2k, tt2k)), (tt2h, (tt2l, tt2m, tt2m), (tt2l, tt2n, tt2n)))), (tt28, (tt2o, (tt2p, (tt2q, tt2r, tt2r), (tt2q, tt2s, tt2s)), (tt2p, (tt2t, tt2u, tt2u), (tt2t, tt2v, tt2v))), (tt2o, (tt2w, (tt2x, tt2y, tt2y), (tt2x, tt2z, tt2z)), (tt2w, (tt2A, tt2B, tt2B), (tt2A, tt2C, tt2C))))), (tt27, (tt2D, (tt2E, (tt2F, (tt2G, tt2H, tt2H), (tt2G, tt2I, tt2I)), (tt2F, (tt2J, tt2K, tt2K), (tt2J, tt2L, tt2L))), (tt2E, (tt2M, (tt2N, tt2O, tt2O), (tt2N, tt2P, tt2P)), (tt2M, (tt2Q, tt2R, tt2R), (tt2Q, tt2S, tt2S)))), (tt2D, (tt2T, (tt2U, (tt2V, tt2W, tt2W), (tt2V, tt2X, tt2X)), (tt2U, (tt2Y, tt2Z, tt2Z), (tt2Y, tt30, tt30))), (tt2T, (tt31, (tt32, tt33, tt33), (tt32, tt34, tt34)), (tt31, (tt35, tt36, tt36), (tt35, tt37, tt37)))))), (tt26, (tt38, (tt39, (tt3a, (tt3b, (tt3c, tt3d, tt3d), (tt3c, tt3e, tt3e)), (tt3b, (tt3f, tt3g, tt3g), (tt3f, tt3h, tt3h))), (tt3a, (tt3i, (tt3j, tt3k, tt3k), (tt3j, tt3l, tt3l)), (tt3i, (tt3m, tt3n, tt3n), (tt3m, tt3o, tt3o)))), (tt39, (tt3p, (tt3q, (tt3r, tt3s, tt3s), (tt3r, tt3t, tt3t)), (tt3q, (tt3u, tt3v, tt3v), (tt3u, tt3w, tt3w))), (tt3p, (tt3x, (tt3y, tt3z, tt3z), (tt3y, tt3A, tt3A)), (tt3x, (tt3B, tt3C, tt3C), (tt3B, tt3D, tt3D))))), (tt38, (tt3E, (tt3F, (tt3G, (tt3H, tt3I, tt3I), (tt3H, tt3J, tt3J)), (tt3G, (tt3K, tt3L, tt3L), (tt3K, tt3M, tt3M))), (tt3F, (tt3N, (tt3O, tt3P, tt3P), (tt3O, tt3Q, tt3Q)), (tt3N, (tt3R, tt3S, tt3S), (tt3R, tt3T, tt3T)))), (tt3E, (tt3U, (tt3V, (tt3W, tt3X, tt3X), (tt3W, tt3Y, tt3Y)), (tt3V, (tt3Z, tt40, tt40), (tt3Z, tt41, tt41))), (tt3U, (tt42, (tt43, tt44, tt44), (tt43, tt45, tt45)), (tt42, (tt46, tt47, tt47), (tt46, tt48, tt48)))))))), (tt49, (tt4c, (tt4d, (tt4e, (tt4f, (tt4g, (tt4h, (tt4i, tt4j, tt4j), (tt4i, tt4k, tt4k)), (tt4h, (tt4l, tt4m, tt4m), (tt4l, tt4n, tt4n))), (tt4g, (tt4o, (tt4p, tt4q, tt4q), (tt4p, tt4r, tt4r)), (tt4o, (tt4s, tt4t, tt4t), (tt4s, tt4u, tt4u)))), (tt4f, (tt4v, (tt4w, (tt4x, tt4y, tt4y), (tt4x, tt4z, tt4z)), (tt4w, (tt4A, tt4B, tt4B), (tt4A, tt4C, tt4C))), (tt4v, (tt4D, (tt4E, tt4F, tt4F), (tt4E, tt4G, tt4G)), (tt4D, (tt4H, tt4I, tt4I), (tt4H, tt4J, tt4J))))), (tt4e, (tt4K, (tt4L, (tt4M, (tt4N, tt4O, tt4O), (tt4N, tt4P, tt4P)), (tt4M, (tt4Q, tt4R, tt4R), (tt4Q, tt4S, tt4S))), (tt4L, (tt4T, (tt4U, tt4V, tt4V), (tt4U, tt4W, tt4W)), (tt4T, (tt4X, tt4Y, tt4Y), (tt4X, tt4Z, tt4Z)))), (tt4K, (tt50, (tt51, (tt52, tt53, tt53), (tt52, tt54, tt54)), (tt51, (tt55, tt56, tt56), (tt55, tt57, tt57))), (tt50, (tt58, (tt59, tt5a, tt5a), (tt59, tt5b, tt5b)), (tt58, (tt5c, tt5d, tt5d), (tt5c, tt5e, tt5e)))))), (tt4d, (tt5f, (tt5g, (tt5h, (tt5i, (tt5j, tt5k, tt5k), (tt5j, tt5l, tt5l)), (tt5i, (tt5m, tt5n, tt5n), (tt5m, tt5o, tt5o))), (tt5h, (tt5p, (tt5q, tt5r, tt5r), (tt5q, tt5s, tt5s)), (tt5p, (tt5t, tt5u, tt5u), (tt5t, tt5v, tt5v)))), (tt5g, (tt5w, (tt5x, (tt5y, tt5z, tt5z), (tt5y, tt5A, tt5A)), (tt5x, (tt5B, tt5C, tt5C), (tt5B, tt5D, tt5D))), (tt5w, (tt5E, (tt5F, tt5G, tt5G), (tt5F, tt5H, tt5H)), (tt5E, (tt5I, tt5J, tt5J), (tt5I, tt5K, tt5K))))), (tt5f, (tt5L, (tt5M, (tt5N, (tt5O, tt5P, tt5P), (tt5O, tt5Q, tt5Q)), (tt5N, (tt5R, tt5S, tt5S), (tt5R, tt5T, tt5T))), (tt5M, (tt5U, (tt5V, tt5W, tt5W), (tt5V, tt5X, tt5X)), (tt5U, (tt5Y, tt5Z, tt5Z), (tt5Y, tt60, tt60)))), (tt5L, (tt61, (tt62, (tt63, tt64, tt64), (tt63, tt65, tt65)), (tt62, (tt66, tt67, tt67), (tt66, tt68, tt68))), (tt61, (tt69, (tt6a, tt6b, tt6b), (tt6a, tt6c, tt6c)), (tt69, (tt6d, tt6e, tt6e), (tt6d, tt6f, tt6f))))))), (tt4c, (tt6g, (tt6h, (tt6i, (tt6j, (tt6k, (tt6l, tt6m, tt6m), (tt6l, tt6n, tt6n)), (tt6k, (tt6o, tt6p, tt6p), (tt6o, tt6q, tt6q))), (tt6j, (tt6r, (tt6s, tt6t, tt6t), (tt6s, tt6u, tt6u)), (tt6r, (tt6v, tt6w, tt6w), (tt6v, tt6x, tt6x)))), (tt6i, (tt6y, (tt6z, (tt6A, tt6B, tt6B), (tt6A, tt6C, tt6C)), (tt6z, (tt6D, tt6E, tt6E), (tt6D, tt6F, tt6F))), (tt6y, (tt6G, (tt6H, tt6I, tt6I), (tt6H, tt6J, tt6J)), (tt6G, (tt6K, tt6L, tt6L), (tt6K, tt6M, tt6M))))), (tt6h, (tt6N, (tt6O, (tt6P, (tt6Q, tt6R, tt6R), (tt6Q, tt6S, tt6S)), (tt6P, (tt6T, tt6U, tt6U), (tt6T, tt6V, tt6V))), (tt6O, (tt6W, (tt6X, tt6Y, tt6Y), (tt6X, tt6Z, tt6Z)), (tt6W, (tt70, tt71, tt71), (tt70, tt72, tt72)))), (tt6N, (tt73, (tt74, (tt75, tt76, tt76), (tt75, tt77, tt77)), (tt74, (tt78, tt79, tt79), (tt78, tt7a, tt7a))), (tt73, (tt7b, (tt7c, tt7d, tt7d), (tt7c, tt7e, tt7e)), (tt7b, (tt7f, tt7g, tt7g), (tt7f, tt7h, tt7h)))))), (tt6g, (tt7i, (tt7j, (tt7k, (tt7l, (tt7m, tt7n, tt7n), (tt7m, tt7o, tt7o)), (tt7l, (tt7p, tt7q, tt7q), (tt7p, tt7r, tt7r))), (tt7k, (tt7s, (tt7t, tt7u, tt7u), (tt7t, tt7v, tt7v)), (tt7s, (tt7w, tt7x, tt7x), (tt7w, tt7y, tt7y)))), (tt7j, (tt7z, (tt7A, (tt7B, tt7C, tt7C), (tt7B, tt7D, tt7D)), (tt7A, (tt7E, tt7F, tt7F), (tt7E, tt7G, tt7G))), (tt7z, (tt7H, (tt7I, tt7J, tt7J), (tt7I, tt7K, tt7K)), (tt7H, (tt7L, tt7M, tt7M), (tt7L, tt7N, tt7N))))), (tt7i, (tt7O, (tt7P, (tt7Q, (tt7R, tt7S, tt7S), (tt7R, tt7T, tt7T)), (tt7Q, (tt7U, tt7V, tt7V), (tt7U, tt7W, tt7W))), (tt7P, (tt7X, (tt7Y, tt7Z, tt7Z), (tt7Y, tt80, tt80)), (tt7X, (tt81, tt82, tt82), (tt81, tt83, tt83)))), (tt7O, (tt84, (tt85, (tt86, tt87, tt87), (tt86, tt88, tt88)), (tt85, (tt89, tt8a, tt8a), (tt89, tt8b, tt8b))), (tt84, (tt8c, (tt8d, tt8e, tt8e), (tt8d, tt8f, tt8f)), (tt8c, (tt8g, tt8h, tt8h), (tt8g, tt8i, tt8i))))))))) -> ta ;;
+1 g_rec _:_ _forall_ [ta tb tc td te tf tg th ti tj tk] => (tb -> tc -> td -> tk -> ta) -> (tg -> te -> th -> ti -> ta) -> tf -> tb -> (tf, te, tg) -> (tj, tk, ti) -> tj ;;
+1 g_rec0 _:_ _forall_ [ta] => ta -> ta -> ta -> ta -> ta ;;
+1 g_rec1 _:_ _forall_ [ta tb tc] => tc -> tb -> (tc, tb, tb) -> (ta, tb, tb) -> ta ;;
+1 g_rec2 _:_ _forall_ [ta tb tc td te tf tg] => tg -> tb -> (tg, tf, te) -> (ta, (td, tc, tc), (td, tf, tf)) -> ta ;;
+1 g_rec3 _:_ _forall_ [ta tb tc td te tf tg th ti tj tk tl] => tl -> tb -> (tl, th, tg) -> (ta, (tf, (td, te, te), (td, tc, tc)), (tf, (tj, tk, tk), (tj, ti, ti))) -> ta ;;
+1 g_rec4 _:_ _forall_ [ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt] => tt -> tb -> (tt, tl, tk) -> (ta, (tj, (tc, (td, te, te), (td, tf, tf)), (tc, (tg, th, th), (tg, ti, ti))), (tj, (tm, (tn, to, to), (tn, tp, tp)), (tm, (tq, tr, tr), (tq, ts, ts)))) -> ta ;;
+1 g_rec5 _:_ _forall_ [ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ttq ttr tts ttt ttu ttv ttw ttx tty ttz] => ttz -> tb -> (ttz, tt, ts) -> (ta, (tr, (tc, (td, (te, tf, tf), (te, tg, tg)), (td, (th, ti, ti), (th, tj, tj))), (tc, (tk, (tl, tm, tm), (tl, tn, tn)), (tk, (to, tp, tp), (to, tq, tq)))), (tr, (tu, (tv, (tw, tx, tx), (tw, ty, ty)), (tv, (tz, ttq, ttq), (tz, ttr, ttr))), (tu, (tts, (ttt, ttu, ttu), (ttt, ttv, ttv)), (tts, (ttw, ttx, ttx), (ttw, tty, tty))))) -> ta ;;
+1 g_rec6 _:_ _forall_ [ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ttq ttr tts ttt ttu ttv ttw ttx tty ttz ttA ttB ttC ttD ttE ttF ttG ttH ttI ttJ ttK ttL ttM ttN ttO ttP ttQ ttR ttS ttT ttU ttV ttW ttX ttY ttZ tt10 tt11 tt12 tt13 tt14 tt15] => tt15 -> tb -> (tt15, ttz, tty) -> (ta, (ttx, (tc, (td, (te, (tf, tg, tg), (tf, th, th)), (te, (ti, tj, tj), (ti, tk, tk))), (td, (tl, (tm, tn, tn), (tm, to, to)), (tl, (tp, tq, tq), (tp, tr, tr)))), (tc, (ts, (tt, (tu, tv, tv), (tu, tw, tw)), (tt, (tx, ty, ty), (tx, tz, tz))), (ts, (ttq, (ttr, tts, tts), (ttr, ttt, ttt)), (ttq, (ttu, ttv, ttv), (ttu, ttw, ttw))))), (ttx, (ttA, (ttB, (ttC, (ttD, ttE, ttE), (ttD, ttF, ttF)), (ttC, (ttG, ttH, ttH), (ttG, ttI, ttI))), (ttB, (ttJ, (ttK, ttL, ttL), (ttK, ttM, ttM)), (ttJ, (ttN, ttO, ttO), (ttN, ttP, ttP)))), (ttA, (ttQ, (ttR, (ttS, ttT, ttT), (ttS, ttU, ttU)), (ttR, (ttV, ttW, ttW), (ttV, ttX, ttX))), (ttQ, (ttY, (ttZ, tt10, tt10), (ttZ, tt11, tt11)), (ttY, (tt12, tt13, tt13), (tt12, tt14, tt14)))))) -> ta ;;
+1 g_rec7 _:_ _forall_ [ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ttq ttr tts ttt ttu ttv ttw ttx tty ttz ttA ttB ttC ttD ttE ttF ttG ttH ttI ttJ ttK ttL ttM ttN ttO ttP ttQ ttR ttS ttT ttU ttV ttW ttX ttY ttZ tt10 tt11 tt12 tt13 tt14 tt15 tt16 tt17 tt18 tt19 tt1a tt1b tt1c tt1d tt1e tt1f tt1g tt1h tt1i tt1j tt1k tt1l tt1m tt1n tt1o tt1p tt1q tt1r tt1s tt1t tt1u tt1v tt1w tt1x tt1y tt1z tt1A tt1B tt1C tt1D tt1E tt1F tt1G tt1H tt1I tt1J tt1K tt1L tt1M tt1N tt1O tt1P tt1Q tt1R tt1S tt1T tt1U tt1V tt1W tt1X tt1Y tt1Z tt20 tt21 tt22 tt23 tt24 tt25 tt26 tt27] => tt27 -> tb -> (tt27, tt15, tt14) -> (ta, (tt13, (tc, (td, (te, (tf, (tg, th, th), (tg, ti, ti)), (tf, (tj, tk, tk), (tj, tl, tl))), (te, (tm, (tn, to, to), (tn, tp, tp)), (tm, (tq, tr, tr), (tq, ts, ts)))), (td, (tt, (tu, (tv, tw, tw), (tv, tx, tx)), (tu, (ty, tz, tz), (ty, ttq, ttq))), (tt, (ttr, (tts, ttt, ttt), (tts, ttu, ttu)), (ttr, (ttv, ttw, ttw), (ttv, ttx, ttx))))), (tc, (tty, (ttz, (ttA, (ttB, ttC, ttC), (ttB, ttD, ttD)), (ttA, (ttE, ttF, ttF), (ttE, ttG, ttG))), (ttz, (ttH, (ttI, ttJ, ttJ), (ttI, ttK, ttK)), (ttH, (ttL, ttM, ttM), (ttL, ttN, ttN)))), (tty, (ttO, (ttP, (ttQ, ttR, ttR), (ttQ, ttS, ttS)), (ttP, (ttT, ttU, ttU), (ttT, ttV, ttV))), (ttO, (ttW, (ttX, ttY, ttY), (ttX, ttZ, ttZ)), (ttW, (tt10, tt11, tt11), (tt10, tt12, tt12)))))), (tt13, (tt16, (tt17, (tt18, (tt19, (tt1a, tt1b, tt1b), (tt1a, tt1c, tt1c)), (tt19, (tt1d, tt1e, tt1e), (tt1d, tt1f, tt1f))), (tt18, (tt1g, (tt1h, tt1i, tt1i), (tt1h, tt1j, tt1j)), (tt1g, (tt1k, tt1l, tt1l), (tt1k, tt1m, tt1m)))), (tt17, (tt1n, (tt1o, (tt1p, tt1q, tt1q), (tt1p, tt1r, tt1r)), (tt1o, (tt1s, tt1t, tt1t), (tt1s, tt1u, tt1u))), (tt1n, (tt1v, (tt1w, tt1x, tt1x), (tt1w, tt1y, tt1y)), (tt1v, (tt1z, tt1A, tt1A), (tt1z, tt1B, tt1B))))), (tt16, (tt1C, (tt1D, (tt1E, (tt1F, tt1G, tt1G), (tt1F, tt1H, tt1H)), (tt1E, (tt1I, tt1J, tt1J), (tt1I, tt1K, tt1K))), (tt1D, (tt1L, (tt1M, tt1N, tt1N), (tt1M, tt1O, tt1O)), (tt1L, (tt1P, tt1Q, tt1Q), (tt1P, tt1R, tt1R)))), (tt1C, (tt1S, (tt1T, (tt1U, tt1V, tt1V), (tt1U, tt1W, tt1W)), (tt1T, (tt1X, tt1Y, tt1Y), (tt1X, tt1Z, tt1Z))), (tt1S, (tt20, (tt21, tt22, tt22), (tt21, tt23, tt23)), (tt20, (tt24, tt25, tt25), (tt24, tt26, tt26))))))) -> ta ;;
+1 g_rec8 _:_ _forall_ [ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ttq ttr tts ttt ttu ttv ttw ttx tty ttz ttA ttB ttC ttD ttE ttF ttG ttH ttI ttJ ttK ttL ttM ttN ttO ttP ttQ ttR ttS ttT ttU ttV ttW ttX ttY ttZ tt10 tt11 tt12 tt13 tt14 tt15 tt16 tt17 tt18 tt19 tt1a tt1b tt1c tt1d tt1e tt1f tt1g tt1h tt1i tt1j tt1k tt1l tt1m tt1n tt1o tt1p tt1q tt1r tt1s tt1t tt1u tt1v tt1w tt1x tt1y tt1z tt1A tt1B tt1C tt1D tt1E tt1F tt1G tt1H tt1I tt1J tt1K tt1L tt1M tt1N tt1O tt1P tt1Q tt1R tt1S tt1T tt1U tt1V tt1W tt1X tt1Y tt1Z tt20 tt21 tt22 tt23 tt24 tt25 tt26 tt27 tt28 tt29 tt2a tt2b tt2c tt2d tt2e tt2f tt2g tt2h tt2i tt2j tt2k tt2l tt2m tt2n tt2o tt2p tt2q tt2r tt2s tt2t tt2u tt2v tt2w tt2x tt2y tt2z tt2A tt2B tt2C tt2D tt2E tt2F tt2G tt2H tt2I tt2J tt2K tt2L tt2M tt2N tt2O tt2P tt2Q tt2R tt2S tt2T tt2U tt2V tt2W tt2X tt2Y tt2Z tt30 tt31 tt32 tt33 tt34 tt35 tt36 tt37 tt38 tt39 tt3a tt3b tt3c tt3d tt3e tt3f tt3g tt3h tt3i tt3j tt3k tt3l tt3m tt3n tt3o tt3p tt3q tt3r tt3s tt3t tt3u tt3v tt3w tt3x tt3y tt3z tt3A tt3B tt3C tt3D tt3E tt3F tt3G tt3H tt3I tt3J tt3K tt3L tt3M tt3N tt3O tt3P tt3Q tt3R tt3S tt3T tt3U tt3V tt3W tt3X tt3Y tt3Z tt40 tt41 tt42 tt43 tt44 tt45 tt46 tt47 tt48 tt49 tt4a tt4b] => tt4b -> tb -> (tt4b, tt27, tt26) -> (ta, (tt25, (tc, (td, (te, (tf, (tg, (th, ti, ti), (th, tj, tj)), (tg, (tk, tl, tl), (tk, tm, tm))), (tf, (tn, (to, tp, tp), (to, tq, tq)), (tn, (tr, ts, ts), (tr, tt, tt)))), (te, (tu, (tv, (tw, tx, tx), (tw, ty, ty)), (tv, (tz, ttq, ttq), (tz, ttr, ttr))), (tu, (tts, (ttt, ttu, ttu), (ttt, ttv, ttv)), (tts, (ttw, ttx, ttx), (ttw, tty, tty))))), (td, (ttz, (ttA, (ttB, (ttC, ttD, ttD), (ttC, ttE, ttE)), (ttB, (ttF, ttG, ttG), (ttF, ttH, ttH))), (ttA, (ttI, (ttJ, ttK, ttK), (ttJ, ttL, ttL)), (ttI, (ttM, ttN, ttN), (ttM, ttO, ttO)))), (ttz, (ttP, (ttQ, (ttR, ttS, ttS), (ttR, ttT, ttT)), (ttQ, (ttU, ttV, ttV), (ttU, ttW, ttW))), (ttP, (ttX, (ttY, ttZ, ttZ), (ttY, tt10, tt10)), (ttX, (tt11, tt12, tt12), (tt11, tt13, tt13)))))), (tc, (tt14, (tt15, (tt16, (tt17, (tt18, tt19, tt19), (tt18, tt1a, tt1a)), (tt17, (tt1b, tt1c, tt1c), (tt1b, tt1d, tt1d))), (tt16, (tt1e, (tt1f, tt1g, tt1g), (tt1f, tt1h, tt1h)), (tt1e, (tt1i, tt1j, tt1j), (tt1i, tt1k, tt1k)))), (tt15, (tt1l, (tt1m, (tt1n, tt1o, tt1o), (tt1n, tt1p, tt1p)), (tt1m, (tt1q, tt1r, tt1r), (tt1q, tt1s, tt1s))), (tt1l, (tt1t, (tt1u, tt1v, tt1v), (tt1u, tt1w, tt1w)), (tt1t, (tt1x, tt1y, tt1y), (tt1x, tt1z, tt1z))))), (tt14, (tt1A, (tt1B, (tt1C, (tt1D, tt1E, tt1E), (tt1D, tt1F, tt1F)), (tt1C, (tt1G, tt1H, tt1H), (tt1G, tt1I, tt1I))), (tt1B, (tt1J, (tt1K, tt1L, tt1L), (tt1K, tt1M, tt1M)), (tt1J, (tt1N, tt1O, tt1O), (tt1N, tt1P, tt1P)))), (tt1A, (tt1Q, (tt1R, (tt1S, tt1T, tt1T), (tt1S, tt1U, tt1U)), (tt1R, (tt1V, tt1W, tt1W), (tt1V, tt1X, tt1X))), (tt1Q, (tt1Y, (tt1Z, tt20, tt20), (tt1Z, tt21, tt21)), (tt1Y, (tt22, tt23, tt23), (tt22, tt24, tt24))))))), (tt25, (tt28, (tt29, (tt2a, (tt2b, (tt2c, (tt2d, tt2e, tt2e), (tt2d, tt2f, tt2f)), (tt2c, (tt2g, tt2h, tt2h), (tt2g, tt2i, tt2i))), (tt2b, (tt2j, (tt2k, tt2l, tt2l), (tt2k, tt2m, tt2m)), (tt2j, (tt2n, tt2o, tt2o), (tt2n, tt2p, tt2p)))), (tt2a, (tt2q, (tt2r, (tt2s, tt2t, tt2t), (tt2s, tt2u, tt2u)), (tt2r, (tt2v, tt2w, tt2w), (tt2v, tt2x, tt2x))), (tt2q, (tt2y, (tt2z, tt2A, tt2A), (tt2z, tt2B, tt2B)), (tt2y, (tt2C, tt2D, tt2D), (tt2C, tt2E, tt2E))))), (tt29, (tt2F, (tt2G, (tt2H, (tt2I, tt2J, tt2J), (tt2I, tt2K, tt2K)), (tt2H, (tt2L, tt2M, tt2M), (tt2L, tt2N, tt2N))), (tt2G, (tt2O, (tt2P, tt2Q, tt2Q), (tt2P, tt2R, tt2R)), (tt2O, (tt2S, tt2T, tt2T), (tt2S, tt2U, tt2U)))), (tt2F, (tt2V, (tt2W, (tt2X, tt2Y, tt2Y), (tt2X, tt2Z, tt2Z)), (tt2W, (tt30, tt31, tt31), (tt30, tt32, tt32))), (tt2V, (tt33, (tt34, tt35, tt35), (tt34, tt36, tt36)), (tt33, (tt37, tt38, tt38), (tt37, tt39, tt39)))))), (tt28, (tt3a, (tt3b, (tt3c, (tt3d, (tt3e, tt3f, tt3f), (tt3e, tt3g, tt3g)), (tt3d, (tt3h, tt3i, tt3i), (tt3h, tt3j, tt3j))), (tt3c, (tt3k, (tt3l, tt3m, tt3m), (tt3l, tt3n, tt3n)), (tt3k, (tt3o, tt3p, tt3p), (tt3o, tt3q, tt3q)))), (tt3b, (tt3r, (tt3s, (tt3t, tt3u, tt3u), (tt3t, tt3v, tt3v)), (tt3s, (tt3w, tt3x, tt3x), (tt3w, tt3y, tt3y))), (tt3r, (tt3z, (tt3A, tt3B, tt3B), (tt3A, tt3C, tt3C)), (tt3z, (tt3D, tt3E, tt3E), (tt3D, tt3F, tt3F))))), (tt3a, (tt3G, (tt3H, (tt3I, (tt3J, tt3K, tt3K), (tt3J, tt3L, tt3L)), (tt3I, (tt3M, tt3N, tt3N), (tt3M, tt3O, tt3O))), (tt3H, (tt3P, (tt3Q, tt3R, tt3R), (tt3Q, tt3S, tt3S)), (tt3P, (tt3T, tt3U, tt3U), (tt3T, tt3V, tt3V)))), (tt3G, (tt3W, (tt3X, (tt3Y, tt3Z, tt3Z), (tt3Y, tt40, tt40)), (tt3X, (tt41, tt42, tt42), (tt41, tt43, tt43))), (tt3W, (tt44, (tt45, tt46, tt46), (tt45, tt47, tt47)), (tt44, (tt48, tt49, tt49), (tt48, tt4a, tt4a)))))))) -> ta ;;
+1 head _:_ _forall_ [ta] => [ta] -> ta ;;
+1 one _:_ _forall_ [ta] => ta ;;
+1 s_1_0 _:_ _forall_ [ta] => ta -> ta ;;
+1 s_2_0 _:_ _forall_ [ta tb] => (ta, tb) -> ta ;;
+1 s_2_1 _:_ _forall_ [ta tb] => (ta, tb) -> tb ;;
+1 s_3_0 _:_ _forall_ [ta tb tc] => (ta, tb, tc) -> ta ;;
+1 s_3_1 _:_ _forall_ [ta tb tc] => (ta, tb, tc) -> tb ;;
+1 s_3_2 _:_ _forall_ [ta tb tc] => (ta, tb, tc) -> tc ;;
index bbcc174..f568c39 100644 (file)
@@ -11,7 +11,7 @@
 -}
 
 
-module Foo where
+module ShouldSucceed where
 
 a :: (Ord f) => f 
 a = b
diff --git a/ghc/tests/typecheck/should_compile/tc090.stderr b/ghc/tests/typecheck/should_compile/tc090.stderr
new file mode 100644 (file)
index 0000000..6ba1b2e
--- /dev/null
@@ -0,0 +1,26 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds
+[taBh]
+[d.Ord_aBq]
+[([taBh], a{-r3h,x-}, a_aBf), ([taBh], b{-r3i,x-}, b_aBg)]
+    d.Ord_aBs = d.Ord_aBq
+    b_aBv = b{-r3i,x-} taBh d.Ord_aBs
+    d.Ord_aBu = d.Ord_aBq
+    a_aBw = a{-r3h,x-} taBh d.Ord_aBu
+    a_aBf = b_aBv
+    b_aBg = a_aBw
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d15 1 $d16 1 $d33 1 $d35 1 $d50 1 $d52 1 $d7 1 $d8 1 $m/= 1 $m< 1 $m<= 1 $m> 1 $m>= 1 $mcompare 1 $mmax 1 $mmin 1 Eq 1 Ord 1 Ordering 1;
+PrelNum 1 :: $d17 1 $d18 1;
+_exports_
+ShouldSucceed a b;
+_declarations_
+1 a _:_ _forall_ [ta] {PrelBase.Ord ta} => ta ;;
+1 b _:_ _forall_ [ta] {PrelBase.Ord ta} => ta ;;
index fc4e82c..eb52c16 100644 (file)
@@ -48,7 +48,7 @@ all right.
        -- Lennart
 - ------- End of forwarded message -------
 -}
-module ShouldFail where
+module ShouldSucceed where
 
 sort :: Ord a => [a] -> [a]
 sort xs = s xs (length xs)
diff --git a/ghc/tests/typecheck/should_compile/tc091.stderr b/ghc/tests/typecheck/should_compile/tc091.stderr
new file mode 100644 (file)
index 0000000..333fba8
--- /dev/null
@@ -0,0 +1,56 @@
+
+
+================================================================================
+Typechecked:
+AbsBinds [taW8] [] [([taW8], init_last{-r3m,x-}, init_last_aW5)]
+    init_last_aW5 a_r3E b_r3F = (a_r3E, a_r3E)
+AbsBinds [taWl] [d.Ord_aWp] [([taWl], merge{-r3l,x-}, merge_aWi)]
+    merge_aWi xs_r3B ys_r3C = xs_r3B
+AbsBinds [taWw] [d.Ord_aXv] [([taWw], sort{-r3k,x-}, sort_aWt)]
+    d.Ord_aXt = d.Ord_aXv
+    sort_aWt xs_r3o
+            = s_aXJ xs_r3o PrelList.length{-rhD,p-} taWw xs_r3o
+            where
+                {- nonrec -}
+                AbsBinds [taWD] [d.Ord_aXe] [([taWD], s_r3q, s_aWA)]
+                    d.Ord_aXi = d.Ord_aXe
+                    merge_aXK = merge{-r3l,x-} taWD d.Ord_aXi
+                    d.Ord_aXk = d.Ord_aXe
+                    sort_aXL = sort{-r3k,x-} taWD d.Ord_aXk
+                    sort_aXM = sort_aXL
+                    s_aWA xs_r3u k_r3v
+                          = if k_r3v <=_aXF lit_aXG then
+                                xs_r3u
+                            else
+                                merge_aXK sort_aXL ys_r3x sort_aXM zs_r3y
+                          where
+                              {- nonrec -}
+                              AbsBinds [] [] [([], ys_r3x, ys_aWG), ([], zs_r3y, zs_aWH)]
+                                  (ys_aWG, zs_aWH)
+                                      = init_last{-r3m,x-} taWD xs_r3u k_r3v div_aXH lit_aXI
+                              {- nonrec -}
+                              {- nonrec -}
+                {- nonrec -}
+                s_aXJ = s_r3q taWw d.Ord_aXt
+                {- nonrec -}
+d.Ord_aXB = PrelBase.$d7{-rrR,p-}
+<=_aXF = PrelBase.<={-rqO,p-} PrelBase.Int{-3g,W-} d.Ord_aXB
+lit_aXG = PrelBase.I#{-5b,w-}{i} 1#
+d.Integral_aXE = PrelNum.$d36{-rFA,p-}
+div_aXH = PrelNum.div{-ry2,p-} PrelBase.Int{-3g,W-} d.Integral_aXE
+lit_aXI = PrelBase.I#{-5b,w-}{i} 2#
+ghc: module version changed to 1; reason: no old .hi file
+_interface_ ShouldSucceed 1
+_instance_modules_
+ArrBase IO PrelNum
+_usages_
+PrelBase 1 :: $d1 1 $d11 1 $d12 1 $d14 1 $d15 1 $d16 1 $d2 1 $d22 1 $d27 1 $d28 1 $d3 1 $d31 1 $d32 1 $d33 1 $d34 1 $d35 1 $d38 1 $d39 1 $d4 1 $d40 1 $d42 1 $d43 1 $d45 1 $d46 1 $d47 1 $d50 1 $d51 1 $d52 1 $d55 1 $d56 1 $d6 1 $d7 1 $d8 1 $d9 1 $m- 1 $m/= 1 $m< 1 $m<= 1 $m> 1 $m>= 1 $mcompare 1 $menumFromThenTo 1 $menumFromTo 1 $mfromInt 1 $mmax 1 $mmin 1 $mshowList 1 Enum 1 Eq 1 Eval 1 Num 1 Ord 1 Ordering 1 Show 1 String 1;
+PrelList 1 :: length 1;
+PrelNum 1 :: $d1 1 $d10 1 $d15 1 $d16 1 $d17 1 $d18 1 $d2 1 $d29 1 $d30 1 $d31 1 $d32 1 $d33 1 $d34 1 $d35 1 $d36 1 $d37 1 $d38 1 $d39 1 $d5 1 $d6 1 $d7 1 $d8 1 $mdiv 1 $mdivMod 1 $mmod 1 $mquot 1 $mrem 1 Integral 1 Ratio 1 Rational 1 Real 1;
+PrelTup 1 :: $d13 1 $d4 1 $d49 1 $d9 1;
+_exports_
+ShouldSucceed init_last merge sort;
+_declarations_
+1 init_last _:_ _forall_ [ta] => [ta] -> PrelBase.Int -> ([ta], [ta]) ;;
+1 merge _:_ _forall_ [ta] {PrelBase.Ord ta} => [ta] -> [ta] -> [ta] ;;
+1 sort _:_ _forall_ [ta] {PrelBase.Ord ta} => [ta] -> [ta] ;;
index 6efcc42..01c4bbe 100644 (file)
@@ -1,8 +1,7 @@
  
 Digraph.hs:19: A type signature is more polymorphic than the inferred type
-                  Some type variables in the inferred type can't be forall'd, namely:
-                  `taXO'
-                  Possible cause: the RHS mentions something subject to the monomorphism restriction
+                  Can't for-all the type variable(s) `taWg'
+                  in the inferred type `[Edge taWg]'
     When checking signature for `reversed_edges'
     In an equation for function `stronglyConnComp':
        `stronglyConnComp es vs
@@ -14,8 +13,8 @@ Digraph.hs:19: A type signature is more polymorphic than the inferred type
                          where
                              span_tree r (vs, ns) PrelBase.[] = (vs, (ns))
                              span_tree r (vs, ns) (x PrelBase.: xs)
-                                       | [x PrelList.elem vs] = span_tree r (vs, (ns)) xs
-                                       | [PrelBase.otherwise]
+                                       | x PrelList.elem vs = span_tree r (vs, (ns)) xs
+                                       | PrelBase.otherwise
                                        = span_tree r (vs', ((x PrelBase.: ns') PrelBase.: ns)) xs
                                        where
                                            (vs', ns')
index eb7ffdd..5e1414d 100644 (file)
@@ -1,26 +1,10 @@
-TOP = ../../../..
+TOP = ../..
 include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/should_fail.mk
 
-HS_SRCS = $(wildcard *.hs)
-
-SRC_RUNTEST_OPTS += -o1 $*.stdout -o2 $*.stderr -x 1
 HC_OPTS += -noC -ddump-tc
 
-%.o : %.hs
-       $(RUNTEST) $(HC) $(RUNTEST_OPTS) -- $(HC_OPTS) -c $< -o $@
-
-all :: $(HS_OBJS)
-
 tcfail045_HC_OPTS = -fglasgow-exts
-tcfail059_HC_OPTS = -hi                     
-tcfail060_HC_OPTS = -hi
-tcfail061_HC_OPTS = -hi
-tcfail062_HC_OPTS = -hi
-tcfail063_HC_OPTS = -hi
-tcfail064_HC_OPTS = -hi
-tcfail065_HC_OPTS = -hi
-tcfail066_HC_OPTS = -hi
-tcfail067_HC_OPTS = -hi
 tcfail068_HC_OPTS = -fglasgow-exts
 
 include $(TOP)/mk/target.mk
index 1b5ad86..56f538b 100644 (file)
@@ -2,10 +2,7 @@
 tcfail001.hs:9:warning:
     Duplicated class assertion `A a' in context: `(A a, A a)'
  
-tcfail001.hs:9: Couldn't match the type
-                   `PrelBase.[]' against `GHC.-> [takw]'
-    Expected: `[takv]'
-    Inferred: `[takw] -> [takx]'
+tcfail001.hs:9: Function type expected, but found the type `[takz]'
     In an equation for function `op': `op PrelBase.[] = PrelBase.[]'
 
 
index 390e479..a9e6a95 100644 (file)
@@ -1,8 +1,8 @@
  
 tcfail002.hs:4: Cannot construct the infinite type (occur check)
-                   `tak5' = `[tak5]'
-    Expected: `[tak5] -> tak5'
-    Inferred: `[tak5] -> [tak5]'
+                   `take' = `[take]'
+    Expected: `[take]'
+    Inferred: `take'
     In an equation for function `c': `c z = z'
 
 
index a4f4e31..80f2006 100644 (file)
@@ -1,8 +1,8 @@
  
 tcfail004.hs:3: Couldn't match the type
-                   `PrelTup.(,)' against `PrelTup.(,,) taRU'
-    Expected: `(taRO, taRR)'
-    Inferred: `(taRU, taRX, taS0)'
+                   `PrelTup.(,,) taS7' against `PrelTup.(,)'
+    Expected: `(taS7, taS9, taSb)'
+    Inferred: `(taS1, taS4)'
     In a pattern binding: `(f, g) = (1, 2, 3)'
 
 
index 9d0fbc3..bbadcad 100644 (file)
@@ -1,8 +1,8 @@
  
 tcfail005.hs:3: Couldn't match the type
-                   `PrelBase.[]' against `PrelTup.(,) taR8'
-    Expected: `[taR4]'
-    Inferred: `(taR8, PrelBase.Char)'
+                   `PrelTup.(,) taRl' against `PrelBase.[]'
+    Expected: `(taRl, taRn)'
+    Inferred: `[taRh]'
     In a pattern binding: `(h PrelBase.: i) = (1, ('a'))'
 
 
index 2ee9321..f392870 100644 (file)
@@ -1,8 +1,8 @@
  
-tcfail008.hs:3: No instance for: `PrelBase.Num [taBA]'
+tcfail008.hs:3: No instance for: `PrelBase.Num [taBM]'
     arising from the literal 2 at tcfail008.hs:3
  
-tcfail008.hs:3: No instance for: `PrelBase.Num [taBA]'
+tcfail008.hs:3: No instance for: `PrelBase.Num [taBM]'
     arising from the literal 2 at tcfail008.hs:3
  
 tcfail008.hs:3: No instance for: `PrelBase.Num [PrelBase.Int]'
index 8c62fbc..1f4d4b2 100644 (file)
@@ -1,10 +1,9 @@
  
 tcfail009.hs:3: Couldn't match the type
-                   `PrelBase.Integer' against `PrelBase.Int'
-    Expected: `PrelBase.Int'
-    Inferred: `PrelBase.Integer'
-    In an arithmetic sequence:
-       `[(1 :: PrelBase.Int) .. (2 :: PrelBase.Integer)]'
+                   `PrelBase.Int' against `PrelBase.Integer'
+    Expected: `PrelBase.Integer'
+    Inferred: `PrelBase.Int'
+    In an expression with a type signature: `2 :: PrelBase.Integer'
 
 
 Compilation had errors
index 1e9fd84..d707740 100644 (file)
@@ -1,8 +1,8 @@
  
-tcfail010.hs:3: No instance for: `PrelBase.Num [taBD]'
+tcfail010.hs:3: No instance for: `PrelBase.Num [taBS]'
     arising from use of `PrelBase.+' at tcfail010.hs:3
  
-tcfail010.hs:3: No instance for: `PrelBase.Num [taBD]'
+tcfail010.hs:3: No instance for: `PrelBase.Num [taBS]'
     arising from use of `PrelBase.+' at tcfail010.hs:3
 
 
index aefe17e..a6a4f8b 100644 (file)
@@ -1,8 +1,8 @@
  
 tcfail012.hs:3: Couldn't match the type
-                   `PrelBase.Bool' against `[tajU]'
-    Expected: `PrelBase.Bool'
-    Inferred: `[tajU]'
+                   `[tak1]' against `PrelBase.Bool'
+    Expected: `[tak1]'
+    Inferred: `PrelBase.Bool'
     In a pattern binding: `PrelBase.True = PrelBase.[]'
 
 
index eaf06c1..2907a74 100644 (file)
@@ -1,8 +1,8 @@
  
 tcfail013.hs:4: Couldn't match the type
-                   `[taBB]' against `PrelBase.Bool'
-    Expected: `[taBB] -> taBD'
-    Inferred: `PrelBase.Bool -> taBG'
+                   `[taBQ]' against `PrelBase.Bool'
+    Expected: `PrelBase.Bool'
+    Inferred: `[taBQ]'
     In an equation for function `f': `f PrelBase.True = 2'
 
 
index be4ae1f..993aef6 100644 (file)
@@ -1,17 +1,24 @@
  
 tcfail014.hs:5: Cannot construct the infinite type (occur check)
-                   `oaBR' = `oaBR -> oaCz'
-    Expected: `oaBR'
-    Inferred: `oaBR -> oaCz'
-    In the first argument of `z', namely `z'
+                   `oaCj' = `oaCj -> oaCi'
+    Expected: `oaCj -> oaCi'
+    Inferred: `oaCj'
     In an equation for function `h': `h z = z z'
     In an equation for function `g':
        `g y
           = h PrelBase.+ 2
           where
               h z = z z'
+    In an equation for function `f':
+       `f x
+          = g PrelBase.+ 1
+          where
+              g y
+                = h PrelBase.+ 2
+                where
+                    h z = z z'
  
-tcfail014.hs:5: No instance for: `PrelBase.Num (taCk -> taCl)'
+tcfail014.hs:5: No instance for: `PrelBase.Num (taCG -> taCI)'
     arising from use of `PrelBase.+' at tcfail014.hs:5
 
 
index a08f8a0..196761a 100644 (file)
@@ -1,10 +1,8 @@
  
 tcfail016.hs:9: Couldn't match the type
-                   `PrelTup.(,) taRi' against `Expr'
-    Expected: `Expr taRd'
-    Inferred: `AnnExpr taRi'
-    In the first argument of `g', namely `e1'
-    In the first argument of `PrelBase.++', namely `(g e1)'
+                   `Expr' against `PrelTup.(,) taRx'
+    Expected: `AnnExpr taRx'
+    Inferred: `Expr taRx'
     In an equation for function `g':
        `g (App e1 e2) = (g e1) PrelBase.++ (g e2)'
 
index be53d89..3e61ca5 100644 (file)
@@ -1,5 +1,5 @@
  
-tcfail017.hs:11: No instance for: `C [takz]'
+tcfail017.hs:11: No instance for: `C [takH]'
     arising from an instance declaration at tcfail017.hs:11
     When checking superclass constraints of an instance declaration
 
index 987eb45..bbfa188 100644 (file)
@@ -1,8 +1,8 @@
  
-tcfail018.hs:5: No instance for: `PrelBase.Num [taBB]'
+tcfail018.hs:5: No instance for: `PrelBase.Num [taBO]'
     arising from the literal 1 at tcfail018.hs:5
  
-tcfail018.hs:5: No instance for: `PrelBase.Num [taBB]'
+tcfail018.hs:5: No instance for: `PrelBase.Num [taBO]'
     arising from the literal 1 at tcfail018.hs:5
 
 
index a5da89f..5862a64 100644 (file)
@@ -1,17 +1,17 @@
  
-tcfail019.hs:20: No instance for: `B [tal6]'
+tcfail019.hs:20: No instance for: `B [tale]'
     arising from an instance declaration at tcfail019.hs:20
     When checking methods of an instance declaration
  
-tcfail019.hs:20: No instance for: `C [tal6]'
+tcfail019.hs:20: No instance for: `C [tale]'
     arising from an instance declaration at tcfail019.hs:20
     When checking methods of an instance declaration
  
-tcfail019.hs:20: No instance for: `B [tal6]'
+tcfail019.hs:20: No instance for: `B [tale]'
     arising from an instance declaration at tcfail019.hs:20
     When checking superclass constraints of an instance declaration
  
-tcfail019.hs:20: No instance for: `C [tal6]'
+tcfail019.hs:20: No instance for: `C [tale]'
     arising from an instance declaration at tcfail019.hs:20
     When checking superclass constraints of an instance declaration
 
index ac62283..d6c26e4 100644 (file)
@@ -1,5 +1,5 @@
  
-tcfail020.hs:12: No instance for: `A [taBn]'
+tcfail020.hs:12: No instance for: `A [taBD]'
     arising from an instance declaration at tcfail020.hs:12
     When checking superclass constraints of an instance declaration
 
diff --git a/ghc/tests/typecheck/should_fail/tcfail021.stderr b/ghc/tests/typecheck/should_fail/tcfail021.stderr
new file mode 100644 (file)
index 0000000..08702aa
--- /dev/null
@@ -0,0 +1,7 @@
+tcfail021.hs:8:
+    Can't handle multiple methods defined by one pattern binding
+       `(==, /=) = (\ x -> \ y -> True, (\ x -> \ y -> False))'
+
+
+Compilation had errors
index f17c04f..3b73a64 100644 (file)
@@ -3,14 +3,14 @@ tcfail023.hs:2: Duplicate or overlapping instance declarations
     for `A B' at tcfail023.hs:8 and tcfail023.hs:11
  
 tcfail023.hs:11: Couldn't match the type
-                    `B' against `PrelBase.Bool'
-    Expected: `B'
-    Inferred: `PrelBase.Bool'
+                    `PrelBase.Bool' against `B'
+    Expected: `PrelBase.Bool'
+    Inferred: `B'
     In an equation for function `op': `op C = PrelBase.True'
  
-tcfail023.hs:8: Couldn't match the type `B' against `PrelBase.Bool'
-    Expected: `B'
-    Inferred: `PrelBase.Bool'
+tcfail023.hs:8: Couldn't match the type `PrelBase.Bool' against `B'
+    Expected: `PrelBase.Bool'
+    Inferred: `B'
     In an equation for function `op': `op C = PrelBase.True'
  
 tcfail023.hs:2: Module Main must include a definition for `Main.main'
index b41cd36..a58a80d 100644 (file)
@@ -1,6 +1,6 @@
  
-tcfail028.hs:4: Couldn't match the kind `ka2534 -> *' against `*'
-    When unifying two kinds `ka2534 -> *' and `*'
+tcfail028.hs:4: Couldn't match the kind `ka2551 -> *' against `*'
+    When unifying two kinds `ka2551 -> *' and `*'
     In the data declaration for `A'
 
 
index bcc5bde..2f528f6 100644 (file)
@@ -1,8 +1,8 @@
  
 tcfail031.hs:3: Couldn't match the type
-                   `PrelBase.Bool' against `PrelBase.Char'
-    Expected: `PrelBase.Bool'
-    Inferred: `PrelBase.Char'
+                   `PrelBase.Char' against `PrelBase.Bool'
+    Expected: `PrelBase.Char'
+    Inferred: `PrelBase.Bool'
     In the predicate expression `'a''
     In an equation for function `f': `f x = if 'a' then 1 else 2'
 
index c947b0b..3048623 100644 (file)
@@ -1,8 +1,7 @@
  
 tcfail032.hs:14: A type signature is more polymorphic than the inferred type
-                    Some type variables in the inferred type can't be forall'd, namely:
-                    `taAx'
-                    Possible cause: the RHS mentions something subject to the monomorphism restriction
+                    Can't for-all the type variable(s) `taAO'
+                    in the inferred type `taAO -> PrelBase.Int'
     In an expression with a type signature:
        `x :: _forall_ [a] (PrelBase.Eq a) => a -> PrelBase.Int'
 
index 68a7964..4e664ee 100644 (file)
@@ -1,9 +1,9 @@
  
 tcfail033.hs:4: Cannot construct the infinite type (occur check)
-                   `taGt' = `(taGt, taGw)'
-    Expected: `aaGy (taGt, taGw)'
-    Inferred: `aaGy taGt'
-    In a pattern binding: `buglet = [ x | (x, y) <- buglet ]'
+                   `taGA' = `(taGA, taGD)'
+    Expected: `aaGF taGA'
+    Inferred: `aaGF (taGA, taGD)'
+    In a pattern binding: `buglet = [x | (x, y) <- buglet]'
 
 
 Compilation had errors
index 48b168a..783c4d6 100644 (file)
@@ -1,7 +1,7 @@
  
-tcfail034.hs:13: Context `{PrelNum.Integral taTL}'
+tcfail034.hs:13: Context `{PrelNum.Integral taTY}'
                     required by inferred type, but missing on a type signature
-                    `PrelNum.Integral' `taTL' arising from use of `PrelNum.mod' at tcfail034.hs:17
+                    `PrelNum.Integral taTY' arising from use of `PrelNum.mod' at tcfail034.hs:17
     When checking signature(s) for: `test'
 
 
index b3fe518..4ca6097 100644 (file)
@@ -1,6 +1,6 @@
  
-tcfail040.hs:3: Ambiguous context `{ORD taBu}'
-                   `ORD' `taBu' arising from use of `<<' at tcfail040.hs:19
+tcfail040.hs:3: Ambiguous context `{ORD taBH}'
+                   `ORD taBH' arising from use of `<<' at tcfail040.hs:19
 
 
 Compilation had errors
index 2f0c837..d7de5bd 100644 (file)
@@ -1,7 +1,7 @@
  
-tcfail042.hs:16: Context `{PrelBase.Num taHh}'
+tcfail042.hs:16: Context `{PrelBase.Num taHz}'
                     required by inferred type, but missing on a type signature
-                    `PrelBase.Num' `taHh' arising from an instance declaration at tcfail042.hs:16
+                    `PrelBase.Num taHz' arising from an instance declaration at tcfail042.hs:16
     When checking superclass constraints of an instance declaration
  
 tcfail042.hs:4: Module Main must include a definition for `Main.main'
index 018a55a..6971308 100644 (file)
@@ -1,12 +1,14 @@
  
-tcfail044.hs:12: The type `a
-                          -> a' cannot be used as an instance type
+tcfail044.hs:12: The type
+                    `a -> a'
+                cannot be used as an instance type
  
-tcfail044.hs:5: The type `a
-                         -> a' cannot be used as an instance type
+tcfail044.hs:5: The type
+                   `a -> a'
+               cannot be used as an instance type
  
-tcfail044.hs:20: No instance for:
-                    `PrelBase.Num (PrelBase.Float -> PrelBase.Float)'
+tcfail044.hs:20: No instance for: `PrelBase.Num (PrelBase.Float
+                                                -> PrelBase.Float)'
     arising from use of `PrelBase.+' at tcfail044.hs:20
 
 
index f83ce43..1d2c87d 100644 (file)
@@ -1,30 +1,18 @@
  
-tcfail046.hs:4: No instance for class
-               `PrelBase.Eq'
-               at type
-               `Process a'
+tcfail046.hs:4: No instance for `PrelBase.Eq Process a'
  
-tcfail046.hs:4: No instance for class
-               `PrelBase.Eq'
-               at type
-               `Process a'
+tcfail046.hs:4: No instance for `PrelBase.Eq Process a'
  
-tcfail046.hs:4: No instance for class
-               `PrelBase.Eq'
-               at type
-               `Process a'
+tcfail046.hs:4: No instance for `PrelBase.Eq Process a'
  
-tcfail046.hs:4: No instance for class
-               `PrelBase.Eq'
-               at type
-               `Process a'
+tcfail046.hs:4: No instance for `PrelBase.Eq Process a'
  
-tcfail046.hs:23: No instance for: `PrelBase.Eq (Process taVO)'
-    arising from use of `PrelBase.==' at tcfail046.hs:23
+tcfail046.hs:15: No instance for: `PrelBase.Eq (Process taW3)'
+    arising from use of `PrelBase.==' at tcfail046.hs:15
     When checking methods of an instance declaration
  
-tcfail046.hs:15: No instance for: `PrelBase.Eq (Process taZ8)'
-    arising from use of `PrelBase.==' at tcfail046.hs:15
+tcfail046.hs:23: No instance for: `PrelBase.Eq (Process taXh)'
+    arising from use of `PrelBase.==' at tcfail046.hs:23
     When checking methods of an instance declaration
 
 
index 6df94a6..0e001d3 100644 (file)
@@ -1,5 +1,7 @@
  
-tcfail047.hs:6: The type `(a, (b, c))' cannot be used as an instance type
+tcfail047.hs:6: The type
+                   `(a, (b, c))'
+               cannot be used as an instance type
  
 tcfail047.hs:2: Module Main must include a definition for `Main.main'
 
index 8070c17..85c3b77 100644 (file)
@@ -1,10 +1,10 @@
  
 tcfail055.hs:3: Couldn't match the type
-                   `PrelBase.Int' against `PrelBase.Float'
-    Expected: `PrelBase.Float'
-    Inferred: `PrelBase.Int'
+                   `PrelBase.Float' against `PrelBase.Int'
+    Expected: `PrelBase.Int'
+    Inferred: `PrelBase.Float'
     In an expression with a type signature:
-       `(x PrelBase.+ 1 :: PrelBase.Int) :: PrelBase.Float'
+       `x PrelBase.+ 1 :: PrelBase.Int'
 
 
 Compilation had errors
index 83fb883..1168708 100644 (file)
@@ -1,8 +1,7 @@
  
-<NoSrcLoc>: A type signature is more polymorphic than the inferred type
-               Some type variables in the inferred type can't be forall'd, namely:
-               `taHR'
-               Possible cause: the RHS mentions something subject to the monomorphism restriction
+tcfail065.hs:29: A type signature is more polymorphic than the inferred type
+                    Can't for-all the type variable(s) `taI7'
+                    in the inferred type `taI7 -> X taI7 -> X taI7'
     When checking signature for `setX'
 
 
index 392680b..9e754a2 100644 (file)
@@ -1,12 +1,12 @@
  
-tcfail067.hs:1: Context `{PrelBase.Ord ta17k}'
+tcfail067.hs:1: Context `{PrelBase.Ord ta179}'
                    required by inferred type, but missing on a type signature
-                   `PrelBase.Ord' `ta17k' arising from use of `SubRange' at tcfail067.hs:76
+                   `PrelBase.Ord ta179' arising from use of `SubRange' at tcfail067.hs:76
     When checking signature(s) for: `numSubRangeBinOp'
  
-tcfail067.hs:65: Context `{PrelBase.Ord ta18S}'
+tcfail067.hs:65: Context `{PrelBase.Ord ta18O}'
                     required by inferred type, but missing on a type signature
-                    `PrelBase.Ord' `ta18S' arising from use of `numSubRangeNegate' at tcfail067.hs:61
+                    `PrelBase.Ord ta18O' arising from use of `numSubRangeNegate' at tcfail067.hs:61
     When checking methods of an instance declaration
  
 tcfail067.hs:65: No explicit method nor default method for `PrelBase.abs'
index 52f3ae9..03413b8 100644 (file)
@@ -1,7 +1,7 @@
  
 tcfail069.hs:21: Couldn't match the type
-                    `PrelBase.[]' against `PrelTup.(,) [PrelBase.Int]'
-    Expected: `[taCf]'
+                    `PrelTup.(,) taCl' against `PrelBase.[]'
+    Expected: `[taCp]'
     Inferred: `([PrelBase.Int], [PrelBase.Int])'
     In a "case" branch: `PrelBase.[]' -> `IOBase.error "foo"'
     In the case expression
index 010e653..7083356 100644 (file)
@@ -1,6 +1,6 @@
  
-tcfail070.hs:13: Couldn't match the kind `*' against `* -> ka1921'
-    When unifying two kinds `*' and `* -> ka1921'
+tcfail070.hs:13: Couldn't match the kind `*' against `* -> ka1932'
+    When unifying two kinds `*' and `* -> ka1932'
     In the type declaration for `State'
 
 
index c6067c2..afc1de8 100644 (file)
@@ -1,9 +1,10 @@
  
 tcfail071.hs:10: Couldn't match the signature/existential type variable
-                    `taCF' with the type `taCR -> taCS -> taCS'
-    Expected: `taCR -> taCS -> taCS'
-    Inferred: `taCF'
-    In the first argument of `PrelBase.foldr', namely `(f c)'
+                    `taCS' with the type `taD6 -> taD3 -> taD3'
+    Expected: `taCS'
+    Inferred: `taD6 -> taD3 -> taD3'
+    In a pattern binding:
+       `p = PrelBase.foldr (f c) PrelBase.[] PrelBase.[]'
     In an equation for function `g':
        `g c
           = c
diff --git a/ghc/tests/typecheck/should_fail/tcfail072.stderr b/ghc/tests/typecheck/should_fail/tcfail072.stderr
new file mode 100644 (file)
index 0000000..0b9ed10
--- /dev/null
@@ -0,0 +1,7 @@
+tcfail072.hs:17: Ambiguous context `{PrelBase.Ord taDf}'
+                    `PrelBase.Ord taDf' arising from use of `g' at tcfail072.hs:23
+    When checking signature(s) for: `g'
+
+
+Compilation had errors
diff --git a/ghc/tests/typecheck/should_fail/tcfail073.stderr b/ghc/tests/typecheck/should_fail/tcfail073.stderr
new file mode 100644 (file)
index 0000000..b2a9cb7
--- /dev/null
@@ -0,0 +1,11 @@
+tcfail073.hs:3: Duplicate or overlapping instance declarations
+    for `PrelBase.Eq (a, b)' at tcfail073.hs:8 and <NoSrcLoc>
+tcfail073.hs:8: Context `{PrelBase.Eq taQT}'
+                   required by inferred type, but missing on a type signature
+                   `PrelBase.Eq taQT' arising from use of `PrelBase.==' at tcfail073.hs:8
+    When checking methods of an instance declaration
+
+
+Compilation had errors
diff --git a/ghc/tests/typecheck/should_fail/tcfail074.stderr b/ghc/tests/typecheck/should_fail/tcfail074.stderr
new file mode 100644 (file)
index 0000000..8c0740d
--- /dev/null
@@ -0,0 +1,8 @@
+tcfail074.hs:7:
+    Conflicting definitions for: `main'
+       Defined at tcfail074.hs:8
+       Defined at tcfail074.hs:7
+
+
+Compilation had errors
diff --git a/ghc/tests/typecheck/should_fail/tcfail075.stderr b/ghc/tests/typecheck/should_fail/tcfail075.stderr
new file mode 100644 (file)
index 0000000..986d5d7
--- /dev/null
@@ -0,0 +1 @@
+tcfail075.hs:9:1: parse error on input: "y"
diff --git a/ghc/tests/typecheck/should_fail/tcfail076.stderr b/ghc/tests/typecheck/should_fail/tcfail076.stderr
new file mode 100644 (file)
index 0000000..c10f44b
--- /dev/null
@@ -0,0 +1,12 @@
+tcfail076.hs:21: A type signature is more polymorphic than the inferred type
+                    Can't for-all the type variable(s) `taCc'
+                    in the inferred type `(taC2 -> aaC1 taCc) -> aaC1 taCc'
+    In a polymorphic function argument `(\ cont' -> cont a)'
+    In an equation for function `callcc':
+       `callcc f
+               = KContT (\ cont
+                           -> unKContT (f (\ a -> KContT (\ cont' -> cont a))) cont)'
+
+
+Compilation had errors
index d012c9d..065ce32 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../../../..
+TOP = ../..
 include $(TOP)/mk/boilerplate.mk
 
 HS_SRCS = $(wildcard *.hs)
@@ -9,7 +9,7 @@ HC_OPTS += -noC -dcore-lint
 
 all :: $(BINS)
 
-%.o : %
+% : %.o
        $(HC) $(HC_OPTS) $< -o $@
 
 
diff --git a/ghc/tests/typecheck/should_run/tcrun001.hs b/ghc/tests/typecheck/should_run/tcrun001.hs
deleted file mode 100644 (file)
index 00b4945..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
---!! Test for (->) instances
-
-module Main where
-
-class Flob k where
-  twice :: k a a  -> k a a
-
-instance Flob (->) where
-  twice f = f . f
-
-inc :: Int -> Int
-inc x = x+1
-
-main = print (twice inc 2)
-
-