D[      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK L M N O P Q R S T U V W X Y Z  Safe-Inferred246JK"The ArrowFail class is similar to [[, but additionally embeds some error value in the computation instead of throwing it away.EContext that represents computations that might fail with some error.>Context that represents computations that might silently fail.CContext that represents computations that always produce an output.An isomorphism is like a \ that works in two directions. Abstract Point datatype. The getter and modifier operations work in some category. The type of the value pointed to might change, thereby changing the type of the outer structure. %Get the getter category from a Point. 'Get the modifier category from a Point. %Get the setter category from a Point.'Identity Point. Cannot change the type.Point composition.Flip an isomorphism.])Missing Alternative instance for Kleisli.^)Missing Applicative instance for Kleisli._%Missing Functor instance for Kleisli.`Isomorphisms are categories. abc]^_de`fgh    abc]^_de`fgh Safe-Inferred!"246JK Abstract polymorphic lens datatype. The getter and setter functions work in some category. Categories allow for effectful lenses, for example, lenses that might fail or use state.)Create a lens out of a getter and setter.Create lens from a  .!Get the getter arrow from a lens.#Get the modifier arrow from a lens.!Get the setter arrow from a lens.&Lift a polymorphic isomorphism into a .>The isomorphism needs to be passed in twice to properly unify._Make a Lens output diverge by changing the input of the modifier. The operator can be read as  points-to.Non-operator version of P, since it clashes with an operator when the Arrows language extension is used.i)Convert a polymorphic lens back to point.j)Category instance for monomorphic lenses. klGetter. Modifier.ij   lkij Safe-Inferred246JK Partial monomorphic lens.Total monomorphic lens.Abstract monomorphic lens datatype. The getter and setter functions work in some category. Categories allow for effectful lenses, for example, lenses that might fail or use state.)Create a lens out of a getter and setter.!Get the getter arrow from a lens.#Get the modifier arrow from a lens. !Get the setter arrow from a lens.!Create lens from a  ."Lift an isomorphism into a . Getter. Modifier. !"  !" ! "  !"None-/JK#Derive labels including type signatures for all the record selectors for a collection of datatypes. The types will be polymorphic and can be used in an arbitrary context.$Derive labels including type signatures for all the record selectors in a single datatype. The types will be polymorphic and can be used in an arbitrary context.%Like #J, but uses the specified function to produce custom names for the labels.For instance, (drop 1 . dropWhile (/='_')) creates a label val from a record Rec { rec_val :: X }.&Derive unnamed labels as n-tuples that can be named manually. The types will be polymorphic and can be used in an arbitrary context.Example: $(left, right) = $(getLabel ''Either)*The lenses can now also be typed manually: aleft :: (Either a b -> Either c b) :~> (a -> c) right :: (Either a b -> Either a c) :~> (b -> c){Note: Because of the abstract nature of the generated lenses and the top level pattern match, it might be required to use NoMonomorphismRestriction in some cases.'2Low level label as expression derivation function.(/Low level standalone label derivation function.)Default way of generating a label name from the Haskell record selector name. If the original selector starts with an underscore, remove it and make the next character lowercase. Otherwise, add l), and make the next character uppercase.*Derive labels for all the record types in the supplied declaration. The record fields don't need an underscore prefix. Multiple data types / newtypes are allowed at once.The advantage of this approach is that you don't need to explicitly hide the original record accessors from being exported and they won't show up in the derived m instance.Example: afclabels [d| data Record = Record { int :: Int , bool :: Bool } deriving Show |] 5ghci> modify int (+2) (Record 1 False) Record 3 False-nopqrstuvw#$%&' Generate type signatures or not.Generate concrete type or abstract type. When true the signatures will be concrete and can only be used in the appropriate context. Total labels will use (:->l) and partial labels will use either `Lens Partial` or `Lens Failing` dependent on the following flag:Use  for failure instead of [.The type to derive labels for.(1Supply a function to perform custom label naming. Generate type signatures or not.Generate concrete type or abstract type. When true the signatures will be concrete and can only be used in the appropriate context. Total labels will use (:->l) and partial labels will use either `Lens Partial` or `Lens Failing` dependent on the following flag:Use  for failure instead of [.Generate inline pragma or not.The type to derive labels for.)*xyz{|}~#$%&'()*$#%&*(')(nopqrstuwv#$%&'()*xyz{|}~ Safe-InferredJK +JPartial lens type for situations in which the accessor functions can fail.,_Create a lens that can fail from a getter and a modifier that can themselves potentially fail.-oGetter for a lens that can fail. When the field to which the lens points is not accessible the getter returns ..tModifier for a lens that can fail. When the field to which the lens points is not accessible this function returns ./rSetter for a lens that can fail. When the field to which the lens points is not accessible this function returns .0$Embed a total lens that points to a $ field into a lens that might fail.1Like .P but return behaves like the identity function when the field could not be set.2Like /P but return behaves like the identity function when the field could not be set.3Like .X, but update allows, depending on the underlying lens, to remove items by modifying to . +,Getter. Modifier.-./0123 +,-./0123 +,-./0213 +,-./0123 Safe-InferredEJK4_Lens type for situations in which the accessor functions can fail with some error information.5_Create a lens that can fail from a getter and a modifier that can themselves potentially fail.6oGetter for a lens that can fail. When the field to which the lens points is not accessible the getter returns .7tModifier for a lens that can fail. When the field to which the lens points is not accessible this function returns .8rSetter for a lens that can fail. When the field to which the lens points is not accessible this function returns .9%Embed a total lens that points to an $ field into a lens that might fail.:Like 7P but return behaves like the identity function when the field could not be set.;Like 8P but return behaves like the identity function when the field could not be set.45Getter. Modifier.6789:; 456789:; 456789;:456789:; Safe-InferredJK<9Total lens type specialized for total accessor functions.=1Create a total lens from a getter and a modifier.$We expect the following law to hold: get l (set l a f) == a set l (get l f) f == f>$Get the getter function from a lens.?&Get the modifier function from a lens.@$Get the setter function from a lens.AModify in some context.BLifted lens composition..For example, useful when specialized to lists: ,:: (f :-> [o]) -> (o :-> [a]) -> (f :-> [a])<=Getter. Modifier.>?@AB<=>?@AB<=>?@AB<=>?@AB Safe-InferredJKC?Get a value out of the state, pointed to by the specified lens.DESet a value somewhere in the state, pointed to by the specified lens.EYModify a value with a function somewhere in the state, pointed to by the specified lens.F Alias for D that reads like an assignment.G Alias for E, that reads more or less like an assignment.H?Fetch a value pointed to by a lens out of a reader environment.IcExecute a computation in a modified environment. The lens is used to point out the part to modify.JModify a value with a function somewhere in the state, pointed to by the specified lens. Additionally return a separate value based on the modification.CDEFGHIJCDEFGHIJCDEJFGHICDEFGHIJFG NoneJKK1Create a total lens from a getter and a modifier.$We expect the following law to hold: #get l (modify l m f) == m (get l f)L$Get the getter function from a lens.M&Get the modifier function from a lens.N$Get the setter function from a lens.KGetter. Modifier.LMN"#$&*KLMNKLNM"$#&*KLMN NoneJK OJLens pointing to the head of a list's cons cell. (Partial and monomorphic)PJLens pointing to the tail of a list's cons cell. (Partial and monomorphic)QGLens pointing to the left value in an Either. (Partial and polymorphic)RHLens pointing to the right value in an Either. (Partial and polymorphic)S@Lens pointing to the value in a Maybe. (Partial and polymorphic)TJLens pointing to the first component of a 2-tuple. (Total and polymorphic)UKLens pointing to the second component of a 2-tuple. (Total and polymorphic)VNPolymorphic lens that swaps the components of a tuple. (Total and polymorphic)WJLens pointing to the first component of a 3-tuple. (Total and polymorphic)XKLens pointing to the second component of a 3-tuple. (Total and polymorphic)YJLens pointing to the third component of a 3-tuple. (Total and polymorphic)ZaPartial isomorphism for readable and showable values. Can easily be lifted into a lens by using ". OPQRSTUVWXYZ OPQRSTUVWXYZ OPQRSTUVWXYZ OPQRSTUVWXYZ    !"#$%&'() *+,-*+,!./0123456     7 8 9 : ; < = > ? @ A BCDECFGHIJKLMNOPQRSTUVCWXYYZZ[\\]^_`abcdefghijklmnopqrstuvwxyzC{|C{}C~C~fclabels-2.0.2.2Data.Label.PointData.Label.PolyData.Label.MonoData.Label.DeriveData.Label.PartialData.Label.FailingData.Label.TotalData.Label.Monadic Data.LabelData.Label.Base ArrowFail failArrowFailingPartialTotalIsofwbwPointgetmodifysetidentitycomposeinvLenslenspointiso>-for:~>:->mkLabelsmkLabel mkLabelsNamedgetLabel getLabelWith mkLabelsWith defaultNamingfclabelsembedmodify'set'updatetraverseliftedgetsputs=:=.askslocal modifyAndGetheadtailleftrightjustfstsndswapfst3snd3trd3readShowbase Control.Arrow ArrowZeroControl.CategoryCategory$fAlternativeKleisli$fApplicativeKleisli$fFunctorKleisli$fCategory*Isoconstcurryuncurry$fArrowFaileKleisli$fArrowFaileKleisli0$fAlternativePoint$fApplicativePoint$fFunctorPointunpack$fCategory*LensIdGHC.ShowShowTypingContextSubstFieldLabel LabelExpr LabelDeclmkLabelsWithForDecgenerateLabels groupFieldsconstructorFieldsprune unifiableCon unifiable generateLabelmodifiergettersetter freshNames computeTypes isMonomorphic typeVariablestypeFromBinderbinderFromTypemapTypeVariablesmapType substitutenameFromBindermapPred mapTyVarBndrpretty prettyTypereifyDecfclError Data.MaybeNothingMaybe Data.EitherLeftEither