anchor.diff:  
   method MZArray.NSArray: NSArray;
   begin
  -  var lTmp := new NSMutableArray withCapacity(count);
  -  var lElements := elements;
  -  if &type = typeOf(String) then begin
  -    for i: Integer := 0 to count -1 do
  -      lTmp[i] := MZString.NSStringWithMonoString(^MonoString(lElements[i]));
  -  end
  -  else begin
  -    for i: Integer := 0 to count -1 do
  -      lTmp[i] := id(&type.alloc()).initWithMonoInstance(lElements[i]);
  -  end;
  -  exit lTmp;
  +  if fNSArray = nil then begin
  +    var lTmp := new NSMutableArray withCapacity(count);
  +    var lElements := elements;
  +    if &type = typeOf(String) then begin
  +      for i: Integer := 0 to count -1 do
  +        lTmp[i] := MZString.NSStringWithMonoString(^MonoString(lElements[i]));
  +    end
  +    else begin
  +      for i: Integer := 0 to count -1 do
  +        lTmp[i] := id(&type.alloc()).initWithMonoInstance(lElements[i]);
  +    end;
  +    fNSArray := lTmp;
  +  end;
  +  result := fNSArray;
   end;
   
   method MZArray.countByEnumeratingWithState(state: ^NSFastEnumerationState) objects(buffer: ^id) count(len: NSUInteger): NSUInteger;
   begin
  -  var c := count;
  -  if state^.state >= c then exit 0;
  -
  -  var i := 0;
  -  while (state^.state < c) and (i < len) do begin
  -    buffer[i] := objectAtIndex(state^.state);
  -    inc(i);
  -    inc(state^.state);
  -  end;
  -  result := i;
  -
  -  state^.itemsPtr := buffer;
  -  state^.mutationsPtr := nil;
  +  result := NSArray.countByEnumeratingWithState(state) objects(buffer) count(len);
   end;
   
   { MZObjectList }
  
positive.code: 
    MZArray = public class(MZObject)
    private
    public
      constructor withMonoInstance(aInst: ^MonoObject) elementType(aType: &Class);
      constructor withNSArray(aArray: NSArray);
  
negative.code: 
  method MZObjectList.countByEnumeratingWithState(state: ^NSFastEnumerationState) objects(buffer: ^id) count(len: NSUInteger): NSUInteger;
  begin
    result := NSArray.countByEnumeratingWithState(state) objects(buffer) count(len);
  end;
  
  method MZObjectList.get_count: NSUInteger;
  