I made a local change to use the derived Show for a :. b, because the current one doesn't support round-trips through the derived Read. What are your thoughts on doing this vs. implementing Read to be compatible with Show?