maybe we could create a function  Box * listDelitemIntern(BoxedList* self, Box* slice, bool ispop) to share code between listDelitem and listpop2