Wibbles from new arrow typechecking code
Refactored to solve Trac #5609
Merge branch 'master' of http://darcs.haskell.org/testsuite