Из Ссылка на язык D:
Модули имеют взаимно однозначное соответствие исходным файлам. Имя модуля - это имя файла с удаленным контуром и расширением.
Имена модулей по-прежнему указаны в файлах явно.
module foo;
В чем смысл этого? Если модули соответствуют файлам, почему компилятор не может вывести то, что они вызывают из имен файлов?