partial implementation for recursive def rules