anchor.diff:          """
   {"Case":"Magic","Fields":[{"foo":42,"bar":[{"Case":"Rectangle","Fields":[{"width":1.3,"length":10.0}]},{"Case":"Circle","Fields":[2.5]}]}]}
           """.Trim() |> should equal json4
  -        let parsed1 = JsonConvert.DeserializeObject<Shape> json1
  -        let parsed2 = JsonConvert.DeserializeObject<Shape> json2
  -        let parsed3 = JsonConvert.DeserializeObject<Shape> json3
  -        let parsed4 = JsonConvert.DeserializeObject<Shape> json4
  -        let parse_error =
  -            try
  -                JsonConvert.DeserializeObject<Shape> "Meh!"
  -            with
  -            | :? JsonException -> Error
  +        let parsed1 = Shape.FromJSON json1
  +        let parsed2 = Shape.FromJSON json2
  +        let parsed3 = Shape.FromJSON json3
  +        let parsed4 = Shape.FromJSON json4
  +        let parsedX = Shape.FromJSON "Meh!"
           shape1 |> should equal parsed1
           shape2 |> should equal parsed2
           shape3 |> should equal parsed3
  
positive.code:         let shape3 = Empty
          let shape4 = Magic {
              foo = 42
              bar = [| shape1; shape2 |]
          }
          let json1 = JsonConvert.SerializeObject(shape1)
          let json2 = JsonConvert.SerializeObject(shape2)
          let json3 = JsonConvert.SerializeObject(shape3)
          let json4 = JsonConvert.SerializeObject(shape4)
  
          """
  {"Case":"Rectangle","Fields":[{"width":1.3,"length":10.0}]}
  
negative.code:         parsed4 = shape2 |> should be False
          parsed4 = shape3 |> should be False
          parsed4 = shape4 |> should be True
          Error = parsedX |> should be True
  