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