Micro-optics for the process library https://github.com/emilypi/lens-process/tree/master/microlens

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

BSD-3-Clause licensed by Emily Pillmore
Maintained by emilypi@cohomolo.gy


Hackage Build Status

This package is intended to be on the lighter side, with few dependencies aside from microlens.


microlens-process provides optics for the process package. These optics provide convenient lenses, as well as classy variants for significant classifiable portions of the library for convenience. In addition, we provide some combinators for working with CreateProcess types. The intention of this package is to create a well-typed optical layer for process, reflecting the shape of certain types of commands at the type level. For instance, consider the following:

For a fuller and more well-typed layer, see lens-process

microlens-process dependencies


Revision history for microlens-process

Final design - this will not change unless System.Process significantly changes.

  • System.Process.Microlens.CommandSpec is renamed to System.Process.Microlens.CmdSpec to be more flush with the data names
  • documentation improvements all around
  • Type signatures of combinators inheriting, piping, handling and nostreaming have had their unnecessary constraints dropped
  • microlens-process is now in lockstep featurewise
  • Traversals + Lenses have been added where in lens-process they would have been Prisms and Isos respectively. While it is slightly too powerful a constraint, the functionality is sound.

GHC versions < 710 fail because applicative is not in base. Explicit import added where needed

Fix the cabal version

Expose a new module called System.Process.Microlens.CommandSpec, exposing traversals into the arguments of a raw command.

Added doctests

Improved docs

Widen bounds, improve docs

  • Correct and widen version bounds

  • First version. Released on an unsuspecting world.