Not quite. "A definition is impredicative if it refers to a collection which contains the object to be defined." (see http://www.xrefer.com/entry/552390)
If you stratify a type system so that quantifiers only quantify over things at a lower "stratum" then (I think) it is predicative (= not impredicative). But you might have forall quantifiers at more than one level in your system, as is the case in some formalizations of ML's module system (Shao et al) where a predicative subset of the impredicative F_\omega is used. I'm also willing to be corrected! - Andrew. > -----Original Message----- > From: Simon Peyton-Jones [mailto:[EMAIL PROTECTED]] > Sent: Wednesday, October 31, 2001 12:20 PM > To: Ashley Yakeley; Haskell List > Subject: RE: 'Forall' Polymorphism Question > > > Any system that allows a parametric type variable to > be instantiated by a for-all type is called "impredicative", > I think. Example: Maybe (forall a. a->a), or as you have > below (m (forall a. a->a)). > > I don't understand all (well, any) of the details, but I > understand that impredicative systems make type inference > nigh impossible. I don't know any programming language that > has impredicative types. Haskell certainly does not, nor any > extension I know of. > > I'm willing to be corrected! > > Simon > > | -----Original Message----- > | From: Ashley Yakeley [mailto:[EMAIL PROTECTED]] > | Sent: 31 October 2001 10:14 > | To: Haskell List > | Subject: 'Forall' Polymorphism Question > | > | > | I note that GHC by default gives this type for "return id": > | > | (return id) :: forall m a. (Monad m) => m (a -> a) > | > | Wouldn't this be more general: > | > | (return id) :: forall m. (Monad m) => m (forall a. a -> a) > | (return return) :: forall m. (Monad m) => m (forall m1 a. > | (Monad m1) > | => a -> m1 a) > | > | ...? > | > | Is this something GHC could ever do, or are there good > reasons why it > | would never work in Haskell? > | > | -- > | Ashley Yakeley, Seattle WA > | > | > | _______________________________________________ > | Haskell mailing list > | [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell > | > > _______________________________________________ > Haskell mailing list > [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell > _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell