[GHC] #11150: New `-fwarn-noncanonical-monoid-instances` warning
GHC
ghc-devs at haskell.org
Sun Jan 24 20:45:07 UTC 2016
#11150: New `-fwarn-noncanonical-monoid-instances` warning
-------------------------------------+-------------------------------------
Reporter: hvr | Owner: hvr
Type: feature request | Status: closed
Priority: normal | Milestone: 8.0.1
Component: Compiler | Version: 7.10.2
Resolution: fixed | Keywords:
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: #11128, #11139 | Differential Rev(s): Phab:D1553
Wiki Page: |
prime:Libraries/Proposals/SemigroupMonoid|
-------------------------------------+-------------------------------------
Comment (by Herbert Valerio Riedel <hvr@…>):
In [changeset:"fd6dd41c67f3bd23bbf074357219cfd251eb53d6/ghc"
fd6dd41c/ghc]:
{{{
#!CommitTicketReference repository="ghc"
revision="fd6dd41c67f3bd23bbf074357219cfd251eb53d6"
Implement `-Wnoncanonical-monadfail-instances` warning
The MonadFail proposal implemented so far via #10751 only warns about
missing `MonadFail` instances based on existence of failible pattern
matches in `do`-blocks.
However, based on the noncanonical Monad warnings implemented via #11150
we can provide a different mechanism for detecting missing `MonadFail`
instances quite cheaply. That is, by checking for canonical `fail`
definitions.
In the case of `Monad`/`MonadFail`, we define the canonical implementation
of
`fail` to be such that the soft-deprecated method shall (iff overridden)
be
defined in terms of the non-deprecated method. Consequently, in case of
`MonadFail`, the `Monad(fail)` method shall be defined as alias of
the `MonadFail(fail)` method.
This allows us at some distant point in the future to remove `fail` from
the `Monad` class, while having GHC ignore/tolerate such literal canonical
method definitions.
Reviewed By: bgamari, RyanGlScott
Differential Revision: https://phabricator.haskell.org/D1838
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11150#comment:4>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list