$top = "top-level" class base($s) { test "middle " + $s {} $middle = "inside base" } # syntactic sugar for the equivalent of defining a class `inner` inside of base. class base:inner1($s) { test "inner1 " + $s {} $last = "i am inner1 and i can see " + $middle } class base:inner2($s) { test "inner2 " + $s {} $last = "i am inner2 and i can see " + $middle } # three deep! class base:inner1:deep($s, $b) { test "deep is " + $s {} $end = "i am deep and i can see " + $middle + " and last says " + $last } include base("world") as b0 include b0.inner1("hello") as b1 # inner comes out of `base` include b0.inner2("hello") as b2 # inner comes out of `base` include b1.deep("deep", true) as d # deep comes out of `inner1` test $top {} test $b0.middle {} test $b1.last {} test $b2.last {} test $d.end {}