
This one had me puzzled for a few seconds before I spotted what was going on!
$ rm foo*; touch foo.hs foo.lhs; hmake foo.lhs nhc98 -c -o foo.o foo.hs
Well, having both foo.hs and foo.lhs in the same directory is a somewhat dangerous thing. However, if you are (for instance) generating the .hs automatically from the .lhs using some kind of un-literating tool, then it might make some sense. But in that case, it would not matter which file was actually compiled... In any case, you can change hmake to prefer a .lhs over a .hs with the following patch. Regards, Malcolm Index: src/hmake/GetDep.hs =================================================================== RCS file: /usr/src/master/nhc/src/hmake/GetDep.hs,v retrieving revision 1.6 diff -u -r1.6 GetDep.hs --- src/hmake/GetDep.hs 2001/03/22 18:45:29 1.6 +++ src/hmake/GetDep.hs 2001/12/17 11:45:17 @@ -134,8 +134,8 @@ readFile s >>= \file-> readData p s (f file) else try xs in try [ (fixFile opts p ff "gc", id), - (fixFile opts p ff "hs", id), - (fixFile opts p ff "lhs", (unlit name))] + (fixFile opts p ff "lhs", (unlit name)), + (fixFile opts p ff "hs", id)] rP [] = error ("Can't find module "++name++" in\n\t"++ concat (intersperse "\n\t" (".":pathSrc opts))++