Uniformise all trait impls
c41c850
Some cannot be derived because the derivation include bounds on unit types.