Don't need to protect args to CONS
Make it more obvious when evaluation happens
Add some utils for inspecting promises
Convert bare promise to lazy obj