ZedneWeb
This tagline is false

Category extras

By Dave Menendez
Monday, July 26, 2004, at 12:55 AM

Summary: The Haskell package no one demanded!

I’ve posted a set of Haskell modules I’m calling Category Extras. Over the past few weeks, I’ve been diving into Category Theory, which is one of those fundamental unifying mathematical thingys. At this point, I’ve learned enough that I no longer find it incomprehensible—merely baffling.

Anyhoo, it turns out that a lot of categorical notions can be applied to programming languages. In particular, the Functor and Monad classes come directly from category theory. (I’ve put some notes about functors up at the Haskell wiki.)

Category Extras is a side-effect of my learning process. As I picked stuff up, I often would write or copy code demonstrating the ideas. This package is a collection of the more generic parts.

Documentation is sparse right now. In particular, I want to add some acknowledgements to the recursion combinators documentation, as a lot of it comes from the paper Recursion schemes from comonads by Tarmo Uustalu, Varmo Vene, and Alberto Pardo. In particular, they came up with the generalized catamorphism I called foldWith in the module.

On the other hand, I haven’t seen the generalized apomorphism (g_apo) or generalized, monad-parameterized anamorphism (unfoldWith) in my brief survey of the material. (Wouldn’t it be cool if they were original to me? But I doubt that’s possible.)

Since most of the code consists of obvious implementations of ideas thought up by others, I’m tentatively releasing it into public domain. Not that it would do anyone much good. I mean, how often do you need to use a comonad?