Changes between Version 11 and Version 12 of RelaxedDependencyAnalysis


Ignore:
Timestamp:
Jul 10, 2009 11:40:59 PM (5 years ago)
Author:
ross@…
Comment:

reword dependencies

Legend:

Unmodified
Added
Removed
Modified
  • RelaxedDependencyAnalysis

    v11 v12  
    8383  In general the static semantics are given by the normal Hindley-Milner inference rules.  A dependency analysis transformation is first performed to increase polymorphism. 
    8484 
    85   A variable ''x'' ''depends'' on a variable ''y'' (bound in the same list of declarations) if 
     85  A binding ''b,,1,,'' ''depends'' on a binding ''b,,2,,'' if either 
     86  
     87    1) ''b,,1,,'' uses a variable ''x'' that has no type signature and is defined by ''b,,2,,'', or 
    8688 
    87     1) they are bound by the same pattern binding, or 
     89    2) ''b,,1,,'' depends on a binding that depends on ''b,,2,,''. 
    8890 
    89     2) ''y'' has no type signature and the binding defining ''x'' contains an occurrence of ''y'', or 
    90  
    91     3) ''x'' depends on a variable ''z'' that depends on ''y''.  
    92  
    93   A ''declaration group'' is a minimal set of bindings of mutually dependent variables.  Hindley-Milner type inference is applied to each declaration group in dependency order.  The order of declarations in {{{where}}}/{{{let}}} constructs is irrelevant. 
     91  A ''declaration group'' is a minimal set of mutually dependent bindings.  Hindley-Milner type inference is applied to each declaration group in dependency order.  The order of declarations in {{{where}}}/{{{let}}} constructs is irrelevant. 
    9492{{{ 
    9593#!html 
     
    9997Notes: 
    10098 * also tightens up the original wording, which didn't mention that the declarations had to be in the same list and also defined ''declaration group'' but not dependency. 
     99 * defining dependencies between bindings is a little simpler than dependencies between variables. 
    101100 * the dependency analysis transformation formerly listed in this section is no longer always possible. 
    102101Replace the first paragraph of [http://haskell.org/onlinereport/decls.html#sect4.5.2 section 4.5.2] '''Generalization''':