
olaf 2004/09/02 10:51:25 PDT Modified files: src/compiler98 Extra.hs Log: Corrected mergePos in module extra to correct the attached bug. Also made some more progress with hat-source. ------------------------ Bug report: I just checked out the latest Hat sources from the CVS. After successful compilation and installation, I think I have a bug at hand, in the treatment of left section expressions, e.g. (2+). A very simple program that generates the bug (let's call the file hattest.hs): generator = ("Hello " ++) . ("world!" ++) main = putStrLn (generator "") Here's what I get: formal:~/foo> hmake -hat hattest hat-trans hattest.hs Fail: mergePos 1:23-1:24 1:14-1:21 As I understand it, (1:23-1:24) is the first "++" and 1:14-1:21 is the string "Hello ". The left section is (correctly) converted to the application: (++) "Hello " but then possitions of the two subexpressions come the wrong way and mergePos complains. I know it can be fixed by writing the expression above instead of the left section, but (as this occurs in all Show instances several times) I think it is not an acceptable solution. Am I missing something? If not, could somebody fix it? Thank you in advance, Nikos. Revision Changes Path 1.17 +4 -6 nhc98/src/compiler98/Extra.hs