CU?@ABCDEFGHIJKLMNOPQRSTUVWX None!"&'(+246=JKM  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./Embodies a type equivalence to ensure that the  points the first element.! YZ[\]^_     YZ[\]^_(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(*+234=HJKMThe extensible sum typeChange the wrapper.O(log n) lift a value.O(1) Naive pattern matchThere is no empty union. 3A traversal that tries to point a specific element.  `a   `a(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.b&Composition for a class and a wrapper,%The extensible product typec Extract the tail of the product.()Split a product to the head and the tail.)O(log n) Add an element to a product.*:Transform every elements in a union, preserving the order.+d for heterogeneous product,e for heterogeneous product-Combine all elements..Traverse all elements./Pick up an elemtnt.0O(log n) A lens for a specific element.1O(log n)( A lens for a value in a known position.&!"#$fghijklmnb%&'c()*+,-./0o1pqrstuvwx!"#$%&'()*+,-./01%'&)(*+,-./01#$!"!"#$fghijklmnb%'&c()*+,-./0o1pqrstuvwx)(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone'+=JK21Turn a wrapper type into one clause that returns a.5$Applies a function to the result of 2.6O(log n) Perform pattern matching.7Flipped 62345672345672346572345677(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone(+JK8 Just a value.;O(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.@#Prepend a clause for a plain value. 89:;<=>?@y 89:;<=>?@ 89:;<=>?@89:;<=>?@y;@(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone(+HJKMAFlipped Whttp://hackage.haskell.org/package/kan-extensions-4.1.0.1/docs/Data-Functor-Yoneda.htmlYonedaD)A much more efficient representation for Union of zs.GO(log n) Embed a functor.HFuse A" to retract a substantial functor.I{ for the content.JPrepend a clause for 2 (A x) as well as (<?!).K fast fmap ABCDEFGHIJK ABCDEFGHIJ DEFKGABCHIJABCDEFGHIJKJ(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone !"(+234JKLA wrapper for O a ':|'' fs for having a kind * -> *.OWrap a type that has a kind * -> *.R+Prepend a clause for a parameterized value.SO(log n) Lift a value.| slow fmap LMNOPQRS|}~LMNOPQRSOPQRLMNS LMNOPQRS|}~R(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone&+3JKMTys contains xsUUnicode alias for TV'Reify the inclusion of type level sets.W O(m log n) Select some elements.X O(m log n) Embed to a larger union.TUVWXTUVWXUTVWXTUVWX (c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone+JK1  !"#$%&'()*+,-./0123456789:;<=>?@TUVWX      !"#$%&'()*+,-./0123456789:;<<=>?@AABCDEFGHIIJKKLMNOPQRRSTTUVWXYZ[\]^_`abcdefghighjkklmmnoopqrstuvwxyz{g|}g|~extensible-0.2Data.Extensible.InternalData.Extensible.SumData.Extensible.ProductData.Extensible.MatchData.Extensible.PlainData.Extensible.LeagueData.Extensible.UnionData.Extensible.InclusionData.ExtensibleSuccLookupRecordtheIntNatNotFoundSDNatDNatZeroTailHalfMember membership∈NavNavRNavLHerePosition runPositioncomparePositionnavigateherenavLnavR lemmaHalfTail:|UnionAthoistembed<:|exhaustpickedForall generateForGenerategenerate:*TreeNilhuncons<:*hmaphzipWith hzipWith3hfoldMap htraversehlookupsectorsectorAtMatchrunMatchmapMatchmatchcaseOfK0getK0<%pluckbury<%|record