the code for def rules now uses proper graph update to preserve lazyness