úÎj/ak      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy z { | } ~  € ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ (c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone &'+-./246=JK %Composition for a class and a wrapperPoly-kinded MaybePoly-kinded Const Just a value.  % :: 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.        None!"&'(+2346=JKM ".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.% Member x xs or x " xs indicates that x is an element of xs.'Unicode flipped alias for %,The position of x in the type level set xs.- Generates , for an ordinal (0-origin)../Embodies a type equivalence to ensure that the , points the first element.5GHC can't prove this* !"#$%&'()*+,-./01234Ž5‘’“# !"#$%&'()*+,-./012345#,./-(+*)01234%&' 5!$#"! !"#$%&'(+*),-./01234Ž5‘’“(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(*+234=HJKM6The extensible sum type8Change the wrapper.9O(log n) lift a value.:O(1) Naive pattern match;There is no empty union.<3A traversal that tries to point a specific element. 6789:;<”•6789:;<6789:;<6789:;<”•:(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(*+246=HJKM=4Guarantees the all elements satisfies the predicate.?SGiven a function that maps types to values, we can "collect" entities all you want.AThe extensible product typeDO(1) Extract the head element.EO(n)! Extract the tail of the product.F)Split a product to the head and the tail.GO(log n) Add an element to a product.H<Transform every elements in a product, preserving the order.I#Serial combination of two products.J– for heterogeneous productK— for heterogeneous productLCombine all elements.MTraverse all elements.NO(log n) Pick up an elemtnt.OH with its indices.PO(log n) A lens for a specific element.QO(log n)( A lens for a value in a known position.#=>?@˜™š›œABCDEFGHIJKLMNOPQžŸ ¡¢£¤¥=>?@ABCDEFGHIJKLMNOPQACBGIDEFHJKLMONPQ?@=>=>?@˜™š›œACBDEFGHIJKLMNOPQžŸ ¡¢£¤¥GI(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone'+=JKR1Turn a wrapper type into one clause that returns a.UA lens for a specific clause.V$Applies a function to the result of R.WO(log n) Perform pattern matching.XFlipped WRSTUVWXRSTUVWXRSTUWVXRSTUVWXX(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone(+JK YWrap a type that has a kind * -> *.\Alias for plain sums]Alias for plain products^O(log n) Add a plain value to a product._Extract a plain value.`Embed a plain value.a)Naive pattern matching for a plain value.bO(log n)' A lens for a plain value in a product.cO(log n)' A lens for a plain value in a product.d#Prepend a clause for a plain value.e+Prepend a clause for a parameterized value. YZ[\]^_`abcde YZ[\]^_`abcde ]\^_`abcdYZ[e YZ[\]^_`abcde^ade(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone(+HJKMfFlipped Whttp://hackage.haskell.org/package/kan-extensions-4.1.0.1/docs/Data-Functor-Yoneda.htmlYonedai)A much more efficient representation for Union of ¦s.lO(log n) Embed a functor.mFuse f" to retract a substantial functor.n§ for the content.oPrepend a clause for R (f x) as well as (<?!).p fast fmap fghijklmnop fghijklmno ijkplfghmnofghijklmnopo(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone !"(+234HJKMqFlipped Qhttp://hackage.haskell.org/package/kan-extensions/docs/Data-Functor-Coyoneda.htmlCoyonedas A union of * -> * types.vO(log n) Embed a value.w§ for the content.xPrepend a clause for R (q x) as well as (<?!).¨ fast fmap qrstuvwx¨qrstuvwxxstuvqrwqrstuvwx¨x (c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(+3=HJKMyys contains xszUnicode alias for y{'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.yz{|}~€ "#$%&',-.yz{|}~€,.'%&$#"-zy{|}~€ yz{|}~€ (c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone'(+23468=HJKM "An internal class to characterize …ƒ(A ghostly type used to reify field names„4When you see this type as an argument, it expects a …. This type hooks the name of … so that an expression field @= value has no ambiguousity.… FieldLens s- is a type of lens that points a field named s. … s = (s " xs) => Lens' († xs) (Š s) †0The type of records which contain several fields‡The type of fields.Š%Associates names with concrete types.‹#Annotate a value by the field name.ŒGenerate a field. Œ "foo" [t|Int|] defines: =type instance FieldValue "foo" = Int foo :: FieldLens "foo" The yielding field is a  Jhttp://hackage.haskell.org/package/lens/docs/Control-Lens-Lens.html#t:LensLens.‚ƒ„…†‡ˆ‰Š‹Œ©ª«% "#$%&',-.ACGyz{|}~€‚ƒ„…†‡ˆ‰Š‹Œ†GAC‹Œ‡ˆ‰Š…„‚ƒ ‚ƒ„…†‡ˆ‰Š‹Œ©ª«‹ (c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone+JKI "#$%&',-.6789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeyz{|}~€¬   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abbcdefghijklmnnoppqrstuvwwxxyz{| } ~  € ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ ‹ Œ  Ž 6‘’“”•–—˜™š˜™›œœžžŸ ¡¢£¤¥¦§˜¨©˜¨ª« ¬ ­ ®¯extensible-0.2.4Data.Extensible.Internal.RigData.Extensible.InternalData.Extensible.SumData.Extensible.ProductData.Extensible.MatchData.Extensible.PlainData.Extensible.LeagueData.Extensible.UnionData.Extensible.InclusionData.Extensible.RecordData.Extensible ClassCompNullableEineNullConst' getConst'K0getK0viewviewsovernullable mapNullable$fClassCompkkchx$fShowK0 $fMonadK0$fApplicativeK0Merge++MapMapSuccSuccLookupToInttheIntNatSDNatDNatZeroTailHalfCheck AmbiguousMissing ExpectingMember membership∈NavNavRNavLHerePositionord runPositioncomparePositionnavigateherenavNextnavLnavR lemmaHalfTail:|UnionAthoistembed<:|exhaustpickedForall generateForGenerategenerate:*TreeNilhheadhtailhuncons<:*hmap*++*hzipWith hzipWith3hfoldMap htraversehlookup htabulatesectorsectorAtMatchrunMatchclausemapMatchmatchcaseOfK1getK1OneOfAllOf<%pluckbury<%|recordrecordAt) $fShowField