úÎÅ&.      !"#$%&'()*+,-(C) 2015 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> experimental non-portable Trustworthy!"HM Represented Hyperfunctions. is a faithful functor, so. f "a . g implies f "a g  phi ( f h) "a phi $ \g -> f $ g ( phi h) Memoizing catamorphism . f "a  f (. f)  ( f q) k "a f ( k q)  f p .  g q "a  (f . g) (p . q) Unroll a hyperfunction-Re-roll a hyperfunction using Lambek's lemma.   f "a  f /   (. f) "a 0 f   ( f q) "a f (  q)   ( f p . q) "a f (  (q . p)) = f ( q p)   . . "a /   h a "a  h (1 a)   ( f q) "a f  "http://arxiv.org/pdf/1309.5135.pdfUnder "nice" conditions   .   "a /     (C) 2015 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> experimental non-portable Trustworthy-HM  f g "a   (f . g) . f "a  f (. f)  / / "a _|_ . is a faithful functor, so . f "a . g implies f "a gFFrom "Generalizing the augment combinator" by Ghani, Uustali and Vene.  phi ( f h) "a phi $ \g -> f $ g ( phi h)   f p .  g q "a  (f . g) (p . q)  ( f p) q "a f ( q p)   (. f) "a 0 f   ( f q) "a f (  q)   ( f p . q) "a f (  (q . p)) = f ( q p) ! ! ( f q) "a f ! is a left inverse for .: ! 2 . "a / # "http://arxiv.org/pdf/1309.5135.pdfUnder nice conditions: " . # "a /  !"#$%&'()*+,-  !"#-,+*)('&%$ !"# !"#$%&'()*+,-3          !"#$hyperfunctions-0Control.Monad.Hyper.RepControl.Monad.HyperHyperanacatacata'pushunrollrollinvokeuninvokerunprojectfoldbuild$fCostrongHyper $fStrongHyper$fProfunctorHyper$fMonadZipHyper $fMonadHyper$fApplicativeHyper$fFunctorHyper$fArrowLoopHyper $fArrowHyper$fCategory*Hyperbase Control.ArrowarrControl.Categoryid Data.FunctionfixControl.Applicativepure.