[-L      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  (c) Conal Elliott 2010BSD3conal@conal.net experimental Safe-Inferred3=JK(c) Conal Elliott 2010BSD3conal@conal.net experimentalNone *-./<=JK Strict sum functorStrict product functorAdd a bottom to a typeSum on unary type constructors""Product on unary type constructors$&Unit type constructor (one inhabitant)%,Empty/zero type constructor (no inhabitants)'The unit value*Like +Like 1#Case analysis on strict sum functor' !"#$%&'()*+,-./01.  !"#$%&'()*+,-./01. %&$' ! ,"#)(*+ 1-./0! "#$%&'()*+,-./01"#(c) 2012 Tabula, Inc.conal@tabula.com experimentalNone3JK2Parallel scans. 3* accumulates moving left-to-right, while 4" accumulates moving right-to-left.23456789:;< 23456789:;< 234659:78;<23456789:;<(c) 2012 Conal Elliottconal@tabula.com experimentalNone+-=JKUnary transformation= Uniform pairs=>?@ABCDEFGHIJKLM=>?@ABCDEFGHIJKLM=>?@ACBDEFGHIJKLM=>?@ABCDEFGHIJKLM>(c) Conal Elliott 2010GPL-3conal@conal.net experimentalNone*3JKNNNN(c) Conal Elliott 2010BSD3conal@conal.net experimentalNone=JKONA derivative, i.e., a one-hole context for a container f (probably a functor).OOOO(c) Conal Elliott 2010BSD3conal@conal.net experimentalNone=EJKP&Filling and creating one-hole contextsS:Location, i.e., one-hole context and a value for the hole.TAlternative interface for Q.PQ Fill a holeRAll extractionsSTPQRSTSPQRTPQRST(c) Conal Elliott 2010BSD3conal@conal.net experimentalNone=EJKV"Derivative, i.e., one-hole contextW Fill a holeXAll extractions:Location, i.e., one-hole context and a value for the hole.YAlternative interface for W. UVWXYUVWXYUVWXY UVWXY (c) Conal Elliott 2010BSD3conal@conal.net experimentalNoneZ2Zipper for a functor tree. Also called "location"[Context for functor fixpointsContext for a regular type\%Move upward. Error if empty context.] Variant of \.  if empty context.Z[\]^Z[\]^[Z\]^Z[\]^ (c) Conal Elliott 2010BSD3conal@conal.net experimentalNone3=JK_2Zipper for a regular type. Also called "location"`Context for a regular typea%Move upward. Error if empty context.b Variant of a.  if empty context._`abc_`abc`_abc_`abc (c) Conal Elliott 2010-2012BSD3conal@conal.net experimentalNone !"*-3=JK g'Domain types with associated memo triesh(Representation of trie with domain type ai3Create the trie for the entire domain of a functionj>Convert k trie to k function, i.e., access k field of the triekMemo trie from k to vlIndexing. Synonym for j.(List the trie elements. Order of keys (:: k) is always the same.nTrie-based function memoizer/Lift a memoizer to work with one more argument.owMemoize a binary function, on its first argument and then on its second. Take care to exploit any partial evaluation.pbMemoize a ternary function on successive arguments. Take care to exploit any partial evaluation.Edefghijklmnopqrdefghijklmnopqrghijklnopmqrdfe>dfeghijklmnopqrk (c) Conal Elliott 2010BSD3conal@conal.net experimental Safe-InferredJKs Strict sumv Strict pairxCurry on strict pairsyUncurry on strict pairsz%Case analysis for strict sums. Like .stuvwxyzstuvwxyzvwxysutzsutvwxyzsvw (c) Conal Elliott 2010BSD3conal@conal.net experimentalNone *-3=JK {'Domain types with associated memo tries|(Representation of trie with domain type a}3Create the trie for the entire domain of a function~>Convert k trie to k function, i.e., access k field of the trieStrict memo trie from k to v3Create the trie for the entire domain of a function>Convert k trie to k function, i.e., access k field of the trieTrie-based function memoizer/Lift a memoizer to work with one more argument.wMemoize a binary function, on its first argument and then on its second. Take care to exploit any partial evaluation.bMemoize a ternary function on successive arguments. Take care to exploit any partial evaluation.+{|}~     {|}~{|}~&{|}~      !"#$%&'()**++,-./00123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a]\^_a b c d e f b c d e f g h i j k l m n o p q r s t u v w x y y z { | j } ~  n q r s`          l m   k k  functor-combo-0.3.6FunctorCombo.FunctorFunctorCombo.RegularFunctorCombo.ParScanFunctorCombo.PairFunctorCombo.LubFFunctorCombo.DerivativeFunctorCombo.HoleyFunctorCombo.DHoleyFunctorCombo.ZipperFixFunctorCombo.ZipperRegFunctorCombo.StrictMemoFunctorCombo.StrictFunctorCombo.NonstrictMemoTypeCompose-0.9.10Control.ComposeinId2inIdunIdinO2inOunO<~~>O:.IdbaseControl.ApplicativegetConstConstRegularPFwrapunwrapEncodeFEncencodedecode:+:!InR'InL':*:!LiftunLift:+:InRInL:*:UnitVoidvoidFunitasPairasProdfstFsndFeitherFpairFunPairFinProdinProd2eitherF'Scan prefixScan suffixScanSufScanOPreScanO preScanTweak sufScanTweak prefixScanEnc suffixScanEnc prefixSums suffixSumsPair:#fstPsndPswapPtoPfromPinPfirstPsecondPzipAunzipAinZipAcurryPuncurryPpreScanPsufScanPHasLubFDerHoleyfillCextractLocfillZipperContextupup'downTrieTreeBLHasTrieTrietrieuntrie:->:!idTriememomemo2memo3onUntrie onUntrie2:+!Right'Left':*!curry'uncurry'either'STriesTriesUntrie Data.TuplefstsndjoinP$fTraversable:*: $fFoldable:*: $fMonad:*:$fApplicative:*:$fTraversable:+: $fFoldable:+: $fFunctorVoidzipunzipassocLassocRadjustLadjustR$fScan:. $fScan:*: $fScan:+:$fScanId $fScanConstUnop $fScanPair $fEncodeFPair$fTraversablePair $fMonadPair$fApplicativePair$fFoldablePairlubF $fHasLubF:*: $fHasLubFId TFCo:R:Der:. TFCo:R:Der:*: TFCo:R:Der:+: TFCo:R:DerIdTFCo:R:DerConstlassocsquishPtweak1 chainRuletweak2 extractGF $fHoley:. $fHoley:*: $fHoley:+: $fHoleyId $fHoleyConst Data.MaybeNothingFixunFix enumeratemupTreeTrieListTrieweaveboolfibft1f1trie1atrie1btrie1ctrie1dtrie1etrie1ftrie1gtrie1htrie1ift2altsf2apVpureVuntrieVtrieV $fHasTrieVec$fTraversableTrieTree$fFoldableTrieTree$fApplicativeTrieTree$fFunctorTrieTree $fRegularTree $fRegular[] $fHasTriePair $fHasTrie(->)$fHasTrieInteger $fHasTrieInt$fHasTrieTreeTrie $fHasTrieTree$fHasTrieListTrie $fHasTrie[] $fHasTrie:. $fHasTrie:+: $fHasTrie:*: $fHasTrieId$fHasTrieConst$fHasTrie(,,,) $fHasTrie(,,) $fHasTrieBool $fHasTrie(,)$fHasTrieEither $fHasTrie() Data.Eithereither:-> ListSTriebottomsumToFfToSum $fHasTrie:+:! $fHasTrie:*:! $fHasTrieLift $fHasTrie:*! $fHasTrie:+!