anchor.diff:  
   [<DebuggerDisplay("{DebugView}")>]
   type Local = {
  -  ClosureAccess: ClosureAccess
  -  ParamIndex: int
  -  UsedAs: JsTypes
  -  UsedWith: string Set
  -  UsedWithClosure: string Set
  -  InitUndefined: bool
  -  Expr: EtParam
  +  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
  
positive.code:   
  [<DebuggerDisplay("{DebugView}")>]
  type Closure = {
    Index: int
    IsLocalInParent: bool
    DefinedInScopeLevel: int
  } with
    member x.DebugView = sprintf "index:%i/local:%b/level:%i" x.Index x.IsLocalInParent x.DefinedInScopeLevel
    static member New = {
  
negative.code:   static member Global = Scope.New
  
  type ParserState = { 
    ScopeChain:               Scope list
    GlobalDynamicScopeLevel:  int
    LocalDynamicSCopeLevels:  int list
  } with
    member x.InDynamicScope = x.GlobalDynamicScopeLevel > 0
    static member New = {
  