Split up R and W in macros
All tests pass, though with ugly `Generated` import