That's a feature :-)

Breadly speaking, there are languages where each file/module must declare all its dependencies (e.g. Java, Python, JavaScript in Node.js environment) because they are bound to file/module-local variables, and there are languages where you don't have to do this (e.g. Ruby), because they are bound to global variables. In programs written in the second class of languages, the dependency declarations usually get out of sync with code quickly (typically one adds a dependency in the code and forgets to update the declaration list).

To prevent this, I usually define the dependency list at one place at the toplevel file and leave the modules without dependency requirements. This makes sure the code doesn't get inconsistent. The only downside I know is that some inner files can't be loaded wihtout loading the toplevel file. I don't think that's an issue here.

If you still don't like this and want to make the dependencies explicit, I am not insisting on my approach and I'll add the `require`s. But at least you know my view now.