Description
Provides abstractions for structures that can be traversed while filtering values. This combines mapping, effects, and removal of unwanted elements in a reusable Haskell pattern.
It is useful for validation, data cleanup, parsers, transformations, and libraries that work generically over containers. Developers should make filtering rules clear because dropped values can otherwise be hard to notice.