The lens-family-simple package
- Exposed modules use unallocated top-level names: Lens
This module, Lens.Simple, just re-exports the main modules from Russell O'Connor's lens-family-core package, the original van Laarhoven lens library. Lens.Simple also re-exports makeLenses and other TH incantations from Dan Burton's associated lens-family-th. All other dependencies are ghc boot libraries.
The idea is just to make a lens-family equivalent of import Control.Lens -- namely, import Lens.Simple.
As an illustration, note that the exemplary pong module from the lens repository compiles with only this change of imports. When one day the need arises for the unfathomably more sophisticated material in Control.Lens, the opposite change of imports will tend be all that is necessary to begin using them.
There are caveats, of course. The zoom exported here does not use MonadState from mtl but is specialized to Control.Monad.Trans.State.Strict Many of the other lenses and combinators are a bit more specialized than their Control.Lens equivalents: for example, _1 and _2 are here familiarly specialized to act just on real Haskell pairs; with the loss of abstraction we also of course abbreviate the error messages.
[Skip to ReadMe]
|Dependencies||base (==4.*), lens-family-core (==1.2.*), lens-family-th (==0.4.*) [details]|
|Uploaded||Wed May 6 04:03:14 UTC 2015 by MichaelThompson|
- lens-family-simple-0.1.0.0.tar.gz [browse] (Cabal source package)
- Package description (included in the package)
For package maintainers and hackage trustees