!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(+-./234=HJKM Poly-kinded Maybe 1Turn a wrapper type into one clause that returns a. Poly-kinded Const Just a value.A type synonym for lenses % :: Lens' s a -> (a -> a) -> (s -> s) % :: Lens' s a -> (a -> r) -> (s -> r) % :: Lens' s a -> (a -> a) -> (s -> s) Destruct . Apply a function to its content.       (c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(*+23468=HJKMT!Type level mergingType level concat Type level ++ Type level map!Ideally, it will be 'Map Succ'"The successor of the number#Converts type naturals into .%Type level binary number)Type-level tail*Interleaved list+ Lookup types,Elaborate the result of +-.A type sugar to make type error more readable...A type sugar to make type error more readable./.A type sugar to make type error more readable.3Unicode flipped alias for 04!Ensure that the first element of xs is x8 The type of extensible products.;; k v xs is essentially identical to  (k :> v) " xs , but the type v is inferred from k and xs.>The kind of key-value pairsB Lookup typesCThe position of x in the type level set xs.E Generates a C2 that corresponds to the given ordinal (0-origin).FRemember that  Member xs x from C.G/Embodies a type equivalence to ensure that the C points the first element.H Compare two Cs.IPRIVILEGED: Navigate a tree.JThe C points the first elementKThe next membershipLDescribes the relation of C within a treeMDescribes the relation of C within a treeNGHC can't prove thisOGHC can't prove thisA !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOD !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNO4CDDGHE45IJKLM8:901F3%('&#$+B>?=;<67"!A@*2)NO ,/.-3 !"#$%('&)*+,-./012345678:9;<=>?@ABCDEFGHIJKLMNO(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(*+234=HJKMPThe extensible sum typeRChange the wrapper.SO(1) lift a value.VO(1) Naive pattern matchWThere is no empty union.X3A traversal that tries to point a specific element. PQRSTUVWXY PQRSTUVWXY PQRSTUVWXY PQRSTUVWXYV(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(*+2346=HJKMZ4Guarantees the all elements satisfies the predicate.[O(n) Analogous to s!, but it also supplies a context c x for every elements in xs.\SGiven a function that maps types to values, we can "collect" entities all you want.]O(n). htabulates a product with the given function.^O(1) Extract the head element._O(n)6 Extract the tail of the product. FIXME: unsafeCoerce`)Split a product to the head and the tail.aAn alias for (b).bO(log n) Add an element to a product.c<Transform every elements in a product, preserving the order. c  "a  c (f . g) "a c f . c g d<Transform every elements in a product, preserving the order.eCombine products.f for heterogeneous productg for heterogeneous producth1Map elements to a monoid and combine the results. h f . c g "a h (f . g)i<Traverse all elements and combine the result sequentially.  htraverse (fmap f . g) "a fmap (hmap f) . htraverse g htraverse pure "a pure htraverse (Comp . fmap g . f) "a Comp . fmap (htraverse g) . htraverse f j analog for extensible productsk The dual of il The dual of jmO(log n) Pick up an elemtnt.nFlipped moc with its indices.pO(log n) A lens for a specific element.qO(log n) A lens for a specific element.rO(log n)( A lens for a value in a known position.sPure version of ]. c f (s g) "a s (f . g) s (n m) "a m n (s k) "a k tPure version of [.Z[\]^_`abcdefghijklmnopqrst89:Z[\]^_`abcdefghijklmnopqrst8:9bae^_`codfghijklmnpqr\]sZ[tZ[\]^_`abcdefghijklmnopqrstabe(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(+234=HJKMuTransformation between effects{Wrap a type that has a kind * -> *.Add a new transformation. uvwxyz{|}~ uvwxyz{|}~ {|}xyz~uvwuvwxyz{|}~(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(+234=HJKMT Alias for plain sumsAlias for plain productsO(log n) Add a plain value to a product.Extract a plain value.Embed a plain value.)Naive pattern matching for a plain value.O(log n)' A lens for a plain value in a product.O(log n)' A lens for a plain value in a product.#Prepend a clause for a plain value.%An accessor for newtype constructors.8Generate newtype wrappers and lenses from type synonyms. decFields [d|type Foo = Int|]  Generates: Tnewtype Foo = Foo Int foo :: (Foo " xs) => Lens' (AllOf xs) Int foo = accessing Foo ! with additional deriving clauses  (c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(+234=HJKMA lens for a specific clause.$Applies a function to the result of  .O(log n) Perform pattern matching.Flipped   (c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(+2346=HJKM  Similar to ', but works nicely for key-value pairs.ys contains xsUnicode alias for 'Reify the inclusion of type level sets. O(m log n) Select some elements.O(log n) Embed to a larger union.The inverse of .,Extend a product and fill missing fields by .)Narrow the range of the sum, if possible.'Reify the inclusion of type level sets. O(m log n) Select some elements.O(log n) Embed to a larger union. -./013;<>?CEFG CG301F/.-E>?;< None!"&'()+2346=HJKM%Composition for a class and a wrapperForall upon a wrapper  (c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(+23468=HJKM "An internal class to characterize *A ghostly type which spells the field name4When you see this type as an argument, it expects a A. This type is used to resolve the name of the field internally. FieldLens s- is a type of lens that points a field named s. ( "foo" = Associate "foo" a xs => Lens' ( xs) a 1The type of records which contain several fields.The type of fields.Get a value of a field.#Annotate a value by the field name.Lifted ()Generate a field.  "foo bar" defines: .foo :: FieldLens "foo" foo :: FieldLens "bar" The yielding field is a  Jhttp://hackage.haskell.org/package/lens/docs/Control-Lens-Lens.html#t:LensLens. Shows in field @= value" style instead of the derived one.0-./0138:;<>?CEFGabba8: (c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(+234=HJKMq -./01389:;<>?CEFGPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrst    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{||}~~          J  extensible-0.3.2Data.Extensible.Internal.RigData.Extensible.InternalData.Extensible.SumData.Extensible.ProductData.Extensible.UnionData.Extensible.PlainData.Extensible.MatchData.Extensible.InclusionData.Extensible.DictionaryData.Extensible.RecordData.Extensible MergeList getMergedNullableEineNullCompgetCompMatchrunMatchConst' getConst'K0getK0Lens'viewviewsovercompnullable mapNullable$fMonoidMergeList$fShowK0 $fMonadK0$fApplicativeK0MergeConcat++MapMapSuccSuccToInttheIntNatSDNatDNatZeroTailHalfLookupCheck AmbiguousMissing ExpectingMember membershipHead∈NavHereHere LookupTree lookupTree:*TreeNil Associate association AssocKeysAssoc:>Div2Pred ListIndex Membership getMemberIdordremember runMembershipcompareMembershipnavigateherenavNextnavLnavR lemmaHalfTail lemmaMerging:|UnionAthoistembedstrikestrikeAt<:|exhaustpicked embedAssocForall hgenerateForGenerate hgeneratehheadhtailhuncons<:*<:hmaphtrans*++*hzipWith hzipWith3hfoldMap htraverse hsequencehcollect hdistributehlookuphindex hmapWithIndexsector sectorAssocsectorAt htabulate htabulateForGondola runGondolaUniongetUnionK1getK1reunionrung runGondolasOneOfAllOf<%pluckbury<%|recordrecordAtmkFieldghc-prim GHC.TypesWord Remembrance$fToIntNatSDNat$fToIntNatDNat$fToIntNatZero $fMemberkxsx$fOrdMembership$fEqMembership$fShowMembership$fLookupTreekDNat:x$fLookupTreekSDNat:x$fLookupTreekZero:x$fAssociatekkkvxsbaseData.Type.Equalityouterinnerapply gcastWithcastWithtranssymRefl:~: testEquality TestEquality== Data.Proxy asProxyTypeOfProxyKProxyGHC.BaseidGHC.ListzipWithzipWith3 Control.Monadsequence $fForallkc: $fForallkc[] $fGeneratek: $fGeneratek[]getAssociation$fAssociatedAssocxs:> $fShowFieldAssoc_$fLabelableksLabelPhantom$fLabelableks(->)