!r5      !"#$%&'()*+,-./0123456789:;<=>?@A B C D E F G H I J K L M N O P Q RSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx y z { | } ~        !"#$%&'()*+,-./01234Optics for working with s.None&'/48=>?@ACHPSUVX_k17 optics-extraConstruct a hash map from an 5.%The construction is left-biased (see 6S), i.e. the first occurences of keys in the fold or traversal order are preferred."toMapOf ifolded ["hello", "world"]"fromList [(0,"hello"),(1,"world")]8toMapOf (folded % ifolded) [('a',"alpha"),('b', "beta")]%fromList [('a',"alpha"),('b',"beta")]KtoMapOf (folded % ifolded) [('a', "hello"), ('b', "world"), ('a', "dummy")]&fromList [('a',"hello"),('b',"world")]77Optics for working with 7s.None&'/48=>?@ACHPSUVX_k 8 optics-extraThis 8% can be used to change the type of a 7( by mapping the elements to new values. Sadly, you can't create a valid  for a 7., but you can manipulate it by reading using 9 and reindexing it via 8.(over setmapped (+1) (fromList [1,2,3,4])fromList [2,3,4,5]9 optics-extra Construct a 7 from a fold.setOf folded ["hello","world"]fromList ["hello","world"]7setOf (folded % _2) [("hello",1),("world",2),("!!!",3)]fromList [1,2,3]8989Optics for working with lazy :.None%&'/48=>?@ACHPSUVX_gk6{ ; optics-extra This isomorphism can be used to ; (or <) lazy :."hello" ^. packed -- :: Text"hello" ; x "a x  ; < x "a x  = ; ; "a = < < optics-extra This isomorphism can be used to < (or ;) lazy :.*Text.pack "hello" ^. unpacked -- :: String"hello" ; x "a x  = < < x "a x  ; This >M is provided for notational convenience rather than out of great need, since < "a = ; = optics-extraThis is an alias for <+ that makes it clearer how to use it with (). = = = ; _Text # "hello" -- :: Text"hello"> optics-extraConvert between lazy : and ? . @ x "a x  > A x "a x  = > ? optics-extra(Traverse the individual characters in a :.'anyOf text (=='c') $ Text.pack "chello"True ? = < % B @When the type is unambiguous, you can also use the more general  . ? "a   $Note that when just using this as a 8, C   can be more efficient.@ optics-extraEncode/Decode a lazy : to/from lazy D , via UTF-8.yNote: This function does not decode lazily, as it must consume the entire input before deciding whether or not it fails.(ByteString.unpack (utf8 # Text.pack "&") [226,152,131]E optics-extraInternal implementation of <.F optics-extraInternal implementation of ?.G optics-extraIndexed fold for F.H optics-extraIndexed setter for F.:;<=>?@;<=?>@: Optics for working with strict I.None%&'/48=>?@ACHPSUVX_gkJ B optics-extra This isomorphism can be used to J (or K ) strict I."hello" ^. packed -- :: Text"hello" J x "a x  B K x "a x  = B B "a = C B "a L J K C optics-extra This isomorphism can be used to K (or J ) strict I.,Strict.pack "hello" ^. unpacked -- :: String"hello"This >M is provided for notational convenience rather than out of great need, since C "a = B J x "a x  = C K x "a x  B C "a L K J D optics-extraThis is an alias for C0 that makes it more obvious how to use it with  > _Text # "hello" -- :: Text"hello"E optics-extraConvert between strict I and ? . M x "a x  E N (A x) "a x  = E F optics-extra-Traverse the individual characters in strict I.(anyOf text (=='o') (Strict.pack "hello")True@When the type is unambiguous, you can also use the more general  . F "a C % B F "a   $Note that when just using this as a 8, C !  can be more efficient.G optics-extraEncode/Decode a strict I to/from strict O , via UTF-8.utf8 # Strict.pack "&""\226\152\131"P optics-extraInternal implementation of C.Q optics-extraInternal implementation of F.R optics-extraIndexed fold for Q.S optics-extraIndexed setter for Q.ABCDEFGBCEFGDA 'Optics for working with strict or lazy L.None%&'/48=>?@ACHPSUVX_gkWH optics-extraTraversals for strict or lazy LI optics-extra This isomorphism can be used to J (or K) strict or lazy L. J x "a x  I K x "a x  = I I "a = M J optics-extraConvert between strict or lazy L and a ?. M x "a x  J K optics-extra5Traverse the individual characters in strict or lazy L. K = M . B M optics-extra This isomorphism can be used to K (or J) both strict or lazy L. K x "a x  M J x "a x  = M This >M is provided for notational convenience rather than out of great need, since M "a = I N optics-extraThis is an alias for M+ that makes it clearer how to use it with (). N = = I _Text # "hello" :: Strict.Text"hello"HKJILMNHKJIMNL Optics for " and #$-like containers.None&'/48=>?@ACHPSUVX_kYc   :Optics to access the left or right element of a container.None&'/48=>?@ACHPSUVX_gk[ !"#%$'&%$! "'&#A T for a type that may be ).None&'/48=>?@ACHPSUVX_gk](*)*)( None&'/48=>?@ACHPSUVX_kuGx optics-extraTraverse a strict Ob in a relatively balanced fashion, as a balanced tree with biased runs of elements at the leaves.y optics-extraTraverse a strict O in a relatively balanced fashion, as a balanced tree with biased runs of elements at the leaves, pretending the bytes are chars.z optics-extraAn U# of the individual bytes in a lazy D.{ optics-extraAn U# of the individual bytes in a lazy D! pretending the bytes are chars.V optics-extraInternal version of x.W optics-extraIndexed setter for V.X optics-extraIndexed fold for V.Y optics-extraInternal version of y.Z optics-extraIndexed setter for Y.[ optics-extraIndexed fold for Y.\ optics-extraInternal version of z.] optics-extraIndexed setter for \.^ optics-extraIndexed fold for \._ optics-extraInternal version of {.` optics-extraIndexed setter for _.a optics-extraIndexed fold for _.b optics-extraConversion between c and d. Should compile to a no-op.e optics-extraUnsafe conversion between d and c<. This is a no-op and silently truncates to 8 bits Chars > '\255'=. It is provided as convenience for ByteString construction.f optics-extra8A way of creating ByteStrings outside the IO monad. The Int: argument gives the final size of the ByteString. Unlike  createAndTrimV the ByteString is not reallocated if the final size is less than the estimated size.g optics-extraCreate ByteString of size l and use action f to fill it's contents.xyz{xyz{ None%&'/48=>?@ACHPSUVX_gk~ optics-extra%& (or %') a list of bytes into a O ~ "a =  %& x "a x h ~ %' x "a x h = ~ $[104,101,108,108,111] ^. packedBytes"hello" optics-extra%' (or %&) a O into a list of bytes.  "a = ~ %' x "a x h  %& x "a x h =  &"hello" ^. packedChars % unpackedBytes[104,101,108,108,111] optics-extraTraverse each c in a O.This i walks the O in a tree-like fashion enable zippers to seek to locations in logarithmic time and accelerating many monoidal queries, but up to associativity (and constant factors) it is equivalent to the much slower:  "a  j B *anyOf bytes (== 0x80) (Char8.pack "hello")False$Note that when just using this as a 8, C %  can be more efficient. optics-extra(& (or (') a list of characters into a OWhen writing back to the O it is assumed that every d lies between '\x00' and '\xff'.  "a =  (& x "a x h  (' x "a x h =  sfoldOf (packedChars % each % to (\w -> let x = showHex w "" in if Prelude.length x == 1 then '0':x else x)) "hello" "68656c6c6f" optics-extra(' (or (&) a list of characters into a OWhen writing back to the O it is assumed that every d lies between '\x00' and '\xff'.  "a =  (' x "a x h  (& x "a x h =  4[104,101,108,108,111] ^. packedBytes % unpackedChars"hello" optics-extra#Traverse the individual bytes in a O as characters.When writing back to the O it is assumed that every d lies between '\x00' and '\xff'.This i walks the O in a tree-like fashion enable zippers to seek to locations in logarithmic time and accelerating many monoidal queries, but up to associativity (and constant factors) it is equivalent to the much slower:  =  j B )anyOf chars (== 'h') $ Char8.pack "hello"True|}~~}| None%&'/48=>?@ACHPSUVX_gk optics-extra)& (or )') a list of bytes into a D.  "a =  %& x "a x h  %' x "a x h =  :[104,101,108,108,111] ^. packedBytes == Char8.pack "hello"True optics-extra)' (or )&) a D into a list of bytes.  "a =  %' x "a x h  %& x "a x h =  &"hello" ^. packedChars % unpackedBytes[104,101,108,108,111] optics-extra#Traverse the individual bytes in a D.This i walks each strict D chunk in a tree-like fashion enable zippers to seek to locations more quickly and accelerate many monoidal queries, but up to associativity (and constant factors) it is equivalent to the much slower:  "a  j B *anyOf bytes (== 0x80) (Char8.pack "hello")False$Note that when just using this as a 8, C )  can be more efficient. optics-extra*& (or *') a list of characters into a D.When writing back to the D it is assumed that every d lies between '\x00' and '\xff'.  "a =  (& x "a x h  (' x "a x h =  sfoldOf (packedChars % each % to (\w -> let x = showHex w "" in if Prelude.length x == 1 then '0':x else x)) "hello" "68656c6c6f" optics-extra*' (or *&) a list of characters into a DWhen writing back to the D it is assumed that every d lies between '\x00' and '\xff'.  "a =  (' x "a x h  (& x "a x h =  4[104,101,108,108,111] ^. packedBytes % unpackedChars"hello" optics-extra#Traverse the individual bytes in a D as characters.When writing back to the D it is assumed that every d lies between '\x00' and '\xff'.This i walks each strict D chunk in a tree-like fashion enable zippers to seek to locations more quickly and accelerate many monoidal queries, but up to associativity (and constant factors) it is equivalent to:  =  j B )anyOf chars (== 'h') $ Char8.pack "hello"TrueNone%&'/48=>?@ACHPSUVX_gkȃ optics-extraTraversals for ByteStrings. optics-extra%& (or %')) a list of bytes into a strict or lazy O. %& x "a x h  %' x "a x h =   "a =   optics-extra(& (or ('.) a list of characters into a strict or lazy O.When writing back to the O it is assumed that every d lies between '\x00' and '\xff'. (& x "a x h  (' x "a x h =   "a =   optics-extraTraverse each c in a strict or lazy OThis i walks each strict O chunk in a tree-like fashion enable zippers to seek to locations more quickly and accelerate many monoidal queries, but up to associativity (and constant factors) it is equivalent to the much slower:  "a  k B l  (m 0x80) :: O -> n  optics-extra2Traverse the individual bytes in a strict or lazy O as characters.When writing back to the O it is assumed that every d lies between '\x00' and '\xff'.This i walks each strict O chunk in a tree-like fashion enable zippers to seek to locations more quickly and accelerate many monoidal queries, but up to associativity (and constant factors) it is equivalent to the much slower:  "a  k B l  (m 'c') :: O -> n  optics-extra%' (or %&) a O into a list of bytes.  "a =  %' x "a x h  %& x "a x h =   :: o %+ [c]  :: o )+ [c]  optics-extra(' (or (&0) a list of characters into a strict (or lazy) OWhen writing back to the O it is assumed that every d lies between '\x00' and '\xff'.  "a =  (' x "a x h  (& x "a x h =   :: o %+ p  :: o )+ p Safe&'/48=>?@ACHPSUVX_k` optics-extrahReturn the the subset of given ordinals within a given bound and in order of the first occurrence seen.Bound:  0 <= x < lordinalNub 3 [-1,2,1,4,2,3][2,1] optics-extrastrict upper bound  optics-extraordinals  optics-extra)unique, in-bound ordinals, in order seen None&'/48=>?@ACHPSUVX_k  optics-extra sliced i n provides a q that edits the n elements starting at index i from a q.This is only a valid q3 if you do not change the length of the resulting r.RAttempting to return a longer or shorter vector will result in violations of the q laws.DVector.fromList [1..10] ^. sliced 2 5 == Vector.fromList [3,4,5,6,7]True^(Vector.fromList [1..10] & sliced 2 5 % mapped .~ 0) == Vector.fromList [1,2,0,0,0,0,0,8,9,10]True optics-extra Similar to s, but returning a r.G(toVectorOf each (8,15) :: Vector.Vector Int) == Vector.fromList [8,15]True optics-extraConvert a list to a r (or back.)C([1,2,3] ^. vector :: Vector.Vector Int) == Vector.fromList [1,2,3]True%Vector.fromList [0,8,15] ^. re vector[0,8,15] optics-extra Convert a r to a finite t (or back.) optics-extra Convert a r to a finite t from right to left (or back.) optics-extra Convert a rH back and forth to an initializer that when run produces a copy of the r. optics-extra Convert a r3 to a version that doesn't retain any extra memory. optics-extraThis i= will ignore any duplicates in the supplied list of indices.>toListOf (ordinals [1,3,2,5,9,10]) $ Vector.fromList [2,4..40][4,8,6,12,20,22] optics-extraLike $ but polymorphic in the vector type. optics-extra.Indexed vector traversal for a generic vector. optics-extra>Different vector implementations are isomorphic to each other. optics-extrai starting index optics-extran length None&'/48=>?@ACHPSUVX_k optics-extra sliced i n provides a q that edits the n elements starting at index i from a q.This is only a valid q3 if you do not change the length of the resulting u.RAttempting to return a longer or shorter vector will result in violations of the q laws.DVector.fromList [1..10] ^. sliced 2 5 == Vector.fromList [3,4,5,6,7]True^(Vector.fromList [1..10] & sliced 2 5 % mapped .~ 0) == Vector.fromList [1,2,0,0,0,0,0,8,9,10]True optics-extra Similar to s, but returning a u.0toVectorOf each (8,15) == Vector.fromList [8,15]True optics-extraConvert a list to a u (or back),[1,2,3] ^. vector == Vector.fromList [1,2,3]True[1,2,3] ^. vector % re vector[1,2,3]JVector.fromList [0,8,15] ^. re vector % vector == Vector.fromList [0,8,15]True optics-extra Convert a u4 to a version that doesn't retain any extra memory. optics-extraThis i= will ignore any duplicates in the supplied list of indices.>toListOf (ordinals [1,3,2,5,9,10]) $ Vector.fromList [2,4..40][4,8,6,12,20,22] optics-extrai starting index optics-extran lengthNone&'/48=>?@ACHPSUVX_k optics-extra,Wrap a monadic effect. Used when magnifying ,-. optics-extraWrap a monadic effect. optics-extraMake a v out of w for error handling. optics-extraMake a v out of x for error handling. optics-extraUsed by . to / into ,-. optics-extraUsed by . to / into 01.Definitions of indexed optics.None&'/48=>?@ACHPSUVX_km yz{|}~U5+,-.0/432165 .0/4321-,65+An U for  2 element of a (potentially monomorphic) container.None&'/48=>?@ACHPSUVX_k  optics-extra   :: U  D D c c optics-extra   :: U  O O c c optics-extra   :: U  : : d d optics-extra   :: U  I I d d optics-extra   :: ( a,  b) => U  ( a) ( b) a b optics-extra   :: ( a,  b) => U  ( a) ( b) a b optics-extra   :: ( a,  b) => U Int (23 a) (23 b) a b optics-extra   :: U Int (u a) (u b) a b optics-extra   :: U k ( k a) ( k b) a b  8 utilities for working with .None&'/48=>?@ACHPSUVX_k optics-extraMap over the target(s) of an  in our monadic state.BexecState (do modifying _1 (*10); modifying _2 $ stimes 5) (6,"o") (60,"ooooo")/execState (modifying each $ stimes 2) ("a","b") ("aa","bb") optics-extra Version of B that is strict in both optic application and state modification.Gflip evalState ('a','b') $ modifying _1 (errorWithoutStackTrace "oops")()Hflip evalState ('a','b') $ modifying' _1 (errorWithoutStackTrace "oops")*** Exception: oops optics-extraReplace the target(s) of an A in our monadic state with a new value, irrespective of the old.5execState (do assign _1 'c'; assign _2 'd') ('a','b') ('c','d')%execState (assign each 'c') ('a','b') ('c','c') optics-extra Version of B that is strict in both optic application and state modification.Dflip evalState ('a','b') $ assign _1 (errorWithoutStackTrace "oops")()Eflip evalState ('a','b') $ assign' _1 (errorWithoutStackTrace "oops")*** Exception: oopsNone&'/48=>?@ACHPSUVX_k0 optics-extra*Generalized view (even more powerful than view from the lens library).)View the value(s) pointed to by an optic.5The type of the result depends on the optic. You get:Exactly one result a with >, q,  and .At most one result Maybe a with T,  and . Monoidal summary of all results  Monoid a => a with i and .mWhen in doubt, use specific, flavour restricted versions. This function is mostly useful for things such as 4. optics-extraUse the target of a q, >, or . in the current state, or use a summary of a  or i! that points to a monoidal value.evalState (use _1) ('a','b')'a'$evalState (use _2) ("hello","world")"world" optics-extraUse the target of a q, > or . in the current state, or use a summary of a  or i! that points to a monoidal value.,evalState (uses _1 length) ("hello","world")5 optics-extraThis is a generalized form of D that only extracts the portion of the log that is focused on by a  . If given a  or a iU then a monoidal summary of the parts of the log that are visited will be returned. optics-extraThis is a generalized form of D that only extracts the portion of the log that is focused on by a  . If given a  or a iU then a monoidal summary of the parts of the log that are visited will be returned.None&'/48=>?@ACHPSUVX_k3 optics-extraModify the target of an % returning extra information of type r.+Infix operators for state-modifying optics.None&'/48=>?@ACHPSUVX_kIZ  optics-extraReplace the target(s) of an A in our monadic state with a new value, irrespective of the old.This is an infix version of . optics-extraReplace the target(s) of an  in our monadic state with ' a new value, irrespective of the old. optics-extraMap over the target(s) of an  in our monadic state.This is an infix version of . optics-extraModify the target of an X in the current state returning some extra information of type depending on the optic (r, Maybe r or monoidal summary). optics-extraModify the target of a  into your Monad';s state by a user supplied function and return the result. optics-extraSet  a value with pass-through.LThis is useful for chaining assignment without round-tripping through your  stack. optics-extraSet with pass-through.LThis is useful for chaining assignment without round-tripping through your  stack. optics-extraModify the target of a  into your Monad'4s state by a user supplied function and return the old value that was replaced. optics-extraReplace the target of a  into your Monad's state with & a user supplied value and return the old value that was replaced. optics-extraReplace the target of a  into your Monad'3s state with a user supplied value and return the old value that was replaced.   4444444444None&'/48=>?@ACHPSUVX_kkN optics-extraExtends  $ with an ability to magnify using a o over multiple targets so that actions for each one are executed sequentially and the results are aggregated.)There is however no sensible instance of  for .  optics-extraThis class allows us to  O part of the environment, changing the environment supplied by many different  transformers. Unlike 5 this can change the environment of a deeply nested  transformer.kIts functions can be used to run a monadic action in a larger environment than it was defined in, using a  or an .They act like 56D, but can in many cases change the type of the environment as well.3They're commonly used to lift actions in a simpler   into a  with a larger environment type.)They can be used to edit pretty much any . transformer stack with an environment in it:(1,2) & magnify _2 (+1)3,flip runReader (1,2) $ magnify _1 Reader.ask1Dflip runReader (1,2,[10..20]) $ magnifyMaybe (_3 % _tail) Reader.ask$Just [11,12,13,14,15,16,17,18,19,20]  optics-extraThis class allows us to  in, changing the f supplied by many different monad transformers, potentially quite deep in a monad transformer stack.>Its functions can be used to run a monadic action in a larger " than it was defined in, using a , an  or a .3This is commonly used to lift actions in a simpler   into a   with a larger  type.When used with a m over multiple values, the actions for each target are executed sequentially and the results are aggregated.)This can be used to edit pretty much any  transformer stack with a  in it!3flip L.evalState ('a','b') $ zoom _1 $ use equality'a'6flip S.execState ('a','b') $ zoom _1 $ equality .= 'c' ('c','b')Aflip L.execState [(1,2),(3,4)] $ zoomMany traversed $ _2 %= (*10)[(1,20),(3,40)]Rflip S.runState [('a',"b"),('c',"d")] $ zoomMany traversed $ _2 <%= (\x -> x <> x) ("bbdd",[('a',"bb"),('c',"dd")])9flip S.evalState ("a","b") $ zoomMany each (use equality)"ab") optics-extra   =    =  4 optics-extra   =              2 2 22227None&'/48=>?@ACHPSUVX_kls yz{|}~UBi hC 8  !"#%$'&(*)   = !"#$%&'()*+,-./0123456789:;T<=>?@ABCDEqFG5HIJKLMNOPQRSTL>oUVWXYZ[\]^_`abcdeflghijklmnopqrs9tuvswxyz+,-.{|}0/432165~j     89:89;89<89=89>89?89@89A89B89C89D8EF8EG8HI8HJ8HK8HL8HM8HN8HO8HP8HQ8HR8HS8TU8TV8TW8TX8TY8TZ8T[8T\8T]8T^8T_8T`8Ta8Tb8Tc8Td8ef8eg8eh8ij8ik8il8im8in8io8ip8iq8ir8is8it8iuvwxyz{|}~ y z { | } ~   z } ~ y { |           4 !"./#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH8IJKLMKNO8PQ8RSTUyT&T'8VW8XYTZ[TZ\TZ]8^8P_`a+bcdeTfyT!&Tg'8XhTZiTj`k+ b c l m8no8pq r s t u v w x y z { | } ~   8888R8X838R38p8p8p8p8p8p8p8p8p8p8p8p8p8p8p8p8p8p8p8p8p88888888888888888888888I8I8I8I8I8I8I8I8I8I8I8I8I8I8I8I8I8I8I8I8I8I8888888888888888888332KL888  8  8 8R188 88 8 8R !"8#8$8%8&8'8(8)8*8+8,8-8.8/8081823824825868788898:8;88<8=8P>8P?8P@8PA8PB8PC8DE8DF8DG8H8IJ8IK8LM8LN8VO8VP8QR8QS8TU8TV8WX8WY8WZ8W[8W\8W]8W^8W_8W`8Wa8Wb8Wc8Wd8We8Wf8Wg8Wh8Wi8Wj8Wk8Wl8Wm8Wn8Wo8Wp8Wq8Wr8ns8nt8nu8nv8nw8nx8ny8nz8n{8|8}8~888888888X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8R8R8R8R8R8R8R8R8R8R8R8R8R8R8R8R8R8R8R8R8R8R8R8R8R8R8R8R8R8R8R8R8R8R8R8R8i8i8i8 8 8 8 8 8 8 8 8 8 8 8 8 88888 8 88888888888888888'optics-extra-0.1-JjIwUTK8ntEIxQRFdhuFCDOptics.Indexed Optics.Each Optics.AtData.HashMap.Optics Optics.Cons Optics.EmptyData.HashSet.OpticsData.Text.Lazy.OpticsData.Text.Strict.OpticsData.Text.Optics Optics.Extra.Internal.ByteStringData.ByteString.Strict.OpticsData.ByteString.Lazy.OpticsData.ByteString.OpticsOptics.Extra.Internal.VectorData.Vector.Generic.OpticsData.Vector.OpticsOptics.Extra.Internal.Zoom Optics.State Optics.ViewOptics.PassthroughOptics.State.Operators Optics.ZoomData.MapHashMapOptics.Traversal TraversalOptics.Operators^.#Data.Text.Lazymap Data.TextMapData.SetSetData.ByteStringpackunpackData.ByteString.Char8Data.ByteString.LazyData.ByteString.Lazy.Char8 ByteStringControl.Monad.RWSRWSTZoomzoomControl.Monad.StateStateTPrimVector passthroughControl.Monad.Reader.Classlocal Optics.Extra&optics-core-0.1-KtEG5c7xngP9iYSc6cGk4vOptics.Indexed.Core icomposeN icompose5 icompose4 icompose3icompose reindexed<%%><%>noIxIxOpticOptics.Each.CoreeachEachOptics.At.Coresansat'ixAtIndexcontainsContainsIxValueixIxedatAtOptics.Cons.Coreunsnocsnoc|>_last_init_tail_headunconscons<|:<:>_ConsCons_SnocSnocOptics.Empty.CoreEmpty_EmptyAsEmptyOptics.Internal.Indexediforifor_ itraverse_ conjoinedimapFunctorWithIndexifoldl'ifoldrifoldMapFoldableWithIndex itraverseTraversableWithIndextoMapOf setmappedsetOfTextpackedunpacked_Textbuildertextutf8IsText $fIsTextText $fIsTextText0 $fIsText[] $fAtHashSet $fAtHashMap$fIxedByteString$fIxedByteString0 $fIxedText $fIxedText0 $fIxedVector $fIxedVector0 $fIxedVector1 $fIxedVector2 $fIxedHashSet $fIxedHashMap$fContainsHashSet$fSnocTextTextCharChar$fSnocTextTextCharChar0$$fSnocByteStringByteStringWord8Word8%$fSnocByteStringByteStringWord8Word80$fSnocVectorVectorab$fSnocVectorVectorab0$fSnocVectorVectorab1$fSnocVectorVectorab2$fConsVectorVectorab$fConsVectorVectorab0$fConsVectorVectorab1$fConsVectorVectorab2$fConsTextTextCharChar$fConsTextTextCharChar0$$fConsByteStringByteStringWord8Word8%$fConsByteStringByteStringWord8Word80 $fAsEmptyText$fAsEmptyText0$fAsEmptyByteString$fAsEmptyByteString0$fAsEmptyVector$fAsEmptyVector0$fAsEmptyVector1$fAsEmptyHashSet$fAsEmptyHashMaptraversedStrictTreetraversedStrictTree8 traversedLazytraversedLazy8CharsBytes packedBytes unpackedBytesbytes packedChars unpackedCharschars IsByteString$fIsByteStringByteString$fIsByteStringByteString0 ordinalNubsliced toVectorOfvectorasStream asStreamRclonedforcedordinalsvectorIxvectorTraverse converted EffectRWS getEffectRWSEffect getEffectErrgetErrMaygetMay FocusingWithunfocusingWithFocusing unfocusing stateZoomstateZoomMaybe stateZoomManyrwsZoom rwsZoomMaybe rwsZoomMany shuffleMay shuffleErr rwsMagnifyrwsMagnifyMayberwsMagnifyManyshuffleSshuffleW$fApplicativeFocusing$fFunctorFocusing$fApplicativeFocusingWith$fFunctorFocusingWith $fMonoidMay$fSemigroupMay $fMonoidErr$fSemigroupErr$fMonoidEffect$fSemigroupEffect$fMonoidEffectRWS$fSemigroupEffectRWS$fTraversableWithIndexIntVector$fFoldableWithIndexIntVector$fFunctorWithIndexIntVector$fTraversableWithIndexkHashMap$fFoldableWithIndexkHashMap$fFunctorWithIndexkHashMap!$fEachInt64ByteStringByteStringab"$fEachInt64ByteStringByteStringab0$fEachIntTextTextab$fEachIntTextTextab0$fEachIntVectorVectorab$fEachIntVectorVectorab0$fEachIntVectorVectorab1$fEachIntVectorVectorab2$fEachkHashMapHashMapab modifying modifying'assignassign' ViewableOptic ViewResultgviewgviewsuseuses listening listenings$fViewableOpticA_Foldr$fViewableOpticA_Traversalr$fViewableOpticAn_AffineFoldr"$fViewableOpticAn_AffineTraversalr$fViewableOpticA_Prismr$fViewableOpticA_Getterr$fViewableOpticA_ReversedPrismr$fViewableOpticA_Lensr$fViewableOpticAn_IsorPermeableOptic$fPermeableOpticA_Traversalr#$fPermeableOpticAn_AffineTraversalr$fPermeableOpticA_Prismr$fPermeableOpticA_Lensr$fPermeableOpticAn_Isor.=?=%=%%=<%=->ba$fMagnifyManyExceptTExceptTba$fMagnifyManyErrorTErrorTba$fMagnifyManyMaybeTMaybeTba$fMagnifyManyListTListTba$fMagnifyManyWriterTWriterTba$fMagnifyManyWriterTWriterTba0!$fMagnifyManyIdentityTIdentityTba$fMagnifyManyRWSTRWSTba$fMagnifyManyRWSTRWSTba0$fMagnifyManyReaderTReaderTba$fMagnifyMany->->ba Optics.IxFoldIxFold3unordered-containers-0.2.10.0-b9YJCQLkMeLUf311RZkQDData.HashMap.BaseunionData.HashSet.BaseHashSet Optics.SetterSetter Optics.Foldfolded text-1.2.3.1Data.Text.Internal.Lazy Optics.Rere Optics.IsoIsoData.Text.Internal.BuilderBuilder fromLazyText toLazyText traversedsetsbytestring-0.10.8.2Data.ByteString.Lazy.Internal unpacked__text__ ifoldrLazyimapLazyData.Text.InternalData.Text.ShowisofromTexttoStrictData.ByteString.Internal ifoldrStrict imapStrict Optics.PrismPrismOptics.IxTraversal IxTraversaltraversedStrictTree__imapBifoldrBtraversedStrictTree8__imapB8ifoldrB8traversedLazy__imapBLifoldrBLtraversedLazy8__imapBL8 ifoldrBL8w2cbaseGHC.WordWord8ghc-prim GHC.TypesCharc2w unsafeCreatecreateOptics.Internal.Optic%GHC.Base.anyOf GHC.Classes==BoolIso'String Optics.LensLens&vector-0.12.0.3-ChzWbiXyvuNAQj0dcU08SgData.Vector.Generic.BasetoListOfData.Vector.Fusion.BundleBundle Data.VectorMonoid Data.EitherEither GHC.MaybeMaybeipartsOfelement elementOfelements elementsOf ibackwardsindicesignored itraversed ifailover' ifailover iscanr1Of iscanl1Of imapAccumROf imapAccumLOfiforOf itraverseOf itraversalVL IxTraversal' IxTraversalVLIxTraversalVL'Optics.IxSetterimappedisetsiset'isetiover'ioverIxSetter IxSetter' Optics.IxLensdevoid withIxLensVL toIxLensVLilensVLilensIxLensIxLens'IxLensVL IxLensVL'Optics.IxGetteriviewsiview selfIndexitoIxGetterifindMOfifindOfinoneOfiallOfianyOfilastOfiheadOfifailingisumming ibackwards_ ifilteredipre ifoldringifoldingifoldediforOf_ itraverseOf_ itoListOf ifoldlOf'ifoldrOf ifoldMapOfifoldVLOptics.IxAffineTraversaltoIxAtraversalVL iatraversalVL iatraversalIxAffineTraversalIxAffineTraversal'IxAffineTraversalVLIxAffineTraversalVL'Optics.IxAffineFold iafailing iafolding ipreviewsipreview IxAffineFoldOptics.Internal.Optic.TypesA_LensAn_AffineTraversal A_TraversalA_SetterA_Getter An_AffineFoldA_FoldGHC.IntInt64IntData.Vector.Unboxed.BaseUnboxForeign.StorableStorableData.Vector.Storable(primitive-0.7.0.0-9xMM76CsovTEGnXCHiCdRJData.Primitive.Types mtl-2.2.2Control.Monad.State.Class MonadStateOpticOptics.ReversedPrism ReversedPrism Optics.GetterGetterOptics.AffineTraversalAffineTraversalOptics.AffineFold AffineFoldFoldControl.Monad.Writer.ClasslistenJustMonadtransformers-0.5.5.0 Control.Monad.Trans.State.StrictControl.Monad.Trans.ReaderReaderStateLens'AffineTraversal' Traversal'viewspreviews foldMapOf Data.Function& Data.Functor<&>partsOf backwards failover'failoverscanr1Ofscanl1Of mapAccumROf mapAccumLOf transposeOf sequenceOfforOf traverseOf traversalVL TraversalVL TraversalVL' Optics.ArrowassignA ArrowOpticoverA?!~?~!~.~%!~%~^..^?mappedset'setover'overSetter' Optics.ReviewuntoreviewReviewReversedPrism'Optics.ReversedLens ReversedLens ReversedLens'Optics.ReadOnly ToReadOnlygettingReversibleOptic ReversedOpticData.Either.Optics_Right_LeftData.Maybe.Optics_Just_NothingData.Tuple.Optics_9'_8'_7'_6'_5'_4'_3'_2'_1'Field1_1Field2_2Field3_3Field4_4Field5_5Field6_6Field7_7Field8_8Field9_9nearlyonlybelowwithoutaside withPrismprism'prismPrism'united alongsidechosen equality' withLensVLtoLensVLlensVLwithLenslensLensVLLensVL' involutedflipped uncurriedcurriedcoerced1 coercedTocoercedsimpleequalitymappingunderauwithIsoSwappedswappedlookupOffindMOffindOf minimumByOf maximumByOf minimumOf maximumOflengthOf notElemOfelemOfmsumOfasumOfsumOf productOfnoneOfallOforOfandOflastOfheadOfhasn'thasfailingsumming backwards_preunfoldedfoldringfolding sequenceOf_forOf_ traverseOf_foldlOf'foldrOffoldOffoldVLAcceptsEmptyIndicesNonEmptyIndicesHasSingleIndexisn'tafailingfilteredafoldingpreviewunsafeFilteredmatchingtoAtraversalVL atraversalVLwithAffineTraversal atraversalAffineTraversalVLAffineTraversalVL' Optics.CoercecoerceBcoerceAcoerceTcoerceStoview%&%% castOpticNoIxWithIxOptic' LabelOptic labelOptic LabelOptic'Optics.Internal.Optic.SubtypingIsJoinAn_IsoA_PrismA_ReversedPrismA_ReversedLensA_ReviewOptics.Internal.Optic.TypeLevelAppend