úÎ6¨0ˆA      !"#$%&'()*+,-./0123456789:;<=>?@None  pure Iso a partial Isomorphism A wrapper for a more (->)-like Functor instances KAn Isomorphism or one-to-one mapping between types. These are very similar  to a LensC, but are not dependent on context, making them more flexible. The N functions also alow a Monadic context, supporting partial isomorphisms, and " other interesting functionality. A more categorical A, with wrapping /! unwrapping for convenience. See  also the B instances for . % ifmap = fromPure . C.fmap . IsoPure Unwrap and make polymorphic an  See also an Iso wrapped in Dual apply the forward function " i $- a = runIdentity $ apply i a apply the backward function $ i -$ b = runIdentity $ unapply i b Calls C on the empty list. =DE FG HIJKLMNOPQRSTUVWXYZ[\]^_`abcd    8DE FG HIJKLMNOPQRSTUVWXYZ[\]^_`abcdNoneJa lens that can fail in the Maybe monad on the outer type. Suitable for a ; normal lens on a multi-constructor type. The more general &, %, etc.  can be used with this type. 5a simple lens, suitable for single-constructor types  lenses in which only the setter w is monadic lenses in which m == w and we would like to e the two in get/set "lenses in which set/ get should f the inner monad w to m $BA class for our basic (monadic) lens operations. Minimal complete  definition is % and & (=A lens in which the setter returns its result in the trivial g N monad. This is appropriate e.g. for traditional partial lenses on sum types, A where there is a potential that the lens could fail only on the outer  constructor. ,/Create a monadic lens from a getter and setter -0Create a monadic Lens from a setter and getter. 1 lensMW g s = Lens $ \a-> liftM2 (,) (s a) (g a) 0codiag from Cartesian  eitherL = id ||| id 4Convert an isomorphism i to a ). When apply i . unapply i =  unapply i . apply i = id+, the resulting lens will be well-behaved. 51Convert to a Lens an isomorphism between a value a and a tuple of a  value b with some "residual" value r. 6,Create a pure Lens from a getter and setter 5 lens g = lensM (fmap return g) . fmap (fmap return) 7'Run the getter function of a pure lens  get l = runIdentity . getM l 8'Run the getter function of a pure lens " set l b = runIdentity . setM l a :  (^$) = get ;  ma ^>>= l = ma >>= getM l 0 !"#$%&'()*+,hi-./0123456789:;jklmnopqrstuvw  !"#$%&'()*+,-./0123456789:; )*+6789$%&'(,-"# !./012345:;( !"#$%&'()*+,hi-./0123456789:;jklmnopqrstuvwNone<'Run the getter function of a pure lens =/Create a partial lens from a getter and setter >+Try to run the getter function on a value ??try to run the setter function on an outer and new inner value @(try to modify the inner type of a value <=>?@ 689<=>?@ 6<89=>?@<=>?@x      !"#$%&'()*++,-./0123456789:;<8-'()=>?@AB=>CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd=efghigjklmnopqrstuvwxyz{| yall-0.2.1 Data.Yall.IsoData.Yall.Lens Data.Yall:<->:<~>IsoPureisoPureIsoapplyunapplyifmapfromPure distributeIfactorIinverseIiso$--$wordsIlinesIshowIcurryIenumIintegerI rationalIzipI incrementI incrementByIconsI:~>:->LensWLWLensJoinLJoinLensLiftLLiftLensesgetMsetMmodifyMLensMLensrunLenslensMlensMWfstLsndLeitherL|||factorL distributeLisoL residualLlensgetsetmodify^$^>>=baseGHC.Basefmapcategories-1.0.6Control.Categorical.FunctorFunctorfail pureWrapped2 pureWrapped extractJoinE extractJoinT$fMonoidalIso(,)$fSymmetricIsoEither$fSymmetricIso(,)$fBraidedIsoEither$fBraidedIso(,)$fAssociativeIsoEither$fAssociativeIso(,)$fBifunctorEitherIsoIsoIso$fQFunctorEitherIsoIso$fPFunctorEitherIsoIso$fBifunctor(,)IsoIsoIso$fQFunctor(,)IsoIso$fPFunctor(,)IsoIso$fFunctormIsoIso$fFunctorfIsoPureIsoPure$fMonoidalIsoPure(,)$fSymmetricIsoPure(,)$fSymmetricIsoPureEither$fBraidedIsoPureEither$fBraidedIsoPure(,)$fAssociativeIsoPureEither$fAssociativeIsoPure(,)&$fBifunctorEitherIsoPureIsoPureIsoPure$fQFunctorEitherIsoPureIsoPure$fPFunctorEitherIsoPureIsoPure#$fBifunctor(,)IsoPureIsoPureIsoPure$fQFunctor(,)IsoPureIsoPure$fPFunctor(,)IsoPureIsoPure $fCategoryIso Control.Monadjointransformers-0.3.0.0Control.Monad.Trans.ClassliftData.Functor.IdentityIdentitygetterMsetterM$fMonoidalLens(,)$fSymmetricLens(,)$fBraidedLens(,)$fAssociativeLens(,)$fHasTerminalObjectLens$fFunctormLensLens$fBifunctor(,)LensLensLens$fQFunctor(,)LensLens$fPFunctor(,)LensLens$fCategoryLens$fLensesLensWw$fLensesLensJoinm$fLensesLensLiftt $fLensesLensm