
#11135: Migrate more of Data.Functor.* from transformers to base. -------------------------------------+------------------------------------- Reporter: hvr | Owner: Type: task | Status: upstream Priority: highest | Milestone: 8.0.1 Component: libraries/base | Version: 7.10.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D1543 Wiki Page: | Phab:D1544 -------------------------------------+------------------------------------- Comment (by RyanGlScott): Ross: I would like to see this change get into GHC 8.0, time permitting. There's one thing that bothers me about the most recent changes to `transformers`, however. After [http://hub.darcs.net/ross/transformers/patch/55d242cc15cb91c32a28433eff1e928... introducing] `Show1`/`Show2`/et al, you changed the `Show` instances to use them. For instance, the `Show` instance for `Backwards` [http://hackage.haskell.org/package/transformers-0.4.3.0/docs/src/Control- Applicative-Backwards.html#line-49 was]: {{{#!hs instance (Show1 f, Show a) => Show (Backwards f a) where showsPrec d (Backwards x) = showsUnary1 "Backwards" d x }}} But [http://hub.darcs.net/ross/transformers/browse/Control/Applicative/Backwards.... now] it's: {{{#!hs instance (Show1 f, Show a) => Show (Backwards f a) where showsPrec = showsPrec1 }}} The result is that the output of `show` changes. Before, the output of `show (Backwards "hello")` would be `"Backwards \"hello\""`, but with the latest changes, it's `"Backwards ['h','e','l','l','o']"`! This is because the `Show1 []` instance has to be parametric over its argument, so it can't tell that `Char` has a special `Show` instance that causes it to be shown differently. I feel like we should revert all the `Eq`/`Ord`/`Read`/`Show` instance in `transformers` back to the way they were (and keep the `Show1`/`Show2`/etc. instances separate) to prevent subtle changes like this. Do you agree? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11135#comment:8 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler