simple foo; structure { } participant Bob { {{ /*imports go here*/ }} expected Fred something; aspectual RV meth(EM e) {{ return e.invoke(); }} } expected participant Fred { // can only contain expected } exists abstract participant EM { abstract RV invoke(); } exists abstract participant RV { } simple bar; structure { } participant X { } participant Y extends X { } composite both; structure { A { C c; } B extends A { } C { } } attach foo, bar { A += X, Bob with { provide Fred something by C c } B += Y C == Fred }