Add integer?/float?/exact?/inexact? predicates (Number.isInteger check). Add truncate/remainder/modulo/random-int/exact->inexact/inexact->exact/parse-number. inexact->exact uses Math.round (rounds to nearest, matching OCaml). Fix sx_server.ml epoch/blob/io-response protocol to accept Integer as well as Number — parser now produces Integer for whole-number literals. JS: 60 new passing tests (1880→1940). OCaml: 4874/394 baseline unchanged. Note: 6 tests fail in JS due to platform limitation (JS cannot distinguish float 2.0 from integer 2). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
294 KiB
294 KiB