
#12490: With RebindableSyntax, ApplicativeDo should eliminate return/pure -------------------------------------+------------------------------------- Reporter: AaronFriel | Owner: simonmar Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.0.1 Resolution: | Keywords: 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 bgamari): For the record, there is actually a TODO in the code describing this exact shortcoming. See `isReturnApp` in `RnExpr` (https://ghc.haskell.org/trac/ghc/browser/ghc/compiler/rename/RnExpr.hs#L1774) I believe that the problem is that the `Applicative` do desugaring happens in the renamer, where we are unable to lookup whether `return` should be the normal `Control.Monad.return` or some rebound alternative. It's not clear to me how to best fix this short of moving the `Applicative` do implementation to the typechecker, but I'll make sure Simon Marlow knows about this when we next meet. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12490#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler