anchor.diff:      function link : TFslList<T>; overload;
       function forEnum : TFslList<T>; // auto frees a collection once an enumerator is finished with it - a commmon pattern
   
  +    {$IFNDEF FPC}
  +    // something about this makes FPC blow up in a different unit
       // if B is a subclass of A, TFslList<B> is not a subclass of TFslList<A>. These 2 routines help deal with this
       function asBase : TFslList<TFslObject>;
       procedure copyList(list : TFslList<TFslObject>);
  +    {$ENDIF}
   
       class procedure Error(const Msg: string; Data: NativeInt); overload; virtual;
   {$IFNDEF NEXTGEN}
  
positive.code:   for item in list do
      add(item.link as T);
  end;
  
  function TFslList<T>.Expand: TFslList<T>;
  begin
  
negative.code:   InsertRange(Count, Collection);
  end;
  
  {$IFNDEF FPC}
  function TFslList<T>.asBase: TFslList<TFslObject>;
  var
    item : T;
  