úÎÇeµIÿI      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹Œ‘ ’ “ ” • – — ˜ ™ š › œ Ÿ   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ğ Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü İ Ş ß à á â ã ä å æ ç è é ê ë ì í î ï ğ ñ ò ó ô õ ö ÷ ø ù ú û ü ı ş ÿ                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H Safe *9:;<=OQRTUA simple class to enforce that both reader and writer semantics of the reference are Is (as well as Js and Ks)¯A reference is an accessor to a part or different view of some data. The referenc has a separate getter, setter and updater. In some cases, the semantics are a bit differentGetter for the lens. Takes a monadic function and runs it on the accessed value. This is necessary to run actions after a read.Setter for the lens7Updater for the lens. Handles monadic update functions. Creates a reference. JCreates a reference where all operations are added in their original form.pThe use of this method is not suggested, because it is closely related to the representation of the references.aCreates a reference with explicit close operations that are executed after the data is accessed. GetterSetterUpdaterBackward getterBackward setterBackward updater GetterSetterUpdater GetterSetterUpdaterBackward getterBackward setterBackward updaterGetterClose after gettingSetterClose after settingUpdaterClose after updating     Safe*9:;<=DORT8A class for representing calculation in a simpler monad. pullBack . sink === id.A reference that can access a value inside an L9 transformed monad that may exist in multiple instances..A reference that can access a value inside an L' transformed monad that may not exist..A reference that can access a value inside an L transformed monad.-A reference that can access a value inside a WriteT9 transformed monad that may exist in multiple instances.-A reference that can access a value inside a M' transformed monad that may not exist.-A reference that can access a value inside a M transformed monad.-A reference that can access a value inside a N9 transformed monad that may exist in multiple instances.-A reference that can access a value inside a N' transformed monad that may not exist.-A reference that can access a value inside a N transformed monad.KA reference that can access mutable data that may not exist in the context.)A reference that can access mutable data.!aA reference that can access data that is available in a number of instances inside the contexts.Any reference that is a !Œ should perform the action given to its updater in the exactly the same number of times that is the number of the values returned by it's getRef function."Partial lens. A W that can access data that may not exist in the context. Every lens is a partial lens.RAny reference that is a partial lens should only perform the action given to its  updateRef7 function if it can get a value (the value returned by getRef is not the lifted form of O).#vA reference that may not have the accessed element, and that can look for the accessed element in multiple locations.$A ? that can access a part of data that exists in the context. A $. can have any read and write semantics that a  can have.%6A partial lens that can be turned to get a total lens.& A two-way } that represents an isomorphism between two datatypes. Can be used to access the same data in two different representations.) A monomorph $, !, "C, etc... Setting or updating does not change the type of the base.) !"#$%&'()*+,-./012345678"/-+*0., !"#$%&'()))('&%$#"! 87/065-.43+,21* !"#$%&'()21*43+,65-.87/0None:OT 9Generates a traversal for any P K:0Generate a lens from a pair of inverse functions<+Generates a lens from a getter and a setter=#Creates a polymorphic partial lense Either t a is used instead of Maybe a to permit the types of s and t to differ.>JCreates a polymorphic partial lens that can be turned to give a total lens?JCreates a monomorphic partial lens that can be turned to give a total lens@Creates a simple partial lensAClones a lens from  Control.LensBClones a traversal from  Control.LensC0References all the elements accessed by uniplateD/References all the elements accessed by biplateEqFilters the traversed elements with a given predicate. Has specific versions for traversals and partial lenses. 9:;<=>?@ABCDE 9:;<=>?@ABCDE 9:;<=>?@ABCDE 9:;<=>?@ABCDESafe:F7Composes two references. They must be of the same kind. If reference r accesses b inside the context a, and reference p accesses c inside the context b, than the reference r&p will access c inside a.Composition is associative:  (r&p)&q = r&(p&q) GAdds two references.`Using this operator may result in accessing the same parts of data multiple times. For example  twice = self &+& self + is a reference that accesses itself twice: Aa ^? twice == [a,a] (twice *= x) a == x (twice .- f) a == f (f a)Addition is commutative only if we do not consider the order of the results from a get, or the order in which monadic actions are performed.H Pack two references in parallel.InFlips a reference to the other direction. The monads of the references can change when a reference is turned.FGHIFGHIFGHIFGHIF6G5H5Safe9:;<=DOQRT[ JPure getter operatorKGeneric getter operatorLFGets the context from the referenced element by turning the reference.MPure setter functionNMonadic setter functionO"Monadic updater with a pure resultPMonadic updaterQPure updater with pure functionR!Monadic update with pure functionS"Perform a given action monadically JKLMNOPQRS JKLMNOPQRS JKLMNOPQRS JKLMNOPQRS J4K4M4N4O4P4Q4R4S4None 9:;DORT[TEContainers that can be used as a set, inserting and removing elementsYDLenses for given values in a data structure that is indexed by keys.TUVWXYZ[\]^_`abcdefgh TUVWXYZ[\YZ[\hgfeWXdcba`_TUV^]TUVWXYZ[\]^_`abcdefghNone9:;<=?DLNOQRT[i=A dummy object to interact with the user through the console.k(An identical lens. Accesses the context. self & a = a & self = al0An empty reference that do not traverse anything #emptyRef &+& a = a &+& emptyRef = a &a & emptyRef = emptyRef & a = emptyRefm/An indexed lens for accessing points a functionn5A partial lens to access the value that may not existo0A partial lens to access the right option of an Qp/A partial lens to access the left option of an Qq:Access the value that is in the left or right state of an Qr#References both elements of a tuplesReferences the head of a listt.References the element at the head of the listuReferences the tail of a listvReferences a suffix of a listwViews a list as an optinal pairxCAn isomorphism between the list and text representation of a stringy'Accesses the reversed version of a list 'turn' reversed == reversedz!Accesses the numerator of a ratio{#Accesses the denominator of a ratio|*Accesses the real part of a complex number}/Accesses the imaginary part of a complex number~5Accesses the polar representation of a complex numberkInteracts with a line of text on the console. Values set are printed, getting is reading from the console.€7Reference to the contents of the file. Not thread-safe.An empty file's content is Just "" while a non-existent file's is Nothing-Creates a temporary file to store the result.¦Access a value inside an MVar. Setting is not atomic. If there is two supplier that may set the accessed value, one may block and can corrupt the following updates.EReads and updates are done in sequence, always using consistent data.‚Generalized version of  .ƒGeneralized version of .„Generalized version of .†Access the value of an IORef.‡9Access the state inside a state monad (from any context).ˆAccess the value inside an R‰/Filters an indexed reference based on the index!ijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰!ijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰!klmnopqrstuvwxyz{|}~ij€‚ƒ„…†‡ˆ‰ ijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Nonei /-+*0., !"#$%&'()9:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\ijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰ NoneŠAA tuple configuration is a scheme for tuple-like data structures.Creates Lens_1 ... Lens_n) classes, and instances for tuples up to m..Classes and instances look like the following: Âclass Lens_1 s t a b | s -> a, t -> b , a t -> s, b s -> t where _1 :: Lens s t a b instance Lens_1 (a,b) (a',b) a a' where _1 = lens ((a,b) -> a) (a' (a,b) -> (a',b)) %Generates the normal haskell tuples ((a,b), (a,b,c), (a,b,c,d))S6Utility function to replace the N'th element of a list Š‹ŒTUVWXSŠ‹ŒŠ‹Œ Š‹ŒTUVWXS None9;<=?!‘’“”•–—˜™š›œŸ ¡¢£¤¥¦§¨©ª«¬­®¯°± ‘’“”•–—˜™š›œŸ ¡¢£¤¥¦§¨©ª«¬­®¯°§¯°­®«¬©ª§¨¥¦£¤¡¢Ÿ ›œ™š—˜•–“”‘’±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±‘’“”•–—˜™š›œŸ ¡¢£¤¥¦§¨©ª«¬­®¯°± None:NT[8*Reference all type variables inside a type9'Reference the name of the type variable:*Reference all type variables inside a type;3Reference all type variables not binded by a forall<EReference the name of the type variable inside a type variable binder=mReference the characters of the name. If changed there is no guarantee that the created name will be unique.>-Reference the record fields in a constructor.?5Reference all fields (data members) in a constructor.@Reference types of fieldsA%Reference the name of the constructorBAccess a function application as a list of expressions with the function application at the head of the list and the arguments on it's tail.CLAccesses the name of the defined object. Does not return name in signatures.DAccesses the constructors of a data or newtype definition. After changing the definition becames a newtype if there is only one constructor.E+Accesses the type variables of a definition89:;<=>?@ABCDE89:;<=>?@ABCDE89:;<=>?@ABCDE89:;<=>?@ABCDE NoneDRFFF None 9:;<=QR[G7Shows the generated declarations instead of using them.H2Creates references for fields of a data structure.Y/Creates the type of the reference being definedZPCreates a new field type with changing the type variables that are bound outside[BDictates what reference names should be generated from field names\ECreates a type from applying binded type variables to a type function GH]^_YZ[`a\bcGHHG GH]^_YZ[`a\bcNone‹ /-+*0., !"#$%&'()9:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\ijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰‘’“”•–—˜™š›œŸ ¡¢£¤¥¦§¨©ª«¬­®¯°GHd !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{||}~€‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™™š›œ Ÿ   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ğ Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü İ Ş ß à á â ã ä å æ ç è é ê ë ì í î ï ğ ñ ò ó ô õ ö ÷ ø ù ú û ü ı ş ÿ                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U VWXYWXZWX[W\]^_`^abWXcWdeWfgWhijklmno p q r s t u v w x y z{)references-0.3.3.1-7i98ZqNEwzLLyFCDAj6Ill Control.Reference.RepresentationControl.Reference.TypesControl.Reference.GeneratorsControl.Reference.CombinatorsControl.Reference.Operators'Control.Reference.Predefined.ContainersControl.Reference.PredefinedControl.Reference.TH.Tuple Control.Reference.TupleInstancesControl.Reference.Examples.TH,Control.Reference.Predefined.Containers.TreeControl.Reference.TH.RecordsControl.Concurrent.MVarmodifyMVarMasked_Control.Exceptionmask_ onException#Control.Reference.InternalInterfaceControl.ReferenceMU RefMonadsIndexedReference ReferencerefGetrefSet refUpdaterefGet'refSet' refUpdate' bireference reference rawReferencereferenceWithClose unusableOp MorphControlMStsinkpullBack STTraversal STPartialSTLensWriterTraversal WriterPartial WriterLensStateTraversal StatePartial StateLens IOTraversal IOPartialIOLensIOMonads TraversalPartialRefPlusLensPrismIsoSetterGetterSimpleProxyMSt ReflIOMSt fromReflIOMStListMSt fromListMStMaybeMSt fromMaybeMStD:R:MStmProxya0$fMorphControlmProxy D:R:MStIOIOa0$fMorphControlIOIOD:R:MStmListTa0$fMorphControlmListTD:R:MStmMaybeTa0$fMorphControlmMaybeT traversalisoiso'lenspartialprism simplePrism simplePartialfromLens fromTraversal uniplateRef biplateReffiltered&&+&&|&turn^.^?review.=!=.~!~.-!-!|SetLikeSetElemcontainsMappingat Association AssocIndex AssocElemelement$fSetLikeIntSet $fSetLikeSet$fMappingIntMap$fAssociationIntMap $fMappingMap$fAssociationMap $fMapping(->)$fAssociation(->)$fAssociationText$fAssociationSeq$fAssociationArray$fAssociation[]ConsoleselfemptyRefatArgjustrightleftanywaybothatHeadheadElem_taildroppedviewtextreversed _numerator _denominator _realPart _imagPart_polar consoleLine fileContentmvarchaniorefstatestRefwhereOf TupleConf tupleType tuplePattern tupleExpr makeTupleRefs hsTupConfLens_16_16Lens_15_15Lens_14_14Lens_13_13Lens_12_12Lens_11_11Lens_10_10Lens_9_9Lens_8_8Lens_7_7Lens_6_6Lens_5_5Lens_4_4Lens_3_3Lens_2_2Lens_1_1.$fLens_16(,,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,,)ab2.$fLens_15(,,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,,)ab2,$fLens_15(,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,)ab2.$fLens_14(,,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,,)ab2,$fLens_14(,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,)ab2*$fLens_14(,,,,,,,,,,,,,)(,,,,,,,,,,,,,)ab2.$fLens_13(,,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,,)ab2,$fLens_13(,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,)ab2*$fLens_13(,,,,,,,,,,,,,)(,,,,,,,,,,,,,)ab2($fLens_13(,,,,,,,,,,,,)(,,,,,,,,,,,,)ab2.$fLens_12(,,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,,)ab2,$fLens_12(,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,)ab2*$fLens_12(,,,,,,,,,,,,,)(,,,,,,,,,,,,,)ab2($fLens_12(,,,,,,,,,,,,)(,,,,,,,,,,,,)ab2&$fLens_12(,,,,,,,,,,,)(,,,,,,,,,,,)ab2.$fLens_11(,,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,,)ab2,$fLens_11(,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,)ab2*$fLens_11(,,,,,,,,,,,,,)(,,,,,,,,,,,,,)ab2($fLens_11(,,,,,,,,,,,,)(,,,,,,,,,,,,)ab2&$fLens_11(,,,,,,,,,,,)(,,,,,,,,,,,)ab2$$fLens_11(,,,,,,,,,,)(,,,,,,,,,,)ab2.$fLens_10(,,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,,)ab2,$fLens_10(,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,)ab2*$fLens_10(,,,,,,,,,,,,,)(,,,,,,,,,,,,,)ab2($fLens_10(,,,,,,,,,,,,)(,,,,,,,,,,,,)ab2&$fLens_10(,,,,,,,,,,,)(,,,,,,,,,,,)ab2$$fLens_10(,,,,,,,,,,)(,,,,,,,,,,)ab2"$fLens_10(,,,,,,,,,)(,,,,,,,,,)ab2-$fLens_9(,,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,,)ab2+$fLens_9(,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,)ab2)$fLens_9(,,,,,,,,,,,,,)(,,,,,,,,,,,,,)ab2'$fLens_9(,,,,,,,,,,,,)(,,,,,,,,,,,,)ab2%$fLens_9(,,,,,,,,,,,)(,,,,,,,,,,,)ab2#$fLens_9(,,,,,,,,,,)(,,,,,,,,,,)ab2!$fLens_9(,,,,,,,,,)(,,,,,,,,,)ab2$fLens_9(,,,,,,,,)(,,,,,,,,)ab2-$fLens_8(,,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,,)ab2+$fLens_8(,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,)ab2)$fLens_8(,,,,,,,,,,,,,)(,,,,,,,,,,,,,)ab2'$fLens_8(,,,,,,,,,,,,)(,,,,,,,,,,,,)ab2%$fLens_8(,,,,,,,,,,,)(,,,,,,,,,,,)ab2#$fLens_8(,,,,,,,,,,)(,,,,,,,,,,)ab2!$fLens_8(,,,,,,,,,)(,,,,,,,,,)ab2$fLens_8(,,,,,,,,)(,,,,,,,,)ab2$fLens_8(,,,,,,,)(,,,,,,,)ab2-$fLens_7(,,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,,)ab2+$fLens_7(,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,)ab2)$fLens_7(,,,,,,,,,,,,,)(,,,,,,,,,,,,,)ab2'$fLens_7(,,,,,,,,,,,,)(,,,,,,,,,,,,)ab2%$fLens_7(,,,,,,,,,,,)(,,,,,,,,,,,)ab2#$fLens_7(,,,,,,,,,,)(,,,,,,,,,,)ab2!$fLens_7(,,,,,,,,,)(,,,,,,,,,)ab2$fLens_7(,,,,,,,,)(,,,,,,,,)ab2$fLens_7(,,,,,,,)(,,,,,,,)ab2$fLens_7(,,,,,,)(,,,,,,)ab2-$fLens_6(,,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,,)ab2+$fLens_6(,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,)ab2)$fLens_6(,,,,,,,,,,,,,)(,,,,,,,,,,,,,)ab2'$fLens_6(,,,,,,,,,,,,)(,,,,,,,,,,,,)ab2%$fLens_6(,,,,,,,,,,,)(,,,,,,,,,,,)ab2#$fLens_6(,,,,,,,,,,)(,,,,,,,,,,)ab2!$fLens_6(,,,,,,,,,)(,,,,,,,,,)ab2$fLens_6(,,,,,,,,)(,,,,,,,,)ab2$fLens_6(,,,,,,,)(,,,,,,,)ab2$fLens_6(,,,,,,)(,,,,,,)ab2$fLens_6(,,,,,)(,,,,,)ab2-$fLens_5(,,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,,)ab2+$fLens_5(,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,)ab2)$fLens_5(,,,,,,,,,,,,,)(,,,,,,,,,,,,,)ab2'$fLens_5(,,,,,,,,,,,,)(,,,,,,,,,,,,)ab2%$fLens_5(,,,,,,,,,,,)(,,,,,,,,,,,)ab2#$fLens_5(,,,,,,,,,,)(,,,,,,,,,,)ab2!$fLens_5(,,,,,,,,,)(,,,,,,,,,)ab2$fLens_5(,,,,,,,,)(,,,,,,,,)ab2$fLens_5(,,,,,,,)(,,,,,,,)ab2$fLens_5(,,,,,,)(,,,,,,)ab2$fLens_5(,,,,,)(,,,,,)ab2$fLens_5(,,,,)(,,,,)ab2-$fLens_4(,,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,,)ab2+$fLens_4(,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,)ab2)$fLens_4(,,,,,,,,,,,,,)(,,,,,,,,,,,,,)ab2'$fLens_4(,,,,,,,,,,,,)(,,,,,,,,,,,,)ab2%$fLens_4(,,,,,,,,,,,)(,,,,,,,,,,,)ab2#$fLens_4(,,,,,,,,,,)(,,,,,,,,,,)ab2!$fLens_4(,,,,,,,,,)(,,,,,,,,,)ab2$fLens_4(,,,,,,,,)(,,,,,,,,)ab2$fLens_4(,,,,,,,)(,,,,,,,)ab2$fLens_4(,,,,,,)(,,,,,,)ab2$fLens_4(,,,,,)(,,,,,)ab2$fLens_4(,,,,)(,,,,)ab2$fLens_4(,,,)(,,,)ab2-$fLens_3(,,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,,)ab2+$fLens_3(,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,)ab2)$fLens_3(,,,,,,,,,,,,,)(,,,,,,,,,,,,,)ab2'$fLens_3(,,,,,,,,,,,,)(,,,,,,,,,,,,)ab2%$fLens_3(,,,,,,,,,,,)(,,,,,,,,,,,)ab2#$fLens_3(,,,,,,,,,,)(,,,,,,,,,,)ab2!$fLens_3(,,,,,,,,,)(,,,,,,,,,)ab2$fLens_3(,,,,,,,,)(,,,,,,,,)ab2$fLens_3(,,,,,,,)(,,,,,,,)ab2$fLens_3(,,,,,,)(,,,,,,)ab2$fLens_3(,,,,,)(,,,,,)ab2$fLens_3(,,,,)(,,,,)ab2$fLens_3(,,,)(,,,)ab2$fLens_3(,,)(,,)ab2-$fLens_2(,,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,,)ab2+$fLens_2(,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,)ab2)$fLens_2(,,,,,,,,,,,,,)(,,,,,,,,,,,,,)ab2'$fLens_2(,,,,,,,,,,,,)(,,,,,,,,,,,,)ab2%$fLens_2(,,,,,,,,,,,)(,,,,,,,,,,,)ab2#$fLens_2(,,,,,,,,,,)(,,,,,,,,,,)ab2!$fLens_2(,,,,,,,,,)(,,,,,,,,,)ab2$fLens_2(,,,,,,,,)(,,,,,,,,)ab2$fLens_2(,,,,,,,)(,,,,,,,)ab2$fLens_2(,,,,,,)(,,,,,,)ab2$fLens_2(,,,,,)(,,,,,)ab2$fLens_2(,,,,)(,,,,)ab2$fLens_2(,,,)(,,,)ab2$fLens_2(,,)(,,)ab2$fLens_2(,)(,)ab2-$fLens_1(,,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,,)ab2+$fLens_1(,,,,,,,,,,,,,,)(,,,,,,,,,,,,,,)ab2)$fLens_1(,,,,,,,,,,,,,)(,,,,,,,,,,,,,)ab2'$fLens_1(,,,,,,,,,,,,)(,,,,,,,,,,,,)ab2%$fLens_1(,,,,,,,,,,,)(,,,,,,,,,,,)ab2#$fLens_1(,,,,,,,,,,)(,,,,,,,,,,)ab2!$fLens_1(,,,,,,,,,)(,,,,,,,,,)ab2$fLens_1(,,,,,,,,)(,,,,,,,,)ab2$fLens_1(,,,,,,,)(,,,,,,,)ab2$fLens_1(,,,,,,)(,,,,,,)ab2$fLens_1(,,,,,)(,,,,,)ab2$fLens_1(,,,,)(,,,,)ab2$fLens_1(,,,)(,,,)ab2$fLens_1(,,)(,,)ab2$fLens_1(,)(,)ab2typeVariableNamestypeVar typeVariablesfreeTypeVariables typeVarName nameBaseStr recFields conFieldsconTypesconNamefunApplication definedNamedefinedConstructorsdefinedTypeArgs$fAssociationTreedebugTHmakeReferencesbaseGHC.BaseMonad ApplicativeFunctorGHC.STSTtransformers-0.5.2.0Control.Monad.Trans.Writer.LazyWriterTControl.Monad.Trans.State.LazyStateTNothingData.Traversable Traversable Data.EitherEither GHC.STRefSTRefreplacegenClass lensClasslensFun classDeclared genInstance referenceTypemakePolyrefName addTypeArgscreateReferencescreateLensForFieldcreatePartialLensForFieldhasField fieldIndex newtypeToDatabindAndRebuild