
#16296: OccurAnal should not break the linter assumptions -------------------------------------+------------------------------------- Reporter: aspiwack | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.6.3 Resolution: | Keywords: Simplifier Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonpj): I wrote a quick fix, which has now landed as https://gitlab.haskell.org/ghc/ghc/commit/0eb7cf03da3783ca887d5de44d312cf6f3...] But it's not the Right Solution; it's messy, and it loses some useful optimisations, namely {{{ case Imported.x of True -> .....(case Imported.x of { True -> e1; False -> e2 })...... False -> ... }}} We'd like the inner case to disappear, but now it won't. I think the right solution is as outlined in the Description. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16296#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler