Still really verbose for struct implementors, will soften that probably by using a pure reflection based diffing algo to start with.