This is already mostly done in the eval branch, but should be able to steps as either a function or a quoted expression. Protocol could help here.