Monday, March 10, 2008


I've been barking up the wrong tree. Although the calls that implement the bind function are not tail recursive, the final call in the bind function is, so the monadic code is tail recursive in the larger sense (that is, if the monad calls itself or another monadic function, the call will be a tail call).