Reduces the need for the compiler to duplicate this code, by about 100KB executable size.
ToString didn't have a constexpr if statement where needed. Canonicalize missed an else, causing unreachable code error on MSVC.
Reduces compile times a tad on clang.