Add safe integers
Description of the change
https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-number.issafeinteger
Add maxSafeInteger, minSafeInteger, and isSafeInteger.
Checklist:
- [x] Added the change to the changelog's "Unreleased" section with a reference to this PR (e.g. "- Made a change (#0000)")
- [ ] Linked any existing issues or proposals that this pull request should close
- [ ] Updated or added relevant documentation
- [ ] Added a test for the contribution (if applicable)
Same questions I raised in your other PR:
- Since this is adding FFI, how does this impact other backends?
- Since this is adding FFI, it's technically a breaking change for other backends.
Is this the right library for these constants? An Int is a 32-bit signed integer and this library provides "Functions and bitwise operators for the Int numeric type". Whereas these constants are Number and can't be represented as an Int.
They could be added to Data.Number, although we don't have any indication that they are needed over there.
A sensible place might be in the Int53 library but that already has a Bounded instance and so bottom and top are defined.
Given that this functionality is already available in Int53 I think this PR can be closed without merging.