BSD-3-Clause licensed by Fumiaki Kinoshita
Maintained by Fumiaki Kinoshita
This version can be pinned in stack with:witherable-0.4.2@sha256:cec516b35df0ff53ab0068e70a912a0ba7b65c672fbc554727183faa195ad3b8,2342

Module documentation for 0.4.2

A stronger variant of traverse which can remove elements and generalised mapMaybe, catMaybes, filter



  • Supported GHC 9.2
  • Improved the instances for vector


  • Added ordNubBy, hashNubBy, ordNubByOf, and hashNubByOf.
  • Use alterF for nub-function implementations
  • Implement witherM in Witherable Vector instance.
  • Mark modules as Trustworthy
  • ordNub and hashNub are productive, start to produce results immediately and work for infinite lists.


  • FilterableWithIndex and WitherableWithIndex are now subclasses of the ones from indexed-traversable
  • Removed the orphan instances for MonoidalMap


  • Make wither and witherM methods of Witherable [] instance good consumers for list fusion.
  • Added instances for Reverse, Backwards, ZipList, and types from GHC.Generics
  • Added Wither, WitherLike, Wither' and WitherLike', deprecating Filter and the variants
  • Moved Filterable and Witherable into a separate package, witherable-class


  • Exported WrappedFoldable


  • Added FilterableWithIndex and WitherableWithIndex.
  • Added WrappedFoldable


  • Added Filterable (MonoidalMap k) and Witherable (MonoidalMap k)


  • Added (<$?>) as an alias for mapMaybe, with fixity matching (<$>).
  • Added (<&?>) = flip (<$?>), with fixity matching (<&>).


  • Added (Filterable f, Filterable g) => Filterable (Product f g)
  • Added (Witherable f, Witherable g) => Witherable (Product f g)
  • Added (Filterable f, Filterable g) => Filterable (Sum f g)
  • Added (Witherable f, Witherable g) => Witherable (Sum f g)
  • Added Filterable f => Filterable (IdentityT f)
  • Added Witherable f => Witherable (IdentityT f)
  • Switched from strict HashMap operations to lazy ones. This matches the behavior of the rest of the instances.
  • Changed the definition of witherM


  • Added Traversable t => Witherable (MaybeT t)
  • New class: Filterable
    • Witherable t is equivalent to (Traversable t, Filterable t)
  • Removed Chipped

  • Added forMaybeOf and forMaybe

  • Exported witherM, blightM
  • Fixed the default definition of catMaybes


  • Now witherable depends on base-orphans to prevent a tragedy of duplicate orphans
  • Added generalized combinators according to the lens convention

  • Added ordNub, hashNub
  • Data.Witherable is now Trustworthy

  • Added Chipped