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 |