Haskell on a Horse is based on arrows. Mostly it uses standard arrow transformers from the arrows package, like ErrorArrow, ReaderArrow, and the like. The only Arrow transformers I’ve written have been MaybeAutomaton, covered in the last post, and LabeledArrow.
LabeledArrow is a slight twist on ReaderArrow, which solves a fundamental problem of web programming - synchronizing input names.
I’m very happy to have released Haskell on a Horse. I’ve worked on the project for several months now, and I’m proud of the result.
The release was not entirely smooth. My first version ran into serious performance problems, actually forcing me to restart the server once a minute at the peak of traffic. This led one wit, on the ‘Hacker News’ site, to remark that I really was trying to imitate rails..
Version 0.2 fixes the performance issues. it’s been running smoothly for about a day now, serving several thousand requests. I’m rather pleased with my solution, so I thought I’d write a post explaining it.
Continue reading