} while (!(head = head.remove()).isNull());
next = next.getFirstConsCell();
if ((Character) current.getCar() != '-') {
head = current.getPreviousConsCell();
do {
previous = previous.isNull() ? head.singular() : new ConsCell(head.getCar(), head.getCarType(), previous, ConsType.CONS_CELL);
if ((head = head.remove().getPreviousConsCell()).getCarType() == ConsType.OPERATOR && (Character) head.getCar() == '^')
previous = new ConsCell('^', ConsType.OPERATOR, previous, ConsType.CONS_CELL);
else
break;
} while (!(head = head.remove().getPreviousConsCell()).isNull());