anchor.diff:          | None -> ()
   
       /// Attempt to read a target's .NET property from field descriptors.
  -    let tryReadPropertyToTarget (property : PropertyInfo) fieldDescriptors (target : obj) =
  +    let tryReadPropertyToTarget fieldDescriptors (property : PropertyInfo) (target : obj) =
           match Map.tryFind property.Name fieldDescriptors with
  -        | Some fieldSymbol ->
  +        | Some (fieldSymbol : Symbol) ->
               let converter = SymbolicConverter property.PropertyType
               if converter.CanConvertFrom typeof<Symbol> then
                   let fieldValue = converter.ConvertFrom fieldSymbol
  
positive.code:             (fun (property : PropertyInfo) -> property.Name = fieldDefinition.FieldName)
              (targetType.GetProperties ()) then
              match Map.tryFind fieldDefinition.FieldName fieldDescriptors with
              | Some fieldSymbol ->
                  let converter = SymbolicConverter fieldDefinition.FieldType
                  if converter.CanConvertFrom typeof<Symbol> then
                      let xField = { FieldValue = converter.ConvertFrom fieldSymbol; FieldType = fieldDefinition.FieldType }
  
negative.code:             if  property.Name <> "FacetNames" &&
                  property.Name <> "OptOverlayName" &&
                  isPropertyPersistentByName property.Name then
                  tryReadPropertyToTarget fieldDescriptors property target
  
      /// Read one of a target's XFields from field descriptors.
      let readXField xtension fieldDescriptors (target : obj) fieldDefinition =
  