> Are you sure this makes sense? The act of throwing an exception > writes to (thread local) memory. This seems like it would always be a > side effect. Memoization is a side-effect too, but it doesn't prevent the function from being pure.