We want to use it across the whole compiler now
We now do it while parsing the flags, rather than at the end. It also now uses the Platform's arch/os variables, rather than Config's.
Signed-off-by: Edward Z. Yang <email@example.com>
This patch implements monad comprehensions, Trac #4370. Thanks to Nils Schweinsberg for doing most of the heavy lifting. I did quite a lot of related refactoring as well. Notably: * Combined TransformStmt and GroupStmt into a single constructor TransStmt; they share a lot of code. I also made TransStmt into a record; it has a lot of fields. * Remove the "result expression" field of HsDo, and instead implement LastStmt, which is expected to be at the end of a list of Stmts * Generalise and tidy up the typechecking of monad comprehensions * Do-notation in arrows is marked with HsStmtContext = ArrowExpr * tcMDoStmt (which was only used for arrows) is moved to TcArrows, and renamed tcArrDoStmt * Improved documentation in the user manual * Lots of other minor changes