[GHC] #13905: ApplicativeDo is too strict with newtype patterns
GHC
ghc-devs at haskell.org
Mon Jul 3 10:25:51 UTC 2017
#13905: ApplicativeDo is too strict with newtype patterns
-------------------------------------+-------------------------------------
Reporter: dfeuer | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone: 8.4.1
Component: Compiler | Version: 8.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 simonpj):
That is extremely annoying, and so clearly an artefact of GHC's
architecture, rather than any solid reason, that we should question it.
For example we could
1. Keep track in the renamer of what local data constructors are newtypes.
(We already know this for imported ones.)
2. Rename and typecheck all data/class decls before we even start on the
value declarations. A bit like we do for top-level Template Haskell
splices.
The second of these looks more solid to me. I recall that there's a
similar issue with record fields, when the renamer wants to know what
fields a particular data constructor has. Currently we use a variant of
(1) I think; but (2) would solve it and thereby simplify that code.
So I quite like (2).
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13905#comment:4>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list