  A zipper is a powerful technique of representing a purely functional data
structure in a way that allows fast access to a specific element. It is often
used in cases where the imperative data structures would use a mutable pointer.
However, the efficiency of zippers as a replacement for mutable pointers is not
sufficiently explored. We attempt to address this issue by comparing the
performance of zippers and mutable pointers in two common scenarios and three
different languages: C++, C#, and Haskell.
