I think the concept of the article is great but the explanation could use some work. Given the code it does not seem clear to me why the test case of an explicitly requested rectangle now returns functions from a square that was not initialised or requested in the setup. Maybe this is specific to the language the author is using?