Changes between Version 2 and Version 3 of ExistentialQuantification
- Timestamp:
- 11/29/05 05:31:39 (7 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ExistentialQuantification
v2 v3 6 6 == Brief Explanation == 7 7 8 Local existential quantification of type variables in a data constructor, 9 introduced with `forall` before the data constructor, e.g. 10 {{{ 11 data Accum a = forall s. MkAccum s (a -> s -> s) (s -> a) 12 }}} 13 The `forall` is justified by the type of the data constructor: 14 {{{ 15 MkAccum :: s -> (a -> s -> s) -> (s -> a) -> Accum a 16 }}} 17 but [http://www.haskell.org/pipermail/haskell/2003-June/011995.html some have suggested] using `exists` instead to avoid confusion with PolymorphicComponents. 8 18 == References == 9 19 * [http://www.cs.luc.edu/users/laufer/papers/toplas94.pdf Polymorphic Type Inference and Abstract Data Types] by K. Läufer and M. Odersky, in TOPLAS, Sep 1994. … … 37 47 38 48 == Pros == 39 49 * quite handy for representations that delay composition or application, e.g. objects, various parser combinator libraries from Utrecht. 40 50 41 51 == Cons ==
