return first;
// BigInteger.shiftLeft() succumbs to a stack overflow if count
// is Integer.MIN_VALUE, so...
if (count == Integer.MIN_VALUE)
return n.signum() >= 0 ? Fixnum.ZERO : Fixnum.MINUS_ONE;
return number(n.shiftLeft(count));
}
if (second instanceof Bignum) {
BigInteger count = ((Bignum)second).getValue();
if (count.signum() > 0)
throw new ConditionThrowable(new LispError("can't represent result of left shift"));