Seol mar théacs é seo: Compatibility and reuse in component−based systems via type and unit inference