anchor.diff:    static member Global = Scope.New
   
   type ParserState = { 
  -  ScopeChain: Scope list
  -  GlobalDynamicScopeLevel: int
  -  LocalDynamicSCopeLevels: int list
  +  ScopeChain:               Scope list
  +  GlobalDynamicScopeLevel:  int
  +  LocalDynamicSCopeLevels:  int list
   } with
     member x.InDynamicScope = x.GlobalDynamicScopeLevel > 0
     static member New = {
  
positive.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
  
    //
    | 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
negative.code: 
  [<DebuggerDisplay("{DebugView}")>]
  type Local = {
    Expr:             EtParam
    UsedAs:           JsTypes
    UsedWith:         string Set
    ParamIndex:       int
    InitUndefined:    bool
    ClosureAccess:    ClosureAccess
    UsedWithClosure:  string Set
  } with
    member x.IsClosedOver = not (x.ClosureAccess = ClosureAccess.Nothing)
    member x.IsParameter  = x.ParamIndex > -1
  