This also fixes the problem that the testsuite threw `exitFailure`
even when it succeeded (which I found inexplicable).
Once this is published, the testsuite could be enabled in Stackage again.
This patches uses the following gitignore syntax so that only entries in the root folder is ignored, it is suggested to apply it to existing rules as well.
```
A leading slash matches the beginning of the pathname. For
example, "/*.c" matches "cat-file.c" but not
"mozilla-sha1/sha1.c".
```
Refer-to: gitignore(5) manpage
Signed-off-by: 林博仁(Buo-Ren Lin) <Buo.Ren.Lin@gmail.com>
makefile should also delete cabal generated files on cleanup so
they could be used interchangably.
ensure that all generated files are ignored as recommended by
bese practices.