name: lens-simple version: 0.1.0.9 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 van Laarhoven-O'Connor lens library. @lens-family@ is particularly remarkable for its minute number of dependencies: (apart from they are all ghc \'boot\' libraries); but more importantly for its extreme conceptual simplicity and theoretical soundness. Much of the material it contains is well-explained, from a tutorial point of view, by It is independent, self-standing and readily intelligible apart from any darker more general system of combinators that might attempt to extend it. Much of it ought to be in the Prelude. . Convenient import of the elementary combinators from @lens-family@, however, a little complicated. The idea of this trivial module, 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! . The material in will work fine if you make this substitution in the underlying and follow along as prompted. . As another illustration of the simplicity of the fundamental van Laarhoven-O'Connor lens combinators - and their homogeneity with @Control.Lens@ - note that the gloss from the @lens@ library examples directory - which continues to be among the best introductory lens tutorials 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. On the other hand, you might just need some of the additional material present in the similarly demystifying or and the associated modules. . This module was originally intended to simplify the use of packages that follow the original promise of the van Laarhoven-O'Connor 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 . . @Lens.Simple@ also re-exports convenient TH incantations like @makeLenses@ from Dan Burton's associated . . 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 && < 6 , mtl >=2.1 && <2.3 , lens-family == 1.2.* , lens-family-core == 1.2.* , lens-family-th < 0.6 default-language: Haskell2010