Description
Helps write simple, concise, and fast generic operations over Haskell data structures. It is often used to traverse, transform, or query nested values without hand-writing every recursive case.
It is useful for compilers, interpreters, refactoring tools, analyzers, and applications with tree-like data. Developers should still test transformations carefully so generic traversals do not change unintended parts.