anchor.diff:    [<DefaultValue>] val mutable Function_prototype : Object
   
     [<DefaultValue>] val mutable AstMap : Map<int, Ast.Types.Scope * Ast.Node>
  -  [<DefaultValue>] val mutable GetCrawlers : Dict<int list, GetCrawler>
  -  [<DefaultValue>] val mutable SetCrawlers : Dict<int list, SetCrawler>
  +  [<DefaultValue>] val mutable GetCrawlers : Map<int list, GetCrawler>
  +  [<DefaultValue>] val mutable SetCrawlers : Map<int list, SetCrawler>
   
     member x.GetDelegate (func:Function) delegateType types =
       let cell = new DelegateCell(func.AstId, func.ClosureId, delegateType)
  
positive.code:     let env = new Environment(sa, eg)
      //Maps
      env.AstMap <- Map.empty
      env.GetCrawlers <- new Dict<int list, GetCrawler>()
      env.SetCrawlers <- new Dict<int list, SetCrawler>()
  
      //Base classes
      env.ObjectClass   <- new Class(env.NextClassId, new Dict<string, int>())
  
negative.code: 
        //Build key and try to find an already cached crawler
        let cacheKey = throwToggle :: wasFoundToggle :: obj.ClassId :: classIds
  
        let crawler = 
          match Map.tryFind cacheKey env.GetCrawlers with
          | Some(cached) -> cached
          | None -> 
            //Parameters
            let x' = Expr.paramT<GetCache> "~x"
            let obj' = Expr.paramT<Object> "~obj"
  