Unexpected type inference behavior with -XTypeApplications
In the following snippet, type inference of the let bound identity function after applying a type unexpectedly fails:
GHCi, version 8.2.1: http://www.haskell.org/ghc/ :? for help
[...]
*Main> :set -XTypeApplications
*Main> :t id @Int
id @Int :: Int -> Int
*Main> let the = id
*Main> :t the @Int
<interactive>:1:1: error:
• Cannot apply expression of type ‘a0 -> a0’
to a visible type argument ‘Int’
• In the expression: the @Int
*Main> :t _ @Int
Note that it works with id, but not with the. I would expect to be able to write something like the @Double 42, for instance.
For completeness' sake and since I don't know if it is related or relevant, with GHC 8.0.2, a panic is easily triggered:
Prelude> :set -XTypeApplications
Prelude> :t _ @Int
ghc: panic! (the 'impossible' happened)
(GHC version 8.0.2 for x86_64-unknown-linux):
initTc: unsolved constraints
WC {wc_insol = [W] __a15d :: t_a15c[tau:3] (CHoleCan: _)}
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
This however does not happen with GHC 8.2.1.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 8.2.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler (Type checker) |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |