úÎ?è<Ç/      !"#$%&'()*+,-. Safe-Infered%The isomorphism type class is like a / but works in two directions. AThe bijections datatype, an arrow that works in two directions. EAbstract Lens datatype. The getter and setter functions work in some J arrow. Arrows allow for effectful lenses, for example, lenses that might  fail or use state. FAbstract Point datatype. The getter and setter functions work in some  arrow. DModification as a compositon of a getter and setter. Unfortunately,  0! is needed for this composition. *Create a lens out of a getter and setter. "Get the getter arrow from a lens. "Get the setter arrow from a lens. $Get the modifier arrow from a lens. Make a   diverge in two directions. Lifting s. 1We can diverge s using an isomorphism. 2We can diverge es using an isomorphism. 3Bijections as categories.  123456    123456 Safe-Infered8Pure lens type specialized for pure accessor functions. /Create a pure lens from a getter and a setter. %We expect the following law to hold:   get l (set l a f) == a Or, equivalently:  set l (get l f) f == f Getter for a pure lens. Setter for a pure lens. Modifier for a pure lens.  Safe-Infered@Get a value out of the state, pointed to by the specified lens. FSet a value somewhere in the state, pointed to by the specified lens. IModify a value with a function somewhere in the state, pointed to by the  specified lens.  Alias for  that reads like an assignment.  Alias for - that reads more or less like an assignment. @Fetch a value pointed to by a lens out of a reader environment. EExecute a computation in a modified environment. The lens is used to  point out the part to modify.      Safe-Infered!KLens type for situations in which the accessor functions can fail. This is G useful, for example, when accessing fields in datatypes with multiple  constructors. "KCreate a lens that can fail from a getter and a setter that can themselves  potentially fail. #IGetter for a lens that can fail. When the field to which the lens points & is not accessible the getter returns 7. $ISetter for a lens that can fail. When the field to which the lens points ) is not accessible this function returns 7. %Like $> but return behaves like the identity function when the field  could not be set. &KModifier for a lens that can fail. When the field to which the lens points ) is not accessible this function returns 7. 'Like &> but return behaves like the identity function when the field  could not be set. (#Embed a pure lens that points to a 8 field into a lens that might  fail. !"#$%&'(!"#$%&'(!"#$%&'(!"#$%&'(None)JDerive lenses including type signatures for all the record selectors in a I datatype. The types will be polymorphic and can be used in an arbitrary  context. *4Generate the label name from the record field name.  For instance, drop 1 . dropWhile (/='_') creates a label val from a  record Rec { rec_val :: X }. +JDerive lenses including type signatures for all the record selectors in a G datatype. The signatures will be concrete and can only be used in the  appropriate context. ,HDerive lenses without type signatures for all the record selectors in a  datatype. )*+,9:;)*+,)*+,9:; Safe-Infered-FGet a value out of state, pointed to by the specified lens that might F fail. When the lens getter fails this computation will fall back to  <. .EFetch a value, pointed to by a lens that might fail, out of a reader L environment. When the lens getter fails this computation will fall back to  <. -.-.-.-. Safe-Infered)*+,)*+,=      !"#$%&'() *+,*-./01234*56*5789:*;<=fclabels-1.1.2Data.Label.AbstractData.Label.PureData.Label.PureMData.Label.Maybe Data.LabelData.Label.MaybeMData.Label.DeriveIsoiso BijectionBijfwbwLensunLensPoint_get_set_modifylensgetsetmodifybimapforliftBij:->getsputs=:=.askslocal:~>set'modify'embedmkLabels mkLabelsWith mkLabelsMonomkLabelsNoTypesbaseGHC.BaseFunctor Control.Arrow ArrowApply$fIso~>Bijection $fIso~>Lens$fCategoryBijection$fApplicativePoint$fFunctorPoint$fCategoryLens Data.MaybeNothingMaybe $fIsStringQ $fIsStringQ0 $fIsStringExp Control.Monadmzero