
#11976: Error message mentions impredicative polymorphism -------------------------------------+------------------------------------- Reporter: Iceland_jack | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.10.3 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- When we apply `Lens` to too many arguments in the `:kind` command we get a sensible error message {{{ ghci> type Lens s a = forall f. Functor f => (a -> f a) -> (s -> f s) ghci> :kind Lens _ _ Lens _ _ :: * ghci> :kind Lens _ _ _ <interactive>:1:1: error: • Expecting one fewer argument to ‘Lens t0 t1’ Expected kind ‘k0 -> k1’, but ‘Lens t0 t1’ has kind ‘*’ • In the type ‘Lens _ _ _’ }}} but use the same in a type signature or annotation and it complains about impredicative polymorphism {{{ ghci> :t undefined :: Lens _ _ _ <interactive>:1:1: error: • Illegal polymorphic type: Lens _ _1 GHC doesn't yet support impredicative polymorphism • In the expression: undefined :: Lens _ _ _ ghci> a :: Lens _ _ _; a = undefined <interactive>:6:1: error: Illegal polymorphic type: Lens _ _1 GHC doesn't yet support impredicative polymorphism }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11976 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler