vEj      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  Safe-Inferred 2346=HKM States that m1 can be represented with m2 'Lifts the first monad into the second. zCombines the functionality of two monads into one. Has two functions that lift a monadic action into the result monad. The type of the result monad pA phantom type to help coercions. Coercions are often needed when only one of the lifting functions are used. SCreates a new phantom variable to state that two liftings result in the same type. -Lifts the first monad into the result monad. .Lifts the second monad into the result monad. KThe parital lens is a reference that represents an 1 to 0..1 relationship. GThe Traversal is a reference that represents an 1 to any relationship. @The Lens is a reference that represents an 1 to 1 relationship.  A monomorph  ,  , N, etc... Setting or updating does not change the type of the base. Needs LiberalTypeSynonyms language extension  A monomorph  ,  ,  F, etc... Setting or updating does not change the type of the base. A reference is an accessor to a part or different view of some data. The reference, unlike the lens has a separate getter, setter and updater. Reference laws WAs the references are generalizations of lenses, they should conform to the lens laws: !1) You get back what you put in:   l a s >>=  l "a a 62) Putting back what you got doesn't change anything:   l a >>= b ->  l b s "a s .3) Setting twice is the same as setting once:   l a s >>=  l b "a  l b s QBut because they are more powerful than lenses, they should be more responsible. ?4) Updating something is the same as getting and then setting:   l a >>= f >>= b ->  l b s "a lensUpdate b s Type arguments wmfWriter monad, controls how the value can be reassembled when the part is changed. Usually . rmNReader monad. Controls how part of the value can be accessed. See  ,   and   sThe original context. tCThe context after replacing the accessed part to something of type b. aThe accessed part. b*The accessed part can be changed to this. Getter for the lens Setter for the lens ;Updater for the lens. Handles monadic update functions.      NoneCreates _1 ... _n+ classes, and instances for tuples up to m None24681 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG0 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFDEFABC>?@;<=89:567234/01,-.)*+&'(#$% !"GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGNone$24THCreates  and g instances that can be inferred from a single subsume connection and all instances declared so far. HHHH None 2346=HKM,   Safe-Inferred3=HKM IGets the referenced data J9Gets the referenced data in the reader monad of the lens K;Sets the referenced data (for lenses with identity writer) L9Sets the referenced data in the writer monad of the lens MTApplies the given function on the referenced data (for lenses with identity writer) NSApplies the given monadic function on the referenced data in the monad of the lens OSApplies the given monadic function on the referenced data in the monad of the lens P5Performs the given monadic action on referenced data QComposes two references. The two references should have the same writer semantics and their reader semantics must be composable with . RoAdds two references. The references must be monomorphic, because setter needs to change the object twice. IJKLMNOPQR IJKLMNOPQR IJKLMNOPQR IJKLMNOPQR IJKLMNOQRNone 2468=EGHKMTSELenses for given values in a data structure that is indexed by keys. X)An identical lens. Accesses the context. Z1An empty reference that do not traverse anything \)Generates a traversal on any traversable ^,Generates a lens from a getter and a setter `#Creates a monomorphic partial lens b$Creates a polymorphic partial lense d-Generate a reference from a simple lens from    e-Generate a reference from a simple lens from    fsFilters the traversed elements with a given predicate. Has specific versions for traversals and partial lenses. g+Filters a traversal h.Filters a partial lens i1Generate a lens from a pair of inverse functions k6A partial lens to access the value that may not exist m0A partial lens to access the right option of an  o/A partial lens to access the left option of an  q:Access the value that is in the left or right state of an  s$References both elements of a tuple uReferences the head of a list wReferences the tail of a list yAccess a value inside an MVar. Writing should only be used for initial assignment or parts of the program will block infinitely. Reads and updates are done in sequence, always using consistent data. z7Access the current value inside an MVar. Never blocks. {Access the value of an IORef. |:Access the state inside a state monad (from any context). ,STUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~*STUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|,XYZ[\]^_`abcdefghijklmnopqrstuvwxSTUVW~}yz{|(STUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~NoneGMT+Reference all type variables inside a type FReference the name of the type variable inside a type variable binder oReference the characters of the name. If changed there is no guarantee that the created name will be unique.    NoneT3Creates references for fields of a data structure. QCreates a new field type with changing the type variables that are bound outside CDictates what reference names should be generated from field names FCreates a type from applying binded type variables to a type function  Nonen  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                            references-0.1.0.0 Control.Reference.RepresentationControl.Reference.TH.Tuple Control.Reference.TupleInstancesControl.Reference.TH.MonadControl.Reference.OperatorsControl.Reference.PredefinedControl.Reference.Examples.THControl.Reference.TH.Generate#Control.Reference.TH.MonadInstancesControlLensControl.Reference MonadSubsumeliftMS MonadCompose ResultMonadComposePhantomnewComposePhantomliftMC1liftMC2 LensPart'LensPart Traversal' TraversalLens' SimpleRefSimple'Simple ReferencelensGetlensSet lensUpdate makeTupleRefsLens_16_16_16'Lens_15_15_15'Lens_14_14_14'Lens_13_13_13'Lens_12_12_12'Lens_11_11_11'Lens_10_10_10'Lens_9_9_9'Lens_8_8_8'Lens_7_7_7'Lens_6_6_6'Lens_5_5_5'Lens_4_4_4'Lens_3_3_3'Lens_2_2_2'Lens_1_1_1'$fLens_1(,)(,)ab2 makeMonadRepr^.^?.~.=%~%~=%=%!&&+& Association AssocIndex AssocElemelementelement'simplesimple'emptyRef emptyRef'traverse traverse'lenslens'partialpartial' polyPartial polyPartial'fromLens fromTraversalfiltered filteredTravfilteredPartialisoiso'justjust'rightright'leftleft'anywayanyway'bothboth'_head_head'_tail_tail'mvarmvarNowiorefstate$fAssociationMap$fAssociation[] typeVariablestypeVariables' typeVarName typeVarName' nameBaseStr nameBaseStr' recFields recFields' conFields conFields'conNamefunApplicationfunApplication'makeReferencestransformers-0.4.1.0Data.Functor.IdentityIdentitygenClass genInstancereplaceBelowAboveInstanceGenStateIGS subsumeInsts composeInstsIGStateToQExptoQExpToQTypetoQTypemakeMonadRepr'collectedSubsumes liftMSCasted@.@generateComposesgenerateComposegenerateSubsume $fToQExpName $fToQExpQ $fToQTypeName $fToQTypeQ $fToQTypeTypeNComposePhantom_ConTDataFunctorIdentityIdentity_ConTDataFunctorIdentityIdentity4ComposePhantom_ConTDataMaybeMaybe_ConTDataMaybeMaybeAComposePhantom_ConTDataFunctorIdentityIdentity_ConTDataMaybeMaybeAComposePhantom_ConTDataMaybeMaybe_ConTDataFunctorIdentityIdentity,ComposePhantom_ConTGHCTypesIO_ConTGHCTypesIO=ComposePhantom_ConTDataFunctorIdentityIdentity_ConTGHCTypesIO=ComposePhantom_ConTGHCTypesIO_ConTDataFunctorIdentityIdentitytComposePhantom_AppTConTControlMonadTransMaybeMaybeTConTGHCTypesIO_AppTConTControlMonadTransMaybeMaybeTConTGHCTypesIOaComposePhantom_ConTDataFunctorIdentityIdentity_AppTConTControlMonadTransMaybeMaybeTConTGHCTypesIOaComposePhantom_AppTConTControlMonadTransMaybeMaybeTConTGHCTypesIO_ConTDataFunctorIdentityIdentityTComposePhantom_ConTDataMaybeMaybe_AppTConTControlMonadTransMaybeMaybeTConTGHCTypesIOTComposePhantom_AppTConTControlMonadTransMaybeMaybeTConTGHCTypesIO_ConTDataMaybeMaybe0ComposePhantom_ConTGHCTypesIO_ConTDataMaybeMaybe0ComposePhantom_ConTDataMaybeMaybe_ConTGHCTypesIOPComposePhantom_ConTGHCTypesIO_AppTConTControlMonadTransMaybeMaybeTConTGHCTypesIOPComposePhantom_AppTConTControlMonadTransMaybeMaybeTConTGHCTypesIO_ConTGHCTypesIOComposePhantom_ListT_ListT4ComposePhantom_ConTDataFunctorIdentityIdentity_ListT4ComposePhantom_ListT_ConTDataFunctorIdentityIdentity'ComposePhantom_ConTDataMaybeMaybe_ListT'ComposePhantom_ListT_ConTDataMaybeMaybepComposePhantom_AppTConTControlMonadTransListListTConTGHCTypesIO_AppTConTControlMonadTransListListTConTGHCTypesIORComposePhantom_ConTDataMaybeMaybe_AppTConTControlMonadTransListListTConTGHCTypesIORComposePhantom_AppTConTControlMonadTransListListTConTGHCTypesIO_ConTDataMaybeMaybe_ComposePhantom_ConTDataFunctorIdentityIdentity_AppTConTControlMonadTransListListTConTGHCTypesIO_ComposePhantom_AppTConTControlMonadTransListListTConTGHCTypesIO_ConTDataFunctorIdentityIdentityEComposePhantom_ListT_AppTConTControlMonadTransListListTConTGHCTypesIOEComposePhantom_AppTConTControlMonadTransListListTConTGHCTypesIO_ListT#ComposePhantom_ConTGHCTypesIO_ListT#ComposePhantom_ListT_ConTGHCTypesIONComposePhantom_ConTGHCTypesIO_AppTConTControlMonadTransListListTConTGHCTypesIONComposePhantom_AppTConTControlMonadTransListListTConTGHCTypesIO_ConTGHCTypesIOGComposePhantom_AppTConTControlMonadTransMaybeMaybeTConTGHCTypesIO_ListTGComposePhantom_ListT_AppTConTControlMonadTransMaybeMaybeTConTGHCTypesIOrComposePhantom_AppTConTControlMonadTransMaybeMaybeTConTGHCTypesIO_AppTConTControlMonadTransListListTConTGHCTypesIOrComposePhantom_AppTConTControlMonadTransListListTConTGHCTypesIO_AppTConTControlMonadTransMaybeMaybeTConTGHCTypesIOTFCo:R:ResultMonadMaybeIdentityTFCo:R:ResultMonadIOIdentityTFCo:R:ResultMonadMaybeTMaybeTFCo:R:ResultMonadMaybeTIOTFCo:R:ResultMonad[]MaybeTFCo:R:ResultMonadListT[]TFCo:R:ResultMonadListTIOTFCo:R:ResultMonadListTMaybeTbase Data.EitherEithermakePolyrefName addTypeArgsmakeLensesForConcreateLensForFieldmakePartialLensesForConcreatePartialLensForField referenceTypehasField fieldIndex newtypeToDatabindAndRebuild