Composition getters: now with blocks and recursion