[Haskell] ANNOUNCE: category-extras 0.2
dan.doel at gmail.com
Sun Apr 27 22:34:13 EDT 2008
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:
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
* 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
- 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.
darcs: darcs get http://code.haskell.org/~dolio/category-extras/
More information about the Haskell