anchor.diff:                                  <@@
                                       let values = (%%pValuesArr : array<obj>)
                                       let rec formatValue (v:obj) =
  -                                        if v = null then "null"
  +                                        if isNull v then "null"
                                           else
                                               let vTy = v.GetType()
                                               if vTy = typeof<string>
  
positive.code:                     then providedTys.[tyName] <- Some(ty)
                      else providedTys.Add(tyName, Some(ty))
  
                      // Add default constructor
                      ty.AddMember <| ProvidedConstructor([], invokeCode = fun _ -> <@@ () @@>)
  
                      // Generate fields and properties
                      let members =
                          let propsNameScope = UniqueNameGenerator()
                          properties
                          |> Array.map (fun p ->
                              if String.IsNullOrEmpty(p.Name)
                                  then failwithf "Property cannot be created with empty name. Obj name:%A; ObjSchema:%A" tyName schemaObj
  
  
negative.code:                             invokeCode = fun args ->
                                  let this = args.[0]
                                  let (pNames, pValues) =
                                      Array.ofList members
                                      |> Array.map (fun (pField, pProp) ->
                                          let pValObj = Expr.FieldGet(this, pField)
                                          pProp.Name, Expr.Coerce(pValObj, typeof<obj>)
  