Glasgow Haskell is a changing system so there are sure to be bugs in it.
To report a bug, either:
Go to the SoureForge GHC page, go to the "bugs" section, click on "submit", and enter your bug report. You can also check the outstanding bugs here and search the archives to make sure it hasn't already been reported. Or:
Email your bug report to <glasgow-haskell-bugs@haskell.org>.
Take a look at the FAQ (Chapter 13) and Chapter 9, which will give you some guidance as to whether the behaviour you're seeing is really a bug or not.
If it is a bug, then it might have been reported before: try searching the mailing list archives. The archives don't have a built-in search facility, but we find that Google's site search works pretty well: enter "site:www.haskell.org" followed by your search term into Google.
If in doubt, just report it.
The name of the bug-reporting game is: facts, facts, facts. Don't omit them because “Oh, they won't be interested…”
What kind of machine are you running on, and exactly what version of the operating system are you using? (on a Unix system, uname -a or cat /etc/motd will show the desired information.)
What version of GCC are you using? gcc -v will tell you.
Run the sequence of compiles/runs that caused the offending behaviour, capturing all the input/output in a “script” (a UNIX command) or in an Emacs shell window. We'd prefer to see the whole thing.
Be sure any Haskell compilations are run with a -v (verbose) flag, so we can see exactly what was run, what versions of things you have, etc.
What is the program behaviour that is wrong, in your opinion?
If practical, please send enough source files for us to duplicate the problem.
If you are a Hero and track down the problem in the compilation-system sources, please send us patches relative to a known released version of GHC, or whole files if you prefer.