Has anyone ever tried to make a purely functional, lazy language implementation in which _every_ function is implicitly cached? The compiler optimization shifts in that case from "when should F be cached" to "when is clearly not worth bothering caching F" which is an easier (but still open-ended) problem. -t