anchor.diff:      'System.IntPtr': exit new CGNamedTypeReference('intptr_t');
       'System.UIntPtr': exit new CGNamedTypeReference('uintptr_t');
     end;
  -  var lType := aType.Resolve;
  -  if lType.IsEnum then begin
  -    if not fEnumTypes.Contains(lType) then begin
  -      fEnumTypes.Add(lType);
  +  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 and not (lType.IsGenericInstance) and (lType.GenericParameters.Count = 0) then begin
  +  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, lType.Name);
  +        fImportNameMapping.Add(lType.FullName, GetTypeName(lType));
       end;
  -    exit new CGNamedTypeReference(lType.Name);
  +    exit new CGNamedTypeReference(GetTypeName(lType));
     end;
     exit new CGPointerTypeReference(new CGNamedTypeReference('MonoObject'));
   end;
  
positive.code: type
    Importer = public class(IAssemblyResolver)
    private
      method LoadAsm(el: String): ModuleDefinition;
      method IsListObjectRef(aType: TypeReference; out aArray: Boolean): Boolean;
      method WrapListObject(aVal: CGExpression; aType: CGTypeReference; aArray: Boolean): CGExpression;
  
negative.code:     lMethodMap.Clear;
      for each meth in el.Key.Methods.OrderBy(m -> GetMethodSignature(m)) index n do begin
        if (meth.GenericParameters.Count > 0) or (meth.IsSpecialName and meth.Name.StartsWith('op_')) or (meth.IsConstructor and meth.IsStatic) then continue;
        //if (meth.ReturnType.IsGenericInstance and meth.ReturnType.IsValueType) then continue;
        //if meth.Parameters.Any(a->a.ParameterType.IsGenericInstance and a.ParameterType.IsValueType) then continue;
        if not meth.IsPublic then continue;
  
        var lMonoSig := new CGBlockTypeDefinition('');
  