From: simonpj Date: Tue, 9 Aug 2005 16:35:39 +0000 (+0000) Subject: [project @ 2005-08-09 16:35:39 by simonpj] X-Git-Tag: Initial_conversion_from_CVS_complete~258 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=e44590d93b2ec7d39bea22f2dceb13d000e08c85;p=ghc-hetmet.git [project @ 2005-08-09 16:35:39 by simonpj] Correct attribution of existential types; MERGE to STABLE --- diff --git a/ghc/docs/users_guide/glasgow_exts.xml b/ghc/docs/users_guide/glasgow_exts.xml index 7dca09a..e3201ce 100644 --- a/ghc/docs/users_guide/glasgow_exts.xml +++ b/ghc/docs/users_guide/glasgow_exts.xml @@ -1092,8 +1092,12 @@ because GHC does not allow unboxed tuples on the left of a function arrow. The idea of using existential quantification in data type declarations -was suggested by Laufer (I believe, thought doubtless someone will -correct me), and implemented in Hope+. It's been in Lennart +was suggested by Perry, and implemented in Hope+ (Nigel Perry, The Implementation +of Practical Functional Programming Languages, PhD Thesis, University of +London, 1991). It was later formalised by Laufer and Odersky +(Polymorphic type inference and abstract data types, +TOPLAS, 16(5), pp1411-1430, 1994). +It's been in Lennart Augustsson's hbc Haskell compiler for several years, and proved very useful. Here's the idea. Consider the declaration: