Here's a blog entry that some on this list might find interesting: http://kpreid.livejournal.com/7351.html He's using Haskell's arrows (a generalization of monads) to do concatenative programming. -Rod