ANNOUNCE: category-extras 0.2

Hello, all. After quite a bit of collaboration with Edward Kmett over the past few days, I've rolled up a new release of category-extras. Perhaps the most significant addition is the generalized hylomorphism he first blogged about here: http://comonad.com/reader/2008/generalized-hylomorphisms/ added to Control.Recursion under the name 'refoldWith', as all other combinators in the library turn out to be special cases of it. Other changes include: * Data.BranchingStream moves to Control.Comonad.Cofree, and various functions are renamed accordingly, as it is the cofree comonad of a functor: Cofree F A = nu X. A * FX * Similarly, a new module has been added: Control.Monad.Free, the free monad of a functor. Free F A = mu X. A + FX * Several new recursion combinators have been added to Control.Recursion. The generalized hylomorphism 'refoldWith' was mentioned above, but we now also have: - Futumorphisms (futu, g_futu) - Chronomorphisms (chrono, g_chrono; name coined by edwardk; they're a combination of a histomorphism and a futumorphism). - Dynamorphisms (dyna, g_dyna; formalize dynamic programming) - Codynamorphisms (codyna, g_codyna; these apparently don't appear in any literature (like chronomorphisms), and we didn't attempt to give them a name, but once one sees dynamorphisms in terms of chronomorphisms/ g_hylomorphisms, this becomes fairly obvious). As can be seen, there's quite a glut of these combinators, and they all correspond to choices of distributive laws for refoldWith, so in the future, it may be better to talk about those directly. For now, though, we have lots of functions with fancy-sounding names. I believe those are the significant updates for this release. Enjoy. hackage: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/category-extras-0... darcs: darcs get http://code.haskell.org/~dolio/category-extras/ -- Dan
participants (1)
-
Dan Doel