Zipper structure, whose root type is the first type argument, and whose focus type is the second type argument.
Moduleuniplate-1.6.13Haskell2010
Data.Generics.Uniplate.Zipper
A zipper is a structure for walking a value and manipulating it in constant time.
This module was inspired by the paper: Michael D. Adams. Scrap Your Zippers: A Generic Zipper for Heterogeneous Types, Workshop on Generic Programming 2010.
- 1 type
- 9 values
- Packageuniplate-1.6.13
- Exports10
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceZipper.hs
Create a zipper and get back the value
4 declarationsCreate a zipper, focused on the top-left value.
Create a zipper with a different focus type from the outer type. Will return
Nothing if there are no instances of the focus type within the original value.
From a zipper take the whole structure, including any modifications.
Navigate within a zipper
4 declarationsMove one step left from the current position.
Move one step right from the current position.
Move one step up from the current position.
Move one step down from the current position.
Manipulate the zipper hole
2 declarationsRetrieve the current focus of the zipper..
Replace the value currently at the focus of the zipper.