public Option<Zipper<A>> deleteRight() {
    return left.isEmpty() && right.isEmpty()
           ? Option.<Zipper<A>>none()
           : some(zipper(right.isEmpty() ? left.tail()._1() : left,
                         right.isEmpty() ? left.head() : right.head(),
                         right.isEmpty() ? right : right.tail()._1()));
  }