
#14352: Higher-rank kind ascription oddities -------------------------------------+------------------------------------- Reporter: RyanGlScott | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler (Type | Version: 8.2.1 checker) | Resolution: | Keywords: TypeInType Operating System: Unknown/Multiple | Architecture: Type of failure: GHC rejects | Unknown/Multiple valid program | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by goldfire): Looks good to me. It all comes down to this rule: GHC never infers a higher-rank kind. In your rejected example, you're asking GHC to infer a higher-rank kind for `x`. Now, you might say "but I'm telling you what the kind is!". The problem is that you haven't quite. You've said that `x` can be used at the type `forall b. b -> Int`, but its actual kind might be more general. On the other hand, when you give a kind at a binding site, that kind is authoritative -- no inference necessary. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14352#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler