diff --git a/AUTHORS b/AUTHORS
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,3 +1,3 @@
 Claude Heiland-Allen
-  mailto:claudiusmaximus@goto10.org
-  http://claudiusmaximus.goto10.org
+  claude@mathr.co.uk
+  http://mathr.co.uk
diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644
--- a/ChangeLog
+++ /dev/null
@@ -1,268 +0,0 @@
-ChangeLog exported from Git by claude@zebimus at 2010-08-14T18:06:44+0100
-
- (HEAD, tag: v0.7, origin/master, master)
-
-9e4e399 2010-08-14 18:04:35 +0100 v0.7 smooth-as
-0e76ee2 2010-08-14 18:03:44 +0100 disable hardcore optimizations by default
-94c746d 2010-08-14 17:59:32 +0100 use logarithmic mandelbrot escape time for smoother gradations
-6c2699e 2010-08-01 08:01:52 +0100 log inter-frame timing statistics
-                                  reduce jitter by adding one frame latency to swapBuffers
-b87cf23 2010-08-01 08:00:15 +0100 copy statistics from Haskell to Lua
-
- (tag: v0.6)
-
-21b1086 2010-07-25 17:22:39 +0100 v0.6 facepalm
-1f9b042 2010-07-25 17:22:00 +0100 bump version
-0a858a5 2010-07-25 10:15:26 +0100 update help screen with current configurations
-
- (tag: v0.5)
-
-7b5e311 2010-07-25 03:51:26 +0100 v0.5 neon in O(1) space
-69ec357 2010-07-25 03:21:02 +0100 fix annoying disappearing/appearing julias at edge of window
-cf6fb48 2010-07-25 02:42:00 +0100 fix aspect ratio to keep julias square
-ac1f7be 2010-07-25 02:41:18 +0100 fix displaySize for aspect ratios other than 16:9
-05a5e35 2010-07-25 02:23:22 +0100 fix screenshot
-099b264 2010-07-25 02:12:40 +0100 bump version number
-                                  add note about SSE4 flag
-98d09bb 2010-07-25 02:05:04 +0100 update to current code
-a94f0e7 2010-07-25 02:04:43 +0100 update to current code
-1baef1a 2010-07-25 02:00:51 +0100 fix screenshots/recording comments
-9c350a8 2010-07-25 02:00:10 +0100 prune dead code
-e59440e 2010-07-25 01:28:20 +0100 merge random and interactive configurations into one main configuration
-c874936 2010-07-25 01:26:00 +0100 reduce heap limit as we can run in constant space now
-c013ea2 2010-07-25 01:25:28 +0100 recompute tiling on instead of sharing to fix massive memory leak
-                                  get statistics for Lua interface
-56edf21 2010-07-25 01:23:33 +0100 strictify to avoid memory leak
-ebd2a33 2010-07-25 01:22:38 +0100 attempt to fix memory leak by pattern-matching on ()
-177423a 2010-07-25 01:21:48 +0100 attempt to store statistics more strictly
-b1f0293 2010-07-25 01:21:06 +0100 strict version of modifyIORef
-74d8184 2010-07-23 05:56:43 +0100 additional file to distribute
-2296642 2010-07-23 05:52:48 +0100 colour using Mandelbrot Set escape time in addition
-1631f5b 2010-07-23 05:51:53 +0100 larger field for Julia Set renders
-89e15fd 2010-07-23 05:50:13 +0100 improved escapetime to colour function
-39aed4f 2010-07-23 05:46:21 +0100 remove unused includes
-5f9aa1a 2010-07-23 05:40:33 +0100 background back to black
-01bca99 2010-07-23 05:38:22 +0100 larger display size
-8086318 2010-07-23 05:37:49 +0100 use filename for reinclusion defence macro
-ccaf263 2010-07-23 00:06:25 +0100 ignore binary
-bddc637 2010-07-23 00:05:52 +0100 avoid visiting near recent history to make attract mode more interesting
-88647a8 2010-07-20 22:59:16 +0100 attract mode improvements: self-centering random walk for zoom level
-                                  target border of Mandelbrot set as more interesting
-                                  random walk near previous target
-320e8ee 2010-07-20 22:57:04 +0100 exterior distance from Mandelbrot Set
-
- (tag: v0.4)
-
-9d98a8c 2010-07-12 20:17:15 +0100 v0.4 joining the cabal
-3a4ccd5 2010-07-12 20:08:50 +0100 fix base dependency to allow successful compilation with ghc-6.10.4
-d1a3fa8 2010-07-12 19:54:26 +0100 bump cabal version to use source-repository sections
-bdae6a2 2010-07-12 19:51:16 +0100 include HACKING documentation
-0b92db5 2010-07-12 19:36:15 +0100 document briefly what each source code file is for
-5c07055 2010-07-12 19:22:45 +0100 rename files that might compile to files with indistinguishable names on case-insensitive file systems
-8258297 2010-07-12 18:54:14 +0100 generate a prettier ChangeLog
-                                  ignore generated file
-47aa7d6 2010-07-12 18:23:04 +0100 generate ChangeLog for sdist
-796b3c3 2010-07-12 17:47:42 +0100 current bug status
-e4144f4 2010-07-12 17:40:58 +0100 undo
-74e0c4f 2010-07-12 17:29:06 +0100 zoomTo bug seems avoided, though scripts could be notified or check if a view is invalid
-92abf65 2010-07-12 17:07:41 +0100 working fullscreen mode
-8e125e7 2010-07-12 16:47:44 +0100 full screen support
-a208772 2010-07-12 16:31:02 +0100 obey semantics of coding standards - NEWS is terse/user-centric while ChangeLog should be verbose/developer-centric
-50e8acd 2010-07-12 16:29:17 +0100 slight attempt to fix that out of range ouch bug
-a05ac37 2010-07-12 11:29:11 +0100 fix cabal sdist problems
-6021078 2010-07-12 11:12:24 +0100 update ignores to the current state of the build system
-a4db380 2010-07-12 11:00:29 +0100 explicit export list
-                                  comment out unused code
-5402550 2010-07-12 10:49:06 +0100 explicit export list
-                                  comment out unused code
-7cbd6ab 2010-07-12 10:48:49 +0100 explicit export list
-d12905a 2010-07-12 10:44:36 +0100 explicit export list
-                                  comment out unused code
-476b9d1 2010-07-12 10:37:32 +0100 categorize and annotate TODO list
-8840d97 2010-07-12 10:36:18 +0100 fix it so it works
-c3da0d2 2010-07-12 10:35:49 +0100 fix usage of namespace, add args example
-fb4c59a 2010-07-12 09:55:36 +0100 update to use 'mandulia' namespace
-0da882e 2010-07-12 09:54:59 +0100 support user app data dir and relative-to-file paths
-                                  support passing extra arguments to scripts
-                                  use 'mandulia' namespace/table for everything
-c177115 2010-07-12 08:08:57 +0100 reduce heap size further
-4bdfd0e 2010-07-12 07:51:17 +0100 limit GHC RTS heap size to 2GB
-50059d1 2010-07-12 07:38:45 +0100 fix it so it works
-7660f81 2010-07-12 07:24:08 +0100 simple command line arguments
-                                  help/usage text
-                                  version text
-52eaf4d 2010-07-12 06:20:10 +0100 installation info moved (and expanded) from README to INSTALL
-6c90f0f 2010-07-12 06:03:33 +0100 author info moved from README to AUTHORS
-feb5039 2010-07-12 06:01:01 +0100 known issues moved from README to TODO
-df859e8 2010-07-12 05:59:02 +0100 move ChangeLog out from README and expand it with text from tag annotations
-2e08907 2010-07-12 05:48:55 +0100 simplify source statistics to print a summary only
-725f532 2010-07-12 05:45:41 +0100 update source statistics script
-474bfa3 2010-07-12 05:45:13 +0100 remove pre-cabal build system
-0e76480 2010-07-12 05:41:42 +0100 update documentation with cabal info
-749e96d 2010-07-12 05:13:16 +0100 loosen dependency versions until someone complains
-508cb71 2010-07-12 05:12:48 +0100 support both explicit filenames for load and short names for require
-92cf006 2010-07-12 04:41:28 +0100 try require() if loadfile fails
-eb8a820 2010-07-12 04:29:23 +0100 use cabal's Paths_pkgname
-                                  pop Lua stack to avoid overflow
-c350bb7 2010-07-12 03:54:30 +0100 fix syntax errors and missing depends, add more info
-d859404 2010-07-12 03:52:59 +0100 use require() instead of dofile()
-8749914 2010-07-12 03:27:11 +0100 first step at cabalization
-b50cb4a 2010-07-12 02:07:55 +0100 update documentation
-58e3c18 2010-07-12 02:01:44 +0100 the great renaming (part 1)
-
- (tag: v0.3)
-
-ded4465 2010-07-12 01:07:46 +0100 wc of source code files that discounts boilerplate
-d0d538e 2010-07-12 01:06:20 +0100 boilerplate
-defc8f5 2010-07-12 00:43:26 +0100 more documentation
-4adc0e7 2010-07-12 00:22:33 +0100 generate random views and transition between them
-54015e7 2010-07-12 00:21:58 +0100 generate a smooth transition between two viewports
-f89f2b6 2010-07-12 00:21:18 +0100 prune dead code
-c18f72e 2010-07-12 00:20:32 +0100 document scripting interface
-                                  saner defaults
-5d5ac6c 2010-07-12 00:19:30 +0100 set the view directly
-465dcb8 2010-07-10 19:06:30 +0100 more documentation
-01d90fd 2010-07-10 19:06:06 +0100 use Lua interface
-34c7061 2010-07-10 19:05:28 +0100 fix compiler warnings
-31bdca1 2010-07-10 18:07:09 +0100 build the Lua interface
-93610d7 2010-07-10 18:06:46 +0100 default configuration and interactive key bindings as Lua scripts
-bb873c8 2010-07-10 18:05:49 +0100 Lua configuration scripting interface
-156cdaa 2010-07-10 15:42:17 +0100 generalize type of clamp
-
- (tag: v0.2)
-
-6e22005 2010-07-10 08:18:16 +0100 notes about profiling
-e3c7d2f 2010-07-10 08:10:24 +0100 ignore generated Sort.hs
-4ec5f81 2010-07-10 08:09:40 +0100 more CAF
-                                  integrate logger
-                                  wrap long lines
-                                  update returns a score function
-                                  cleaner setting of detail levels / radius
-                                  don't recompute levels for Julia
-                                  split display callback into logical chunks
-                                  log timing statistics for display
-                                  use IO-based sort when computing jobs todo
-                                  more elegant background colour (orange not black)
-                                  home key resets
-                                  tweak configuration
-                                  prune dead code
-d038ecf 2010-07-10 07:55:16 +0100 more CAFs
-                                  remove superfluous comments
-                                  neaten builder with intermediate strict structure for speed
-                                  strictify main tile structure for speed
-                                  decompose toTiles into smaller functions
-                                  levels store inner and outer (edge) tiles to speed up pruning
-                                  three-way partitioning for pruning
-                                  rejigged zoomTo and stepIn/Out functions for new pruning
-                                  tiles have a canonical id
-212cd1f 2010-07-10 07:40:32 +0100 more aggressive optimisation
-                                  add new files to build
-                                  (commented) variants for threadscope and profiling
-13d2b56 2010-07-10 07:37:24 +0100 correctness and speed fixes
-a21a26a 2010-07-10 07:34:45 +0100 logger for runtime statistics computation
-bced1b9 2010-07-10 07:33:48 +0100 twiddle either/pairs for new texturecache interface
-                                  log computation time statistics
-77a79f9 2010-07-10 07:31:25 +0100 faster constructor
-                                  more foo-or-equal tests
-                                  faster transform for a subset of matrices
-3edd321 2010-07-10 07:29:19 +0100 enable mipmap filtering for massive quality boost
-a1b1593 2010-07-10 07:28:32 +0100 IO-based sorting using C qsort(), benchmarked to be cheaper on both time and space with lists around 2k elements
-f573784 2010-07-10 07:24:28 +0100 use IO-based sort for speed boost
-97e1088 2010-07-10 07:22:35 +0100 flip (a, E b c) to E (a,b) (a,c) for speed boost
-                                  use IO-based cache interface
-                                  type synonym for clarity
-ede7574 2010-07-10 07:17:07 +0100 lazier first/second
-4903b9f 2010-07-10 07:15:00 +0100 inline for speed
-85e6e60 2010-07-10 07:13:48 +0100 back to black
-9894854 2010-07-08 14:15:10 +0100 speed up drawQuad (thanks Deewiant/#haskell)
-e2b5cb2 2010-07-08 14:13:50 +0100 speed up sortOn (thanks zygoloid/#haskell)
-dc570da 2010-07-08 14:12:52 +0100 build with profiling
-c6f55c2 2010-07-08 12:58:39 +0100 fix viewport so edges not truncated
-                                  tweak detail settings
-547dc0b 2010-07-08 11:32:21 +0100 misc tweaks
-2c48bf3 2010-07-08 11:30:46 +0100 release images even when not uploading them
-                                  expose cache status
-12ef21b 2010-07-08 11:29:11 +0100 release images even when not uploading them
-                                  tweak score
-4a24fdb 2010-07-08 11:27:04 +0100 make jobs pending as late as possible
-20b141c 2010-07-07 11:56:09 +0100 correct attribution of original code
-9335368 2010-07-06 13:15:30 +0100 use video recorder
-951e29c 2010-07-06 13:15:08 +0100 build video recorder
-88ded70 2010-07-06 13:14:51 +0100 video recorder
-
- (tag: v0.1)
-
-6edaf66 2010-07-06 12:03:41 +0100 spit version of GPL that applies
-cfd949a 2010-07-06 11:49:51 +0100 GPLv3+ license boilerplate
-2dac064 2010-07-06 11:45:04 +0100 GPLv3+ license
-8c73640 2010-07-06 11:42:12 +0100 up to date docs
-a42af45 2010-07-06 11:36:24 +0100 no longer needed
-4553745 2010-07-06 11:34:32 +0100 not updated in sync with implementations
-                                  best be gone
-3317777 2010-07-06 11:33:42 +0100 these have solved their purpose
-af70796 2010-07-06 11:32:58 +0100 no longer used
-bea1d4f 2010-07-06 11:32:18 +0100 remove old C version and script
-d39f675 2010-07-06 11:30:34 +0100 build the ppmy4m thingy
-7e2095b 2010-07-06 11:30:09 +0100 ignore main binary
-31fa5fd 2010-07-06 11:28:14 +0100 tweak viewport/detail
-                                  tweak speed of movement
-                                  tweening (size fade) works
-                                  enqueue texture generation jobs while finding quads to draw
-                                  julia id/level normalization
-                                  quad rendering
-                                  remove wonky keyup handling
-                                  tweak configuration
-                                  (commented out) code to draw bounding boxes for debugging
-4a3e1f0 2010-07-06 11:23:50 +0100 only upload textures when they won't immediately be discarded
-a4be93d 2010-07-06 11:22:44 +0100 use utils
-                                  integer id for comparisons
-                                  better scoring
-                                  wrap done action in either
-                                  use safe foreign imports to not block threads
-dca9129 2010-07-06 11:19:45 +0100 don't prescale alpha
-d3c6842 2010-07-06 09:11:07 +0100 use utils
-11da042 2010-07-06 09:10:50 +0100 build utils
-1c46c3f 2010-07-06 09:10:18 +0100 use utils
-7c102b2 2010-07-06 09:09:53 +0100 misc utility functions
-b7d3a39 2010-07-06 07:38:15 +0100 fix typo (x x)
-c159f72 2010-07-06 07:37:45 +0100 avoid repeating jobs needlessly
-61c50f5 2010-07-06 07:37:05 +0100 bounds bugfix (was causing vanishing regions)
-                                  transform path identification
-ef296d5 2010-07-05 23:32:06 +0100 build system
-7b3a6ed 2010-07-05 23:30:46 +0100 the main program
-57987fb 2010-07-05 23:30:23 +0100 texture cache is a priority cache that deletes textures when they are pushed out of the cache
-602eb03 2010-07-05 23:29:24 +0100 done action returns the julia as well
-de58b1d 2010-07-05 23:28:27 +0100 get a matrix for mapping between bounds
-3f3136a 2010-07-05 23:27:39 +0100 prune dead code
-1fd52dc 2010-07-05 19:52:51 +0100 store real level as well as depth (depth is the first level this tile was present in)
-2344a30 2010-07-05 19:33:59 +0100 bounded prioritized cache
-6d4770c 2010-07-05 19:32:53 +0100 julia renderer in C
-                                  render worker in Haskell
-                                  test the score mechanism
-a1fe66c 2010-07-05 17:08:25 +0100 image buffer creation and texture upload
-8e91878 2010-07-05 17:07:05 +0100 a pool of reusable resources allocated on demand up to a maximum bound
-                                  test file
-359e61c 2010-07-05 17:03:33 +0100 use an additional MVar to wait for the next free job instead of sleeping for a bit
-f24a18d 2010-07-04 21:54:43 +0100 job scheduler module with test
-4e0c4b7 2010-07-04 15:05:52 +0100 multi-level tweening zoom
-                                  fix some warnings
-4bc4767 2010-07-04 11:22:56 +0100 zooming in animation works
-250b94e 2010-07-04 10:58:47 +0100 dirty svg output
-4ef0c4a 2010-07-04 10:58:29 +0100 more functionality
-ff029b1 2010-07-04 04:40:22 +0100 operations on bounding boxes
-af72e37 2010-07-04 04:40:07 +0100 split long line
-731ba01 2010-07-04 04:08:23 +0100 ignore compiled objects
-87e7e31 2010-07-04 04:07:04 +0100 Ammann A3 substitution tiling
-bde58f2 2010-07-04 04:06:08 +0100 real/vector/matrix computations
-bb7bce9 2010-07-04 03:53:17 +0100 equations for Ammann A3 substitution tiling
-87dc7c2 2010-07-04 03:52:47 +0100 brain-dead equation manipulator with test file
-898e500 2010-07-02 08:14:45 +0100 quality presets
-                                  string quoting
-                                  case bracketing
-                                  sane indentation
-                                  success detection
-                                  typo fixes
-798d35e 2010-07-02 08:12:17 +0100 make it work
-1fc0553 2010-07-02 06:47:57 +0100 A video DVD exploring Mandelbrot/Julia sets.
-
- (eof)
diff --git a/NEWS b/NEWS
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,11 @@
+v0.8 2022-09-22 necrobump
+
+    Minor fixes for the current state of Hackage.
+
+    Thanks to Jens Petersen for the nudge.
+
+    Source code statistics: 2090 lines, 10142 words, 58840 chars.
+
 v0.7 2010-08-14 smooth-as
 
     Visual quality improvements include reduced jitter (at the cost of
diff --git a/config/defaults.lua b/config/defaults.lua
--- a/config/defaults.lua
+++ b/config/defaults.lua
@@ -1,7 +1,7 @@
 --[[--
 
 Mandulia -- Mandelbrot/Julia explorer
-Copyright (C) 2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>
+Copyright (C) 2010  Claude Heiland-Allen <claude@mathr.co.uk>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
diff --git a/config/distance.lua b/config/distance.lua
--- a/config/distance.lua
+++ b/config/distance.lua
@@ -1,7 +1,7 @@
 --[[--
 
 Mandulia -- Mandelbrot/Julia explorer
-Copyright (C) 2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>
+Copyright (C) 2010  Claude Heiland-Allen <claude@mathr.co.uk>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
diff --git a/config/main.lua b/config/main.lua
--- a/config/main.lua
+++ b/config/main.lua
@@ -1,7 +1,7 @@
 --[[--
 
 Mandulia -- Mandelbrot/Julia explorer
-Copyright (C) 2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>
+Copyright (C) 2010  Claude Heiland-Allen <claude@mathr.co.uk>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
diff --git a/config/transition.lua b/config/transition.lua
--- a/config/transition.lua
+++ b/config/transition.lua
@@ -1,7 +1,7 @@
 --[[--
 
 Mandulia -- Mandelbrot/Julia explorer
-Copyright (C) 2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>
+Copyright (C) 2010  Claude Heiland-Allen <claude@mathr.co.uk>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
diff --git a/mandulia.cabal b/mandulia.cabal
--- a/mandulia.cabal
+++ b/mandulia.cabal
@@ -1,5 +1,5 @@
 Name:                mandulia
-Version:             0.7
+Version:             0.8.0.1
 Stability:           Provisional
 Synopsis:            A zooming visualisation of the Mandelbrot Set as many Julia Sets.
 Description:         Mandulia provides a zooming visualisation of the Mandelbrot Set
@@ -11,20 +11,19 @@
                      These flags are "-ffast" for miscellaneous optimizations, and
                      "-ffast -fSSE4" to use SSE4 instructions too.
                      .
-                     Changes from "mandulia-0.6": the optimization flags are disabled
-                     by default as they were causing problems on some systems; reduced
-                     visual jitter for smoother animation; smoother colour gradations;
-                     access runtime statistics from Lua scripts.
-Homepage:            http://gitorious.org/maximus/mandulia
-Cabal-version:       >=1.6
+                     Changes from "mandulia-0.7": fixed for current state of Hackage.
+                     .
+                     Quick start: run "mandula main" and press the "a" key.
+Homepage:            https://code.mathr.co.uk/mandulia
+Cabal-version:       >=1.10
 License:             GPL-3
 License-file:        COPYING
 Author:              Claude Heiland-Allen
-Maintainer:          claudiusmaximus@goto10.org
-Copyright:           (C) 2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>
+Maintainer:          claude@mathr.co.uk
+Copyright:           (C) 2010,2022  Claude Heiland-Allen <claude@mathr.co.uk>
 Category:            Graphics
 Build-type:          Simple
-Extra-source-files:  AUTHORS ChangeLog HACKING INSTALL NEWS README TODO
+Extra-source-files:  AUTHORS HACKING INSTALL NEWS README TODO
                      src/rjulia.h src/qsort.h
 Data-dir:            config
 Data-files:          defaults.lua distance.lua main.lua transition.lua
@@ -38,21 +37,16 @@
   Default:             False
 
 Executable mandulia
-  Build-depends:       base >= 4 && < 5, array, bytestring, containers, directory, filepath, time, GLUT >= 2.2, hslua >= 0.2
+  Build-depends:       base >= 4.6 && < 5, array, bytestring, containers >= 0.5, directory, filepath, time, GLUT >= 2.2, hslua >= 0.2 && < 0.4
   Build-tools:         hsc2hs
-  Extensions:          ForeignFunctionInterface
-  if !flag(fast) && impl(ghc)
-    GHC-options:         -Wall -threaded
-    GHC-prof-options:    -Wall -threaded -prof -auto-all
-    CC-options:          -std=c99 -Wall -pedantic
-  if  flag(fast) &&  flag(SSE4) && impl(ghc)
-    GHC-options:         -Wall -O3 -threaded -fvia-c -funbox-strict-fields -optc-O3 -optc-march=native -optc-ffast-math -optc-msse4
-    GHC-prof-options:    -Wall -O3 -threaded -fvia-c -funbox-strict-fields -optc-O3 -optc-march=native -optc-ffast-math -optc-msse4 -prof -auto-all
-    CC-options:          -std=c99 -Wall -pedantic -O3 -march=native -ffast-math -msse4
-  if  flag(fast) && !flag(SSE4) && impl(ghc)
-    GHC-options:         -Wall -O3 -threaded -fvia-c -funbox-strict-fields -optc-O3 -optc-march=native -optc-ffast-math
-    GHC-prof-options:    -Wall -O3 -threaded -fvia-c -funbox-strict-fields -optc-O3 -optc-march=native -optc-ffast-math -prof -auto-all
-    CC-options:          -std=c99 -Wall -pedantic -O3 -march=native -ffast-math
+  Default-Language:    Haskell2010
+  Other-Extensions:    ForeignFunctionInterface
+  GHC-options:         -Wall -threaded
+  CC-options:          -std=c99 -Wall -Wextra -pedantic
+  if  flag(fast) &&  flag(SSE4)
+    CC-options:          -std=c99 -Wall -Wextra -pedantic -O3 -march=native -ffast-math -msse4
+  if  flag(fast) && !flag(SSE4)
+    CC-options:          -std=c99 -Wall -Wextra -pedantic -O3 -march=native -ffast-math
   HS-source-dirs:      src
   Main-is:             Mandulia.hs
   Other-modules:       AmmannA3
@@ -61,7 +55,7 @@
                        Interface
                        JobQueue
                        Julia
-                       Mandulia
+                       Paths_mandulia
                        PriorityCache
                        ResourcePool
                        Snapshot
@@ -79,9 +73,9 @@
 
 Source-repository head
   type:                git
-  location:            git://gitorious.org/maximus/mandulia.git
+  location:            https://code.mathr.co.uk/mandulia.git
 
 Source-repository this
   type:                git
-  location:            git://gitorious.org/maximus/mandulia.git
-  tag:                 v0.7
+  location:            https://code.mathr.co.uk/mandulia.git
+  tag:                 v0.8.0.1
diff --git a/src/AmmannA3.hs b/src/AmmannA3.hs
--- a/src/AmmannA3.hs
+++ b/src/AmmannA3.hs
@@ -1,6 +1,6 @@
 {-
 Mandulia -- Mandelbrot/Julia explorer
-Copyright (C) 2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>
+Copyright (C) 2010  Claude Heiland-Allen <claude@mathr.co.uk>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
diff --git a/src/Bounds.hs b/src/Bounds.hs
--- a/src/Bounds.hs
+++ b/src/Bounds.hs
@@ -1,6 +1,6 @@
 {-
 Mandulia -- Mandelbrot/Julia explorer
-Copyright (C) 2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>
+Copyright (C) 2010  Claude Heiland-Allen <claude@mathr.co.uk>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
diff --git a/src/Image.hs b/src/Image.hs
--- a/src/Image.hs
+++ b/src/Image.hs
@@ -1,6 +1,6 @@
 {-
 Mandulia -- Mandelbrot/Julia explorer
-Copyright (C) 2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>
+Copyright (C) 2010  Claude Heiland-Allen <claude@mathr.co.uk>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
diff --git a/src/Interface.hs b/src/Interface.hs
--- a/src/Interface.hs
+++ b/src/Interface.hs
@@ -1,6 +1,6 @@
 {-
 Mandulia -- Mandelbrot/Julia explorer
-Copyright (C) 2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>
+Copyright (C) 2010  Claude Heiland-Allen <claude@mathr.co.uk>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
@@ -28,8 +28,6 @@
 import qualified Scripting.Lua as Lua
 
 import Paths_mandulia (getDataFileName)
-
-import Utils(modifyIORef')
 
 -- interface
 
diff --git a/src/JobQueue.hs b/src/JobQueue.hs
--- a/src/JobQueue.hs
+++ b/src/JobQueue.hs
@@ -1,6 +1,6 @@
 {-
 Mandulia -- Mandelbrot/Julia explorer
-Copyright (C) 2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>
+Copyright (C) 2010  Claude Heiland-Allen <claude@mathr.co.uk>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
diff --git a/src/Julia.hs b/src/Julia.hs
--- a/src/Julia.hs
+++ b/src/Julia.hs
@@ -1,7 +1,7 @@
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-
 Mandulia -- Mandelbrot/Julia explorer
-Copyright (C) 2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>
+Copyright (C) 2010  Claude Heiland-Allen <claude@mathr.co.uk>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
diff --git a/src/Mandulia.hs b/src/Mandulia.hs
--- a/src/Mandulia.hs
+++ b/src/Mandulia.hs
@@ -1,6 +1,6 @@
 {-
 Mandulia -- Mandelbrot/Julia explorer
-Copyright (C) 2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>
+Copyright (C) 2010,2022  Claude Heiland-Allen <claude@mathr.co.uk>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
@@ -77,7 +77,7 @@
   when ("--version" `elem` opts || "-V" `elem` opts) $ do
     putStr $ unlines
       [ "mandulia " ++ showVersion version
-      , "Copyright (C) 2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>"
+      , "Copyright (C) 2010,2022  Claude Heiland-Allen <claude@mathr.co.uk>"
       , "This is free software; see the source for copying conditions.  There is NO"
       , "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
       ]
@@ -103,7 +103,7 @@
       , "  -?, -h, --help         print this help text"
       , "  -V, --version          print program version"
       , ""
-      , "Report bugs to <claudiusmaximus@goto10.org>."
+      , "Report bugs to <claude@mathr.co.uk>."
       ]
     exitSuccess
   when (null args') $ do
@@ -113,7 +113,7 @@
       ]
     exitFailure
   hPutStr stderr $ unlines
-      [ "mandulia (GPLv3+) 2010 Claude Heiland-Allen <claudiusmaximus@goto10.org>"
+      [ "mandulia (GPLv3+) 2010,2022 Claude Heiland-Allen <claude@mathr.co.uk>"
       ]
   mif <- interface (head args') (tail args')
   when (isNothing mif) $ do
diff --git a/src/PriorityCache.hs b/src/PriorityCache.hs
--- a/src/PriorityCache.hs
+++ b/src/PriorityCache.hs
@@ -1,6 +1,6 @@
 {-
 Mandulia -- Mandelbrot/Julia explorer
-Copyright (C) 2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>
+Copyright (C) 2010  Claude Heiland-Allen <claude@mathr.co.uk>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
diff --git a/src/ResourcePool.hs b/src/ResourcePool.hs
--- a/src/ResourcePool.hs
+++ b/src/ResourcePool.hs
@@ -1,6 +1,6 @@
 {-
 Mandulia -- Mandelbrot/Julia explorer
-Copyright (C) 2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>
+Copyright (C) 2010  Claude Heiland-Allen <claude@mathr.co.uk>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
diff --git a/src/Snapshot.hs b/src/Snapshot.hs
--- a/src/Snapshot.hs
+++ b/src/Snapshot.hs
@@ -1,6 +1,6 @@
 {-
 Mandulia -- Mandelbrot/Julia explorer
-Copyright (C) 2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>
+Copyright (C) 2010  Claude Heiland-Allen <claude@mathr.co.uk>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
diff --git a/src/Sort.hsc b/src/Sort.hsc
--- a/src/Sort.hsc
+++ b/src/Sort.hsc
@@ -1,7 +1,7 @@
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-
 Mandulia -- Mandelbrot/Julia explorer
-Copyright (C) 2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>
+Copyright (C) 2010  Claude Heiland-Allen <claude@mathr.co.uk>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
 import Data.Array (array, (!))
 import Foreign.Storable
 import Foreign.Ptr (Ptr, castPtr)
-import Foreign.C.Types (CInt, CDouble)
+import Foreign.C.Types (CInt(..), CDouble(..))
 import Foreign.Marshal.Array (withArray, peekArray)
 import Unsafe.Coerce (unsafeCoerce)
 
diff --git a/src/StatsLogger.hs b/src/StatsLogger.hs
--- a/src/StatsLogger.hs
+++ b/src/StatsLogger.hs
@@ -1,6 +1,6 @@
 {-
 Mandulia -- Mandelbrot/Julia explorer
-Copyright (C) 2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>
+Copyright (C) 2010,2022  Claude Heiland-Allen <claude@mathr.co.uk>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
@@ -19,7 +19,7 @@
 module StatsLogger(statsLogger, Logger, Statistics, time) where
 
 import Prelude hiding (map)
-import Data.Map (empty, insertWith', map, toAscList)
+import Data.Map.Strict (empty, insertWith, map, toAscList)
 import Control.Concurrent.MVar (newMVar, modifyMVar_, readMVar)
 import Data.Time (getCurrentTime, diffUTCTime)
 
@@ -54,7 +54,7 @@
 statsLogger :: IO (Logger, Statistics)
 statsLogger = do
   v <- newMVar empty
-  let logStats name value = modifyMVar_ v $ \m -> return $! (insertWith' combine name (stat value) $! m)
+  let logStats name value = modifyMVar_ v $ \m -> return $! (insertWith combine name (stat value) $! m)
       getStats = readMVar v >>= return . toAscList . map stats
   return (logStats, getStats)
 
diff --git a/src/TextureCache.hs b/src/TextureCache.hs
--- a/src/TextureCache.hs
+++ b/src/TextureCache.hs
@@ -1,6 +1,6 @@
 {-
 Mandulia -- Mandelbrot/Julia explorer
-Copyright (C) 2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>
+Copyright (C) 2010  Claude Heiland-Allen <claude@mathr.co.uk>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
diff --git a/src/Utils.hs b/src/Utils.hs
--- a/src/Utils.hs
+++ b/src/Utils.hs
@@ -1,6 +1,6 @@
 {-
 Mandulia -- Mandelbrot/Julia explorer
-Copyright (C) 2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>
+Copyright (C) 2010,2022  Claude Heiland-Allen <claude@mathr.co.uk>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
@@ -16,9 +16,7 @@
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -}
 
-module Utils (phi, phi', clamp, modifyIORef') where
-
-import Data.IORef(IORef(), readIORef, writeIORef)
+module Utils (phi, phi', clamp) where
 
 phi  :: Double
 phi  = (sqrt 5 + 1) / 2
@@ -28,6 +26,3 @@
 
 clamp :: Ord r => r -> r -> r -> r
 clamp mi ma x = ma `min` x `max` mi
-
-modifyIORef' :: IORef a -> (a -> a) -> IO ()
-modifyIORef' r m = readIORef r >>= \v -> writeIORef r $! m v
diff --git a/src/Vector.hs b/src/Vector.hs
--- a/src/Vector.hs
+++ b/src/Vector.hs
@@ -1,6 +1,6 @@
 {-
 Mandulia -- Mandelbrot/Julia explorer
-Copyright (C) 2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>
+Copyright (C) 2010  Claude Heiland-Allen <claude@mathr.co.uk>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
diff --git a/src/qsort.c b/src/qsort.c
--- a/src/qsort.c
+++ b/src/qsort.c
@@ -1,6 +1,6 @@
 /*
 Mandulia -- Mandelbrot/Julia explorer
-Copyright (C) 2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>
+Copyright (C) 2010  Claude Heiland-Allen <claude@mathr.co.uk>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
diff --git a/src/qsort.h b/src/qsort.h
--- a/src/qsort.h
+++ b/src/qsort.h
@@ -1,6 +1,6 @@
 /*
 Mandulia -- Mandelbrot/Julia explorer
-Copyright (C) 2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>
+Copyright (C) 2010  Claude Heiland-Allen <claude@mathr.co.uk>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
diff --git a/src/rjulia.c b/src/rjulia.c
--- a/src/rjulia.c
+++ b/src/rjulia.c
@@ -1,6 +1,6 @@
 /*
 Mandulia -- Mandelbrot/Julia explorer
-Copyright (C) 2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>
+Copyright (C) 2010  Claude Heiland-Allen <claude@mathr.co.uk>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
diff --git a/src/rjulia.h b/src/rjulia.h
--- a/src/rjulia.h
+++ b/src/rjulia.h
@@ -1,6 +1,6 @@
 /*
 Mandulia -- Mandelbrot/Julia explorer
-Copyright (C) 2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>
+Copyright (C) 2010  Claude Heiland-Allen <claude@mathr.co.uk>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
diff --git a/src/rts.c b/src/rts.c
--- a/src/rts.c
+++ b/src/rts.c
@@ -1,6 +1,6 @@
 /*
 Mandulia -- Mandelbrot/Julia explorer
-Copyright (C) 2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>
+Copyright (C) 2010  Claude Heiland-Allen <claude@mathr.co.uk>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
