$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,] {}