Even more clarification on Type piracy

I wouldn’t want to pirate the type piracy concept. I guess I blurred the lines when trying to argue the potential benefits of piracy in very few selected cases (sometimes one does it just to avoid having to re-write everything or because moduleA and moduleB ain’t playing very well together such as dtplyr which fixes dplyr/data.table compatibility). If you mess with method and struct you don’t own: type 1. If you own one of the two, type 2? I think the type 1 and type 2 made it more confusing as in the good old days of just type 1 and was really well-defined.