Hi! I have to apologize a bit for the long delay; starting grad school and things like that have made me have to scramble to adjust to the new life. But a couple of people have asked me to finish up and wrap up this series, and I think I owe it to them then :) Welcome to the final chapter.
In the last post, we looked deeper into the Auto type, played around with instancing it as familiar typeclasses, saw it as a member of the powerful Category and Arrow typeclasses, and took advantage of this by composing Autos both manually and using proc/do notation, and were freed from the murk and mire of explicit recursion. We observed the special nature of this composition, and saw some neat properties, like local statefulness.
At this point I consider most of the important concepts about working with Auto
covered, but now, we are going to push this abstraction further, to the limits of real-world industrial usage. We’re going to be exploring mechanisms for adding effects and, making the plain ol’ Auto
into something more rich and featureful. We’ll see how to express denotative and declarative compositions using recursively binded Auto
s, and what that even means. It’ll be a trip down several avenues to motivate and see practical Auto usage. Basically, it’ll be a “final hurrah”.
A fair bit of warning — if the last post is not fresh in your mind, or you still have some holes, I recommend going back and reading through them again. This one is going to hit hard and fast :) (Also, it’s admittedly kind of long for a single post, but I didn’t want to break things up into two really short parts.)
As always, feel free to leave a comment if you have any questions, drop by freenode’s #haskell, or find me on twitter :)
All of the code in this post is available for download and to load up into ghci for playing along!
Read more …