anchor.diff:      with
           | e -> Failure (e.ToString())
   
  -
   type Converter() =
       member self.changeListType<'T> (input : System.Object list) =
           input |> List.map (fun x -> x :?> 'T)
   
       member self.changeListToType (targetType : System.Type) (input : System.Object list ) =
           typeof<Converter>.GetMethod("changeListType").MakeGenericMethod(targetType).Invoke(self, [|input|])
  -    
   
       member self.toMap<'T> (l:(string*obj) list) =
           let rec work (l:(string*obj) list) map =
  
positive.code:             | _ -> None
          else
              None
          
  
      let rec toInstanceOfType (targetType: System.Type) json =
          let converter = new Converter()
  
negative.code:             | JsonBool x -> toObj x
              | JsonNull -> toObj null
              | JsonArray arr ->
                  match targetType with
                  | ListType t ->
                      arr |> List.map (fun x -> 
                              match coerceToType t x with
                              | Failure f -> failwith "not supported yet"
                              | Success s -> s)
                      |> converter.changeListToType t 
                      |> Success
                  | _ -> Failure "Not a generic list type"
  
          match json with
          | JsonObject(obj) ->
  