PolyKinds without type signatures
Consider
{-# LANGUAGE PolyKinds, ExplicitForAll #-}
f :: forall (m :: k -> *) (a :: k). m a -> m a
f = id
g = f
I would expect GHC to infer the same type for g
as for f
. However, it gives the AnyK kind, and g
is not possible to use:
ghci -Wall X.hs
...
X.hs:5:1: Warning:
Top-level binding with no type signature:
g :: forall (m :: AnyK -> *) (a :: AnyK). m a -> m a
Ok, modules loaded: Main.
*Main> g "a"
<interactive>:2:1:
Kind incompatibility when matching types:
a0 :: AnyK
Char :: *
In the first argument of ‛print’, namely ‛it’
In a stmt of an interactive GHCi command: print it
Trac metadata
Trac field | Value |
---|---|
Version | 7.7 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler (Type checker) |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |