checkpoint refactoring toward delayed evaluation