Можно использовать _
вместо левых подчеркиваний. Пример: _ _ файл __
Да, Cabal понимает, что когда вы указываете модуль Foo в своем .cabal файле и находит Foo.hsc на диске, он должен сначала запустить hsc2hs на модуле.
Cabal прозрачно. обрабатывает существование файлов .hsc.