Lazy traverse instead
Improvements to lazy eval and documentation