anchor.diff:  type ClosureMap = Map<string, Closure>
   
   type Scope = {
  -  Locals: LocalMap
  -  Closure: ClosureMap
  -  Arguments: bool
  -  ScopeLevel: int
  -  DynamicScopeLevel: int
  -  HasDynamicScopes: bool
  +  Locals:             LocalMap
  +  Closure:            ClosureMap
  +  Arguments:          bool
  +  ScopeLevel:         int
  +  HasDynamicScopes:   bool
  +  DynamicScopeLevel:  int
   } with
     static member New = { 
       Locals            = Map.empty
  
positive.code: 
  [<DebuggerDisplay("{DebugView}")>]
  type Local = {
    ClosureAccess: ClosureAccess
    ParamIndex: int
    UsedAs: JsTypes
    UsedWith: string Set
    UsedWithClosure: string Set
    InitUndefined: bool
    Expr: EtParam
  } with
    member x.IsClosedOver = not (x.ClosureAccess = ClosureAccess.Nothing)
    member x.IsParameter  = x.ParamIndex > -1
  
negative.code:   | Undefined
  
    //Identifiers
    | Local     of string * (int * int)
    | Closure   of string * (int * int)
    | Global    of string * (int * int)
    | Property  of Node * string
  
    //Magic
    | Arguments
    | This
  
    //Scopes
    | DynamicScope  of Node * Node
    | Function      of Scope * Node
    
    //
    | Block   of Node list
    | Invoke  of Node * Node list
    | Assign  of Node * Node
    | Return  of Node
    | Object  of Map<string, Node> option