This is a followup to patch1880, to make a final decision
on whether we want to go with PrimContainer or not.
On the plus side, it does make the types (not constraints)
in V3.Core shorter and IMO clearer. It also means my
toy code doesn't need to duplicate the patch ids.
On the minus side, the constraints do get worse, albeit
hidden behind PrimContainer (which is now a type synonym).
As I comment in the code there isn't any principled reason
for what's in it.
As I mentioned in patch1904 it also prevents us using
standalone deriving for the Show instance, but I think
that says more about the flexibility of 'deriving' than
about the intrinsic design merits of this change.
1 patch for repository email@example.com:screened:
Author: Ganesh Sittampalam <firstname.lastname@example.org>
Date: Mon Sep 2 16:06:47 BST 2019
* decouple RepoPatchV3 impl from WithName
WithName is now abstracted behind a type class,
Also: the types don't always get smaller/clearer, though most do. A small
number of them mention PrimContents and those look more complicated to me.
Similarly a few constraints get longer even with the PrimContainer helper.