anchor.diff:  
       override __.TestMethodBodyAssertTemplate _ = "AssertEqual"
   
  -    member __.RenderSet canonicalDataCase key =
  -        let value = 
  -            (canonicalDataCase.Properties.[key] :?> JToken).ToObject<seq<string>>()
  -            |> formatList
  -        sprintf "CustomSet.fromList %s" value
  +    member __.RenderSet (jToken: obj) =
  +        (jToken :?> JToken).ToObject<seq<string>>()
  +        |> formatList
  +        |> sprintf "CustomSet.fromList %s"
   
       override this.RenderSut canonicalDataCase =
           match canonicalDataCase.Property with
  
positive.code: 
          match canonicalDataCase.Property with
          | "add" | "intersection" | "difference" | "union" -> 
              let expectedSetVar = sprintf "let expectedSet = %s" (this.RenderSet canonicalDataCase "expected")
              let actualBoolVar = sprintf "let %sBool = CustomSet.isEqualTo %s expectedSet" this.SutName this.SutName
              arrangeLines @ [ expectedSetVar; actualBoolVar ]
          | _ -> arrangeLines
  
negative.code:         let arrangeLines =
              match canonicalDataCase.Property with
              | "empty" ->
                  let setValue = this.RenderSet canonicalDataCase.Input.["set"]
                  [ sprintf "let %s = CustomSet.isEmpty (%s)" this.SutName setValue ]
              | "add" | "contains" ->
                  let methodName = 
                      match canonicalDataCase.Property with
                      | "add" -> "insert"
                      | s -> s
                  let setVar = sprintf "let setValue = %s" (this.RenderSet canonicalDataCase.Input.["set"])
                  let valueVar = sprintf "let element = %s" (formatValue canonicalDataCase.Input.["element"])
                  let resultVar = sprintf "let %s = CustomSet.%s element setValue" this.SutName methodName 
                  [ setVar; valueVar; resultVar ]
              | "intersection" | "difference" | "union" | "disjoint" | "subset" | "equal" ->
  