Hi!
I think the following works:
foo = bar undefined
where bar :: MyTypeClass a => a -> a
bar x = fromString (toString x)
The type synonym is crucial in telling the compiler that the
argument type (over which the occurrence of toSTring is overloaded)
and the result type are the same.
Cheers,
/kff