[GHC] #14273: Typed holes' "valid substitutions" suggestions are oblivious to type class constraints
GHC
ghc-devs at haskell.org
Wed Sep 27 14:24:49 UTC 2017
#14273: Typed holes' "valid substitutions" suggestions are oblivious to type class
constraints
-------------------------------------+-------------------------------------
Reporter: RyanGlScott | Owner: Tritlo
Type: bug | Status: new
Priority: normal | Milestone: 8.4.1
Component: Compiler (Type | Version: 8.3
checker) |
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
Type of failure: Poor/confusing | Unknown/Multiple
error message | Test Case:
Blocked By: | Blocking:
Related Tickets: #9091, #9479 | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by vanto):
Replying to [[span(style=color: #FF0000, Tritlo )]]:\\
In GHC 5.0.3 or GHC 6.0, for instance:\\
{{{
Prelude> (\x -> x + _) 3
<interactive>:1: Pattern syntax in expression context: _
}}}
This response from the compiler is clear and sufficient.\\
For those who want to go further and find an answer, then they
activate Typed Holes in the compiler and start again.
{{{
Prelude> f = (\x -> x + _) 2
<interactive>:1:16: error:
* Found hole: _ :: a
Where: `a' is a rigid type variable bound by
the inferred type of f :: Num a => a at
<interactive>:1:1-19
* In the second argument of `(+)', namely `_'
In the expression: x + _
In the expression: \ x -> x + _
* Relevant bindings include
x :: a (bound at <interactive>:1:7)
f :: a (bound at <interactive>:1:1)
}}}
It is better to do as before rather than to do the reverse, ie write
{{{-fdefer-type-errors}}} or {{{ -fdefer-typed-holes}}}
Being brief, use Typed Holes if needed. I have no retrograde ideas when I
say that. I'm thinking of a better use of the compiler.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14273#comment:14>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list