sewardj [Tue, 3 Apr 2001 13:18:35 +0000 (13:18 +0000)]
[project @ 2001-04-03 13:18:34 by sewardj]
Clean up the post-install-script mechanism a bit, so that the script
for project is <project>/mk/post-install-script.
For project ghc, don't install pkgconf unless BIN_DIST=1.
rrt [Tue, 3 Apr 2001 12:58:54 +0000 (12:58 +0000)]
[project @ 2001-04-03 12:58:54 by rrt]
Make ghc-inplace work on Windows by adding FPTOOLS_TOP_ABS_UNIX to be always
the UNIX-style version of the path (for the Cygwin tools), and make CC_OPTS
be set even if there is no C_PROG, so that -mno-cygwin and -mwin32 are
always passed on Windows (and must be filtered out where not needed, e.g. in
lndir.c).
rrt [Tue, 3 Apr 2001 12:55:01 +0000 (12:55 +0000)]
[project @ 2001-04-03 12:55:01 by rrt]
Use UNIX-style path in ghc-inplace shell script, even on a Windows system.
sewardj [Tue, 3 Apr 2001 11:31:39 +0000 (11:31 +0000)]
[project @ 2001-04-03 11:31:38 by sewardj]
Make binary-dist installations work, by generating a proper package.conf
file. This is done by allowing fptools packages to supply an
arbitrary post-install shell script, which the bin-dist 'make install'
runs last of all. In Project=Ghc's case, the post-install script
runs pkgconf with appropriate params to create the package.conf
file in the right place.
rrt [Tue, 3 Apr 2001 10:09:23 +0000 (10:09 +0000)]
[project @ 2001-04-03 10:09:23 by rrt]
Removed spurious bracket that was causing a parse error.
panne [Mon, 2 Apr 2001 21:24:44 +0000 (21:24 +0000)]
[project @ 2001-04-02 21:24:44 by panne]
Don't use deprecated exception functions
panne [Mon, 2 Apr 2001 21:20:07 +0000 (21:20 +0000)]
[project @ 2001-04-02 21:20:07 by panne]
fromInt/toInt is dead, long live fromIntegral!
panne [Mon, 2 Apr 2001 21:11:14 +0000 (21:11 +0000)]
[project @ 2001-04-02 21:11:14 by panne]
Take 4-letter timezones like "CEST" into account. Nevertheless, these
test are bogus IMHO...
panne [Mon, 2 Apr 2001 21:10:04 +0000 (21:10 +0000)]
[project @ 2001-04-02 21:10:04 by panne]
Made this test a little bit less fragile (my 1GHz Athlon was too fast
for the expected output :-)
rrt [Mon, 2 Apr 2001 16:10:33 +0000 (16:10 +0000)]
[project @ 2001-04-02 16:10:32 by rrt]
Remove old mingwin kludgery; using the latest version of mingwin from CVS,
things now work.
rrt [Mon, 2 Apr 2001 16:10:05 +0000 (16:10 +0000)]
[project @ 2001-04-02 16:10:05 by rrt]
Add .exe to progName on Windows.
simonmar [Mon, 2 Apr 2001 14:51:57 +0000 (14:51 +0000)]
[project @ 2001-04-02 14:51:57 by simonmar]
- make Printer.c a little more useful when profiling is on,
by taking advantage of the extra information in the info table.
- enhance findPtr to follow chains of references backwards through the
heap. This is a cunning little tool for tracking down space leaks
(if you're comfortable using gdb as the user-interface to your
profiler :-)
simonmar [Mon, 2 Apr 2001 14:47:25 +0000 (14:47 +0000)]
[project @ 2001-04-02 14:47:25 by simonmar]
NOINLINE fixTc. This fixes a space leak, believe it or not. From the
comment:
-- aargh! Not inlining fixTc alleviates a space leak problem.
-- Normally fixTc is used with a lazy tuple match: if the optimiser is
-- shown the definition of fixTc, it occasionally transforms the code
-- in such a way that the code generator doesn't spot the selector
-- thunks. Sigh.
(BTW, NOINLINE pragmas quite often aren't honoured within a single
module, which looks like a bug).
simonmar [Mon, 2 Apr 2001 14:18:05 +0000 (14:18 +0000)]
[project @ 2001-04-02 14:18:05 by simonmar]
Recursively evacuate THUNK_SELETORs down to a bounded depth.
qrczak [Mon, 2 Apr 2001 07:24:12 +0000 (07:24 +0000)]
[project @ 2001-04-02 07:24:12 by qrczak]
Don't cast pointers to ints to perform pointer arithmetic.
qrczak [Mon, 2 Apr 2001 07:22:50 +0000 (07:22 +0000)]
[project @ 2001-04-02 07:22:50 by qrczak]
Add a bunch of symbols from RtsAPI.
chak [Sun, 1 Apr 2001 05:56:29 +0000 (05:56 +0000)]
[project @ 2001-04-01 05:56:29 by chak]
gcc doesn't like headers that end without a newline.
panne [Sat, 31 Mar 2001 17:08:22 +0000 (17:08 +0000)]
[project @ 2001-03-31 17:08:22 by panne]
Disabled this test. Litlits are on the death list. Should this test be
moved to should_fail or something like this?
panne [Sat, 31 Mar 2001 17:05:58 +0000 (17:05 +0000)]
[project @ 2001-03-31 17:05:58 by panne]
Disabled part of the test dealing with LARGE tuples, which don't work
with GHC (traditionally). I know this is not optimal, but I fear that
the situation won't change soon.
panne [Sat, 31 Mar 2001 17:00:55 +0000 (17:00 +0000)]
[project @ 2001-03-31 17:00:55 by panne]
Don't use catchAllIO anymore
panne [Sat, 31 Mar 2001 10:28:42 +0000 (10:28 +0000)]
[project @ 2001-03-31 10:28:42 by panne]
Install ghc-usage.txt, too
rrt [Fri, 30 Mar 2001 14:50:18 +0000 (14:50 +0000)]
[project @ 2001-03-30 14:50:18 by rrt]
Nuke DirUtils, which used to reimplement getDirectoryContents for the
benefit of older versions of GHC which implemented it incorrectly. It was
already not used anywhere.
qrczak [Fri, 30 Mar 2001 08:26:41 +0000 (08:26 +0000)]
[project @ 2001-03-30 08:26:40 by qrczak]
Move hsc making rules to a common place.
qrczak [Fri, 30 Mar 2001 05:02:32 +0000 (05:02 +0000)]
[project @ 2001-03-30 05:02:31 by qrczak]
Replace Readline with a more complete version.
Process .hsc files in hslibs.
rrt [Thu, 29 Mar 2001 18:40:09 +0000 (18:40 +0000)]
[project @ 2001-03-29 18:40:09 by rrt]
Add -mwin32 for Cygwin gcc.
qrczak [Thu, 29 Mar 2001 17:56:18 +0000 (17:56 +0000)]
[project @ 2001-03-29 17:56:18 by qrczak]
Generated C files are named *_hsc.h and *_hsc.c (again).
rrt [Thu, 29 Mar 2001 16:56:36 +0000 (16:56 +0000)]
[project @ 2001-03-29 16:56:36 by rrt]
Add -mwin32 for new Cygwin gcc.
simonmar [Thu, 29 Mar 2001 14:37:08 +0000 (14:37 +0000)]
[project @ 2001-03-29 14:35:20 by simonmar]
update expected output
simonmar [Thu, 29 Mar 2001 14:33:37 +0000 (14:33 +0000)]
[project @ 2001-03-29 14:33:37 by simonmar]
this must never have been tested, it had a parse error
simonmar [Thu, 29 Mar 2001 14:11:52 +0000 (14:11 +0000)]
[project @ 2001-03-29 14:09:14 by simonmar]
update expected output
simonmar [Thu, 29 Mar 2001 13:59:58 +0000 (13:59 +0000)]
[project @ 2001-03-29 13:59:58 by simonmar]
update expected output
simonmar [Thu, 29 Mar 2001 13:55:01 +0000 (13:55 +0000)]
[project @ 2001-03-29 13:55:01 by simonmar]
fix special cases for remInteger and divExact, to match new semantics
for integer2word#.
simonmar [Thu, 29 Mar 2001 13:33:46 +0000 (13:33 +0000)]
[project @ 2001-03-29 13:33:46 by simonmar]
use fromIntegral instead of fromInt
simonmar [Thu, 29 Mar 2001 13:32:25 +0000 (13:32 +0000)]
[project @ 2001-03-29 13:32:25 by simonmar]
update expected output
simonmar [Thu, 29 Mar 2001 13:00:43 +0000 (13:00 +0000)]
[project @ 2001-03-29 13:00:43 by simonmar]
add a couple of missing symbols
simonmar [Thu, 29 Mar 2001 10:47:25 +0000 (10:47 +0000)]
[project @ 2001-03-29 10:47:25 by simonmar]
re-enable binary-dist building, and inject PACKAGE_LINKS into Makefile.bin
simonmar [Thu, 29 Mar 2001 10:45:58 +0000 (10:45 +0000)]
[project @ 2001-03-29 10:45:58 by simonmar]
allow VERSION_SYMLINKS_FOR to be configured
simonmar [Thu, 29 Mar 2001 10:44:29 +0000 (10:44 +0000)]
[project @ 2001-03-29 10:44:29 by simonmar]
update for GHC 5.00
qrczak [Thu, 29 Mar 2001 08:03:47 +0000 (08:03 +0000)]
[project @ 2001-03-29 08:03:47 by qrczak]
integralEnumFrom*To don't need Bounded.
qrczak [Thu, 29 Mar 2001 08:03:21 +0000 (08:03 +0000)]
[project @ 2001-03-29 08:03:21 by qrczak]
Allow specifying output filenames explicitly.
Add -D --define option.
qrczak [Thu, 29 Mar 2001 00:01:18 +0000 (00:01 +0000)]
[project @ 2001-03-29 00:01:18 by qrczak]
Transform *.hsc into *.hs and optionally Hs*.h and Hs*.c
(used to be *.hs and optionally *.hs.h and *.hs.c).
Old names interacted badly with Makefile rules of the form
'%: %.o' and looked ugly.
qrczak [Wed, 28 Mar 2001 22:14:02 +0000 (22:14 +0000)]
[project @ 2001-03-28 22:14:02 by qrczak]
Fix Enum instances for types larger than Int.
qrczak [Wed, 28 Mar 2001 18:53:39 +0000 (18:53 +0000)]
[project @ 2001-03-28 18:53:39 by qrczak]
Typo.
qrczak [Wed, 28 Mar 2001 18:48:46 +0000 (18:48 +0000)]
[project @ 2001-03-28 18:48:46 by qrczak]
HS_CHAR_MAX is 0x10FFFF.
qrczak [Wed, 28 Mar 2001 18:48:22 +0000 (18:48 +0000)]
[project @ 2001-03-28 18:48:22 by qrczak]
s/ISO-8879-1/ISO-8859-1/
simonmar [Wed, 28 Mar 2001 16:51:03 +0000 (16:51 +0000)]
[project @ 2001-03-28 16:51:02 by simonmar]
Cleaning up error reporting, 2nd attempt.
- The UserError name is already bagged by Exception (for
userErrors). So we use ProgramError instead, which is
more appropriate.
- some previously UserErrors are now CmdLineErrors. GHCi
catches CmdLineErrors and prints them without the "ghc: "
prefix.
simonmar [Wed, 28 Mar 2001 16:45:35 +0000 (16:45 +0000)]
[project @ 2001-03-28 16:45:35 by simonmar]
Clean up GHC's error reporting
- the GhcException type has some more constructors: CmdLineError,
ProgramError, and InstallationError. OtherError has gone.
- most error messages should begin with "<location>:". When the
error is on the command-line or in GHC itself, <location> is
"ghc", for consistency with std Unix semantics.
simonmar [Wed, 28 Mar 2001 16:40:48 +0000 (16:40 +0000)]
[project @ 2001-03-28 16:40:48 by simonmar]
add performGC
simonmar [Wed, 28 Mar 2001 16:38:39 +0000 (16:38 +0000)]
[project @ 2001-03-28 16:38:39 by simonmar]
use newStablePtr instead of deprecated makeStablePtr.
simonmar [Wed, 28 Mar 2001 16:36:04 +0000 (16:36 +0000)]
[project @ 2001-03-28 16:36:04 by simonmar]
add a simple test for IOExts.performGC
simonmar [Wed, 28 Mar 2001 16:35:39 +0000 (16:35 +0000)]
[project @ 2001-03-28 16:35:39 by simonmar]
Add a simple test for performGC.
simonmar [Wed, 28 Mar 2001 16:33:55 +0000 (16:33 +0000)]
[project @ 2001-03-28 16:33:55 by simonmar]
remove this outdated, nonworking test
simonmar [Wed, 28 Mar 2001 16:20:00 +0000 (16:20 +0000)]
[project @ 2001-03-28 16:20:00 by simonmar]
Use fromIntegral instead of fromInt/toInt.
Marcin: this test shows up some problems with enumFrom & friends on
the sized Integral types. Could you take a look? Cheers.
simonmar [Wed, 28 Mar 2001 15:44:57 +0000 (15:44 +0000)]
[project @ 2001-03-28 15:44:57 by simonmar]
- Note the difference in the size of Char between GHC & Haskell 98.
- Don't lie about support for arbitrary-sized tuples.
- Just for fun, document some of the more obscure differences between
GHC syntax and Haskell 98.
simonmar [Wed, 28 Mar 2001 15:16:32 +0000 (15:16 +0000)]
[project @ 2001-03-28 15:16:32 by simonmar]
maxBound :: Char is 0x10ffff now.
simonmar [Wed, 28 Mar 2001 14:31:53 +0000 (14:31 +0000)]
[project @ 2001-03-28 14:30:10 by simonmar]
update expected output
simonmar [Wed, 28 Mar 2001 14:26:34 +0000 (14:26 +0000)]
[project @ 2001-03-28 14:26:34 by simonmar]
fix some test problems
simonmar [Wed, 28 Mar 2001 14:09:41 +0000 (14:09 +0000)]
[project @ 2001-03-28 14:09:41 by simonmar]
fix a cache problem with the Happy configure macro.
simonmar [Wed, 28 Mar 2001 11:01:19 +0000 (11:01 +0000)]
[project @ 2001-03-28 11:01:19 by simonmar]
Clean up GHC's error reporting.
- the GhcException type has some more constructors: CmdLineError,
UserError, and InstallationError. OtherError has gone.
- most error messages should begin with "<location>:". When the
error is on the command-line or in GHC itself, <location> is
"ghc", for consistency with std Unix semantics.
- GHCi no longer prints a superfluous "ghc: " before certain error
messages.
simonmar [Wed, 28 Mar 2001 10:34:15 +0000 (10:34 +0000)]
[project @ 2001-03-28 10:34:15 by simonmar]
Document the use of :set with command-line options a little better.
kglynn [Wed, 28 Mar 2001 05:07:34 +0000 (05:07 +0000)]
[project @ 2001-03-28 05:07:34 by kglynn]
Cpr needs the correct arity for an imported function. In some cases
the arity reported in the interface can be too small.
In this test case the function is returning a newtype, and the newtype
is hiding a function. The arity in the interface file says 0. It is
triggered by compiling the cpr001.hs test files with profiling on. The code
comes from a bug report.
I should look for a better case, because the profiling flaw which reveals
this problem will hopefully go away some time.
simonmar [Tue, 27 Mar 2001 16:55:03 +0000 (16:55 +0000)]
[project @ 2001-03-27 16:55:03 by simonmar]
CmdLineOpts:
- add dopt_set and dopt_unset utils.
InteractiveUI:
- unset -fwarn-unused-binds before evaluating a statement,
to avoid bogus warnings about new bindings.
rrt [Tue, 27 Mar 2001 16:33:17 +0000 (16:33 +0000)]
[project @ 2001-03-27 16:33:17 by rrt]
Make it work on Windows with recent GCCs.
rrt [Tue, 27 Mar 2001 16:32:46 +0000 (16:32 +0000)]
[project @ 2001-03-27 16:32:46 by rrt]
Tweaks to make it work a bit better.
simonmar [Tue, 27 Mar 2001 16:10:13 +0000 (16:10 +0000)]
[project @ 2001-03-27 16:10:13 by simonmar]
shell-wrapper for ghc-pkg.
simonmar [Tue, 27 Mar 2001 14:10:34 +0000 (14:10 +0000)]
[project @ 2001-03-27 14:10:34 by simonmar]
- add --show-package option to display the config info for a particular
package.
- add --field info, for use with --show-package, which displays the
contents of the given field in the package config only. The field
is displayed one string per line.
simonpj [Tue, 27 Mar 2001 14:05:09 +0000 (14:05 +0000)]
[project @ 2001-03-27 14:05:09 by simonpj]
Print minimal import operators correctly
simonmar [Tue, 27 Mar 2001 13:38:03 +0000 (13:38 +0000)]
[project @ 2001-03-27 13:38:03 by simonmar]
- add ghc-pkg-$(ProjectVersion) and ghc-pkg-inplace scripts
- add ghc-pkg script link
- rename ghc-pkg to ghc-pkg.bin and put it in $(libdir)
- remove the hacky passing of $(libdir) to the binary
simonmar [Tue, 27 Mar 2001 12:59:18 +0000 (12:59 +0000)]
[project @ 2001-03-27 12:59:18 by simonmar]
wibble
simonmar [Tue, 27 Mar 2001 11:58:54 +0000 (11:58 +0000)]
[project @ 2001-03-27 11:58:54 by simonmar]
bootstrap wibbles
simonmar [Tue, 27 Mar 2001 11:38:19 +0000 (11:38 +0000)]
[project @ 2001-03-27 11:38:19 by simonmar]
updates to work with GHC 5, I hope...
simonmar [Tue, 27 Mar 2001 11:37:39 +0000 (11:37 +0000)]
[project @ 2001-03-27 11:37:39 by simonmar]
non-absolute paths didn't work.
simonmar [Tue, 27 Mar 2001 10:33:24 +0000 (10:33 +0000)]
[project @ 2001-03-27 10:33:24 by simonmar]
complain if the -B<dir> flag is missing.
simonmar [Tue, 27 Mar 2001 10:33:03 +0000 (10:33 +0000)]
[project @ 2001-03-27 10:33:03 by simonmar]
we don't have a default TopDir any more.
simonmar [Tue, 27 Mar 2001 10:32:42 +0000 (10:32 +0000)]
[project @ 2001-03-27 10:32:42 by simonmar]
Config.hs no longer contains any absolute directories. The only
absolute directory it knows about is always passed in from the
mini-driver in the -B<dir> flag.
This setup is pretty fragile for booting from .hc anyway because
Config.hs contains platform-specific info, but it'll work enough to
get the compiler booted.
simonmar [Tue, 27 Mar 2001 09:44:56 +0000 (09:44 +0000)]
[project @ 2001-03-27 09:44:56 by simonmar]
use fewer absolute paths
simonmar [Tue, 27 Mar 2001 09:38:26 +0000 (09:38 +0000)]
[project @ 2001-03-27 09:38:26 by simonmar]
fixes for linking the compiler
simonmar [Tue, 27 Mar 2001 09:38:02 +0000 (09:38 +0000)]
[project @ 2001-03-27 09:38:02 by simonmar]
bootstrapping support
simonmar [Tue, 27 Mar 2001 09:36:53 +0000 (09:36 +0000)]
[project @ 2001-03-27 09:36:53 by simonmar]
fix GHCBIN for ghci-inplace
qrczak [Tue, 27 Mar 2001 08:29:07 +0000 (08:29 +0000)]
[project @ 2001-03-27 08:29:07 by qrczak]
Install package.conf in the right place.
qrczak [Tue, 27 Mar 2001 00:43:04 +0000 (00:43 +0000)]
[project @ 2001-03-27 00:43:04 by qrczak]
Fix making ghc-inplace.
qrczak [Mon, 26 Mar 2001 22:42:42 +0000 (22:42 +0000)]
[project @ 2001-03-26 22:42:41 by qrczak]
Fix installation of the compiler binary and its drivers.
simonmar [Mon, 26 Mar 2001 16:59:20 +0000 (16:59 +0000)]
[project @ 2001-03-26 16:59:20 by simonmar]
small hacks for bootstrapping
simonmar [Mon, 26 Mar 2001 16:58:09 +0000 (16:58 +0000)]
[project @ 2001-03-26 16:58:09 by simonmar]
nearly there: linking works now
simonmar [Mon, 26 Mar 2001 16:56:55 +0000 (16:56 +0000)]
[project @ 2001-03-26 16:56:55 by simonmar]
we have BinDistShScripts now
simonmar [Mon, 26 Mar 2001 16:56:27 +0000 (16:56 +0000)]
[project @ 2001-03-26 16:56:27 by simonmar]
remove unnecessary junk
simonmar [Mon, 26 Mar 2001 16:55:37 +0000 (16:55 +0000)]
[project @ 2001-03-26 16:55:37 by simonmar]
Move the -monly-n-regs flags into the Makefile, necessary for .hc
bootstrapping.
simonmar [Mon, 26 Mar 2001 16:54:34 +0000 (16:54 +0000)]
[project @ 2001-03-26 16:54:34 by simonmar]
Moved into ghci subdirectory.
simonmar [Mon, 26 Mar 2001 16:54:10 +0000 (16:54 +0000)]
[project @ 2001-03-26 16:54:10 by simonmar]
Remove unused file.
simonmar [Mon, 26 Mar 2001 16:53:35 +0000 (16:53 +0000)]
[project @ 2001-03-26 16:53:35 by simonmar]
- make the pkgconf program independent of the location of the build
tree - instead of Config.hs, we pass the configuration parameters in
as options. This is necessary for .hc bootstrapping.
- remove the ghci driver stuff, it moved to the ghci subdirectory.
- remove ghc5.hs
simonmar [Mon, 26 Mar 2001 16:52:03 +0000 (16:52 +0000)]
[project @ 2001-03-26 16:52:03 by simonmar]
if the STOLEN_X86_REGS arg is missing, assume 4.
simonmar [Mon, 26 Mar 2001 16:51:27 +0000 (16:51 +0000)]
[project @ 2001-03-26 16:51:26 by simonmar]
mini-drivers for GHC 5 (ghci moved from ghc/driver to ghc/driver/ghci, ghc
is new).
simonmar [Mon, 26 Mar 2001 13:43:05 +0000 (13:43 +0000)]
[project @ 2001-03-26 13:43:05 by simonmar]
oops, STABLE_NAME_info is stg_STABLE_NAME_info in the HEAD.
simonmar [Mon, 26 Mar 2001 13:31:46 +0000 (13:31 +0000)]
[project @ 2001-03-26 13:31:46 by simonmar]
StableNames weren't being initialized properly (the CCS field for
profiling was left out).
simonmar [Mon, 26 Mar 2001 12:28:15 +0000 (12:28 +0000)]
[project @ 2001-03-26 12:28:15 by simonmar]
Simplify the foreign-export stub processing.
- DynFlags now has fields for the stub.h and stub.c filenames, for
consistency with the normal hsc output file name.
- codeOutput puts the stubs into these files rather than dreaming
up new temporary names for them
- now we don't have to move the stubs into the right place in
DriverPipeline.
- we do however have to inject the correct #includes into the stub.c
file when it is generated: I'm now injecting the same includes as
the .hc file gets plus "RtsAPI.h", which is probably more correct
than the hacky hardcoded "Stg.h" we had before.
qrczak [Sun, 25 Mar 2001 19:30:23 +0000 (19:30 +0000)]
[project @ 2001-03-25 19:30:23 by qrczak]
Preprocessing hack made less ugly by moving 'tail' from usage to definition.
qrczak [Sun, 25 Mar 2001 13:52:46 +0000 (13:52 +0000)]
[project @ 2001-03-25 13:52:46 by qrczak]
Remove bogus comment.
simonmar [Sun, 25 Mar 2001 13:29:54 +0000 (13:29 +0000)]
[project @ 2001-03-25 13:29:54 by simonmar]
- include :undef in the :help message
- don't read ./.ghci if it is the same file as $HOME/.ghci
panne [Sun, 25 Mar 2001 11:08:42 +0000 (11:08 +0000)]
[project @ 2001-03-25 11:08:42 by panne]
OK, here comes the third try to get a simple string from the Makefile
into the Haskell sources in a "portable" way... Perhaps we should use
compiler/main/Config.hs's technique here.
qrczak [Sun, 25 Mar 2001 09:57:26 +0000 (09:57 +0000)]
[project @ 2001-03-25 09:57:24 by qrczak]
Promote (//) from a function to IArray method with an inefficient
default definition. This completely compatible change allows efficient
implementations of (//) for particular types.
Explicitly define efficient (//) for Array and UArray.
Use unsafeFreeze* instead of freeze* in (//), accum and accumArray
for Array and IArray.
Remove showList in instance Show Array (the default definition does
the job).
Add Eq, Ord and Show instances for UArray. (Would be simpler if types
in instance contexts were not required to be type variables. I didn't
use -fallow-undecidable-instances but defined instances for individual
element types separately.)
Add unsafe{Freeze,Thaw}/{STArray,IOArray,IOUArray} rules.
Fix thaw/IOUArray rule (nobody uses IOUArrays in the ST monad!).