I interpret to_string as converting a value to a string in a format where hopefully one can also do of_string to convert it back. Useful for (de)serialisation.
I use function show mostly for debugging or end-user display. The generated string need not be convertible back into the original type.