(Try to) restructure `base` to allow more use of `AutoDeriveTypeable`
comment:#9111 (closed):16 explains that import-cycles containing Data.Typeable.Internal (which provides the Typeable class AutoDeriveTypeable needs to be loaded for being able to operate) inside base make it difficult to use AutoDeriveTypeable, as well as making it more difficult to de-cycle the base import-dependency graph (see also attachment:typeable_deps.png)
This ticket is about trying to find a way to restructure base in order to allow to define the Typeable instances directly at the type's definition site (and thus allow the use of AutoDeriveTypeable)
Removing cycles in base is possibly required to make SplitBase easier
Edited by Herbert Valerio Riedel