anchor.diff:              ty.InvokeMember(name, (BindingFlags.GetProperty ||| BindingFlags.Instance ||| BindingFlags.Public ||| BindingFlags.NonPublic), null, obj, [| |],CultureInfo.InvariantCulture)
   #endif
   #endif
  +        let getField obj (fieldInfo: FieldInfo) =
  +            fieldInfo.GetValue(obj)
  +
           let formatChar isChar c = 
               match c with 
               | '\'' when isChar -> "\\\'"
  
positive.code:         // pprinter: anyL - support functions
          // -------------------------------------------------------------------- 
  
          let getProperty (obj: obj) name =
              let ty = obj.GetType()
  #if FX_ATLEAST_PORTABLE
              let prop = ty.GetProperty(name, (BindingFlags.Instance ||| BindingFlags.Public ||| BindingFlags.NonPublic))
              if isNotNull prop then prop.GetValue(obj,[||])
  
negative.code:                               // massively reign in deep printing of properties 
                                let nDepth = depthLim/10
  #if FX_ATLEAST_PORTABLE
                                System.Array.Sort((propsAndFields),{ new System.Collections.Generic.IComparer<MemberInfo> with member this.Compare(p1,p2) = compare (p1.Name) (p2.Name) } );
  #else                              
                                System.Array.Sort((propsAndFields:>System.Array),{ new System.Collections.IComparer with member this.Compare(p1,p2) = compare ((p1 :?> MemberInfo).Name) ((p2 :?> MemberInfo).Name) } );
  #endif                        
  
                                if propsAndFields.Length = 0 || (nDepth <= 0) then basicL 
                                else basicL --- 
                                       (propsAndFields 
                                        |> Array.toList 
                                        |> List.map 
                                          (fun m -> 
                                              (m.Name,
                                                  (try Some (objL nDepth Precedence.BracketIfTuple (getProperty ty obj m.Name)) 
                                                   with _ -> try Some (objL nDepth Precedence.BracketIfTuple (getField obj (m :?> FieldInfo))) 
                                                             with _ -> None)))
                                        |> makePropertiesL)
                             | _ -> basicL 
                  | UnitValue -> countNodes 1; measureL
  