anchor.diff:      // Build the current scope
       let scope = p |> buildScope
   
  -    // Add a contained scopes lists for the just constructed scope
  -    p.ContainedScopes.[scope.Value.Id] <- new List<Scope ref>()
  -
  -    // Add the current scope to it's parent
  -    // scopes contained scopes list, this is
  -    // used for resolving closures to variables
  -    // that are defined after a function itself
  -    // 
  -    // In the below example, foo should return
  -    // the value of bar ("hello world") even
  -    // though it's defined before bar
  -    //
  -    // var foo = function () { print(bar); };
  -    // var bar = "hello world!";
  -    // foo();
  -
  -    for s in !(p |> schain) do
  -      p.ContainedScopes.[s.Value.Id].Add(scope)
  -
       // Parse the body within it's enclosing scope chain
       p |> schain |> AnalyzersFastUtils.ScopeChain.push scope
       let body = p |> block
  
positive.code: 
      #if ONEPASS
      ScopeChain = ref []
      MissingClosures = null
      ContainedScopes = null
      #endif
    }
    
  
negative.code:   let parse (source:string) (env:Env) =
      let lexer = source |> Lexer.create
      let globalScope = ref {Ast.Scope.NewGlobal with GlobalLevel = 0}
      let globalAst = 
        {parserDefinition with 
          Env = env
  