Tour of our 250k line Clojure codebase
&gt; Detecting an error when creating a record is much better than when using it later on, as during creation you have the context needed to debug the problem.<p>This is a great insight no matter what language or framework you&#x27;re operating in. Laziness has its virtues, but invariants, validity checks, run-time type checks, etc. should all be performed as early (and often) as possible - it&#x27;s much easier to debug issues when the are proximate to an object or structure being created or modified, then when that data type is being used much later.