Calling Foo() as foo(): this is SomeRandomDecorator
Calling Foo() as Foo(): this is TheActualIterator
Calling Foo() as FOO(): this is TheActualIterator
Calling bar() as bar(): this is SomeRandomDecorator
Calling bar() as Bar(): this is TheActualIterator
Calling bar() as BAR(): this is TheActualIterator