!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(+-./234=HJKM Poly-kinded Maybe 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 number Converts type naturals into ."Type level binary number&Type-level tail'Interleaved list(FindType types*Unicode flipped alias for 7+!Ensure that the first element of xs is x33 k v xs is essentially identical to  (k :> v) " xs , but the type v is inferred from k and xs.5The kind of key-value pairs9The position of x in the type level set xs.; Generates a 92 that corresponds to the given ordinal (0-origin).<Remember that  Member xs x from 9.=/Embodies a type equivalence to ensure that the 9 points the first element.> Compare two 9s.?PRIVILEGED: Navigate a tree.@The 9 points the first elementAThe next membershipBDescribes the relation of 9 within a treeCDescribes the relation of 9 within a treeDGHC can't prove thisEGHC can't prove this8 !"#$%&'()*+,-./0123456789:;<=>?@ABCDE< !"#$%&'()*+,-./0123456789:;<=>?@ABCDE,9::;=>78<*(5634-./210+,?@ABC"%$# !')&DE* !"%$#&'()*+,-./2103456789:;<=>?@ABCDE6None!"&'(+2346=HJKMFThis class allows us to use G for both sums and products.HAccessor for an element.ILike H%, but reckon membership from its key.FGHI(*-./0123456789;<FGHIFGHI9;78<*(5634-./210FGHI(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(*+2346=HJKMJ4Guarantees the all elements satisfies the predicate.KO(n) Analogous to M!, but it also supplies a context c x for every elements in xs.LSGiven a function that maps types to values, we can "collect" entities all you want.MO(n), Generate a product with the given function.N The type of extensible products.QO(1) Extract the head element.RO(n)! Extract the tail of the product.S)Split a product to the head and the tail.TAn alias for (U).UO(log n) Add an element to a product.V<Transform every elements in a product, preserving the order. V  "a  V (f . g) "a V f . V g W<Transform every elements in a product, preserving the order.XCombine products.Y for heterogeneous productZ for heterogeneous product[1Map elements to a monoid and combine the results. [ f . V g "a [ (f . g)\<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 ] analog for extensible products^ The dual of \_ The dual of ]`O(log n) Pick up an elemtnt.aFlipped `bV with 9s.c\ with 9s.dThe legacy name for GeThe legacy name for HfPure version of M. V f (f g) "a f (f . g) f (a m) "a m a (f k) "a k gPure version of K.$JKLMNOPQRSTUVWXYZ[\]^_`abcdefgJKLMNOPQRSTUVWXYZ[\]^_`abcdefgNPOUTXQRSVbWYZ[\c]^_`adeLMfJKg JKLMNPOQRSTUVWXYZ[\]^_`abcdefgTUX(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(*+2346=HJKMX hThe extensible sum typekChange the wrapper.lO(1) lift a value.m"Try to extract something you want.n"Try to extract something you want.oO(1) Naive pattern matchpThere is no empty union.q&Embed a value, but focuses on its key.r3A traversal that tries to point a specific element. hijklmnopqr hijklmnopqr hiklmnoprqj hijklmnopqroNone!"&'()+2346=HJKMs%Composition for a class and a wrappertForall upon a wrapperu0Reify a collection of dictionaries, as you wish. stuvwxyz{|}stu u}|{zyxwtsv stuvwxyz{|}(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(+2346=HJKM ~ Similar to , but this focuses on keys.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.~~~~(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(+234=HJKM1Turn a wrapper type into one clause that returns a.ORetrieve the contents so that they matches and pass both to the given function.$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=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.%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!"&'(+23468=HJKM *A ghostly type which spells the field name4When you see this type as an argument, it expects a  FieldLensA. This type is used to resolve the name of the field internally. FieldOptic s; is a type of optics that points a field/constructor named s.The yielding fields can be  Jhttp://hackage.haskell.org/package/lens/docs/Control-Lens-Lens.html#t:LensLenses for s and  Khttp://hackage.haskell.org/package/lens/docs/Control-Lens-Lens.html#t:PrismPrisms for s. ( "foo" = Associate "foo" a xs => Lens' ( xs) a ) "foo" = Associate "foo" a xs => Prism' ( xs) a  The dual of 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 optic from the given name.Generate fields using .  "foo bar" defines: 0foo :: FieldOptic "foo" bar :: FieldOptic "bar"  Shows in field @= value" style instead of the derived one.7(*-./0123456789;<FGHINPU~UNP (c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(+234=HJKMTransformation between effectsWrap a type that has a kind * -> *.Add a new transformation.  (c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone!"&'(+234=HJKMy (*-./0123456789;<FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu~   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                 B extensible-0.3.3Data.Extensible.Internal.RigData.Extensible.InternalData.Extensible.ClassData.Extensible.ProductData.Extensible.SumData.Extensible.DictionaryData.Extensible.InclusionData.Extensible.MatchData.Extensible.PlainData.Extensible.RecordData.Extensible.UnionData.Extensible MergeList getMergedNullableEineNullCompgetCompConst' getConst'K0getK0Lens'viewviews_K0overcompnullable mapNullable$fMonoidMergeList$fShowK0 $fMonadK0$fApplicativeK0MergeConcat++MapSucc KnownPositiontheIntNatSDNatDNatZeroTailHalfFindTypeHead∈NavHereHere FindAssoc Elaborate Elaborated DuplicateMissing Expecting Associate associationAssoc:>Member membership Membership getMemberId mkMembershipremember runMembershipcompareMembershipnavigateherenavNextnavLnavR lemmaHalfTail lemmaMerging ExtensiblepieceAtpiece pieceAssocForall hgenerateForGenerate hgenerate:*TreeNilhheadhtailhuncons<:*<:hmaphtrans*++*hzipWith hzipWith3hfoldMap htraverse hsequencehcollect hdistributehlookuphindex hmapWithIndexhtraverseWithIndexsectorAtsector htabulate htabulateFor:|EmbedAtUnionAthoistembedstrikestrikeAt<:|exhaust embedAssocpicked Instance1 WrapForalllibrary$fInstance1kkchx$fOrd:|$fEq:|$fShow:| $fMonoid:*$fOrd:*$fEq:*$fShow:* IncludeAssoc AssociatedInclude⊆ inclusionshrinkspread coinclusionwrenchretrenchinclusionAssoc shrinkAssoc spreadAssocMatchrunMatch matchWithmapMatchmatchcaseOf_MatchOneOfAllOf<%pluckbury<%| accessing decFieldsdecFieldsDeriving LabelPhantom Labelling FieldName FieldOpticVariantRecordFieldgetField@=<@=> fieldOpticmkFieldGondola runGondolaUniongetUnionK1getK1reunionrung runGondolasMapSuccghc-prim GHC.TypesWord MapSuccKey Remembrance$fKnownPositionNatSDNat$fKnownPositionNatDNat$fKnownPositionNatZero$fOrdMembership$fEqMembership$fShowMembership$fAssociatekkkvxs $fMemberkxsxbaseData.Type.Equalityouterinnerapply gcastWithcastWithtranssymRefl:~: testEquality TestEquality== Data.Proxy asProxyTypeOfProxyKProxyGHC.BaseidGHC.ListzipWithzipWith3 Control.MonadsequencepieceAt_ $fForallkc: $fForallkc[] $fGeneratek: $fGeneratek[]$fExtensiblek*f(->)(->):*$fExtensiblek*fpp:|getAssociation$fAssociatedAssocxs:> $fShowField$fExtensiblekkfLabelPhantomqt$fProfunctorLabelPhantom