@dmitchell I added L36 in f918426 precisely because `location` sometimes _wasn't_ a `Location` and when running the tests some would fail on L37 with `TypeError: replace() takes no keyword arguments`. So you're saying I should revert f918426?