Depois de apanhar muito, percebi que o problema não é a forma de escrever, mas o fato de que eu estava gravando o fonte dos módulos quando eu os rodava.
Aí é que você tem o problema, porque ao tentar rodar cada módulo, ele interpreta o path de maneira diferente do que quando você roda a partir do programa principal.
Comecei a apenas gravar os módulos com (control-s) e só rodar o programa principal. Passou a funcionar.