úÎJˆF—4      !"#$%&'()*+,-./0123 Safe-Inferred%The isomorphism type class is like a 4 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,  5! 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. Flipped isomorphism. 6We can diverge s using an isomorphism. 7We can diverge es using an isomorphism. 8Bijections as categories.  6789:;    6789:; Safe-Inferred8Pure 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-Inferred@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. "IModify a value with a function somewhere in the state, pointed to by the C specified lens. Additionally return a separate value based on the  modification.  !" !"" ! !" Safe-Inferred#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 =. &ISetter for a lens that can fail. When the field to which the lens points ) is not accessible this function returns =. '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 =. )Like (> but return behaves like the identity function when the field  could not be set. *#Embed a pure lens that points to a > field into a lens that might  fail. #?@$%&'()*#$%&'()*#$%&'()* #?@$%&'()*None+KDerive lenses including type signatures for all the record selectors for a N collection of datatypes. The types will be polymorphic and can be used in an  arbitrary context. ,JDerive lenses including type signatures for all the record selectors in a F single 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. 1GGenerate a name for the label. If the original selector starts with an I underscore, remove it and make the next character lowercase. Otherwise,  add l), and make the next character uppercase. A+,-./B01CDEFGHIJK+,-./01+,-./10A+,-./B01CDEFGHIJK Safe-Inferred2FGet 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  L. 3EFetch 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  L. 23232323None+,-./+,-./M      !"#$%&'()*+,-.!/01/23456789:/;</;=>?@ABCDEFGHIJ/KLMfclabels-1.1.7.1Data.Label.AbstractData.Label.PureData.Label.PureMData.Label.MaybeData.Label.DeriveData.Label.MaybeM Data.LabelIsoiso BijectionBijfwbwLensunLensPoint_get_set_modifylensgetsetmodifybimapforliftBijosi:->getsputs=:=.askslocal modifyAndGet:~>set'modify'embedmkLabelsmkLabel mkLabelsWith mkLabelsMonomkLabelsNoTypesgDerivedefaultMakeLabelbaseGHC.BaseFunctor Control.Arrow ArrowApply$fIsoarrBijection $fIsoarrLens$fCategoryBijection$fApplicativePoint$fFunctorPoint$fCategoryLensPureLens Data.MaybeNothingMaybe MaybeLensrunfclErrorderive1derive fromRight prettyName prettyTyVar prettyType prettyPred $fIsStringQ $fIsStringQ0 $fIsStringExp Control.Monadmzero