anchor.diff:                )
               )
   
  +          //Body differs
  +          //depending on if...
             let body = 
               if index >= 0 then
  +              //... we found the property
                 (Expr.access 
                   (Expr.field (crawlPrototypeChain object' (classIds.Length)) "Properties") 
                   [Expr.field cache "index"]
                 )
               else
  +              //... or not
                 (Expr.field env' "UndefinedBox")
   
  +          //Build lambda expression
             let lambda = 
               (Expr.lambdaT<System.Func<GetCache, Object, Environment, Box>> 
                 [cache; object'; env']
                 (Expr.ternary 
                   (conditions)
  +                //If condition holds, execute body
                   (body)
  +                //If condition fails, update
                   (Expr.call cache "Update" [object'; env'])
                 )
               )
   
  +          //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]
   
  -      x.Index   <- index
  +      //Setup cache to be ready for next hit
  +      x.Index   <- index //Save index so we know which offset to look at
         x.ClassId <- -1 //This makes sure we will hit the crawler next time
         
  -      x.Crawler <- crawler
  -      x.Crawler.Invoke(x, obj, env)
  -    else
  -      box
  +      x.Crawler <- crawler //Save crawler
  +      x.Crawler.Invoke(x, obj, env) //Use crawler to get result
   
     static member New(name:string) =
       let cache = Dlr.Expr.constant (new GetCache(name))
  
positive.code:           let classIdEq expr n =
              Expr.eq (Expr.field expr "ClassId") (Expr.constant n)
  
            let conditions = 
              (Expr.andChain
                (List.mapi 
  
negative.code:   
      (*==== Inline cache for property get operations ====*)
  and GetCache(name) as x =
  
    [<DefaultValue>] val mutable Name : string
    [<DefaultValue>] val mutable ClassId : int
    [<DefaultValue>] val mutable Index : int
  