Changes between Version 17 and Version 18 of RelaxedDependencyAnalysis


Ignore:
Timestamp:
Jul 11, 2009 8:52:28 AM (6 years ago)
Author:
ross@…
Comment:

formatting

Legend:

Unmodified
Added
Removed
Modified
  • RelaxedDependencyAnalysis

    v17 v18  
    5656{{{
    5757#!html
    58 <div style="background: #ffdddd">
     58<div style="background: #fdd; border-color: #c00; border-style: solid; border-width: 1px">
    5959}}}
    6060  In general the static semantics are given by the normal Hindley-Milner inference rules. A ''dependency analysis transformation'' is first performed to increase polymorphism. Two variables bound by value declarations are in the same ''declaration group'' if either
     
    7979{{{
    8080#!html
    81 <div style="background: #ddffdd">
     81<div style="background: #dfd; border-color: #0c0; border-style: solid; border-width: 1px">
    8282}}}
    8383  In general the static semantics are given by applying the normal Hindley-Milner inference rules.  In order to increase polymorphism, these rules are applied to groups of bindings identified by a ''dependency analysis''.
     
    103103{{{
    104104#!html
    105 <div style="background: #ffdddd">
     105<div style="background: #fdd; border-color: #c00; border-style: solid; border-width: 1px">
    106106}}}
    107107  The Hindley-Milner type system assigns types to a {{{let}}}-expression in two stages. First, the right-hand side of the declaration is typed, giving a type with no universal quantification. Second, all type variables that occur in this type are universally quantified unless they are associated with bound variables in the type environment; this is called ''generalization''. Finally, the body of the {{{let}}}-expression is typed.
     
    115115{{{
    116116#!html
    117 <div style="background: #ddffdd">
     117<div style="background: #dfd; border-color: #0c0; border-style: solid; border-width: 1px">
    118118}}}
    119119  The Hindley-Milner type system assigns types to a {{{let}}}-expression in two stages: