I guess so. That's a shame as it pushes the problem to the caller, and was hoping to keep it transparent - the idea would be to use be able to pass the lazy value to, say, a template engine and only have it evaluated on output, but the template engine (or it's user) is able to be blissfully unaware of what's happening behind the scenes.