Ticket #6032 (closed bug: fixed)
HEAD (7.5.20120421) requires RankNTypes for a rank-2 type
| Reported by: | dreixel | Owned by: | simonpj |
|---|---|---|---|
| Priority: | normal | Milestone: | 7.8.1 |
| Component: | Compiler | Version: | 7.5 |
| Keywords: | Cc: | johan.tibell@… | |
| Operating System: | Unknown/Multiple | Architecture: | Unknown/Multiple |
| Type of failure: | None/Unknown | Difficulty: | Unknown |
| Test Case: | Blocked By: | ||
| Blocking: | Related Tickets: |
Description
While building syb with HEAD, Ian reported that he needed to use RankNTypes instead of Rank2Types. I minimized the problem to:
{-# LANGUAGE Rank2Types #-}
module Rank2 where
f :: (forall a. a -> (forall b. b)) -> c
f = undefined
g :: (forall a b. a -> b) -> c
g = undefined
7.4 accepts both f and g. HEAD complains on the signature of f:
Illegal polymorphic or qualified type: forall b. b
Perhaps you intended to use -XRankNTypes or -XRank2Types
In the type signature for `f':
f :: (forall a. a -> (forall b. b)) -> c
It doesn't complain about g, but I think the signatures are equivalent. Ian further reports that the change in behavior seems to have occurred after 7.5.20120401.
Change History
Note: See
TracTickets for help on using
tickets.
