I am looking for a way to turn an SInt16 into an SString. For my use case, it is enough that it does the right thing for concrete values, i.e. I will only be looking at the SString result for concrete SInt16s.
I noticed there is a Show instance for SInt16, which (of course) returns a String. It is almost good enough for my needs: for symbolic values, it returns "<symbolic> :: SInt16" and for concrete values e.g. 42, it returns "42 :: SInt16". So if not for that pesky type tag, I could use literal . show @SInt16 as my SInt16 -> SString function.
Is there a better way than editing the return value of show to cut out the type tag?
Something like this should do the trick:
I get: