p      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(+-./234=HJKM Poly-kinded Maybe1Turn 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=HJKMTType level mergingType level concat Type level ++Type level mapIdeally, it will be 'Map Succ'The successor of the numberConverts 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./Unicode flipped alias for ,0!Ensure that the first element of xs is x4The extensible product type9 Lookup types:The position of x in the type level set xs.< Generates a :2 that corresponds to the given ordinal (0-origin).=/Embodies a type equivalence to ensure that the : points the first element.>PRIVILEGED: Compare two :s.?PRIVILEGED: Navigate a tree.@The : points the first elementAThe next membershipBDescribes the relation of : within a treeCDescribes the relation of : within a treeDGHC can't prove thisEGHC can't prove this9 !"#$%&'()*+,-./0123456789:;<=>?@ABCDE> !"#$%&'()*+,-./0123456789:;<=>?@ABCDE.:;;=><01?@ABC465,-/!$#" '92387&.%DE(+*). !$#"%&'()*+,-./0123465789:;<=>?@ABCDENone!"&'(+234=HJKMFGHIJFGHIJFHGIJFHGIJG(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(*+234=HJKMKThe extensible sum typeMChange the wrapper.NO(1) lift a value.OO(1) Naive pattern matchPThere is no empty union.Q3A traversal that tries to point a specific element.KLMNOPQKLMNOPQKLMNOPQKLMNOPQO(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(*+2346=HJKMR4Guarantees the all elements satisfies the predicate.SO(n) Analogous to f!, but it also supplies a context c x for every elements in xs.TSGiven a function that maps types to values, we can "collect" entities all you want.UO(n)- generates a product with the given function.VO(1) Extract the head element.WO(n)6 Extract the tail of the product. FIXME: unsafeCoerceX)Split a product to the head and the tail.YAn alias for (Z).ZO(log n) Add an element to a product.[<Transform every elements in a product, preserving the order.\<Transform every elements in a product, preserving the order.]Combine products.^ for heterogeneous product_ for heterogeneous product`Combine all elements.aTraverse all elements.bO(log n) Pick up an elemtnt.c[ with its indices.dO(log n) A lens for a specific element.eO(log n)( A lens for a value in a known position.fPure version of U.gPure version of S.hTurn a product into F.iBuild a product from F.RSTUVWXYZ[\]^_`abcdefghi456RSTUVWXYZ[\]^_`abcdefghi465ZY]VWX[\^_`acbdeTUfRSgihRSTUVWXYZ[\]^_`abcdefghiYZ]None!"&'()+2346=HJKMj%Composition for a class and a wrapperkForall upon a wrapperlReifiable classesm;The associated dictionary which subsumes essential methods.n Fetch the m.$jklmnopqrstuvwxyz{|}~jklmnopqrstuvwxyz$lmnyzwxuvrstopq~}|kj{jklmn{|}~opqrstuvwxyz(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(+234=HJKMTWrap a type that has a kind * -> *.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.+Prepend a clause for a parameterized 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!"&'(+234=HJKMFlipped Qhttp://hackage.haskell.org/package/kan-extensions/docs/Data-Functor-Coyoneda.htmlCoyoneda A union of * -> * types.O(log n) Embed a value. for the content.Prepend a clause for  ( x) as well as (<?!). fast fmap  (c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(+234=HJKMFlipped Whttp://hackage.haskell.org/package/kan-extensions-4.1.0.1/docs/Data-Functor-Yoneda.htmlYoneda)A much more efficient representation for Union of s.O(log n) Embed a functor.Fuse " to retract a substantial functor. for the content.Prepend a clause for  ( x) as well as (<?!). fast fmap  (c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(+234=HJKM ys contains xsUnicode alias for 'Reify the inclusion of type level sets. O(m log n) Select some elements.!A lens for a subset (inefficient)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. )*+,-/:<=:=/,-+*)< (c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(+23468=HJKM "An internal class to characterize +A ghostly type which reifies 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.  s = (s " xs) => Lens' ( xs) ( s) 1The 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. ;[recordType|foo bar baz|] --> Record '["foo", "bar", "baz"] Shows in field @= value" style instead of the derived one.()*+,-/46:<=YZZY46  (c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(+234=HJKMr )*+,-/456:<=KLMNOPQRSTUVWXYZ[\]^_`abcdefghi !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                   D  extensible-0.2.10Data.Extensible.Internal.RigData.Extensible.InternalData.Extensible.Internal.HListData.Extensible.SumData.Extensible.ProductData.Extensible.DictionaryData.Extensible.PlainData.Extensible.MatchData.Extensible.UnionData.Extensible.LeagueData.Extensible.InclusionData.Extensible.RecordData.Extensible MergeList getMergedNullableEineNullMatchrunMatchConst' getConst'K0getK0Lens'viewviewsovernullable mapNullable$fMonoidMergeList$fShowK0 $fMonadK0$fApplicativeK0MergeConcat++MapMapSuccSuccToInttheIntNatSDNatDNatZeroTailHalfLookupCheck AmbiguousMissing ExpectingMember membershipHead∈NavHereHere LookupTree lookupTree:*TreeNilDiv2Pred ListIndex Membership getMemberIdord runMembershipcompareMembershipnavigateherenavNextnavLnavR lemmaHalfTail lemmaMergingHListHConsHNilmergesplit:|UnionAthoistembed<:|exhaustpickedForall generateForAGenerate generateAhheadhtailhuncons<:*<:hmaphtrans*++*hzipWith hzipWith3hfoldMap htraversehlookup htabulatesectorsectorAtgenerate generateFortoHList fromHList Instance1 WrapForall Reifiable Dictionarylibrary DictBinarygetGetgetPut DictMonoid getMempty getMappendDictOrd getCompareDictEqgetEqDictShow getShowsPrec$fInstance1kkchx$fOrd:|$fEq:|$fShow:| $fBinary:* $fMonoid:*$fOrd:*$fEq:*$fShow:*TFCo:R:DictionarykBinaryhx$fReifiableBinaryTFCo:R:DictionarykMonoidhx$fReifiableMonoidTFCo:R:DictionarykOrdhx$fReifiableOrdTFCo:R:DictionarykEqhx $fReifiableEqTFCo:R:DictionarykShowhx$fReifiableShowK1getK1OneOfAllOf<%pluckbury<%|recordrecordAt)