úÎ!Оµæo      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n Noneåÿwopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£€¥Š§š©ª«¬­®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£€¥Š§š©ª«¬­®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäå(C) 2020 Csongor KissBSD3*Csongor Kiss <kiss.csongor.kiss@gmail.com> experimental non-portableNone,-.=?@ACHUVWXk%ëægeneric-optics,Records that have a field with a given name.[This class gives the minimal constraints needed to define this lens. For common uses, see . generic-optics,Records that have a field with a given name.&This is meant to be more general than M, but that is not quite the case due to the lack of functional dependencies. The types s and tB must be applications of the same type constructor. In contrast, W also requires the parameters of that type constructor to have representational roles.One use case of   over  is for records defined with  data instance.generic-optics,Records that have a field with a given name.generic-optics1A lens that focuses on a field with a given name.human ^. field @"age"50 Type changing:t humanhuman :: Human Bool(:t human & field @"other" .~ (42 :: Int)2human & field @"other" .~ (42 :: Int) :: Human Inthuman & field @"other" .~ 42BHuman {name = "Tunyasz", age = 50, address = "London", other = 42} Type errorshuman & field @"weight" .~ 42...@... The type Human Bool does not contain a field named 'weight'....human & field @"address" .~ "".../... Not all constructors of the type Human Bool$... contain a field named 'address'.#... The offending constructors are:... HumanNoAddress...generic-opticsgetField @"age" human50generic-opticssetField @"age" 60 humanEHuman {name = "Tunyasz", age = 60, address = "London", other = False}generic-opticsfSee Note [Uncluttering type signatures] >>> :t field field :: HasField field s t a b => Lens s t a b  (C) 2020 Csongor KissBSD3*Csongor Kiss <kiss.csongor.kiss@gmail.com> experimental non-portableNone-.=>?@ACHWX(R(C) 2020 Csongor KissBSD3*Csongor Kiss <kiss.csongor.kiss@gmail.com> experimental non-portableNone&'-.7=>?@ACHUVWXk*¹  (C) 2020 Csongor KissBSD3*Csongor Kiss <kiss.csongor.kiss@gmail.com> experimental non-portableNone,-.=>?@ACHUVWXhk;µ!generic-optics.Records that have a field at a given position.[This class gives the minimal constraints needed to define this lens. For common uses, see '.#generic-optics.Records that have a field at a given position.The difference between ' and % is similar to the one between  and . See .'generic-optics.Records that have a field at a given position.(generic-optics3A lens that focuses on a field at a given position.human ^. position @1 "Tunyasz"human & position @3 .~ "Berlin"6Human {name = "Tunyasz", age = 50, address = "Berlin"} Type errorshuman & position @4 .~ "Berlin"...9... The type Human does not contain a field at position 4...)generic-opticsgetPosition @2 human50*generic-opticssetPosition @2 60 human6Human {name = "Tunyasz", age = 60, address = "London"}+generic-opticskSee Note [Uncluttering type signatures] >>> :t position position :: HasPosition i s t a b => Lens s t a b !"#$%&'()* '(#$%&!")*(C) 2020 Csongor KissBSD3*Csongor Kiss <kiss.csongor.kiss@gmail.com> experimental non-portableNone-.=>?@AHSUVWXkOƒ1generic-opticsStructural subtype relationshipsub is a (structural) subtype of sup*, if its fields are a subset of those of sup.2generic-optics6Structural subtype lens. Given a subtype relationship  sub :< sup, we can focus on the sub structure of sup.human ^. super @Animal#Animal {name = "Tunyasz", age = 50}+set (super @Animal) (Animal "dog" 10) human2Human {name = "dog", age = 10, address = "London"}3generic-optics<Cast the more specific subtype to the more general supertypeupcast human :: Animal#Animal {name = "Tunyasz", age = 50}(upcast (upcast human :: Animal) :: Human...2... The type 'Animal' is not a subtype of 'Human'.3... The following fields are missing from 'Animal': ... address...4generic-optics*Plug a smaller structure into a larger onesmash (Animal "dog" 10) human2Human {name = "dog", age = 10, address = "London"}5generic-optics6See Note [Uncluttering type signatures] >>> :t super  Int super .Int :: Subtype Int sub => Lens sub sub Int Int6generic-opticsgSee Note [Uncluttering type signatures] >>> :t super super :: Subtype sup sub => Lens sub sub sup sup12341234(C) 2020 Csongor KissBSD3*Csongor Kiss <kiss.csongor.kiss@gmail.com> experimental non-portableNone =>?@AWXk]æ9generic-optics-Records that have a field with a unique type.:generic-opticsEA lens that focuses on a field with a unique type in its parent type.human ^. typed @Int50 Type errorshuman ^. typed @String......;... The type Human contains multiple values of type [Char].J... The choice of value is thus ambiguous. The offending constructors are: ... Human... HumanNoTall...human ^. typed @Bool......H... Not all constructors of the type Human contain a field of type Bool.#... The offending constructors are:... HumanNoTall...;generic-opticsGet field at type.<generic-opticsSet field at type.=generic-optics[See Note [Uncluttering type signatures] >>> :t typed typed :: HasType a s => Lens s s a aQNote that this might not longer be needed given the above 'HasType a a' instance.9:;<9:;<(C) 2020 Csongor KissBSD3*Csongor Kiss <kiss.csongor.kiss@gmail.com> experimental non-portableNone-=?@ACHVWXkdAgeneric-optics™A lens that focuses on a part of a product as identified by some selector. Currently supported selectors are field names, positions and unique types.human ^. the @Int50human ^. the @"name" "Tunyasz"human ^. the @3"London"@A@A(C) 2020 Csongor KissBSD3*Csongor Kiss <kiss.csongor.kiss@gmail.com> experimental non-portableNone,-.8=?@AHSUVWX_kmjEgeneric-optics*Traverse all types in the given structure.For example, to update all çs in a WTree (Maybe String) String, we can writeGmyTree = WithWeight (Fork (Leaf (Just "hello")) (Leaf Nothing)) "world"$over (types @String) (++ "!") myTree@WithWeight (Fork (Leaf (Just "hello!")) (Leaf Nothing)) "world!"The traversal is deep[, which means that not just the immediate children are visited, but all nested values too.Fgeneric-opticsEFEF(C) 2020 Csongor KissBSD3*Csongor Kiss <kiss.csongor.kiss@gmail.com> experimental non-portableNoneWoY- !"#$%&'()*12349:;<@AEF (C) 2020 Csongor KissBSD3*Csongor Kiss <kiss.csongor.kiss@gmail.com> experimental non-portableNone.=>?@ACHUVWXk€«Ggeneric-optics/Sums that have a constructor with a given name.\This class gives the minimal constraints needed to define this prism. For common uses, see HasConstructor.Kgeneric-optics/Sums that have a constructor with a given name.The difference between HasConstructor and HasConstructor_ is similar to the one between  and . See .Mgeneric-optics/Sums that have a constructor with a given name.Ngeneric-optics5A prism that projects a named constructor from a sum.dog ^? _Ctor @"Dog"2Just (MkDog {name = "Shep", age = 3, fieldA = 30})dog ^? _Ctor @"Cat"Nothingcat ^? _Ctor @"Cat"Just ("Mog",5),_Ctor @"Cat" # ("Garfield", 6) :: Animal IntCat "Garfield" 6 Type errorscat ^? _Ctor @"Turtle"......E... The type Animal Int does not contain a constructor named "Turtle"...Ogeneric-opticskSee Note [Uncluttering type signatures] >>> :t _Ctor _Ctor :: AsConstructor ctor s t a b => Prism s t a bGHIJKLMNMNKLIJGH (C) 2020 Csongor KissBSD3*Csongor Kiss <kiss.csongor.kiss@gmail.com> experimental non-portableNone =>?@AUVWXk—-Ugeneric-optics)Structural subtyping between sums. A sum Sub is a subtype of another sum Sup if a value of SubD can be given (modulo naming of constructors) whenever a value of Sup5 is expected. In the running example for instance, FourLeggedAnimal is a subtype of AnimalO since a value of the former can be given as a value of the latter (renaming Dog4 to Dog and Cat4 to Cat).Vgeneric-opticsŒA prism that captures structural subtyping. Allows a substructure to be injected (upcast) into a superstructure or a superstructure to be downcast into a substructure (which may fail)._Sub # dog4 :: Animal%Dog (MkDog {name = "Snowy", age = 4})%cat ^? _Sub :: Maybe FourLeggedAnimalJust (Cat4 "Mog" 5)&duck ^? _Sub :: Maybe FourLeggedAnimalNothingWgeneric-optics,Injects a subtype into a supertype (upcast).Xgeneric-optics/Projects a subtype from a supertype (downcast).Ygeneric-optics5See Note [Uncluttering type signatures] >>> :t _Sub  Int _Sub *Int :: AsSubtype Int sup => Prism' sup IntZgeneric-optics¢See Note [Uncluttering type signatures] _Sub :: (AsSubtype sub sup, Data.Profunctor.Choice.Choice p, Applicative f) => p sub (f sub) -> p sup (f sup)[generic-optics?Reflexive case >>> _Sub # dog :: Animal Dog (MkDog {name = Shep , age = 3})UVWXUVWX (C) 2020 Csongor KissBSD3*Csongor Kiss <kiss.csongor.kiss@gmail.com> experimental non-portableNone.=>?@AHUVWXk¥u]generic-optics<Sums that have a constructor with a field of the given type.^generic-opticsUA prism that projects a constructor uniquely identifiable by the type of its field.dog ^? _Typed @Dog)Just (MkDog {name = "Shep", age = Age 3})cat ^? _Typed @(Name, Age)Just ("Mog",Age 5)dog ^? _Typed @Age......P... The type Animal contains multiple constructors whose fields are of type Age.A... The choice of constructor is thus ambiguous, could be any of:... Duck ... Turtle..._generic-opticsInject by type.`generic-opticsProject by type.ageneric-optics7See Note [Uncluttering type signatures] >>> :t _Typed  Int _Typed #Int :: AsType Int s => Prism' s Intbgeneric-opticsZSee Note [Uncluttering type signatures] >>> :t _Typed _Typed :: AsType a s => Prism' s a]^_`]^_` (C) 2020 Csongor KissBSD3*Csongor Kiss <kiss.csongor.kiss@gmail.com> experimental non-portableNone-=?@ACHWXk¯&dgeneric-opticsSums that have generic prisms.egeneric-opticsƒA prism that projects a sum as identified by some selector. Currently supported selectors are constructor names and unique types.dog ^? _As @"Dog"%Just (MkDog {name = "Shep", age = 3})dog ^? _As @Dog%Just (MkDog {name = "Shep", age = 3})dog ^? _As @"Cat"Nothingcat ^? _As @(Name, Age)Just ("Mog",5)cat ^? _As @"Cat"Just ("Mog",5)&_As @"Cat" # ("Garfield", 6) :: AnimalCat "Garfield" 6duck ^? _As @AgeJust 2dede(C) 2020 Csongor KissBSD3*Csongor Kiss <kiss.csongor.kiss@gmail.com> experimental non-portableNoneW°åGHIJKLMNUVWX]^_`de (C) 2020 Csongor KissBSD3*Csongor Kiss <kiss.csongor.kiss@gmail.com> experimental non-portableNone,.=>?@ACHUVWXkµ²hgeneric-opticsigeneric-opticsjgeneric-opticskgeneric-opticslgeneric-opticsmgeneric-opticshijklmhilmjkè !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  € ‚ƒ„‚…†‡ˆ‰‡ˆŠ‡ˆ‹‡ˆŒ‡ˆ‡ˆŽ‡ˆ‡ˆ‡ˆ‘‡ˆ’‡ˆ“‡”•‡”–‡—˜‡—™‡—š‡—›‡—œ‡—‡—ž‡—Ÿ‡— ‡—¡‡—¢‡—£‡—€‡—¥‡—Ї—§‡—š‡—©‡—ª‡—«‡—¬‡—­‡®¯‡®°‡®±‡®²‡®³‡®Ž‡®µ‡®¶‡®·‡®ž‡®¹‡®º‡®»‡®Œ‡®œ‡®Ÿ‡®¿‡®À‡Á‡ÁÇÁćů‡ÅLJÅȇÅɇÅʇŎÅ̇Å͇Å·ÅχÅЇÅчÒӇÒԇÒՇÒևÒ×‡ÒØ‡ÒهÒڇÒۇÒ܇ÝއÝ߇Ýà‡Ýá‡Ýâ‡Ýã‡Ýä‡Ýå‡æç‡æè‡æé‡æê‡æë‡æì‡æí‡æî‡æï‡æð‡æñ‡æò‡æó‡æô‡æõ‡æö‡÷ø‡÷ù‡÷ú‡ûü‡ûý‡ûþ‡ûÿ‡û‡û‡û‡û‡û‡û‡û‡û‡û‡û ‡û ‡û ‡û ‡û ‡û‡û‡û‡û‡û‡û‡û‡û‡û‡‡‡‡‡‡‡‡‡ ‡!‡"‡#‡$‡%‡&‡'‡(‡)‡*‡+‡,‡-.‡-/‡-0‡12‡13‡45‡46‡78‡79‡:;‡:<‡:=‡>?‡>@‡AB‡AC‡DE‡DF‡DG‡DH‡DI‡DJ‡DK‡DL‡DM‡DN‡OP‡OQ‡OR‡OS‡OT‡OU‡OV‡OW‡OX‡OY‡OZ‡O[‡O\‡]^‡]_‡]`‡]a‡]b‡]c‡]d‡]e‡fg‡fh‡fi‡fj‡fk‡fl‡fm‡fn‡fo‡pq‡pr‡ps‡pt‡pu‡vw‡vx‡vy‡vz‡v{‡v|‡v}‡v~‡v‡v€‡v‡v‚‡vƒ‡v„‡v…‡v†‡v‡‡vˆ‡v‰‡vЇv‹‡vŒ‡v‡Ž‡Ž‡Ž‘‡Ž’‡Ž“‡Ž”‡Ž•‡–—‡–˜‡–™‡–š‡–›‡œ‡œž‡œŸ‡œ ‡œ¡‡œ¢‡œ£‡œ€‡œ¥‡œЇœ§‡œš‡œ©‡œª‡œ«‡œ¬‡œ­‡œ®‡œ¯‡œ°‡œ±‡œ²‡œ³‡œއœµ‡œ¶‡œ·‡œž‡œ¹‡œº‡œ»‡œŒ‡œœ‡œŸ‡œ¿‡œÀ‡œÁ‡œ‡œÇœćœŇÆLJÆȇÆɇÆʇÆˇÆ̇Æ͇Æ·ÆχÆЇÆчÆ҇ÆӇÆԇÆՇÖׇÖ؇ÖهÖڇÖۇÖ܇Ö݇Þ߇Þà‡Þá‡Þâ‡Þã‡Þä‡Þå‡Þæ‡Þç‡Þè‡éê‡éë‡éì‡éí‡îï‡îð‡îñ‡îò‡óô‡óõ‡óö‡ó÷‡óø‡óø‡óù‡óú‡óû‡óü‡óý‡óý‡óþ‡óÿ‡ó‡‡‡‡‡‡‡ ‡ ‡ ‡ ‡ ‡‡‡‡‡‡‡‡‡‡‡‡‡‡ ‚!"#-generic-optics-2.0.0.0-DF5g5DQT906Fgz4KeeXMFQData.Generics.Product.TypesData.Generics.Product.ParamData.Generics.Product.FieldsData.Generics.Product.HListData.Generics.Product.PositionsData.Generics.Product.SubtypeData.Generics.Product.TypedData.Generics.Product.AnyData.Generics.Sum.ConstructorsData.Generics.Sum.SubtypeData.Generics.Sum.TypedData.Generics.Sum.AnyData.Generics.WrappedData.Generics.Internal.OpticsHasField HasField_Data.Generics.ProductData.Generics.Sum0generic-lens-core-2.0.0.0-C9zuxrF9AaL6ScjnGQjYQD$Data.Generics.Product.Internal.TypesChildren ChGenericHasTypes HasTypesUsing typesCustomHasTypesCustomData.Generics.Internal.GenericN getStarParam StarParamParamRec HasField'field'field_fieldgetFieldsetField$fHasFieldfVoid1Void1ab$fHasField_fVoid1Void1ab$fHasField'fVoid1a$fHasField0fieldstab$fHasField_fieldstab$fHasFieldfieldstab$fHasField'fieldsaIsListlist$fIsListfgasbsHasParamparam$fHasParampVoid1Void1ab$fHasParamnstab HasPosition0 position0 HasPosition' position' HasPosition_ position_ HasPositionposition getPosition setPosition$fHasPositionfVoid1Void1ab$fHasPosition_fVoid1Void1ab$fHasPosition'isa$fHasPosition0istab$fHasPosition_istab$fHasPositionistabSubtypesuperupcastsmash$fSubtypeVoida$fSubtypeaVoid $fSubtypeaa $fSubtypebaHasTypetypedgetTypedsetTyped$fHasTypeaVoid $fHasTypeaa $fHasTypeasHasAnythe$fHasAnyTYPEastab$fHasAnySymbolfieldstab$fHasAnyNatistabtypes typesUsingAsConstructor0_Ctor0AsConstructor'_Ctor'AsConstructor__Ctor_ AsConstructor_Ctor$fAsConstructorctorVoid1Void1ab $fAsConstructor_ctorVoid1Void1ab$fAsConstructor0ctorstab$fAsConstructor_ctorstab$fAsConstructorctorstab$fAsConstructor'ctorsa AsSubtype_Sub injectSub projectSub$fAsSubtypeVoida$fAsSubtypeaVoid $fAsSubtypeaa$fAsSubtypesubsupAsType_Typed injectTyped projectTyped $fAsTypeVoida $fAsTypeaVoid $fAsTypeasAsAny_As$fAsAnyTYPEaas$fAsAnySymbolctorasWrapped wrappedIso _Unwrapped_Wrapped wrappedTo wrappedFrom $fWrappedstabbase Data.Function& Data.Functor<&>%optics-core-0.2-gD5oLonty5JUp0ntsTPgJOptics.Indexed.Core icomposeN icompose5 icompose4 icompose3icompose reindexed<%%><%>IxOpticnoIxOptics.Each.CoreEacheachOptics.IxTraversalipartsOfelement elementOfelements elementsOf ibackwardsindicesignored itraversed ifailover' ifailover iscanr1Of iscanl1Of imapAccumROf imapAccumLOfiforOf itraverseOf itraversalVL IxTraversal IxTraversal' IxTraversalVLIxTraversalVL'Optics.TraversalpartsOf backwards traversed failover'failoverscanr1Ofscanl1Of mapAccumROf mapAccumLOf transposeOf sequenceOfforOf traverseOf traversalVL Traversal Traversal' TraversalVL TraversalVL' Optics.ArrowassignA ArrowOpticoverAOptics.At.Coresansat'ixAtIndexContainscontainsIxValueIxedIxKindixAtatOptics.Operators?!~?~!~.~%!~%~#^..^?^. Optics.Settermappedsetsset'setover'overSetterSetter'Optics.Cons.Coreunsnocsnoc|>_last_init_tail_headunconscons<|:<:>Cons_ConsSnoc_SnocOptics.Empty.CoreEmptyAsEmpty_EmptyData.Tuple.Optics_9'_8'_7'_6'_5'_4'_3'_2'_1'Field1_1Field2_2Field3_3Field4_4Field5_5Field6_6Field7_7Field8_8Field9_9 Optics.Iso involutedflipped uncurriedcurriedanonnon'noncoerced1 coercedTocoercedsimpleequalitymappingunderauwithIsoisoIsoIso'Swappedswapped Optics.ReviewuntoreviewReviewOptics.ReversedPrism ReversedPrismReversedPrism'Optics.ReversedLens ReversedLens ReversedLens'Optics.ReadOnly ToReadOnlygetting Optics.ReReversibleOptic ReversedOpticreData.Either.Optics_Right_LeftData.Maybe.Optics_Just_Nothing Optics.Prismnearlyonlybelowwithoutaside withPrismprism'prismPrismPrism' Optics.Lensunited alongsidechosen equality' withLensVLtoLensVLlensVLwithLenslensLensLens'LensVLLensVL'Optics.IxSetterimappedisetsiset'isetiover'ioverIxSetter IxSetter' Optics.IxLensdevoid withIxLensVL toIxLensVLilensVLilensIxLensIxLens'IxLensVL IxLensVL'Optics.IxGetteriviewsiview selfIndexitoIxGetter Optics.IxFoldifindMOfifindOfinoneOfiallOfianyOfilastOfiheadOfifailingisumming ibackwards_ ifilteredipre ifoldringifoldingifoldediforOf_ itraverseOf_ itoListOf ifoldlOf'ifoldrOf ifoldMapOfifoldVLIxFoldOptics.IxAffineTraversaltoIxAtraversalVL iatraversalVL iatraversalIxAffineTraversalIxAffineTraversal'IxAffineTraversalVLIxAffineTraversalVL'Optics.IxAffineFold iafailing iafolding ipreviewsipreview IxAffineFold Optics.FoldlookupOffindMOffindOf minimumByOf maximumByOf minimumOf maximumOflengthOf notElemOfelemOfmsumOfasumOfsumOf productOfnoneOfallOfanyOforOfandOflastOfheadOfhasn'thasfailingsumming backwards_preunfoldedfoldringfoldingfolded sequenceOf_forOf_ traverseOf_toListOffoldlOf'foldrOf foldMapOffoldOffoldVLFoldOptics.Internal.Indexediforifor_ itraverse_ conjoinedAcceptsEmptyIndicesNonEmptyIndicesHasSingleIndexFunctorWithIndeximapFoldableWithIndexifoldMapifoldrifoldl'TraversableWithIndex itraverseOptics.AffineFoldisn'tafailingfilteredafoldingpreviewspreview AffineFoldOptics.AffineTraversalunsafeFilteredmatchingtoAtraversalVL atraversalVLwithAffineTraversal atraversalAffineTraversalAffineTraversal'AffineTraversalVLAffineTraversalVL' Optics.CoercecoerceBcoerceAcoerceTcoerceS Optics.GettertoviewsviewGetterOptics.Internal.Optic%&%%% castOpticOpticgetOpticOptic'Optic_Optic__IsProxy LabelOptic labelOptic LabelOptic'Optics.Internal.Optic.SubtypingIsimpliesJoinOptics.Internal.Optic.Types OpticKindAn_IsoA_LensA_PrismAn_AffineTraversal A_TraversalA_SetterA_ReversedPrismA_Getter An_AffineFoldA_FoldA_ReversedLensA_Review ConstraintsOptics.Internal.Optic.TypeLevelIxListNoIxWithIx QuoteTypeCurryAppend CurryComposecomposeN normaliseLensnormalisePrism normaliseIso HasField0GHC.BaseString