Summary: Constructing Type-Safe Operators for
Axel Rauschmayer, Andreas Abel, Alexander Knapp, Martin Wirsing
Institut f®ur Informatik
Abstract. Grey-box software composition appears in many areas of
software engineering: Mixin layers, aspects and traits are just a few ex-
amples and even regular inheritance can be viewed as composition. Oper-
ators used for these kinds of composition share two deficiencies: (1) They
are monolithic and are thus paradoxically supporting reuse without being
implemented in a reusable fashion. (2) There is usually no type system
that allows us to check if a composition is legal before performing it.
In this publication, we introduce Graft, a small language that aims to
"decompose composition" by providing atomic commands for software
manipulation that can be combined to express powerful composition op-
erators. Applicability of atomic and composite commands is checked for
by a type system. We demonstrate and motivate Graft's use by looking
at mixin layer composition which is fully expressible in Graft.