In Non-strict memoization, I sketched out a means of memoizing non-strict functions. I gave the essential insight but did not show the details of how a nonstrict memoization library comes together. In this new post, I give details, which are a bit delicate, in terms of the implementation described in Elegant memoization with higher-order types.
Near the end, I run into some trouble with regular data types, which I don’t know how to resolve cleanly and efficiently.
- 2010-09-10: Fixed minor typos.