Hi, out of curiosity, I tried (alexandria:binomial-coefficient 2000000000000 20) on a x86 machine (in SBCL between 1.1.18 and master with debug = 3, safety = 3 compiler policy) which resulted in the below session. Looking at %MULTIPLY-RANGE, I noticed that BISECT-BIG was never called. Calling BISECT-BIG when at least one argument is not a fixnum fixes the problem. The attached patch does that and adds a test case to the test suite. Kind regards, Jan CL-USER(5): (alexandria:binomial-coefficient 2000000000000 20) debugger invoked on a TYPE-ERROR in thread #<THREAD "main thread" RUNNING {B4748E9}>: The value 1999999999981 is not of type (INTEGER 1 536870911). Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL. restarts (invokable by number or by possibly-abbreviated name): 0: [ABORT] Exit debugger, returning to top level. (ALEXANDRIA.0.DEV::%MULTIPLY-RANGE 1999999999981 2000000000000) ; file: /home/jmoringe/code/cl/alexandria/numbers.lisp source: (BISECT I J) 0] 0 [ applying change in numbers.lisp ] CL-USER(6): (ql:quickload :alexandria) To load "alexandria": Load 1 ASDF system: alexandria ; Loading "alexandria" [package alexandria.0.dev]................ (:ALEXANDRIA) CL-USER(7): (alexandria:binomial-coefficient 2000000000000 20) 430998041177272843950422879590338454856322722740402365741730748431530623813012487773080486408378680853987520854296499536311275320016878730999689934464711239072435565454954447356845336730100919970769793030177499999999900000000000