add a clear default that returns the default value before clearing it
revise lazy to just be a marker that tweaks when the default fires