return insertCell(l, GLIST_TAIL(l), makeCell(ptr));
 }
 
+GList*
+GListPushCell(GList *l, GListCell* c) {
+       return insertCell(l, GLIST_TAIL(l), c);
+}
+
 GList*
 GListUnshift(GList *l, void *ptr) {
        return insertCell(l, NULL, makeCell(ptr));
 }
 
+GList*
+GListUnshiftCell(GList *l, GListCell* c) {
+       return insertCell(l, NULL, c);
+}
+
 GList*
 GListDelete(GList *l, GListCell *c) {
        if (GLIST_LENGTH(l) <= 0)
 
 
 GListCell*     GListPop(GList *l);
 GList* GListPush(GList *l, void *ptr);
+GList* GListPushCell(GList *l, GListCell* c);
 GListCell*     GListShift(GList *l);
 GList* GListUnshift(GList *l, void *ptr);
+GList* GListUnshiftCell(GList *l, GListCell* c);
 GList* GListInsert(GList *l, GListCell *prev, void *ptr);
 GList* GListDelete(GList *l, GListCell *c);
 GListCell* GListGet(GList *l, int n);