Projecting in-place instead of returning a projected copy could be slightly faster, so we should look into allowing this as an option.