
#15474: Error message mentions Any -------------------------------------+------------------------------------- Reporter: monoidal | Owner: (none) Type: bug | Status: new Priority: low | Milestone: 8.8.1 Component: Compiler | Version: 8.4.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Poor/confusing | Unknown/Multiple error message | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonpj): Yes, this is awkward. What is happening is that we end up with this: {{{ type Forall = forall (t :: Any). Proxy @Any t }}} I think that perhaps in this case we should kind-generalise the RHS of `Forall` to get {{{ type Forall k = forall (t :: k) . Proxy @k t }}} I'm not sure why we don't do this. We certainly do some kind- generalisation; e.g. if you write {{{ type T x = x }}} we end up with {{{ type T k (x :: k) = x }}} So why doesn't something like that happen for `Forall`? Interesting. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15474#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler