All of the things and none of the sleep
GMPrat is a type that works (un)surprisingly well, until you start changing the view.
ParanoidNumbers explode more dramatically but actually simplify for certain things.
Simplify seems to end up adding operations that don't cancel twice, eg:
debug: TestRandomisedOps (tests/paranoidtester.cpp:152) - Test 1000*1 randomised ops (max digits = 4)
ERROR: TestRandomisedOps (tests/paranoidtester.cpp:208) - {7+(7/10)} *= {119}
ERROR: TestRandomisedOps (tests/paranoidtester.cpp:209) - {7*119+(99127/10)}
ERROR: TestRandomisedOps (tests/paranoidtester.cpp:210) - double Yields: 916.
2999773025512695312500000000000000000000
ERROR: TestRandomisedOps (tests/paranoidtester.cpp:211) - PN Yields: 10745.
7001953125000000000000000000000000000000
FATAL: int)() (tests/paranoidtester.cpp:212) - Failed on case 102
Note 7*119 * 119 = 99127, so the *119 is being applied extra times
Probably because of reasons that hopefully the cold light of morning will reveal.