Generalise the uniplate principles
More work on the safe generalisation