Naive lazy dependency graph: dependencies between any attributes are traced and values re-evaluated on demand if any inputs changed, similarly to a spreadsheet program.