Reference. The Zipper [huet-1997]

Almost every programmer has faced the problem of representing a tree together with a subtree that is the focus of attention, where that focus may move left, right, up or down the tree. The Zipper is Huet's nifty name for a nifty data structure which fulfills this need. I wish I had known of it when I faced this task, because the solution I came up with was not quite so efficient or elegant as the Zipper.

@article{10.1017/S0956796897002864,
  author = {Huet, G\'{e}rard},
  title = {The Zipper},
  year = {1997},
  issue_date = {September 1997},
  publisher = {Cambridge University Press},
  address = {USA},
  volume = {7},
  number = {5},
  issn = {0956-7968},
  url = {https://doi.org/10.1017/S0956796897002864},
  doi = {10.1017/S0956796897002864},
  abstract = {Almost every programmer has faced the problem of representing a tree together with a subtree that is the focus of attention, where that focus may move left, right, up or down the tree. The Zipper is Huet's nifty name for a nifty data structure which fulfills this need. I wish I had known of it when I faced this task, because the solution I came up with was not quite so efficient or elegant as the Zipper.},
  journal = {J. Funct. Program.},
  month = sep,
  pages = {549–554},
  numpages = {6}
}