[GHC] #11482: Turn -fdefer-typed-holes on by default
GHC
ghc-devs at haskell.org
Sat Jan 23 15:23:33 UTC 2016
#11482: Turn -fdefer-typed-holes on by default
-------------------------------------+-------------------------------------
Reporter: thomie | Owner:
Type: feature request | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.10.3
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
Type of failure: Incorrect | Unknown/Multiple
warning at compile-time | Test Case:
Blocked By: | Blocking:
Related Tickets: #9497, #11481 | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by goldfire):
You make a good point. What about this design alternative:
* ghc turns `-fdefer-typed-holes` on by default
* Cabal / stack use `-fno-defer-typed-holes` by default.
* We encourage everyone to use `_` instead of `undefined`.
* If the type of a typed hole is known (that is, "pushed in", in the sense
of bidirectional type-checking) we emit a very short, one line warning
instead of the longer one with types. Even better, we could common up all
of these warnings into one that says where the holes are.
This design depends somewhat on what standard workflows are. (I have no
clue about standard workflows, as I'm quite non-standard.) Do people use
cabal/stack right from the get-go when starting a project? Or do they
prototype in GHCi a bit before making a build structure? If it's the
latter, then the design above makes sense. If it's the former, not so
much.
I also think the last point would be a nice part of this. The idea is that
if you say
{{{#!hs
frooble :: Bool
frooble = _ -- not sure if we're froobling today
}}}
we don't need a long-form warning telling us that the hole has type
`Bool`. A short warning saying `hole at (...)` is enough.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11482#comment:3>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list