How about a `copyWithNewOffset(ReadHeadInfo p, int offset)`?