This could go wrong if `start` is negative and `stop` positive, but maybe we ignore that corner case.