úÎéë3      !"#$%&'()*+,-./012 experimentalconal@conal.netSum on unary type constructors #Product on unary type constructors 'Unit type constructor (one inhabitant) Empty/'zero type constructor (no inhabitants)     experimentalconal@conal.netOA derivative, i.e., a one-hole context for a container f (probably a functor).  experimentalconal@conal.net 'Filling and creating one-hole contexts  Fill a hole All extractions ;Location, i.e., one-hole context and a value for the hole. 345678 experimentalconal@conal.net #Derivative, i.e., one-hole context  Fill a hole All extractions 9;Location, i.e., one-hole context and a value for the hole. :;<=>? experimentalconal@conal.net Context for functor fixpoints @AB!" !" !" !" experimentalconal@conal.net#$%&#$%&#$%&#$%&$%& experimentalconal@conal.net'()*'()*(')*'()* experimentalconal@conal.netCDEFG+(Domain types with associated memo tries ,(Representation of trie with domain type a -4Create the trie for the entire domain of a function .?Convert k trie to k function, i.e., access k field of the trie /(List the trie elements. Order of keys (:: k) is always the same. HMemo trie from k to v 0Trie-based function memoizer I0Lift a memoizer to work with one more argument. 1AMemoize a binary function, on its first argument and then on its 7 second. Take care to exploit any partial evaluation. 2BMemoize a ternary function on successive arguments. Take care to ! exploit any partial evaluation. JKLM+,-./012+,-./012+,-./,-./012N         !"#$! "#%&'()*+,-.'(/0123456789:;<$789:;<==>?@@AABCDEFGHfunctor-combo-0.0.2FunctorCombo.FunctorFunctorCombo.DerivativeFunctorCombo.HoleyFunctorCombo.DHoleyFunctorCombo.FixCFunctorCombo.RegularFunctorCombo.LocTFunctorCombo.MemoTrieTypeCompose-0.8.0Control.ComposeinId2inIdunIdinO2inOunO~>O:.IdbaseControl.ApplicativegetConstConst:+:InRInL:*:UnitVoideitherFDerHoleyfillextractLocLocFixFixCupdownRegularPFwrapunwrapLocTContextHasTrieTrietrieuntrie enumeratememomemo2memo3lassocsquishPtweak1 chainRuletweak2 extractGFFixunFixUnopTreeTrieListTrie:->:mupenum'weave enumerateEnumbool