+E      !"#$%&'()*+,-./0123456789:;<=>?@ABCD experimentalekmett@gmail.com Safe-Infered2n + 2 2n + 1 0 . EFGHIJKLMNOPQRST    % EFGHIJKLMNOPQRST Safe-Infered<traverse both containers, interleaving effects for fairness 8fold both containers, interleaving results for fairness !<traverse both containers, interleaving effects for fairness #<traverse both containers, interleaving effects for fairness $8fold both containers, interleaving results for fairness %<traverse both containers, interleaving effects for fairness  !"#$% !"#$%"# !$% !"#$% experimentalekmett@gmail.com Safe-Infered&'()UVWXYZ[\]^_`abcdefghi&'()&'()&'()UVWXYZ[\]^_`abcdefghi experimentalekmett@gmail.com Safe-Infered*+,-jklmnopqrstuvwxyz{|}~*+,-*+,-*+,-jklmnopqrstuvwxyz{|}~ experimentalekmett@gmail.com Safe-Infered././././ experimentalekmett@gmail.com Safe-Infered<0Lift a memoizer to work with one more argument. =AMemoize a binary function, on its first argument and then on its 7 second. Take care to exploit any partial evaluation. >BMemoize a ternary function on successive arguments. Take care to ! exploit any partial evaluation. ?,Apply a unary function inside of a tabulate @-Apply a binary function inside of a tabulate A.Apply a ternary function inside of a tabulate J0123456789:;<=>?@A0123456789:;<=>?@A5678<;=>?@A:923401D0123456789:;<=>?@A experimentalekmett@gmail.com Safe-InferedBCD0123456789:;<=>?@ABCDBCDBCD       !"#$%&'())*+,,-.//00123456789:;<=>?@AABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~representable-tries-2.2Numeric.Nat.ZerolessData.Traversable.Fair$Data.Functor.Representable.Trie.List&Data.Functor.Representable.Trie.Either$Data.Functor.Representable.Trie.BoolData.Functor.Representable.TrieControl.Monad.Reader.TrieFinfromFinNatfromNatZerolessindcaseNatReverse:*:CompareGTEQLT:+:PredSuccN64N32N16N8N1D2D1D0nat foldMapBoth traverseBoth foldMapBoth1 traverseBoth1foldMapWithKeyBothtraverseWithKeyBothfoldMapWithKeyBoth1traverseWithKeyBoth1ListTrienilcons EitherTrieleftrightBoolTrieEntry:->:TrierunTrieHasTrieBaseTrieembedKey projectKeyuntrietriememomupmemo2memo3inTrieinTrie2inTrie3 ReaderTrieTrunReaderTrieT $fEnumFin $fBoundedFin$fNumFin$fOrdFin$fEqFin $fShowFin $fEnumNat $fBoundedNat $fShowNat$fOrdNat$fEqNat $fPositiveD2 $fPositiveD1 $fZerolessD2 $fZerolessD1 $fZerolessD0$fRepresentableListTrie$fLookupListTrie$fAdjustableListTrie$fIndexableListTrie$fDistributiveListTrie$fTraversableWithKey1ListTrie$fTraversableWithKeyListTrie$fFoldableWithKey1ListTrie$fFoldableWithKeyListTrie$fTraversable1ListTrie$fTraversableListTrie$fFoldable1ListTrie$fFoldableListTrie$fKeyedListTrie$fZipWithKeyListTrie $fZipListTrie$fMonadListTrie$fBindListTrie$fApplicativeListTrie$fApplyListTrie$fFunctorListTrie$fRepresentableEitherTrie$fLookupEitherTrie$fAdjustableEitherTrie$fIndexableEitherTrie$fDistributiveEitherTrie$fTraversableWithKey1EitherTrie$fTraversableWithKeyEitherTrie$fFoldableWithKey1EitherTrie$fFoldableWithKeyEitherTrie$fTraversable1EitherTrie$fTraversableEitherTrie$fFoldable1EitherTrie$fFoldableEitherTrie$fZipWithKeyEitherTrie$fZipEitherTrie$fKeyedEitherTrie$fMonadEitherTrie$fBindEitherTrie$fApplicativeEitherTrie$fApplyEitherTrie$fFunctorEitherTrie$fMonoidEitherTrie$fSemigroupEitherTrie$fRepresentableBoolTrie$fLookupBoolTrie$fAdjustableBoolTrie$fIndexableBoolTrie$fDistributiveBoolTrie$fTraversableWithKey1BoolTrie$fTraversableWithKeyBoolTrie$fFoldableWithKey1BoolTrie$fFoldableWithKeyBoolTrie$fTraversable1BoolTrie$fTraversableBoolTrie$fFoldable1BoolTrie$fFoldableBoolTrie$fZipWithKeyBoolTrie $fZipBoolTrie$fKeyedBoolTrie$fMonadBoolTrie$fBindBoolTrie$fApplicativeBoolTrie$fApplyBoolTrie$fFunctorBoolTrie$fHasTrie(,,,) $fHasTrie(,,) $fHasTrieChar$fHasTrieWord64$fHasTrieWord32$fHasTrieWord16$fHasTrieWord8 $fHasTrieWord$fHasTrieInt64$fHasTrieInt32$fHasTrieInt16 $fHasTrieInt8 $fHasTrieInt$fHasTrieIntMap $fHasTrieMap $fHasTrieSeq $fHasTrie[]$fHasTrieMaybe$fHasTrieEither$fHasTrieEntry $fHasTrie(,)$fHasTrieProduct $fHasTrieSum $fHasTrieDual $fHasTrieAny $fHasTrieBool $fHasTrie() $fExtend:->: $fComonad:->:$fMonadReadera:->: $fMonad:->: $fBind:->:$fApplicative:->: $fApply:->: $fShow:->: $fOrd:->:$fEq:->:$fTraversableWithKey1:->:$fTraversable1:->:$fFoldableWithKey1:->:$fFoldable1:->:$fTraversableWithKey:->:$fTraversable:->:$fFoldableWithKey:->:$fFoldable:->: $fKeyed:->: $fFunctor:->:$fAdjunctionEntry:->:$fZipWithKey:->: $fZip:->:$fAdjustable:->:$fRepresentable:->:$fDistributive:->:$fIndexable:->: $fLookup:->:$fFunctorEntry$fMonadWriterwReaderTrieT$fMonadIOReaderTrieT$fComonadReaderTrieT$fExtendReaderTrieT $fTraversableWithKey1ReaderTrieT$fTraversableWithKeyReaderTrieT$fTraversable1ReaderTrieT$fTraversableReaderTrieT$fFoldableWithKey1ReaderTrieT$fFoldableWithKeyReaderTrieT$fFoldable1ReaderTrieT$fFoldableReaderTrieT$fRepresentableReaderTrieT$fLookupReaderTrieT$fAdjustableReaderTrieT$fIndexableReaderTrieT$fKeyedReaderTrieT$fZipWithKeyReaderTrieT$fZipReaderTrieT$fDistributiveReaderTrieT$fMonadTransReaderTrieT$fMonadReaderaReaderTrieT$fMonadReaderTrieT$fBindReaderTrieT$fApplicativeReaderTrieT$fApplyReaderTrieT$fFunctorReaderTrieT