anchor.diff:  end;
   
   function TJSONObjectHelper.ToRecord(const ARecordType: TRttiType): TValue;
  -begin
  -  raise Exception.Create('Not yet implemented');
  +var
  +  LField: TRttiField;
  +//  LProperty: TRttiProperty;
  +begin
  +  TValue.Make(nil, ARecordType.Handle, Result);
  +
  +  for LField in ARecordType.GetFields do
  +    LField.SetValue(Result.GetReferenceToRawData
  +      , ReadValue(LField.Name, TValue.Empty, LField.FieldType, False)
  +    );
  +
  +//    for LProperty in LType.GetProperties do
  +//    LProperty.SetValue(Result.GetReferenceToRawData
  +//      , ReadValue(LProperty.Name, TValue.Empty)
  +//    );
  +
   end;
   
   function TJSONObjectHelper.ToRecord<T>: T;
  
positive.code:     Result := LValue.AsDouble;
  end;
  
  procedure TJSONObjectHelper.FromRecord(ARecord: TValue);
  var
    LType: TRttiType;
    LField: TRttiField;
  
negative.code:     property Values[const name: string]: Variant read GetValue; default;
  
      procedure FromRecord<T: record>(ARecord: T); overload;
      procedure FromRecord(const ARecord: TValue); overload;
      function ToRecord<T: record>: T; overload;
      function ToRecord(const ARecordType: TRttiType): TValue; overload;
  
  