BSD-3-Clause licensed by Edward A. Kmett
Maintained by Edward A. Kmett
This version can be pinned in stack with:keys-3.12.3@sha256:6e868d49982f304462bba35a249662ee41bae1d9f692d8c64369122ef1eee662,2322

Module documentation for 3.12.3


Hackage Build Status

This package provides a bunch of ad hoc classes for accessing parts of a container.

In practice this package is largely subsumed by the lens package, but it is maintained for now as it has much simpler dependencies.

Contact Information

Contributions and bug reports are welcome!

Please feel free to contact me through github or on the #haskell IRC channel on

-Edward Kmett


3.12.3 [2020.01.29]

  • Add Keyed, Indexable, Lookup, Adjustable, FoldableWithKey, and TraversableWithKey instances for Control.Applicative.Const and Data.Functor.Constant.Constant.

3.12.2 [2019.05.02]

  • Use more efficient implementations of lookup, adjust, foldMapWithKey, and traverseWithKey if building against containers-0.5.8 or later.

3.12.1 [2018.07.03]

  • Allow building with containers-0.6.
  • Avoid the use of deprecated functions from containers.

3.12 [2018.01.28]

  • Add instances for data types in GHC.Generics. Change the existing instances for Data.Functor.Sum to be consistent with those for (GHC.Generics.:+:).
  • Add instances for Proxy and Tagged.
  • Add instances for ZipList.
  • Add MINIMAL sets for Zip and FoldableWithKey.
  • Allow free-5.


  • Support for comonad 5
  • Support for GHC 8
  • Support for transformers 0.5


  • Support for semigroupoids 5


  • Support for transformers 0.4


  • Updated to use free, semigroupoids, comonad version 4.0


  • Updated array dependency
  • Added proper upper bounds to other dependencies


  • This package is now Trustworthy


  • Removed upper bounds on my other dependencies
  • Directory layout change
  • Added support files
  • Travis build notification to IRC