name: lens-simple version: 0.1.0.7 synopsis: simplified import of elementary lens-family combinators description: This module, , just re-exports the main modules from Russell O\'Connor's package. @lens-family@ is particularly remarkable for its minute number of dependencies: apart from they are all ghc \'boot\' libraries. @Lens.Simple@ also re-exports @makeLenses@ and other convenient TH incantations from Dan Burton's associated . . The idea, then, 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 . namely, the light-weight and elegant: . > import Lens.Simple . Check it out, it's even one character shorter! . As an illustration of the simplicity of the fundamental van Laarhoven lens combinators - and their homogeneity with @Control.Lens@ - note that the gloss from the @lens@ library examples directory - which continues to be the best introductory lens tutorial precisely by saying nothing - requires /only/ this abbreviating change of imports. If you make that program more complicated, you might of course end up needing the more sophisticated material in @Control.Lens@ and its immense mass of dependencies. Within its more limited sphere, though, @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 just use familiar @Prelude@ types, after all. Examples of best practices in this respect are e.g. which doesn't depend on @lens-family@ despite its name and pipes-related packages like and . Because of the heavily monadic character of the latter libraries, the extra material in @Control.Lens@ is rarely of use anyway; one sticks largely to @view@, @set@, @over@ and, for state operations, @zoom@. . Note that lenses and other combinators are here frequently 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. 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, changelog 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.* , transformers >= 0.2.0 && < 5 , mtl >=2.1 && <2.3 , lens-family == 1.2.* , lens-family-core == 1.2.* , lens-family-th == 0.4.* default-language: Haskell2010