
#15645: TypeChecking of Monad patterns incorrect with RebindableSyntax and OverloadedStrings -------------------------------------+------------------------------------- Reporter: NeilMitchell | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.6.1 Component: Compiler | Version: 8.4.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: GHC rejects | Unknown/Multiple valid program | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by NeilMitchell): BTW, I'm happy to get the work done, if there's acceptance that it really is a bug, and what it should do. Implementation notes follow (only read them if we're agreed it is a bug, if not I'll transfer them to a proposal). There's still an open question of whether the `fromString` is injected only when you have `OverloadedStrings` and `RebindableSyntax` (and thus a user-controlled `fail`), or always for `OverloadedStrings` - my view is likely only when both are enabled. This would then be consistent with not desugaring pattern matches to `fromString`, since `patError` isn't user- controlled. My fix would be that `getFailFunction` and `failFunction` in `RnExpr.hs` should be changed so that if `OverloadedStrings` is enabled then the `fail_op` would be `fail . fromString` rather than just `fail` as it is now. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15645#comment:6 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler