anchor.diff:  type Compilers = {
     File: Environment -> string -> (unit -> unit)
     Ast: Environment -> Ast.Types.Scope -> Ast.Node -> ClrType -> ClrType -> ClrType list -> Delegate
  +}
  +
  +and PropertyMap = {
  +  MapId : int
  +  IndexMap : Map<string, int>
  +  mutable SubMaps : Map<string, PropertyMap>
   }
   
   and [<AllowNullLiteral>] Environment (compilers:Compilers) =
  
positive.code:   static member New(name:string) =
      let cache = Dlr.Expr.constant (new GetCache(name))
      cache, 
      Expr.field cache "ClassId", 
      Expr.field cache "Index", 
      Expr.field cache "Crawler"
      
      (*==== Inline cache for property set operations ====*)
  and SetCache =
    val mutable Name : string
    val mutable ClassId : int
    val mutable Index : int
    val mutable Crawler : SetCrawler
  
    new(name) = {
      Name = name
      ClassId = -1
      Index = -1
      Crawler = null
    }
  
negative.code:   [<DefaultValue>] val mutable AstMap : Map<int, Ast.Types.Scope * Ast.Node>
    [<DefaultValue>] val mutable GetCrawlers : Map<int list, GetCrawler>
    [<DefaultValue>] val mutable SetCrawlers : Map<int list, SetCrawler>
    [<DefaultValue>] val mutable PropertyMaps : Map<int, PropertyMap>
  
    [<DefaultValue>] val mutable ReturnBox : Box
  
  