anchor.diff:        for each elpar in meth.Parameters do begin
           var lParamType: CGTypeReference;
           if elpar.ParameterType.IsByReference then
  -          lParamType := new CGPointerTypeReference( GetMonoType(elpar.ParameterType.GetElementType))
  +          lParamType := new CGPointerTypeReference( GetMonoType(ByReferenceType(elpar.ParameterType).ElementType))
           else
             lParamType := GetMonoType(elpar.ParameterType);
   
  
positive.code:     MetadataType.GenericInstance: exit SigTypeToString(GenericInstanceType(aType).ElementType)+'<'+String.Join(',', GenericInstanceType(aType).GenericArguments.Select(a -> SigTypeToString(a)).ToArray)+'>';
      MetadataType.Object: exit 'object';
      MetadataType.String: exit 'string';
      MetadataType.Class,
      MetadataType.ValueType: exit aType.ToString;
     else
  
negative.code:     'System.IntPtr': exit new CGNamedTypeReference('intptr_t');
      'System.UIntPtr': exit new CGNamedTypeReference('uintptr_t');
    end;
    var lType := Resolve(aType);
    if lType.Resolve.IsEnum then begin
      if not fEnumTypes.Contains(lType.Resolve) then begin
        fEnumTypes.Add(lType.Resolve);
        if not fImportNameMapping.ContainsKey(lType.FullName) then
          fImportNameMapping.Add(lType.FullName, lType.Name);
      end;
      exit new CGNamedTypeReference(lType.Name);
    end;
    if lType.IsValueType then begin
      if not fValueTypes.Contains(lType) Then begin
        fValueTypes.Add(lType);
        if not fImportNameMapping.ContainsKey(lType.FullName) then
          fImportNameMapping.Add(lType.FullName, GetTypeName(lType));
      end;
      exit new CGNamedTypeReference(GetTypeName(lType));
    end;
    exit new CGPointerTypeReference(new CGNamedTypeReference('MonoObject'));
  end;
  