Re: deprecating
Ashley Yakeley <[email protected]>
| Newsgroups | gmane.comp.lang.haskell.cvs.ghc,gmane.comp.lang.haskell.cabal.devel |
|---|---|
| Message-ID | <[email protected]> |
On 23/10/12 09:50, I wrote: > Sorry, you're right. It means "I require at most rank-2 types" > > Program A is marked "Rank2Types" and not "RankNTypes" and uses only > rank-1 types. > Program B is marked "Rank2Types" and not "RankNTypes" and uses only > rank-1 & rank-2 types. > Program C is marked "Rank2Types" and not "RankNTypes" and uses rank-3 > types. > > The compiler MUST accept A & B. It SHOULD reject C, but since GHC > can't tell the difference, it's acceptable if it accepts it. "Require at most/least" is ambiguous. No "Rank2Types" means "I have no rank-2 types" or "I don't require that you accept rank-2 types". "Rank2Types" means "I might have rank-2 types" or "At most, I require that you accept at least rank-2 types" which implies "I don't require that you accept rank-3 types; I don't require that you reject rank-3 types". -- Ashley