_Wfz      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn o p q r s t u v w x y 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.* z !{|"}~#  !"# !  "! z !{|"}~(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(*+234=HJKM#The extensible sum type%Change the wrapper.&O(log n) lift a value.'O(1) Naive pattern match(There is no empty union.)3A traversal that tries to point a specific element. #$%&'()#$%&'()#$%&'()#$%&'()'(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..%Composition for a class and a wrapper/The extensible product type2O(1) Extract the head element.3O(n)! Extract the tail of the product.4)Split a product to the head and the tail.5O(log n) Add an element to a product.6<Transform every elements in a product, preserving the order.7#Serial combination of two products.8 for heterogeneous product9 for heterogeneous product:Combine all elements.;Traverse all elements.<O(log n) Pick up an elemtnt.=O(log n) A lens for a specific element.>O(log n)( A lens for a value in a known position.(*+,-./0123456789:;<=>*+,-./0123456789:;<=>/1057234689:;<=>,-*+.*+,-./1023456789:;<=>57(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone'+=JK?1Turn a wrapper type into one clause that returns a.BA lens for a specific clause.C$Applies a function to the result of ?.DO(log n) Perform pattern matching.EFlipped D?@ABCDE?@ABCDE?@ABDCE?@ABCDEE(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone(+-./JK FWrap a type that has a kind * -> *.IAlias for plain sumsJAlias for plain productsK Just a value.NO(log n) Add a plain value to a product.OExtract a plain value.PEmbed a plain value.Q)Naive pattern matching for a plain value.RO(log n)' A lens for a plain value in a product.SO(log n)' A lens for a plain value in a product.T#Prepend a clause for a plain value.U+Prepend a clause for a parameterized value.FGHIJKLMNOPQRSTUFGHIJKLMNOPQRSTUKLMJINOPQRSTFGHUFGHIJKLMNOPQRSTUNQTU(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone(+HJKMVFlipped Whttp://hackage.haskell.org/package/kan-extensions-4.1.0.1/docs/Data-Functor-Yoneda.htmlYonedaY)A much more efficient representation for Union of s.\O(log n) Embed a functor.]Fuse V" to retract a substantial functor.^ for the content._Prepend a clause for ? (V x) as well as (<?!).` fast fmap VWXYZ[\]^_` VWXYZ[\]^_ YZ[`\VWX]^_VWXYZ[\]^_`_(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone !"(+234HJKMaFlipped Qhttp://hackage.haskell.org/package/kan-extensions/docs/Data-Functor-Coyoneda.htmlCoyonedac A union of * -> * types.fO(log n) Embed a value.g for the content.hPrepend a clause for ? (a x) as well as (<?!). fast fmap abcdefghabcdefghhcdefabgabcdefghh(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone &'(+3=HJKMiys contains xsjUnicode alias for ik'Reify the inclusion of type level sets.l O(m log n) Select some elements.mO(log n) Embed to a larger union.ijklmijklmjiklmijklm (c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone'(+23468=HJKM n"An internal class to characterize rp(A ghostly type used to reify field namesq4When you see this type as an argument, it expects a r. This type hooks the name of r so that an expression field @= value has no ambiguousity.r FieldLens s- is a type of lens that points a field named s. r s = (s '"' xs) => Lens' (s xs) (w s) s0The type of records which contain several fieldstThe type of fields.w%Associates names with concrete types.x#Annotate a value by the field name.yGenerate a field. y "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.nopqrstuvwxy/15ijklmnopqrstuvwxys5/1xytuvwrqnop nopqrstuvwxyx (c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone+JKA#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUijklm    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJJKLMNOPPQRSTTUVWXYZ[\]^^_``abcdefgghhijklmnopq r s t u v w x x y z { |$}~ extensible-0.2.3Data.Extensible.InternalData.Extensible.SumData.Extensible.ProductData.Extensible.MatchData.Extensible.PlainData.Extensible.LeagueData.Extensible.UnionData.Extensible.InclusionData.Extensible.RecordData.ExtensibleMerge++MapMapSuccSuccLookupToInttheIntNatSDNatDNatZeroTailHalfCheck AmbiguousMissing ExpectingMember membership∈NavNavRNavLHerePositionord runPositioncomparePositionnavigateherenavNextnavLnavR lemmaHalfTail:|UnionAthoistembed<:|exhaustpickedForall generateForGenerategenerate ClassComp:*TreeNilhheadhtailhuncons<:*hmap*++*hzipWith hzipWith3hfoldMap htraversehlookupsectorsectorAtMatchrunMatchclausemapMatchmatchcaseOfK1getK1OneOfAllOfK0getK0<%pluckbury<%|recordrecordAt) $fShowField