Can we avoid recomputing all the attrs? pattern is probably ``AbelianLegPipe._from_all_attrs(cls, ...)``?