
#14203: GHC-inferred type signature doesn't actually typecheck -------------------------------------+------------------------------------- Reporter: RyanGlScott | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler (Type | Version: 8.2.1 checker) | Keywords: TypeInType, Resolution: | TypeFamilies 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 simonpj):
But the point that I'm making (that no one has addressed yet) is that AllowAmbiguousTypes should allow GHC to accept such a definition!
If we don't do this currently, then we should! There are many programs
I don't agree. It's the definition of `Foo` that has an ambiguous kind. ThE type signature for `bar` is entirely innocent. To see this more clearly try {{{ bar :: forall a (z :: F a). Foo z -> Proxy z -> Int }}} Nothing ambiguous about that. But simply kind-checking the type signature fails because `Foo`'s kind is ambiguous. that I can't write because of this restriction. ] What is "this"? Rejecting the definition of `Foo` (which would be the effect of checking `Foo`'s kind for ambiguity) would not typecheck more programs! -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14203#comment:9 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler