name: lens-simple version: 0.1.0.4 synopsis: simplified import of elementary lens-family combinators description: This module, , just re-exports the main modules from Russell O\'Connor's package, the original library. @Lens.Simple@ also re-exports @makeLenses@ and other TH incantations from Dan Burton's associated . The idea is just to make a sort of low-powered, minimal-dependency @lens-family@ equivalent of the 800 lb gorilla of lens library imports: . > import Control.Lens . to wit, the elegant and spritely: . > import Lens.Simple . Check it out, it's even one character shorter! . If you are unfamiliar with the use of what O'Connor calls van Laarhoven lenses, you might take a look at the excellent for the library. All of the tutorial material will compile if you replace @import Control.Lens@ with the suave @import Lens.Simple@. The error messages you get might be a little less opaque. But the point is basically academic, of course: you have already weighed down your sandbox with the @lens@ library by installing @wreq@ and if you get any deeper into @wreq@ you will need it. . As another illustration of the simplicity of the fundamental van Laarhoven lens combinators, note that the gloss from the @lens@ library examples directory requires only this abbreviating change of imports. If you care to make that program more complicated, you might at some point need the unfathomably more sophisticated material in @Control.Lens@. Within its more limited sphere, @lens-family@ accords as far as possible with @lens@, so this switch will often be all that is necessary to begin using them. . This module was originally intended to simplify the use of packages that follow the original promise of the van Laarhoven lenses. Correct practice is to export lenses without depending on a lens-library, where possible; in basic cases these use just familiar @Prelude@ types. Examples of best practices in this respect are and . Because of the heavily monadic character of those libraries, the extra material in @Control.Lens@ is rarely of use anyway; one sticks largely to @view\/(^.)@, @set\/(.~)@, @over\/(%~)@ and @zoom@. . Note that 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 lose the concomitant opaque error messages about @Field1 s t a b@ etc. homepage: https://github.com/michaelt/lens-simple license: BSD3 license-file: LICENSE author: michaelt maintainer: what_is_it_to_do_anything@yahoo.com copyright: 2012, 2013, 2014 Russell O'Connor; 2015 Michael Thompson category: Lenses build-type: Simple extra-source-files: README.md cabal-version: >=1.10 source-repository head type: git location: https://github.com/michaelt/lens-simple library exposed-modules: Lens.Simple build-depends: base >= 4 && < 5 , transformers < 4.3 , lens-family == 1.2.* , lens-family-core == 1.2.* , lens-family-th == 0.4.* default-language: Haskell2010