do we know if the slowdown from checking if the longs fit in an int is worth it here? I mean in theory subclasses could implement this without the guessing (the compact one definitely could).