Changes between Version 5 and Version 6 of LanguageQualities


Ignore:
Timestamp:
Dec 6, 2005 1:52:15 PM (9 years ago)
Author:
ross@…
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • LanguageQualities

    v5 v6  
    1 = language qualities = 
     1= Language Qualities = 
    22 
    3 These are properties or qualities of any haskell standard we would like to preserve or make sure the language has. This is not about certain extensions or libraries the language should have, but rather properties of the language as a whole. 
     3These are properties or qualities of any Haskell standard we would like to preserve or make sure the language has. This is not about certain extensions or libraries the language should have, but rather properties of the language as a whole. 
    44 
    55 * import-safe - importing a new module can never silently change the behavior of a program, but it may cause a compile-time error. two programs that are identical except one has a superset of the imports of the other will either behave identically or at least one will fail to compile. (defaulting  and OverlappingInstances break this) 
     
    99 * transformation safe. the language will not have features that cause common optimizations and transformations to become non-meaning-preserving. All lambda calculus transformations should apply. (this is broken by the MonomorphismRestriction (eta-reduction/expansion) and ImplicitParams (beta-reduction)) 
    1010 
     11 * sufficiently expressive and convenient for most purposes. We should try to avoid standardizing on something that will be routinely ignored. 
     12 
     13 * clearly and precisely specified (concise also desirable). 
     14 
     15 * avoids special cases where possible. 
     16 
     17 * tested by experience, though a little innovation may be necessary to meet the other objectives. 
     18 
    1119 * To modify a phrase a bit "It should make easy things unneccesary and difficult things easy."