RBT example: zippers in place, but no properties yet

    # let (|?>) m f = match m with None -> None | Some v -> f v;;
    # let some f v = Some (f v);;
    # open RBT;;
    # empty |> insert 2 |> insert 1 |> insert 3
      |> some zip_open
      |?> move Left |?> move_up |?> move Right
      |?> some zip_close;;

    - : RBT.t option =
    Some (T (R, T (R, Empty, 1, Empty),
             2, T (R, Empty, 3, Empty)))
make RBT polymorphic