anchor.diff:                )
               )
   
  -          //Compile and try to add it
  -          let compiled = lambda.Compile()
  -          if lambdaCache.TryAdd(cacheKey, compiled) 
  -            //It was added
  -            then compiled
  -            //Some other thread already created an identical
  -            //crawler, so use that instead
  -            else lambdaCache.[cacheKey]
  +          //Compile and to add it to cache
  +          env.GetCrawlers.[cacheKey] <- lambda.Compile()
  +          env.GetCrawlers.[cacheKey]
   
         //Setup cache to be ready for next hit
         x.Index   <- index //Save index so we know which offset to look at
  
positive.code: 
        //Build key and try to find an already cached crawler
        let cacheKey = throwToggle :: wasFoundToggle :: obj.ClassId :: classIds
        let success, cached = lambdaCache.TryGetValue cacheKey
  
        let crawler = 
          //If we found a cached crawler use it
  
negative.code:     let env = new Environment(sa, eg)
      //Maps
      env.AstMap <- new Dict<int, Ast.Types.Scope * Ast.Node>()
      env.GetCrawlers <- new Dict<int list, System.Func<GetCache, Object, Environment, Box>>()
  
      //Base classes
      env.ObjectClass   <- new Class(env.NextClassId, new Dict<string, int>())
  