anchor.diff:                  search value tree.Right
       | None ->
           // Value not found
  -        printfn "Value %A not found in tree..." tree.Value
  +        printfn "Value %A not found in tree..." value
           false
   
   // Main program logic
  
positive.code:             elif tree.Left <> None && tree.Right <> None then
                  // Locate successor
                  let predicate = (fun elem -> elem = tree.Value)
                  let traversal = in_order_traversal tree // Some weird bug error here?
                  None
                  (*
                  match List.tryFind predicate traversal with
                  | Some successor ->
                      // Recursion on the rest of the subtree
                      Some { tree with Value = successor
                                       Right = delete successor tree.Right }
                      ()
                  | None ->
                      printfn "Failed to locate successor of %A" tree.Value
                      None
                      ()*)
                  //None
              elif tree.Left <> None then
                  // Replace tree with left subtree
                  tree.Left
  
negative.code:         |> insert 16
          |> insert 2
          |> insert 7
          |> delete 4 // Deliberate failure
          |> delete 2
          |> delete 5
      
      search 7 tree  |> ignore
      search 20 tree |> ignore // Deliberate failure
      search 16 tree |> ignore
  
      List.iter (fun elem -> printfn "%A" elem) <| in_order_traversal tree
      0
  