I'm not sure I understand this use case. What's the point of accepting a `null` rewriter? Shouldn't we rather throw?