anchor.diff:  and makeCField typ name = { CField.Type = typ; Name = name }
   
   and makeCFields env (typ: Type) =
  -    properties typ
  +    runtimeFields typ
       |> List.map (fun x ->
  -        let ctype = lookupCType env x.PropertyType
  +        let ctype = lookupCType env x.FieldType
           makeCField ctype x.Name)
   
   and makeReturnType env = function
  
positive.code:     { ReturnType = returnType; Name = name; ParameterTypes = parameterTypes }
  
  let rec makeCDeclStructFields env (typ: Type) =
      properties typ
      |> List.fold (fun (env, fields) x -> 
          match tryLookupCType env x.PropertyType with
          | None -> 
              let env = makeCDeclStruct env x.PropertyType
              env, makeCField (lookupCType env x.PropertyType) x.Name :: fields
          | Some ctype -> env, makeCField ctype x.Name :: fields) (env, [])
              
  and makeCDeclStruct env (typ: Type) =
      match tryLookupCType env typ with
  
negative.code:     Functions : MethodInfo list
      ExportedFunctions : MethodInfo list }
  
  let runtimeFields (typ: Type) = 
      typ.GetRuntimeFields () 
      |> Seq.filter (fun x -> not x.IsStatic)
      |> List.ofSeq
  
  let allNestedRuntimeFieldTypes (typ: Type) =
      let f (x: Type) : Type list =
  