Changes between Version 17 and Version 18 of PolymorphicComponents
- Timestamp:
- 04/04/07 13:31:26 (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
PolymorphicComponents
v17 v18 59 59 = Report TODO List = 60 60 List of items that need to change in the [http://darcs.haskell.org/haskell-prime-report/report/haskell-prime-draft.html draft report]. 61 1. Introduce a new ''special identifier'' '''forall'''. This identifier has a special interpretation in types and type schemes (i.e., it is ''not'' a type variable).61 1. Introduce a new ''special identifier'', '''forall'''. This identifier has a special interpretation in types and type schemes (i.e., it is ''not'' a type variable). 62 62 However, '''forall''' can still be used as an ordinary variable in expressions. 63 1. Syntax for writing type schemes63 2. Syntax for writing type schemes 64 64 {{{ 65 scheme ='forall' tvar_1 .. tyvar_n '.' opt_ctxt type (n > 0)65 scheme -> 'forall' tvar_1 .. tyvar_n '.' opt_ctxt type (n > 0) 66 66 | type 67 67 68 ascheme ='(' scheme ')'68 ascheme -> '(' scheme ')' 69 69 | atype 70 70 71 bscheme ='(' scheme ')'71 bscheme -> '(' scheme ')' 72 72 | btype 73 73 74 opt_ctxt =context '=>'74 opt_ctxt -> context '=>' 75 75 | 76 }}} 77 3. Syntax for algebraic datatype (Section 4.2.1) 78 Change ''type'',''atype'',''btype'' to ''scheme'', ''ascheme'', ''bscheme' respectively. 79 {{{ 80 constr -> con [!] ascheme_1 ... [!] ascheme_k (arity con = k, k>=0) 81 | (bscheme | ! ascheme) conop (bscheme | ! ascheme) (infix conop) 82 | con { fielddecl1 , ... , fielddecln } (n>=0) 83 fielddecl-> vars :: (scheme | ! ascheme) 76 84 }}} 77 85 78 86 79 1. change "atype" or modify specific sections?80 87 1. 4.2.1 - syntax in "Algebreic Datatype Declarations", add ''forall'' to various bits. 81 88 1. 4.2.3 - syntax in "Datatype Renaming" ''newtype'' declarations
