diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,237 @@
+## Tilia 0.1.0.0
+
+### Conditional compilation
+
+Modules that use the C preprocessor are formatted in one pass, with their
+comments where they were written, in all the cases found so far. Where the
+configurations of a module differ in only a part of something, such as an
+argument, an item of a list, the start of a statement, the Haddock of a
+constructor or an overlap pragma in an instance head, the conditional stays
+around that part in many more cases, rather than the code around it being
+copied into each branch, and conditionals stay nested and whole as they were
+written. A comment that comes out right above a directive goes to the
+margin, and the empty lines around a conditional and at the ends of its
+branches follow what the configurations print.
+
+Directives come out as written: one continued with a backslash, a `#define`
+continued over several lines and the directive under it, the text after
+`#else` and `#endif`, and an alternative that holds nothing but `#error`. A
+line that holds nothing but a use of a function-like macro the module
+defines is put back as written rather than read as code. Configurations that
+no definition of the macros gives are no longer tried, so a module is no
+longer declined over one of them, and what only other compilers see, behind
+`__MHS__` or `__HUGS__`, is not taken to be in scope. A module with many
+conditionals is formatted a fragment at a time, so few run out of
+configurations, and the fixities in a module whose branches do not parse
+together are worked out from each configuration.
+
+Issues and pull requests: [Issue 6], [Issue 7], [PR 34], [PR 39], [PR 44],
+[PR 54], [PR 56], [PR 57], [Issue 60], [Issue 61], [Issue 64], [Issue 65],
+[Issue 66], [Issue 68], [Issue 69], [Issue 70], [Issue 82], [PR 111],
+[Issue 113], [Issue 117], [Issue 118], [Issue 133], [Issue 134],
+[Issue 153], [Issue 154], [Issue 155], [Issue 167], [Issue 172],
+[Issue 178], [Issue 179], [Issue 197].
+
+### Operators and fixities
+
+Tilia finds the fixity of an operator more often and more precisely. It
+settles each name a module re-exports on its own, takes the names an import
+hides into account in a whole-module re-export, and no longer blames an
+operator on a module it cannot read where the operator cannot have come from
+there: a name the module defines, one a local binding captures, which takes
+the fixity its binding group declares, or one an import that can be read
+brings in, among them the constructors, fields and methods of `T(..)` and
+every name an interface file refers to by key. The fixities of the packages
+that come with the compiler are read from its interface files rather than
+from a table written for one version of it, and `:` has its fixity wherever
+it is written. Where Tilia declines a file over an operator its imports
+bring in with different fixities, it names each fixity and the imports that
+bring it.
+
+Issues and pull requests: [PR 52], [Issue 67], [Issue 84], [Issue 86],
+[PR 98], [PR 101].
+
+### Comments
+
+Comments stay with the code they were written beside in many more places:
+under the last line of a construct and lined up with it, after an operator
+that ends a line or between that operator and its operand, between a name
+and its `=`, above the `in` of a `let`, around the guards of a `case`,
+between a Haddock and what it documents, inside empty brackets and before
+closing ones, at the end of a line with comments lined up under it, under a
+remark they carry on, and after the last declaration of a Backpack
+signature, where they used to be dropped.
+
+A section heading keeps the comments written right against it. An empty line
+written under a comment is kept, none is put around a comment where the
+author wrote none, and a comment is held off a Haddock only where it would
+otherwise run into it. Block comments are spaced against brackets and commas
+as written. A Haddock written with no space after its trigger, or holding
+nothing but a space, is formatted.
+
+Issues and pull requests: [Issue 62], [Issue 63], [PR 79], [Issue 94],
+[Issue 119], [Issue 120], [Issue 121], [Issue 122], [Issue 132],
+[Issue 137], [Issue 147], [Issue 148], [Issue 151], [Issue 152],
+[Issue 158], [Issue 159], [Issue 180], [Issue 182], [Issue 183],
+[Issue 184], [Issue 185], [PR 201], [Issue 205], [Issue 206], [Issue 217].
+
+### Layout
+
+More of the layout an author chose is kept where it reads well. A `do`
+block, a `case` or a lambda stays on the line of the `$`, `=` or `->` it was
+written after; a chain of `let … in`, each on a line of its own, comes out
+as a column; the names of a signature for several names stay on one line
+where they were written on one; and a module header with a `DEPRECATED` or
+`WARNING` pragma on a line of its own keeps its lines. `OPTIONS_GHC` pragmas
+keep the order they were written in, which is the order GHC reads their
+flags in, and a `DEPRECATED` or `WARNING` pragma that names nothing is no
+longer dropped.
+
+Issues and pull requests: [Issue 96], [Issue 136], [Issue 181], [Issue 198],
+[Issue 209], [Issue 211], [Issue 215], [Issue 218].
+
+### Imports
+
+An import list written on one line stays on one line. Imports of one module
+are merged only where together they cannot bring in more than they did
+apart: imports hiding different names stay apart, and so does a name in a
+`hiding` list from the same name with its own parentheses. Sorting the
+imports leaves the empty line under the module header and a heading comment
+above the imports where they are, and it respects conditionals: an import
+whose clause is behind one sorts among the others, the names on either side
+of one in an import list sort apart, and `#define` lines no longer keep
+apart what is written either side of them.
+
+Issues and pull requests: [PR 55], [PR 73], [PR 76], [Issue 92],
+[Issue 135], [Issue 150].
+
+### Projects and tools
+
+Tilia reads a Cabal package the way `cabal` builds it: a component that
+names no `default-language` is Haskell98, the older `extensions` field
+counts, and so do extensions behind a condition the build meets. A package
+with a component named `all` gets a build plan. `.tiliaignore` files are
+read the way Git reads `.gitignore` files, with globs, negation, and a file
+in any directory. `tilia for-editor FILE`, and `Tilia.Editor` for programs
+that use Tilia as a library, are there for editor integrations.
+
+Issues and pull requests: [PR 41], [PR 51], [Issue 131], [Issue 156],
+[Issue 186], [PR 200].
+
+### Performance
+
+Tilia is faster throughout. A run works out what a module offers once,
+however many threads ask for it, parses each module that operators are
+looked up in and reads each source tarball once, keeps summaries of the
+project's own modules between runs, and reads what interface files refer to
+by key rather than run `ghc --show-iface`. A run that starts with nothing
+cached is up to three times as fast and needs half the memory.
+
+Formatting walks a module's syntax tree once, reads its comments off the
+tokens, places comments in time that does not grow with the square of the
+size of a module, and works out the configurations of conditionals that do
+not depend on one another on several cores. A module with thousands of
+comments formats twice as fast, one whose conditionals reach from above the
+declarations into them in less than half the time, and one with many
+conditionals up to twice as fast where cores are free. `tilia check` diffs
+faster.
+
+Issues and pull requests: [PR 37], [PR 46], [PR 47], [PR 48], [PR 49],
+[PR 50], [PR 130], [PR 201], [PR 202], [PR 203], [PR 228].
+
+[Issue 6]: https://github.com/mrkkrp/tilia/issues/6
+[Issue 7]: https://github.com/mrkkrp/tilia/issues/7
+[PR 34]: https://github.com/mrkkrp/tilia/pull/34
+[PR 37]: https://github.com/mrkkrp/tilia/pull/37
+[PR 39]: https://github.com/mrkkrp/tilia/pull/39
+[PR 41]: https://github.com/mrkkrp/tilia/pull/41
+[PR 44]: https://github.com/mrkkrp/tilia/pull/44
+[PR 46]: https://github.com/mrkkrp/tilia/pull/46
+[PR 47]: https://github.com/mrkkrp/tilia/pull/47
+[PR 48]: https://github.com/mrkkrp/tilia/pull/48
+[PR 49]: https://github.com/mrkkrp/tilia/pull/49
+[PR 50]: https://github.com/mrkkrp/tilia/pull/50
+[PR 51]: https://github.com/mrkkrp/tilia/pull/51
+[PR 52]: https://github.com/mrkkrp/tilia/pull/52
+[PR 54]: https://github.com/mrkkrp/tilia/pull/54
+[PR 55]: https://github.com/mrkkrp/tilia/pull/55
+[PR 56]: https://github.com/mrkkrp/tilia/pull/56
+[PR 57]: https://github.com/mrkkrp/tilia/pull/57
+[Issue 60]: https://github.com/mrkkrp/tilia/issues/60
+[Issue 61]: https://github.com/mrkkrp/tilia/issues/61
+[Issue 62]: https://github.com/mrkkrp/tilia/issues/62
+[Issue 63]: https://github.com/mrkkrp/tilia/issues/63
+[Issue 64]: https://github.com/mrkkrp/tilia/issues/64
+[Issue 65]: https://github.com/mrkkrp/tilia/issues/65
+[Issue 66]: https://github.com/mrkkrp/tilia/issues/66
+[Issue 67]: https://github.com/mrkkrp/tilia/issues/67
+[Issue 68]: https://github.com/mrkkrp/tilia/issues/68
+[Issue 69]: https://github.com/mrkkrp/tilia/issues/69
+[Issue 70]: https://github.com/mrkkrp/tilia/issues/70
+[PR 73]: https://github.com/mrkkrp/tilia/pull/73
+[PR 76]: https://github.com/mrkkrp/tilia/pull/76
+[PR 79]: https://github.com/mrkkrp/tilia/pull/79
+[Issue 82]: https://github.com/mrkkrp/tilia/issues/82
+[Issue 84]: https://github.com/mrkkrp/tilia/issues/84
+[Issue 86]: https://github.com/mrkkrp/tilia/issues/86
+[Issue 92]: https://github.com/mrkkrp/tilia/issues/92
+[Issue 94]: https://github.com/mrkkrp/tilia/issues/94
+[Issue 96]: https://github.com/mrkkrp/tilia/issues/96
+[PR 98]: https://github.com/mrkkrp/tilia/pull/98
+[PR 101]: https://github.com/mrkkrp/tilia/pull/101
+[PR 111]: https://github.com/mrkkrp/tilia/pull/111
+[Issue 113]: https://github.com/mrkkrp/tilia/issues/113
+[Issue 117]: https://github.com/mrkkrp/tilia/issues/117
+[Issue 118]: https://github.com/mrkkrp/tilia/issues/118
+[Issue 119]: https://github.com/mrkkrp/tilia/issues/119
+[Issue 120]: https://github.com/mrkkrp/tilia/issues/120
+[Issue 121]: https://github.com/mrkkrp/tilia/issues/121
+[Issue 122]: https://github.com/mrkkrp/tilia/issues/122
+[PR 130]: https://github.com/mrkkrp/tilia/pull/130
+[Issue 131]: https://github.com/mrkkrp/tilia/issues/131
+[Issue 132]: https://github.com/mrkkrp/tilia/issues/132
+[Issue 133]: https://github.com/mrkkrp/tilia/issues/133
+[Issue 134]: https://github.com/mrkkrp/tilia/issues/134
+[Issue 135]: https://github.com/mrkkrp/tilia/issues/135
+[Issue 136]: https://github.com/mrkkrp/tilia/issues/136
+[Issue 137]: https://github.com/mrkkrp/tilia/issues/137
+[Issue 147]: https://github.com/mrkkrp/tilia/issues/147
+[Issue 148]: https://github.com/mrkkrp/tilia/issues/148
+[Issue 150]: https://github.com/mrkkrp/tilia/issues/150
+[Issue 151]: https://github.com/mrkkrp/tilia/issues/151
+[Issue 152]: https://github.com/mrkkrp/tilia/issues/152
+[Issue 153]: https://github.com/mrkkrp/tilia/issues/153
+[Issue 154]: https://github.com/mrkkrp/tilia/issues/154
+[Issue 155]: https://github.com/mrkkrp/tilia/issues/155
+[Issue 156]: https://github.com/mrkkrp/tilia/issues/156
+[Issue 158]: https://github.com/mrkkrp/tilia/issues/158
+[Issue 159]: https://github.com/mrkkrp/tilia/issues/159
+[Issue 167]: https://github.com/mrkkrp/tilia/issues/167
+[Issue 172]: https://github.com/mrkkrp/tilia/issues/172
+[Issue 178]: https://github.com/mrkkrp/tilia/issues/178
+[Issue 179]: https://github.com/mrkkrp/tilia/issues/179
+[Issue 180]: https://github.com/mrkkrp/tilia/issues/180
+[Issue 181]: https://github.com/mrkkrp/tilia/issues/181
+[Issue 182]: https://github.com/mrkkrp/tilia/issues/182
+[Issue 183]: https://github.com/mrkkrp/tilia/issues/183
+[Issue 184]: https://github.com/mrkkrp/tilia/issues/184
+[Issue 185]: https://github.com/mrkkrp/tilia/issues/185
+[Issue 186]: https://github.com/mrkkrp/tilia/issues/186
+[Issue 197]: https://github.com/mrkkrp/tilia/issues/197
+[Issue 198]: https://github.com/mrkkrp/tilia/issues/198
+[PR 200]: https://github.com/mrkkrp/tilia/pull/200
+[PR 201]: https://github.com/mrkkrp/tilia/pull/201
+[PR 202]: https://github.com/mrkkrp/tilia/pull/202
+[PR 203]: https://github.com/mrkkrp/tilia/pull/203
+[Issue 205]: https://github.com/mrkkrp/tilia/issues/205
+[Issue 206]: https://github.com/mrkkrp/tilia/issues/206
+[Issue 209]: https://github.com/mrkkrp/tilia/issues/209
+[Issue 211]: https://github.com/mrkkrp/tilia/issues/211
+[Issue 215]: https://github.com/mrkkrp/tilia/issues/215
+[Issue 217]: https://github.com/mrkkrp/tilia/issues/217
+[Issue 218]: https://github.com/mrkkrp/tilia/issues/218
+[PR 228]: https://github.com/mrkkrp/tilia/pull/228
+
 ## Tilia 0.0.2.0
 
 * Keep explicit braces on empty cases in both single-line and multiline
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,12 +1,12 @@
 # Tilia
 
 * [Getting started](#getting-started)
+* [Editor integration](#editor-integration)
 * [Excluding files](#excluding-files)
 * [Formatting operator chains](#formatting-operator-chains)
 * [Formatting CPP](#formatting-cpp)
 * [Comparison with other formatters](#comparison-with-other-formatters)
 * [Suggested setup per use-case](#suggested-setup-per-use-case)
-* [Development](#development)
 * [Contribution](#contribution)
 * [License](#license)
 
@@ -28,7 +28,7 @@
 
 ## Getting started
 
-The two most useful (and only!) commands are `inplace` and `check`:
+The two most useful commands are `inplace` and `check`:
 
 ```console
 $ tilia inplace [COMPONENT] # format all files of COMPONENT in place
@@ -69,9 +69,9 @@
 
 If there is no build plan yet, or it is older than the `.cabal` and
 `cabal.project` files, or it says nothing about a component you asked for,
-Tilia has Cabal solve it with `cabal build all --dry-run`. If the plan is
+Tilia has Cabal solve it with `cabal build :all --dry-run`. If the plan is
 fine but some dependencies have been neither downloaded nor built, it
-fetches them with `cabal build all --only-download`. These commands do not
+fetches them with `cabal build :all --only-download`. These commands do not
 build anything, and both are one-time costs, since Cabal's package cache is
 shared between projects. So do not worry if the first run in a project
 prints a few lines from Cabal before Tilia starts formatting. Later runs
@@ -97,21 +97,62 @@
   declined.
 * `--must-not-decline` turns declined files into failures.
 
+## Editor integration
+
+Tilia offers a dedicated command for editor integrations:
+
+```console
+$ tilia for-editor FILE < buffer.hs
+```
+
+It reads a module from standard input and formats it as if it were the
+contents of `FILE` (a path): the project, the extensions in force, and the
+dependencies are found by walking upwards from `FILE` rather than from the
+working directory. `FILE` need not exist, but it has to be under the
+`hs-source-dirs` of a component. The formatted module goes to standard
+output. A module that is declined or excluded (see below), is returned
+unchanged, and a failure exits with a non-zero status and prints nothing to
+standard output, so an editor keeps its buffer as it is. The module is
+always formatted as a whole; there is no formatting of a selected range.
+
+For example, with [conform.nvim](https://github.com/stevearc/conform.nvim):
+
+```lua
+require("conform").setup({
+  formatters = {
+    tilia = { command = "tilia", args = { "for-editor", "$FILENAME" }, stdin = true },
+  },
+  formatters_by_ft = { haskell = { "tilia" } },
+})
+```
+
+A program that would rather call Tilia as a library, such as a language
+server plugin, can use `editorSession` and `formatBuffer` from
+`Tilia.Editor`, which is what `for-editor` runs.
+
 ## Excluding files
 
-You can tell Tilia to skip certain files and/or directories. To do so, list
-their paths in a `.tiliaignore` file at the project root:
+You can tell Tilia to skip certain files and/or directories by listing them
+in a `.tiliaignore` file, which Tilia reads the way Git reads `.gitignore`:
 
 ```gitignore
 # Fixtures compiled by a separate driver
 tests/shouldwork/
 tests/shouldfail/
+
+# Generated modules wherever they are, except one
+*Generated.hs
+!/src/Keep/Generated.hs
 ```
 
-Entries are literal file or directory paths relative to the project root,
-and a directory excludes everything below it. Blank lines, surrounding
-whitespace, and lines beginning with `#` are ignored. Wildcards and
-re-inclusion patterns are not supported.
+A `.tiliaignore` can be in the project root or in any directory below it,
+and its patterns are relative to that directory. Everything `.gitignore`
+offers works the same: the globs `*`, `?`, `[…]`, and `**`, a `/` at the
+start or in the middle to anchor a pattern to its directory, a `/` at the
+end to match directories only, `!` to re-include what an earlier pattern
+excluded, `#` for comments, and `\` to escape any of these. As with Git, a
+pattern in a deeper file wins over one above it, and a file whose directory
+is excluded cannot be re-included.
 
 ## Formatting operator chains
 
@@ -241,52 +282,12 @@
 fast as a cached run outside of Nix (a fraction of a second on a project the
 size of Tilia).
 
-## Development
-
-Enter the development shell by either running `direnv allow` or `nix
-develop`. Once in the shell, the development is ordinary Cabal:
-
-```console
-$ cabal build
-$ cabal test
-```
-
-All tests are in one test suite and there are a fair number of them. On my
-machine the full test suite passes in 140 seconds, but it may be different
-for you, so isolating a subset of the test suite may be helpful:
-
-```console
-$ cabal test --test-options='--match "Tilia.Fixity"'
-```
-
-The test suite will perform downloads the first time you run it and so it
-will be a bit slower on that run. It needs various corpora, such as Hackage
-packages and GHC's own test suite, which are not checked into this
-repository.
-
-The Hackage corpus is exercised in order to ensure that every module
-formats, that its AST is preserved, and that formatting it is idempotent.
-The results are recorded in `corpora/hackage/hackage.manifest`. Next to it,
-`hackage.report` explains the failing cases. The manifest and the report can
-be updated like this:
-
-```console
-$ TILIA_CORPUS_ACCEPT=1 cabal test
-```
-
-Finally, Tilia formats itself, so make sure to run this command before you
-open a PR:
-
-```console
-$ nix run .#format
-```
-
 ## Contribution
 
 Issues, bugs, and questions may be reported in [the GitHub issue tracker for
 this project][issue-tracker].
 
-Pull requests are also welcome.
+Pull requests are also welcome, see [HACKING.md](./HACKING.md).
 
 [issue-tracker]: https://github.com/mrkkrp/tilia/issues
 
diff --git a/app/Main.hs b/app/Main.hs
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -6,10 +6,12 @@
 module Main (main) where
 
 import Control.Monad (when)
+import Data.ByteString qualified as BS
 import Data.Choice (Choice, fromBool, isTrue)
 import Data.Foldable (traverse_)
 import Data.Maybe (mapMaybe)
 import Data.Text (Text)
+import Data.Text.Encoding qualified as T
 import Data.Text.IO qualified as T
 import Data.Version (showVersion)
 import GHC.IO.Encoding (TextEncoding (textEncodingName))
@@ -25,6 +27,7 @@
     hSetEncoding,
     mkTextEncoding,
     stderr,
+    stdin,
     stdout,
   )
 import Tilia.Cabal.Project (ProjectRoot, findProjectRoot)
@@ -37,10 +40,12 @@
     filesOfComponents,
     parseTarget,
   )
+import Tilia.Editor (editorSession, formatBuffer)
 import Tilia.Fixity.Debug (renderFixityNotes)
 import Tilia.Format
-  ( FormatError,
+  ( FormatError (Unreadable),
     PlanSource (..),
+    Session,
     describeFormatError,
     fixityNotesOf,
     formatErrorExitCode,
@@ -49,7 +54,7 @@
 import Tilia.Palette (Color (Bad), Palette, paletteFor)
 import Tilia.Parser (ghcLibParserVersion)
 import Tilia.Run
-  ( Outcome,
+  ( Outcome (..),
     Report (..),
     checkReport,
     differs,
@@ -58,22 +63,44 @@
     inplaceReport,
     noted,
     runOver,
+    stdinReport,
     writeBack,
   )
-import Tilia.Utils (lineWidth, quietly)
+import Tilia.Utils (asUtf8, lineWidth, quietly)
 
 -- | The program's entry point.
 main :: IO ()
 main = do
   traverse_ transliterateUnprintable [stdout, stderr]
-  Opts{..} <- customExecParser (prefs (columns lineWidth)) optsParserInfo
+  opts <- customExecParser (prefs (columns lineWidth)) optsParserInfo
   palette <- paletteFor
-  target <-
-    either
-      (die usageExitCode palette)
-      pure
-      (maybe (parseTarget "all") parseTarget optTarget)
-  (root, components) <- componentsFor palette target
+  let cmd = optCommand opts
+  outcomes <- case cmd of
+    Inplace target -> do
+      outcomes <- formatComponents palette opts target
+      traverse_ writeBack outcomes
+      outcomes <$ printReport (inplaceReport palette outcomes)
+    Check target -> do
+      outcomes <- formatComponents palette opts target
+      outcomes <$ printReport (checkReport palette outcomes)
+    ForEditor file -> do
+      (input, outcomes) <- formatStdin palette opts file
+      outcomes <$ printReport (stdinReport palette input outcomes)
+  exitWith cmd outcomes
+
+-- | Format the files of the components a target asks for.
+formatComponents ::
+  Palette ->
+  Opts ->
+  Maybe String ->
+  IO [(FilePath, Outcome)]
+formatComponents palette opts@Opts{..} target = do
+  (root, components) <-
+    componentsFor palette
+      =<< either
+        (die usageExitCode palette)
+        pure
+        (maybe (parseTarget "all") parseTarget target)
   files <-
     traverse makeRelativeToCurrentDirectory
       =<< filesOfComponents root components
@@ -90,17 +117,67 @@
       optCheckIdempotence
       optDebugFixity
       >>= either (dieFormatting palette) pure
-  outcomes <-
-    (if isTrue optMustNotDecline then fmap (fmap failIfDeclined) else id)
-      <$> runOver session files
+  formatWith palette opts session (`runOver` files)
+
+-- | Format the module read from standard input as the given file, and say
+-- what became of it, together with the module as it was read.
+formatStdin ::
+  Palette ->
+  Opts ->
+  FilePath ->
+  IO (Text, [(FilePath, Outcome)])
+formatStdin palette opts@Opts{..} file = do
+  input <- readStandardInput
+  case asUtf8 input of
+    Left why -> pure ("", [(file, Failed (Unreadable file why))])
+    Right before -> do
+      outcomes <-
+        editorSession
+          file
+          optBuildPlan
+          optUseCache
+          optDownload
+          optCheckAst
+          optCheckIdempotence
+          optDebugFixity
+          >>= \case
+            Left e -> pure [(file, Failed e)]
+            Right session ->
+              formatWith palette opts session $ \s ->
+                pure . (file,) <$> formatBuffer s file before
+      pure (before, outcomes)
+
+-- | Format with a session and print how it settled fixities, counting a
+-- declined file as failed where the options say so.
+formatWith ::
+  Palette ->
+  Opts ->
+  Session ->
+  (Session -> IO [(FilePath, Outcome)]) ->
+  IO [(FilePath, Outcome)]
+formatWith palette Opts{..} session formatting = do
+  outcomes <- formatting session
+  printFixityNotes palette session
+  pure $
+    if isTrue optMustNotDecline
+      then fmap (fmap failIfDeclined) outcomes
+      else outcomes
+
+-- | Read standard input to its end without closing it, which would hand its
+-- descriptor to whatever is opened next.
+readStandardInput :: IO BS.ByteString
+readStandardInput = BS.concat <$> chunks
+  where
+    chunks = do
+      chunk <- BS.hGetSome stdin 32768
+      if BS.null chunk then pure [] else (chunk :) <$> chunks
+
+-- | Print how the session settled every file's fixities, if it was asked to
+-- keep an account of that.
+printFixityNotes :: Palette -> Session -> IO ()
+printFixityNotes palette session =
   fixityNotesOf session
     >>= traverse_ (T.hPutStrLn stderr) . renderFixityNotes palette
-  case optMode of
-    Inplace -> do
-      traverse_ writeBack outcomes
-      printReport (inplaceReport palette outcomes)
-    Check -> printReport (checkReport palette outcomes)
-  exitWith optMode outcomes
 
 -- | Transliterate unprintable characters if the output stream cannot handle
 -- them.
@@ -114,22 +191,23 @@
             hSetEncoding h =<< mkTextEncoding (name <> "//TRANSLIT")
       _ -> pure ()
 
--- | Exit with a status code determined by 'Mode' of operation and the
--- formatting 'Outcome's.
-exitWith :: Mode -> [(FilePath, Outcome)] -> IO ()
-exitWith mode outcomes = case exitCodeOf outcomes of
+-- | Exit with a status code determined by the 'Command' and the formatting
+-- 'Outcome's.
+exitWith :: Command -> [(FilePath, Outcome)] -> IO ()
+exitWith cmd outcomes = case exitCodeOf outcomes of
   Just code -> System.Exit.exitWith (ExitFailure code)
-  Nothing -> case mode of
-    Inplace -> pure ()
-    Check ->
+  Nothing -> case cmd of
+    Inplace _ -> pure ()
+    Check _ ->
       when
         (any (differs . snd) outcomes)
         (System.Exit.exitWith (ExitFailure 1))
+    ForEditor _ -> pure ()
 
 -- | Print a 'Report'.
 printReport :: Report -> IO ()
 printReport report = do
-  traverse_ T.putStrLn (reportOut report)
+  BS.putStr (T.encodeUtf8 (reportOut report))
   hFlush stdout
   traverse_ (T.hPutStrLn stderr) (reportErr report)
   hFlush stderr
@@ -167,15 +245,20 @@
 ----------------------------------------------------------------------------
 -- Command line options
 
--- | The mode of operation.
-data Mode = Inplace | Check
+-- | Command.
+data Command
+  = -- | Format the files of a component, or of all of them, in place.
+    Inplace (Maybe String)
+  | -- | Report what formatting the files of a component, or of all of them,
+    -- would change.
+    Check (Maybe String)
+  | -- | Format the module read from standard input as the given file.
+    ForEditor FilePath
 
 -- | The command line options.
 data Opts = Opts
-  { -- | The mode of operation.
-    optMode :: Mode,
-    -- | Which component to work on, if not all of them.
-    optTarget :: Maybe String,
+  { -- | What to do.
+    optCommand :: Command,
     -- | Whether to check AST equivalence.
     optCheckAst :: Choice "checkAst",
     -- | Whether to check idempotence.
@@ -214,15 +297,27 @@
   hsubparser . mconcat $
     [ command
         "inplace"
-        (info (parser Inplace) (progDesc "Format files, in place")),
+        ( info
+            (parser (Inplace <$> optional targetArgument))
+            (progDesc "Format files, in place")
+        ),
       command
         "check"
-        (info (parser Check) (progDesc "Report what formatting would change, and fail if anything would"))
+        ( info
+            (parser (Check <$> optional targetArgument))
+            (progDesc "Report what formatting would change, and fail if anything would")
+        ),
+      command
+        "for-editor"
+        ( info
+            (parser (ForEditor <$> fileArgument))
+            (progDesc "Format a module read from standard input as FILE, and print it")
+        )
     ]
   where
-    parser mode =
-      Opts mode
-        <$> optional targetArgument
+    parser cmd =
+      Opts
+        <$> cmd
         <*> checkAstSwitch
         <*> checkIdempotenceSwitch
         <*> debugFixitySwitch
@@ -276,4 +371,9 @@
       (strArgument . mconcat)
         [ metavar "COMPONENT",
           help "Component to format: all (the default) or a package/component name"
+        ]
+    fileArgument =
+      (strArgument . mconcat)
+        [ metavar "FILE",
+          help "File whose contents are read from standard input"
         ]
diff --git a/bench/Main.hs b/bench/Main.hs
new file mode 100644
--- /dev/null
+++ b/bench/Main.hs
@@ -0,0 +1,521 @@
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE ScopedTypeVariables #-}
+
+-- | Measure what formatting a fixed sample of modules costs, and compare
+-- what it allocates and the instructions it retires with the record kept
+-- in the repository.
+module Main (main) where
+
+import Control.Applicative ((<|>))
+import Control.Exception (SomeException, try)
+import Control.Monad (join, mfilter, unless)
+import Data.Containers.ListUtils (nubOrd)
+import Data.Foldable (for_)
+import Data.Int (Int64)
+import Data.List (sortOn)
+import Data.Map.Strict (Map)
+import Data.Map.Strict qualified as Map
+import Data.Maybe (fromMaybe, isJust, listToMaybe)
+import Data.Ord (Down (..))
+import Data.Text (Text)
+import Data.Text qualified as T
+import Data.Text.IO qualified as T
+import Data.Traversable (for)
+import Data.Version (showVersion)
+import Data.Word (Word64)
+import Options.Applicative
+  ( Parser,
+    ParserInfo,
+    execParser,
+    fullDesc,
+    help,
+    helper,
+    info,
+    long,
+    maybeReader,
+    metavar,
+    option,
+    optional,
+    progDesc,
+    showDefault,
+    strOption,
+    value,
+  )
+import System.Environment (lookupEnv)
+import System.Exit (die, exitFailure)
+import System.IO (BufferMode (..), hSetBuffering, stdout)
+import System.Info (fullCompilerVersion)
+import Text.Printf (printf)
+import Text.Read (readMaybe)
+import Tilia.Bench.Cases
+import Tilia.Bench.Fixity
+import Tilia.Bench.Measure
+import Tilia.Bench.Record
+import Tilia.Corpus (hackagePackages, obtain)
+
+-- | How the benchmarks were asked to run.
+data Options = Options
+  { -- | How many runs to measure after the one that warms up.
+    optRuns :: Int,
+    -- | Run only the benchmarks whose module names hold this.
+    optMatch :: Maybe Text,
+    -- | How far one benchmark's allocations or instructions may move from
+    -- the record before it is out of date, as a fraction.
+    optTolerance :: Double,
+    -- | How far the allocations or instructions of all the benchmarks of a
+    -- stage may move, as a fraction.
+    optTotalTolerance :: Double,
+    -- | Where to save what was measured.
+    optSave :: Maybe FilePath,
+    -- | What an earlier run saved, to compare this one with.
+    optBaseline :: Maybe FilePath
+  }
+
+-- | A benchmark, by stage and module.
+type Key = (Text, Text)
+
+main :: IO ()
+main = do
+  hSetBuffering stdout LineBuffering
+  options <- execParser optionsInfo
+  accepting <- (== Just "1") <$> lookupEnv "TILIA_BENCH_ACCEPT"
+  examples <- obtain hackagePackages >>= either (die . T.unpack) pure
+  sampled <- corpusSubjects examples >>= either (die . T.unpack) pure
+  let matching name = maybe True (`T.isInfixOf` name) (optMatch options)
+      subjects =
+        [s | s <- sampled <> syntheticSubjects, matching (subjectName s)]
+      partial = isJust (optMatch options)
+  counter <- openCounter
+  processor <- (<* counter) <$> processorName
+  written <- readRecord recordPath
+  baseline <- traverse readBaseline (optBaseline options)
+  let measuring stage s work input = do
+        (result, m) <-
+          measure counter (optRuns options) work (maybe 0 T.length) input
+        let k = (stageName stage, subjectName s)
+            shown = comparable processor (recordInterfaces written) written
+        T.putStrLn (lineFor (Just shown) baseline k m)
+        pure (result, (k, m))
+  formatted <- fmap concat . for subjects $ \s -> do
+    (out, formatting) <-
+      measuring Format s (subjectFormat s) (subjectSource s)
+    checking <- case (subjectCheck s, out) of
+      (Just check, Just printed) ->
+        pure . snd <$> measuring Check s check printed
+      _ -> pure []
+    pure (formatting : checking)
+  ended <- withFixityBenchmarks $ \(resolving, interfaces) -> do
+    let record = comparable processor interfaces written
+        decoding = recordInterfaces written == interfaces
+        checked (stage, _) = decoding || stage /= stageName Decode
+    others <- for [b | b <- resolving, matching (benchmarkName b)] $ \b -> do
+      (_, m) <- measureIO counter (optRuns options) (benchmarkRun b) id
+      let k = (stageName (benchmarkStage b), benchmarkName b)
+          shown = if checked k then Just record else Nothing
+      T.putStrLn (lineFor shown baseline k m)
+      pure (k, m)
+    let measured = formatted <> others
+    for_ (optSave options) (`writeBaseline` measured)
+    totalled record measured
+    for_ baseline (summarize measured)
+    if accepting
+      then do
+        let entryOf k m =
+              steadied (Map.lookup k (recordEntries record)) $
+                Entry
+                  (measuredAllocated m)
+                  (measuredInstructions m <* processor)
+        writeRecord
+          recordPath
+          Record
+            { recordCompiler = compiler,
+              recordProcessor = fromMaybe "none" processor,
+              recordInterfaces = interfaces,
+              recordEntries =
+                Map.union
+                  (Map.fromList [(k, entryOf k m) | (k, m) <- measured])
+                  (if partial then recordEntries record else Map.empty)
+            }
+        putStrLn ("Wrote " <> recordPath <> ".")
+      else do
+        for_ (unchecked processor record) $ \reason ->
+          T.putStrLn ("\nInstructions are not checked: " <> reason <> ".")
+        unless decoding $
+          putStrLn
+            "\nDecoding is not checked: the record decoded other interfaces."
+        let problems =
+              verdict
+                options
+                record
+                partial
+                [x | x@(k, _) <- measured, checked k]
+        unless (null problems) $ do
+          putStrLn ""
+          for_ problems T.putStrLn
+          putStrLn ""
+          putStrLn "If that is the intended change, regenerate the record:"
+          putStrLn "    TILIA_BENCH_ACCEPT=1 cabal bench"
+          exitFailure
+  either (die . T.unpack) pure ended
+
+-- | Where the record is kept, relative to the package.
+recordPath :: FilePath
+recordPath = "bench/bench.record"
+
+-- | The compiler running the benchmarks.
+compiler :: Text
+compiler = T.pack ("ghc " <> showVersion fullCompilerVersion)
+
+-- | The processor running the benchmarks, as Linux names it.
+processorName :: IO (Maybe Text)
+processorName =
+  try (T.readFile "/proc/cpuinfo") >>= \case
+    Left (_ :: SomeException) -> pure Nothing
+    Right cpus ->
+      pure $
+        listToMaybe
+          [ T.strip (T.drop 1 said)
+          | (key, said) <- T.breakOn ":" <$> T.lines cpus,
+            T.strip key == "model name"
+          ]
+
+-- | Forget what a record says that does not hold here: the instructions it
+-- counted on another processor than this one, and what decoding other
+-- interfaces than these cost.
+comparable :: Maybe Text -> Text -> Record -> Record
+comparable processor interfaces record =
+  record{recordEntries = Map.mapMaybeWithKey kept (recordEntries record)}
+  where
+    kept (stage, _) e
+      | stage == stageName Decode,
+        recordInterfaces record /= interfaces =
+          Nothing
+      | processor == Just (recordProcessor record) = Just e
+      | otherwise = Just e{entryInstructions = Nothing}
+
+-- | Why the instructions are not checked against the record, where they
+-- are not.
+unchecked :: Maybe Text -> Record -> Maybe Text
+unchecked processor record
+  | Nothing <- processor = Just "they cannot be counted here"
+  | recordProcessor record == "none" = Just "the record has none"
+  | processor /= Just (recordProcessor record) =
+      Just ("the record counted them on " <> recordProcessor record)
+  | otherwise = Nothing
+
+-- | What the benchmarks can be asked to do.
+optionsInfo :: ParserInfo Options
+optionsInfo =
+  info (helper <*> optionsParser) . mconcat $
+    [ fullDesc,
+      progDesc "Measure what Tilia costs and check it against the record"
+    ]
+
+-- | The options of the benchmarks.
+optionsParser :: Parser Options
+optionsParser =
+  Options
+    <$> (option positive . mconcat)
+      [ long "runs",
+        metavar "N",
+        value 1,
+        showDefault,
+        help "How many runs to measure after the one that warms up"
+      ]
+    <*> (optional . strOption . mconcat)
+      [ long "match",
+        metavar "TEXT",
+        help "Run only the benchmarks whose names hold TEXT"
+      ]
+    <*> (option percent . mconcat)
+      [ long "tolerance",
+        metavar "PERCENT",
+        value 0.005,
+        help "How far one benchmark may move from the record (default: 0.5)"
+      ]
+    <*> (option percent . mconcat)
+      [ long "total-tolerance",
+        metavar "PERCENT",
+        value 0.0005,
+        help "How far the benchmarks of a stage may move (default: 0.05)"
+      ]
+    <*> (optional . strOption . mconcat)
+      [ long "save",
+        metavar "FILE",
+        help "Save the time and instructions of every benchmark to FILE"
+      ]
+    <*> (optional . strOption . mconcat)
+      [ long "baseline",
+        metavar "FILE",
+        help "Compare with what an earlier run saved to FILE"
+      ]
+  where
+    positive = maybeReader (mfilter (> 0) . readMaybe)
+    percent = maybeReader (fmap (/ 100) . mfilter (>= 0) . readMaybe)
+
+-- | One benchmark's line of the report: its time, against the baseline
+-- where there is one, and what it allocated and the instructions it
+-- retired, against the record where it is checked against one.
+lineFor :: Maybe Record -> Maybe Baseline -> Key -> Measurement -> Text
+lineFor record baseline k@(stage, name) m =
+  T.pack $
+    printf
+      "%-7s %8.3f s %-9s %10.1f MB %-11s %s %-9s %s%s"
+      stage
+      (seconds (measuredTime m))
+      (maybe "" ((`against` measuredTime m) . fst) (Map.lookup k =<< baseline))
+      (megabytes (measuredAllocated m))
+      (maybe "(unchecked)" (maybe "(new)" (changeOf allocations)) entry)
+      (instructionsColumn (measuredInstructions m))
+      (maybe "" (changeOf instructions) (join entry))
+      name
+      differing
+  where
+    entry = Map.lookup k . recordEntries <$> record
+    changeOf cost e = maybe "" (uncurry against) (summed cost [(e, m)])
+    differing :: String
+    differing
+      | measuredSpread m > 0.001 =
+          printf " (runs differ by %.2f%%)" (100 * measuredSpread m)
+      | otherwise = ""
+
+-- | A cost the record keeps for every benchmark.
+data Cost = Cost
+  { -- | The verb that says how it moved.
+    costVerb :: Text,
+    -- | The noun that follows how far it moved.
+    costNoun :: Text,
+    -- | What the record says it is.
+    costRecorded :: Entry -> Maybe Word64,
+    -- | What was measured.
+    costMeasured :: Measurement -> Maybe Word64
+  }
+
+-- | The bytes allocated.
+allocations :: Cost
+allocations =
+  Cost "allocates" "" (Just . entryAllocated) (Just . measuredAllocated)
+
+-- | The instructions retired, where they were counted.
+instructions :: Cost
+instructions =
+  Cost "retires" " instructions" entryInstructions measuredInstructions
+
+-- | What the record says and what was measured of a cost, summed over the
+-- benchmarks that have it on both sides.
+summed :: Cost -> [(Entry, Measurement)] -> Maybe (Word64, Word64)
+summed cost pairs =
+  case [ (old, new)
+       | (e, m) <- pairs,
+         Just old <- [costRecorded cost e],
+         Just new <- [costMeasured cost m]
+       ] of
+    [] -> Nothing
+    both -> Just (sum (fmap fst both), sum (fmap snd both))
+
+-- | What is wrong with the record, given what was measured: one line for
+-- every benchmark it is out of date for, and for every stage whose
+-- benchmarks together cost more or less than it says.
+verdict :: Options -> Record -> Bool -> [(Key, Measurement)] -> [Text]
+verdict options record partial measured
+  | recordCompiler record /= compiler =
+      [ "The record was made with "
+          <> (if T.null made then "no compiler" else made)
+          <> " and these benchmarks were built with "
+          <> compiler
+          <> ", which allocates differently."
+      ]
+  | otherwise =
+      concatMap judged measured
+        <> [ "In the record but not measured: " <> stage <> " " <> name
+           | not partial,
+             k@(stage, name) <- Map.keys (recordEntries record),
+             k `notElem` fmap fst measured
+           ]
+        <> [ moving cost ("all of " <> stage) old new
+           | stage <- stages measured,
+             cost <- [allocations, instructions],
+             Just (old, new) <- [summed cost (known record stage measured)],
+             moved (optTotalTolerance options) old new
+           ]
+  where
+    made = recordCompiler record
+    judged (k@(stage, name), m) = case Map.lookup k (recordEntries record) of
+      Nothing -> ["Not in the record: " <> stage <> " " <> name]
+      Just e ->
+        [ moving cost (stage <> " " <> name) old new
+        | cost <- [allocations, instructions],
+          Just (old, new) <- [summed cost [(e, m)]],
+          moved (optTolerance options) old new
+        ]
+    moving :: Cost -> Text -> Word64 -> Word64 -> Text
+    moving cost subject old new =
+      T.pack $
+        printf
+          "%s %s %.2f%% %s%s than the record says"
+          subject
+          (costVerb cost)
+          (abs (change (fromIntegral old) (fromIntegral new)))
+          (if new > old then "more" else "less" :: String)
+          (costNoun cost)
+
+-- | Has a cost moved further than a fraction of what it was?
+moved :: Double -> Word64 -> Word64 -> Bool
+moved tolerance old new =
+  abs (fromIntegral new - fromIntegral old)
+    > tolerance * (fromIntegral old :: Double)
+
+-- | What to record for a benchmark: each cost as the record has it where it
+-- moved no further than two runs of one build differ, so that writing the
+-- record again changes only what moved.
+steadied :: Maybe Entry -> Entry -> Entry
+steadied recorded new = case recorded of
+  Nothing -> new
+  Just old ->
+    Entry
+      { entryAllocated = held (entryAllocated old) (entryAllocated new),
+        entryInstructions =
+          (held <$> entryInstructions old <*> entryInstructions new)
+            <|> entryInstructions new
+      }
+  where
+    held o n = if moved jitter o n then n else o
+
+-- | How far a cost moves between two runs of one build, as a fraction.
+jitter :: Double
+jitter = 0.0001
+
+-- | Say what the benchmarks of each stage took, allocated and retired
+-- together, and how that compares with the record.
+totalled :: Record -> [(Key, Measurement)] -> IO ()
+totalled record measured = do
+  putStrLn ""
+  for_ (stages measured) $ \stage -> do
+    let ms = [m | ((s, _), m) <- measured, s == stage]
+        sumOf f = sum (fmap f ms)
+        changeOf cost =
+          maybe "" (uncurry against) (summed cost (known record stage measured))
+    printf
+      "%-7s %8.3f s %9s %10.1f MB %-11s %s %-9s %d benchmarks\n"
+      stage
+      (seconds (sumOf measuredTime))
+      ("" :: String)
+      (megabytes (sumOf measuredAllocated))
+      (changeOf allocations)
+      (instructionsColumn (sum <$> traverse measuredInstructions ms))
+      (changeOf instructions)
+      (length ms)
+
+-- | The stages measured, in the order they were.
+stages :: [(Key, Measurement)] -> [Text]
+stages = nubOrd . fmap (fst . fst)
+
+-- | What the record and the measurements say about each benchmark of a
+-- stage that both have.
+known :: Record -> Text -> [(Key, Measurement)] -> [(Entry, Measurement)]
+known record stage measured =
+  [ (e, m)
+  | (k@(s, _), m) <- measured,
+    s == stage,
+    Just e <- [Map.lookup k (recordEntries record)]
+  ]
+
+-- | What an earlier run measured: the time of every benchmark and the
+-- instructions it retired, where they were counted.
+type Baseline = Map Key (Int64, Maybe Word64)
+
+-- | Save what was measured.
+writeBaseline :: FilePath -> [(Key, Measurement)] -> IO ()
+writeBaseline path measured =
+  T.writeFile path . T.unlines $
+    [ T.unwords
+        [ stage,
+          T.pack (show (measuredTime m)),
+          maybe "-" (T.pack . show) (measuredInstructions m),
+          name
+        ]
+    | ((stage, name), m) <- measured
+    ]
+
+-- | Read what 'writeBaseline' saved.
+readBaseline :: FilePath -> IO Baseline
+readBaseline path = do
+  text <- T.readFile path
+  pure $
+    Map.fromList
+      [ ((stage, T.unwords rest), (t, readMaybe (T.unpack retired)))
+      | stage : time : retired : rest <- fmap T.words (T.lines text),
+        Just t <- [readMaybe (T.unpack time)]
+      ]
+
+-- | Say how the benchmarks measured on both sides moved against the
+-- baseline, all together and where they moved most: by the instructions
+-- they retired where both sides counted them, by time otherwise.
+summarize :: [(Key, Measurement)] -> Baseline -> IO ()
+summarize measured baseline =
+  unless (null both) $ do
+    putStrLn ""
+    printf "Against the baseline, over %d benchmarks:\n" (length both)
+    printf
+      "  time %.3f s -> %.3f s %s\n"
+      (seconds oldTime)
+      (seconds newTime)
+      (oldTime `against` newTime)
+    for_ counted $ \retired ->
+      let old = sum (fmap fst retired)
+          new = sum (fmap snd retired)
+       in printf
+            "  instructions %.3f G -> %.3f G %s\n"
+            (billions old)
+            (billions new)
+            (old `against` new)
+    for_ (take 5 (sortOn (Down . abs . snd) movers)) $ \((stage, name), c) ->
+      printf "  (%+.2f%%) %-7s %s\n" c stage name
+  where
+    both =
+      [ (k, ((t, i), (measuredTime m, measuredInstructions m)))
+      | (k, m) <- measured,
+        Just (t, i) <- [Map.lookup k baseline]
+      ]
+    oldTime = sum [t | (_, ((t, _), _)) <- both]
+    newTime = sum [t | (_, (_, (t, _))) <- both]
+    counted =
+      traverse (\(_, ((_, old), (_, new))) -> (,) <$> old <*> new) both
+    movers = case counted of
+      Just retired ->
+        zip (fmap fst both) [change' old new | (old, new) <- retired]
+      Nothing ->
+        [(k, change' old new) | (k, ((old, _), (new, _))) <- both]
+    change' :: (Integral a) => a -> a -> Double
+    change' old new = change (fromIntegral old) (fromIntegral new)
+
+-- | How much a quantity moved from the first value to the second, as the
+-- report writes it.
+against :: (Integral a) => a -> a -> String
+against old new =
+  printf "(%+.2f%%)" (change (fromIntegral old) (fromIntegral new))
+
+-- | How much a quantity moved, in percent.
+change :: Double -> Double -> Double
+change old new
+  | old == 0 = 0
+  | otherwise = 100 * (new - old) / old
+
+-- | Instructions, in billions, or as much space where they were not
+-- counted.
+instructionsColumn :: Maybe Word64 -> String
+instructionsColumn =
+  maybe (replicate 15 ' ') (printf "%7.3f G instr" . billions)
+
+-- | Nanoseconds, in seconds.
+seconds :: Int64 -> Double
+seconds ns = fromIntegral ns / 1e9
+
+-- | Bytes, in megabytes.
+megabytes :: Word64 -> Double
+megabytes b = fromIntegral b / 1e6
+
+-- | A count, in billions.
+billions :: Word64 -> Double
+billions n = fromIntegral n / 1e9
diff --git a/bench/Tilia/Bench/Cases.hs b/bench/Tilia/Bench/Cases.hs
new file mode 100644
--- /dev/null
+++ b/bench/Tilia/Bench/Cases.hs
@@ -0,0 +1,247 @@
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+
+-- | What the benchmarks of formatting measure: formatting a fixed sample of
+-- the Hackage corpus and checking what that printed, and formatting modules
+-- made to stress one part of the formatter each.
+module Tilia.Bench.Cases
+  ( Stage (..),
+    stageName,
+    Benchmark (..),
+    Subject (..),
+    corpusSubjects,
+    syntheticSubjects,
+  )
+where
+
+import Data.ByteString qualified as BS
+import Data.Map.Strict qualified as Map
+import Data.Text (Text)
+import Data.Text qualified as T
+import Data.Text.Encoding (decodeUtf8')
+import Data.Traversable (for)
+import GHC.LanguageExtensions.Type (Extension)
+import Tilia.Corpus (Example (..))
+import Tilia.Cpp (everyBranch, formatWithCpp, usesCpp)
+import Tilia.Doc (defaultRenderOptions, printDoc)
+import Tilia.Format (rewritten)
+import Tilia.Parser (parseModule, parserConfigFor)
+import Tilia.Pragma (effectiveExtensions)
+import Tilia.Render (defaultRenderConfig, renderModule)
+import Tilia.TestConfig (exampleRenderConfig)
+
+-- | What part of a run a benchmark measures.
+data Stage
+  = -- | Formatting a module.
+    Format
+  | -- | Checking that what formatting printed is the program it was given,
+    -- as @--check-ast@ does.
+    Check
+  | -- | Reading what the modules of a package establish out of its tarball.
+    Resolve
+  | -- | The same, out of a cache that an earlier reading filled.
+    Recall
+  | -- | Decoding the interfaces of a package.
+    Decode
+
+-- | A stage, as the record and the report spell it.
+stageName :: Stage -> Text
+stageName = \case
+  Format -> "format"
+  Check -> "check"
+  Resolve -> "resolve"
+  Recall -> "recall"
+  Decode -> "decode"
+
+-- | A benchmark of something other than formatting a module.
+data Benchmark = Benchmark
+  { -- | What it measures.
+    benchmarkStage :: Stage,
+    -- | What it measures that on.
+    benchmarkName :: Text,
+    -- | Set one run up, giving the work, which says how much it computed.
+    benchmarkRun :: IO (IO Int)
+  }
+
+-- | A module the benchmarks format, and check where they check it.
+data Subject = Subject
+  { -- | Its name in the corpus, or the stress it makes.
+    subjectName :: Text,
+    -- | The module.
+    subjectSource :: Text,
+    -- | Format it, or 'Nothing' where it is declined.
+    subjectFormat :: Text -> Maybe Text,
+    -- | Check what formatting it printed, giving what changed, where it is
+    -- checked.
+    subjectCheck :: Maybe (Text -> Maybe Text)
+  }
+
+-- | The corpus modules formatted and checked, by the name the corpus gives
+-- them: middling ones from many packages, a few with conditionals among
+-- them.
+checked :: [FilePath]
+checked =
+  [ "haxl-2.5.1.1/Haxl/Core/Monad.hs",
+    "vector-0.13.2.0/src/Data/Vector/Generic.hs",
+    "aeson-2.3.1.0/src/Data/Aeson/KeyMap.hs",
+    "pandoc-3.10.2/src/Text/Pandoc/Class/PandocPure.hs",
+    "lifted-base-0.2.3.12/Control/Exception/Lifted.hs",
+    "text-2.1.4/tests/Tests/Properties/Folds.hs",
+    "ShellCheck-0.11.0/src/ShellCheck/Analytics.hs",
+    "Agda-2.8.0/src/full/Agda/Syntax/Translation/ConcreteToAbstract.hs",
+    "idris-1.3.4/src/Idris/Elab/Term.hs",
+    "pandoc-3.10.2/src/Text/Pandoc/Writers/Powerpoint/Output.hs",
+    "purescript-0.15.15/src/Language/PureScript/Errors.hs",
+    "pandoc-3.10.2/src/Text/Pandoc/Readers/Markdown.hs",
+    "esqueleto-3.6.0.3/test/PostgreSQL/Test.hs",
+    "unpacked-containers-0/src/Map/Internal.hs",
+    "purescript-0.15.15/src/Language/PureScript/TypeChecker/Types.hs",
+    "distributed-process-0.7.8/src/Control/Distributed/Process/Node.hs",
+    "servant-server-0.20.3.0/src/Servant/Server/Internal.hs",
+    "brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal\
+    \/Transformations/Alt.hs",
+    "xmonad-0.18.1/src/XMonad/Operations.hs",
+    "swagger2-2.9.1/src/Data/Swagger/Internal.hs",
+    "time-1.16.0.1/test/main/Test/Format/ParseTime.hs",
+    "optparse-applicative-0.19.0.0/tests/test.hs",
+    "blaze-html-0.9.2.0/src/Text/Blaze/Html5/Attributes.hs",
+    "tls-2.4.3/Network/TLS/Extension.hs",
+    "recursion-schemes-5.2.3/src/Data/Functor/Foldable.hs",
+    "megaparsec-9.8.1/Text/Megaparsec/Internal.hs"
+  ]
+
+-- | The corpus modules only formatted: the largest ones, whose checks would
+-- take most of the time.
+formattedOnly :: [FilePath]
+formattedOnly =
+  [ "QuickCheck-2.18.0.0/src/Test/QuickCheck/Arbitrary.hs",
+    "unordered-containers-0.2.21/Data/HashMap/Internal.hs",
+    "lens-5.3.6/src/Control/Lens/Wrapped.hs",
+    "text-2.1.4/src/Data/Text/Internal/Fusion/CaseMapping.hs"
+  ]
+
+-- | The modules of the corpus measured, or which one the corpus does not
+-- have.
+corpusSubjects :: [Example] -> IO (Either Text [Subject])
+corpusSubjects examples =
+  sequence
+    <$> for
+      (fmap (,True) checked <> fmap (,False) formattedOnly)
+      (uncurry load)
+  where
+    byName = Map.fromList [(exampleName e, e) | e <- examples]
+    load name isChecked = case Map.lookup name byName of
+      Nothing -> pure (Left ("the corpus has no " <> T.pack name))
+      Just example -> do
+        bytes <- BS.readFile (exampleInput example)
+        pure $ case decodeUtf8' bytes of
+          Left _ -> Left (T.pack name <> " is not valid UTF-8")
+          Right source ->
+            Right $
+              subjectOf
+                (exampleExtensions example)
+                isChecked
+                (T.pack name)
+                source
+
+-- | Modules made to stress one part of the formatter each.
+syntheticSubjects :: [Subject]
+syntheticSubjects =
+  [ subjectOf [] False "synthetic/comments" commented,
+    subjectOf [] False "synthetic/imports" imported,
+    subjectOf [] False "synthetic/conditionals" conditional,
+    subjectOf [] False "synthetic/nesting" nested
+  ]
+  where
+    commented =
+      T.unlines $
+        ["module Commented where", ""]
+          <> concat
+            [ [ "-- | The function number " <> n <> ", which is documented.",
+                "f" <> n <> " :: Int -> Int -- the type",
+                "f" <> n <> " x =",
+                "  {- a block comment -} x + " <> n <> " -- an end-of-line one",
+                ""
+              ]
+            | n <- numbers 1500
+            ]
+    imported =
+      T.unlines $
+        ["module Imported where", ""]
+          <> [ "import M" <> m <> " (f" <> n <> ", T" <> n <> " (..))"
+             | n <- numbers 4,
+               m <- numbers 250
+             ]
+          <> ["", "x :: Int", "x = 1"]
+    conditional =
+      T.unlines $
+        ["{-# LANGUAGE CPP #-}", "module Conditional where", ""]
+          <> concat
+            [ [ "#ifdef FLAG" <> n,
+                "g" <> n <> " :: Int",
+                "g" <> n <> " = " <> n,
+                "#else",
+                "g" <> n <> " :: Integer",
+                "g" <> n <> " = " <> n <> " + 1",
+                "#endif",
+                ""
+              ]
+            | n <- numbers 24
+            ]
+    nested =
+      T.unlines
+        [ "module Nested where",
+          "",
+          "deep :: Int -> Int",
+          "deep x =",
+          "  " <> foldr deeper "x" (numbers 40),
+          "",
+          "wide :: [Int]",
+          "wide = [" <> T.intercalate ", " (numbers 5000) <> "]"
+        ]
+    deeper n e =
+      "case x of { " <> n <> " -> (" <> e <> "); _ -> x + " <> n <> " }"
+    numbers k = fmap (T.pack . show) [1 :: Int .. k]
+
+-- | A module to format, and to check what that printed where it is
+-- checked.
+subjectOf :: [Extension] -> Bool -> Text -> Text -> Subject
+subjectOf package isChecked name source =
+  Subject
+    { subjectName = name,
+      subjectSource = source,
+      subjectFormat = formatted package path,
+      subjectCheck =
+        if isChecked
+          then Just (fst . rewritten parser cpp path (source, tree))
+          else Nothing
+    }
+  where
+    path = T.unpack name
+    parser = parserConfigFor package
+    cpp = usesCpp (effectiveExtensions package source) source
+    tree
+      | cpp = Nothing
+      | otherwise = either (const Nothing) Just (parseModule parser path source)
+
+-- | What formatting a module prints, as the corpus does it, or 'Nothing'
+-- where it is declined.
+formatted :: [Extension] -> FilePath -> Text -> Maybe Text
+formatted package path source
+  | usesCpp (effectiveExtensions package source) source =
+      either (const Nothing) Just (formatWithCpp parser configured path source)
+  | otherwise = case parseModule parser path source of
+      Left _ -> Nothing
+      Right p ->
+        Just
+          ( printDoc
+              defaultRenderOptions
+              (renderModule (exampleRenderConfig package source (pure p)) p)
+          )
+  where
+    parser = parserConfigFor package
+    configured =
+      maybe
+        defaultRenderConfig
+        (exampleRenderConfig package source)
+        (everyBranch parser path source)
diff --git a/bench/Tilia/Bench/Fixity.hs b/bench/Tilia/Bench/Fixity.hs
new file mode 100644
--- /dev/null
+++ b/bench/Tilia/Bench/Fixity.hs
@@ -0,0 +1,211 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE OverloadedLabels #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+
+-- | What the benchmarks of fixity resolution measure: reading every module
+-- of a few packages of the Hackage corpus out of their tarballs, the same
+-- out of a cache that an earlier reading filled, and decoding every
+-- interface of a few packages the compiler ships with.
+module Tilia.Bench.Fixity (withFixityBenchmarks) where
+
+import Control.DeepSeq (force)
+import Control.Exception (bracket_, evaluate)
+import Control.Monad (filterM, join, unless)
+import Crypto.Hash.SHA256 qualified as SHA256
+import Data.ByteString qualified as BS
+import Data.ByteString.Base16 qualified as B16
+import Data.Choice (pattern Do, pattern Don't)
+import Data.Either (rights)
+import Data.Foldable (for_)
+import Data.IORef (newIORef, readIORef, writeIORef)
+import Data.Maybe (catMaybes, fromMaybe, listToMaybe)
+import Data.Text (Text)
+import Data.Text qualified as T
+import Data.Text.Encoding qualified as T
+import Data.Traversable (for)
+import System.Directory
+  ( createDirectoryIfMissing,
+    createFileLink,
+    doesFileExist,
+    removePathForcibly,
+  )
+import System.Environment (lookupEnv, setEnv, unsetEnv)
+import System.FilePath ((<.>), (</>))
+import System.Process (getCurrentPid)
+import Text.Printf (printf)
+import Tilia.Bench.Cases (Benchmark (..), Stage (..))
+import Tilia.Corpus (Corpus (..), Source (..), corpusCache, hackagePackages)
+import Tilia.Fixity.Cabal (packageModules)
+import Tilia.Fixity.Cache (Cache, PlanToken (..), openCache)
+import Tilia.Fixity.HiFile (decodeHiFile)
+import Tilia.Fixity.Interface (fromHiFile)
+import Tilia.Fixity.PackageDb
+  ( Installed (..),
+    InstalledPackage (..),
+    readInstalledPackages,
+  )
+import Tilia.Fixity.Plan
+
+-- | The packages of the Hackage corpus whose every module is read.
+resolved :: [String]
+resolved =
+  [ "lens-5.3.6",
+    "aeson-2.3.1.0",
+    "megaparsec-9.8.1",
+    "servant-0.20.3.0",
+    "conduit-1.3.6.1",
+    "vector-0.13.2.0",
+    "text-2.1.4",
+    "free-5.2",
+    "optics-0.4.2.1",
+    "semigroupoids-6.0.2",
+    "pandoc-types-1.23.1.2",
+    "mtl-2.3.2"
+  ]
+
+-- | The packages the compiler ships with whose every interface is decoded.
+decoded :: [Text]
+decoded =
+  [ "base",
+    "ghc-internal",
+    "containers",
+    "template-haskell",
+    "bytestring",
+    "text"
+  ]
+
+-- | The packages the compiler ships with and the corpus does not hold, at
+-- the versions it ships, which the plan names so that the macros of their
+-- versions are defined.
+shipped :: [(Text, Text)]
+shipped =
+  [ ("array", "0.5.8.0"),
+    ("base", "4.20.2.0"),
+    ("binary", "0.8.9.3"),
+    ("bytestring", "0.12.2.0"),
+    ("containers", "0.7"),
+    ("deepseq", "1.5.0.0"),
+    ("directory", "1.3.8.5"),
+    ("filepath", "1.5.4.0"),
+    ("ghc-prim", "0.12.0"),
+    ("process", "1.6.26.1"),
+    ("template-haskell", "2.22.0.0"),
+    ("unix", "2.8.7.0")
+  ]
+
+-- | Set the benchmarks of fixity resolution up in a directory of their own,
+-- run what is given on them and on a digest of the interfaces they decode,
+-- which what decoding them allocates depends on, and remove the directory.
+--
+-- The directory's path is as long on every machine, since what reading the
+-- cache and the tarballs allocates depends on the length of their paths.
+-- Setting them up leaves pinned data in the heap, which moves where the
+-- collections fall in the benchmarks that run after it, so this goes after
+-- the benchmarks of formatting.
+withFixityBenchmarks :: (([Benchmark], Text) -> IO a) -> IO (Either Text a)
+withFixityBenchmarks use = do
+  pid <- getCurrentPid
+  let dir = printf "/tmp/tilia-bench-%010d" (fromIntegral pid :: Int)
+  bracket_
+    (createDirectoryIfMissing True (dir </> "tarballs"))
+    (removePathForcibly dir)
+    (fixityBenchmarks dir >>= traverse use)
+
+-- | The benchmarks of fixity resolution, set up in the directory given, and
+-- a digest of the interfaces they decode.
+fixityBenchmarks :: FilePath -> IO (Either Text ([Benchmark], Text))
+fixityBenchmarks dir = do
+  corpus <- (</> corpusName hackagePackages) <$> corpusCache
+  let releases = case corpusSource hackagePackages of
+        HackageReleases names -> names
+        _ -> []
+      tarballOf release = dir </> "tarballs" </> release <.> "tar.gz"
+      tarballs = [(planned release, tarballOf release) | release <- releases]
+      plan =
+        BuildPlan
+          { bpCompiler = "ghc-9.10.3",
+            bpPackages =
+              [PlanPackage n v PreExisting [] | (n, v) <- shipped]
+                <> fmap fst tarballs
+          }
+      fetched release = corpus </> release <.> "tar.gz"
+  missing <- filterM (fmap not . doesFileExist . fetched) releases
+  case missing of
+    release : _ ->
+      pure (Left ("No tarball at " <> T.pack (fetched release) <> "."))
+    [] -> do
+      for_ releases $ \release ->
+        createFileLink (fetched release) (tarballOf release)
+      none <- openCache (Don't #useCache) (PlanToken "")
+      cache <- cacheUnder (dir </> "cache")
+      interfaces <- interfacesOf decoded
+      let reading kept modules = do
+            resolver <- newResolverWith [FromSource] kept [] tarballs plan
+            pure $ do
+              answers <- traverse (askModule resolver) modules
+              length <$> evaluate (force answers)
+      packages <- for resolved $ \release -> do
+        modules <- fromMaybe [] <$> packageModules (tarballOf release)
+        filled <- newIORef False
+        let recalling = do
+              done <- readIORef filled
+              unless done $ do
+                _ <- join (reading cache modules)
+                writeIORef filled True
+              reading cache modules
+        pure
+          [ Benchmark Resolve (T.pack release) (reading none modules),
+            Benchmark Recall (T.pack release) recalling
+          ]
+      pure $
+        Right
+          ( concat packages
+              <> [ Benchmark Decode name (decoding files)
+                 | (name, files) <- interfaces
+                 ],
+            digestOf interfaces
+          )
+  where
+    planned release =
+      let (name, version) = T.breakOnEnd "-" (T.pack release)
+       in PlanPackage (T.dropEnd 1 name) version PreExisting []
+    decoding files = do
+      fresh <- evaluate (force [(m, BS.copy bytes) | (m, bytes) <- files])
+      pure $
+        length . rights
+          <$> evaluate
+            (force [fromHiFile m =<< decodeHiFile bytes | (m, bytes) <- fresh])
+
+-- | A cache of fixities in a directory.
+cacheUnder :: FilePath -> IO Cache
+cacheUnder dir = do
+  before <- lookupEnv "XDG_CACHE_HOME"
+  setEnv "XDG_CACHE_HOME" dir
+  cache <- openCache (Do #useCache) (PlanToken "benchmarks")
+  maybe (unsetEnv "XDG_CACHE_HOME") (setEnv "XDG_CACHE_HOME") before
+  pure cache
+
+-- | The interfaces of every module of the installed packages named, each
+-- package by its name and version.
+interfacesOf :: [Text] -> IO [(Text, [(Text, BS.ByteString)])]
+interfacesOf names = do
+  installed <- installedPackages <$> readInstalledPackages
+  for [p | n <- names, p <- installed, ipName p == n] $ \p -> do
+    files <- for (ipModules p) $ \m -> do
+      let file = T.unpack (T.replace "." "/" m) <.> "hi"
+      found <- filterM doesFileExist [dir </> file | dir <- ipImportDirs p]
+      for (listToMaybe found) (fmap ((,) m) . BS.readFile)
+    pure (ipName p <> "-" <> ipVersion p, catMaybes files)
+
+-- | A digest of the names and sizes of interfaces, which what decoding them
+-- costs depends on: two builds of a compiler can differ in a fingerprint
+-- written in one, which costs nothing more to decode.
+digestOf :: [(Text, [(Text, BS.ByteString)])] -> Text
+digestOf interfaces =
+  T.take 16 . T.decodeUtf8 . B16.encode . SHA256.hash . T.encodeUtf8 $
+    T.unlines
+      [ T.unwords [name, m, T.pack (show (BS.length bytes))]
+      | (name, files) <- interfaces,
+        (m, bytes) <- files
+      ]
diff --git a/bench/Tilia/Bench/Measure.hs b/bench/Tilia/Bench/Measure.hs
new file mode 100644
--- /dev/null
+++ b/bench/Tilia/Bench/Measure.hs
@@ -0,0 +1,124 @@
+{-# OPTIONS_GHC -fno-full-laziness #-}
+
+-- | Measuring what a piece of work costs.
+module Tilia.Bench.Measure
+  ( Counter,
+    openCounter,
+    Measurement (..),
+    measure,
+    measureIO,
+  )
+where
+
+import Control.Concurrent (yield)
+import Control.Exception (evaluate)
+import Control.Monad (replicateM)
+import Data.Int (Int64)
+import Data.Text (Text)
+import Data.Text qualified as T
+import Data.Word (Word64)
+import Foreign.C.Types (CInt (..))
+import GHC.Stats (RTSStats (..), getRTSStats)
+import System.Mem (performMajorGC)
+
+-- | A counter of the instructions the thread that opened it retires in
+-- user space.
+newtype Counter = Counter CInt
+
+foreign import ccall unsafe "tilia_bench_counter_open"
+  counterOpen :: IO CInt
+
+foreign import ccall unsafe "tilia_bench_counter_read"
+  counterRead :: CInt -> IO Word64
+
+-- | Open a counter, where the system lets a process count its own
+-- instructions.
+openCounter :: IO (Maybe Counter)
+openCounter = do
+  fd <- counterOpen
+  pure (if fd < 0 then Nothing else Just (Counter fd))
+
+-- | What a piece of work cost.
+data Measurement = Measurement
+  { -- | The bytes it allocated.
+    measuredAllocated :: !Word64,
+    -- | The instructions it retired, where they were counted.
+    measuredInstructions :: !(Maybe Word64),
+    -- | The CPU time it took, in nanoseconds, the least of the runs.
+    measuredTime :: !Int64,
+    -- | How far apart the runs' allocations were, as a fraction.
+    measuredSpread :: !Double
+  }
+
+-- | Run a piece of work once to warm up and then the given number of times,
+-- each time on a fresh copy of its input so that nothing is shared between
+-- runs, and give what the run that warmed up computed.
+measure ::
+  -- | The counter of instructions, if there is one.
+  Maybe Counter ->
+  -- | How many runs to measure.
+  Int ->
+  -- | The work.
+  (Text -> a) ->
+  -- | Force everything the work computed.
+  (a -> Int) ->
+  -- | Its input.
+  Text ->
+  IO (a, Measurement)
+measure counter runs work forced input =
+  measureIO counter runs set forced
+  where
+    set = do
+      fresh <- evaluate (T.copy input)
+      pure (evaluate (work fresh))
+
+-- | Run a piece of work once to warm up and then the given number of times,
+-- each time as a setup that is not measured gives it, and give what the run
+-- that warmed up computed.
+measureIO ::
+  -- | The counter of instructions, if there is one.
+  Maybe Counter ->
+  -- | How many runs to measure.
+  Int ->
+  -- | Set a run up, giving its work.
+  IO (IO a) ->
+  -- | Force everything the work computed.
+  (a -> Int) ->
+  IO (a, Measurement)
+measureIO counter runs set forced = do
+  (warm, _) <- once
+  samples <- fmap snd <$> replicateM (max 1 runs) once
+  let allocations = [a | (a, _, _) <- samples]
+      (allocated, instructions, _) = last samples
+  pure
+    ( warm,
+      Measurement
+        { measuredAllocated = allocated,
+          measuredInstructions = instructions,
+          measuredTime = minimum [t | (_, _, t) <- samples],
+          measuredSpread =
+            fromIntegral (maximum allocations - minimum allocations)
+              / fromIntegral (max 1 (minimum allocations))
+        }
+    )
+  where
+    count = traverse (\(Counter fd) -> counterRead fd) counter
+    once = do
+      work <- set
+      performMajorGC
+      yield
+      performMajorGC
+      before <- getRTSStats
+      started <- count
+      result <- work
+      _ <- evaluate (forced result)
+      ended <- count
+      performMajorGC
+      after <- getRTSStats
+      pure
+        ( result,
+          ( allocated_bytes after - allocated_bytes before,
+            (-) <$> ended <*> started,
+            cpu_ns after - cpu_ns before
+          )
+        )
diff --git a/bench/Tilia/Bench/Record.hs b/bench/Tilia/Bench/Record.hs
new file mode 100644
--- /dev/null
+++ b/bench/Tilia/Bench/Record.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE ScopedTypeVariables #-}
+
+-- | What the benchmarks cost when they were last recorded, kept in the
+-- repository so that a change to it shows in review like any other.
+module Tilia.Bench.Record
+  ( Record (..),
+    Entry (..),
+    readRecord,
+    writeRecord,
+  )
+where
+
+import Control.Exception (SomeException, try)
+import Data.Map.Strict (Map)
+import Data.Map.Strict qualified as Map
+import Data.Maybe (mapMaybe)
+import Data.Text (Text)
+import Data.Text qualified as T
+import Data.Text.IO qualified as T
+import Data.Word (Word64)
+import Text.Read (readMaybe)
+
+-- | The bytes each benchmark allocated and the instructions it retired, by
+-- stage and module.
+data Record = Record
+  { -- | The compiler the record was made with, which what is allocated
+    -- depends on.
+    recordCompiler :: Text,
+    -- | The processor the instructions were counted on, which how many
+    -- there are depends on, or @none@.
+    recordProcessor :: Text,
+    -- | A digest of the names and sizes of the interfaces decoded, which
+    -- what decoding them costs depends on.
+    recordInterfaces :: Text,
+    -- | One entry for every benchmark.
+    recordEntries :: Map (Text, Text) Entry
+  }
+
+-- | What one benchmark cost.
+data Entry = Entry
+  { -- | The bytes it allocated.
+    entryAllocated :: !Word64,
+    -- | The instructions it retired, where they were counted.
+    entryInstructions :: !(Maybe Word64)
+  }
+
+-- | Read a record. A missing one is an empty one, so that benchmarks added
+-- before it is regenerated each say they are not in it.
+readRecord :: FilePath -> IO Record
+readRecord path =
+  try (T.readFile path) >>= \case
+    Left (_ :: SomeException) -> pure (Record "" "none" "" Map.empty)
+    Right text ->
+      pure
+        Record
+          { recordCompiler = field "compiler " text,
+            recordProcessor = field "processor " text,
+            recordInterfaces = field "interfaces " text,
+            recordEntries = Map.fromList (concatMap entry (T.lines text))
+          }
+  where
+    field key = mconcat . mapMaybe (T.stripPrefix key) . T.lines
+    entry line = case T.words line of
+      [stage, allocated, instructions, name]
+        | Just a <- readMaybe (T.unpack allocated) ->
+            [((stage, name), Entry a (readMaybe (T.unpack instructions)))]
+      _ -> []
+
+-- | Write a record, sorted by stage and module so that a regeneration diff
+-- shows what changed rather than what moved.
+writeRecord :: FilePath -> Record -> IO ()
+writeRecord path record =
+  T.writeFile path . T.unlines $
+    [ "# What each benchmark costs, as far as that does not depend on how",
+      "# busy the machine is. `cabal bench` checks it, and",
+      "# `TILIA_BENCH_ACCEPT=1 cabal bench` writes it again.",
+      "#",
+      "# compiler    The compiler the benchmarks were built with, which what",
+      "#             they allocate depends on.",
+      "# processor   The processor the instructions were counted on, which",
+      "#             how many there are depends on, or none.",
+      "# interfaces  A digest of the names and sizes of the interfaces the",
+      "#             decode stage reads, which what decoding them costs",
+      "#             depends on.",
+      "#",
+      "# Every other line is a benchmark:",
+      "#",
+      "# stage         What it measures: formatting a module (format),",
+      "#               checking what that printed as --check-ast does",
+      "#               (check), reading what every module of a package",
+      "#               establishes out of its tarball with no cache",
+      "#               (resolve), the same out of a cache an earlier reading",
+      "#               filled (recall), or decoding every interface of a",
+      "#               package the compiler ships with (decode).",
+      "# allocated     The bytes it allocates.",
+      "# instructions  The instructions it retires in user space, or - where",
+      "#               they were not counted.",
+      "# benchmark     The module or the package it measures that on.",
+      "",
+      "compiler " <> recordCompiler record,
+      "processor " <> recordProcessor record,
+      "interfaces " <> recordInterfaces record,
+      "",
+      row "# stage" ["allocated", "instructions"] "benchmark"
+    ]
+      <> fmap line (Map.toAscList (recordEntries record))
+  where
+    line ((stage, name), Entry allocated instructions) =
+      row
+        stage
+        [shown allocated, maybe "-" shown instructions]
+        name
+    row stage costs name =
+      T.justifyLeft 8 ' ' stage
+        <> foldMap (T.justifyRight 14 ' ') costs
+        <> "  "
+        <> name
+    shown = T.pack . show
diff --git a/bench/bench.record b/bench/bench.record
new file mode 100644
--- /dev/null
+++ b/bench/bench.record
@@ -0,0 +1,121 @@
+# What each benchmark costs, as far as that does not depend on how
+# busy the machine is. `cabal bench` checks it, and
+# `TILIA_BENCH_ACCEPT=1 cabal bench` writes it again.
+#
+# compiler    The compiler the benchmarks were built with, which what
+#             they allocate depends on.
+# processor   The processor the instructions were counted on, which
+#             how many there are depends on, or none.
+# interfaces  A digest of the names and sizes of the interfaces the
+#             decode stage reads, which what decoding them costs
+#             depends on.
+#
+# Every other line is a benchmark:
+#
+# stage         What it measures: formatting a module (format),
+#               checking what that printed as --check-ast does
+#               (check), reading what every module of a package
+#               establishes out of its tarball with no cache
+#               (resolve), the same out of a cache an earlier reading
+#               filled (recall), or decoding every interface of a
+#               package the compiler ships with (decode).
+# allocated     The bytes it allocates.
+# instructions  The instructions it retires in user space, or - where
+#               they were not counted.
+# benchmark     The module or the package it measures that on.
+
+compiler ghc 9.10.3
+processor AMD Ryzen AI 9 HX 370 w/ Radeon 890M
+interfaces 1c28e35fa2432d89
+
+# stage      allocated  instructions  benchmark
+check        305488704     625342633  Agda-2.8.0/src/full/Agda/Syntax/Translation/ConcreteToAbstract.hs
+check        414949976     860211242  ShellCheck-0.11.0/src/ShellCheck/Analytics.hs
+check        266244704     469758919  aeson-2.3.1.0/src/Data/Aeson/KeyMap.hs
+check        200596704     518019905  blaze-html-0.9.2.0/src/Text/Blaze/Html5/Attributes.hs
+check         64909672     129343878  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Transformations/Alt.hs
+check         90215968     179673175  distributed-process-0.7.8/src/Control/Distributed/Process/Node.hs
+check        128706544     268524094  esqueleto-3.6.0.3/test/PostgreSQL/Test.hs
+check        523131744     947995155  haxl-2.5.1.1/Haxl/Core/Monad.hs
+check        221699688     460191261  idris-1.3.4/src/Idris/Elab/Term.hs
+check        337906104     578770578  lifted-base-0.2.3.12/Control/Exception/Lifted.hs
+check         61404488     129978443  megaparsec-9.8.1/Text/Megaparsec/Internal.hs
+check         82146616     174226709  optparse-applicative-0.19.0.0/tests/test.hs
+check         51737448      90786165  pandoc-3.10.2/src/Text/Pandoc/Class/PandocPure.hs
+check        164869144     342530190  pandoc-3.10.2/src/Text/Pandoc/Readers/Markdown.hs
+check        222989200     447577790  pandoc-3.10.2/src/Text/Pandoc/Writers/Powerpoint/Output.hs
+check        178219144     361706711  purescript-0.15.15/src/Language/PureScript/Errors.hs
+check         88773224     186246171  purescript-0.15.15/src/Language/PureScript/TypeChecker/Types.hs
+check         84087680     185592218  recursion-schemes-5.2.3/src/Data/Functor/Foldable.hs
+check         98129704     205010076  servant-server-0.20.3.0/src/Servant/Server/Internal.hs
+check        103037600     205852438  swagger2-2.9.1/src/Data/Swagger/Internal.hs
+check        104700064     193733706  text-2.1.4/tests/Tests/Properties/Folds.hs
+check         62559504     129686156  time-1.16.0.1/test/main/Test/Format/ParseTime.hs
+check         71026768     139004696  tls-2.4.3/Network/TLS/Extension.hs
+check        341584848     787667598  unpacked-containers-0/src/Map/Internal.hs
+check        448129968     861308134  vector-0.13.2.0/src/Data/Vector/Generic.hs
+check         72654288     151625740  xmonad-0.18.1/src/XMonad/Operations.hs
+decode        27001936      44723576  base-4.20.2.0
+decode         6037648       7373905  bytestring-0.12.2.0
+decode         9504912      12150537  containers-0.7
+decode        43420720      56428241  ghc-internal-9.1003.0
+decode        11465032      15574443  template-haskell-2.22.0.0
+decode         6206680       6722861  text-2.1.3
+format       585714216    1132097581  Agda-2.8.0/src/full/Agda/Syntax/Translation/ConcreteToAbstract.hs
+format      4268801648    8215706409  QuickCheck-2.18.0.0/src/Test/QuickCheck/Arbitrary.hs
+format       903988776    1715848497  ShellCheck-0.11.0/src/ShellCheck/Analytics.hs
+format       357145072     586914529  aeson-2.3.1.0/src/Data/Aeson/KeyMap.hs
+format       174816696     326120695  blaze-html-0.9.2.0/src/Text/Blaze/Html5/Attributes.hs
+format       125166848     237762136  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Transformations/Alt.hs
+format       181178648     342948784  distributed-process-0.7.8/src/Control/Distributed/Process/Node.hs
+format       313098528     589185783  esqueleto-3.6.0.3/test/PostgreSQL/Test.hs
+format      3393194280    6954000450  haxl-2.5.1.1/Haxl/Core/Monad.hs
+format       504082456     960666098  idris-1.3.4/src/Idris/Elab/Term.hs
+format      1416130080    2802504216  lens-5.3.6/src/Control/Lens/Wrapped.hs
+format       463051392     807326375  lifted-base-0.2.3.12/Control/Exception/Lifted.hs
+format       114862912     219768412  megaparsec-9.8.1/Text/Megaparsec/Internal.hs
+format       152090416     277909846  optparse-applicative-0.19.0.0/tests/test.hs
+format        54641464      96646205  pandoc-3.10.2/src/Text/Pandoc/Class/PandocPure.hs
+format       376993600     717475372  pandoc-3.10.2/src/Text/Pandoc/Readers/Markdown.hs
+format       464955472     876728022  pandoc-3.10.2/src/Text/Pandoc/Writers/Powerpoint/Output.hs
+format       374179808     706887086  purescript-0.15.15/src/Language/PureScript/Errors.hs
+format       157522504     292522941  purescript-0.15.15/src/Language/PureScript/TypeChecker/Types.hs
+format       129205776     233199212  recursion-schemes-5.2.3/src/Data/Functor/Foldable.hs
+format       172818000     323062459  servant-server-0.20.3.0/src/Servant/Server/Internal.hs
+format       174783648     327330430  swagger2-2.9.1/src/Data/Swagger/Internal.hs
+format       716385648    1505690911  synthetic/comments
+format       130290424     266483756  synthetic/conditionals
+format        75942320     111837572  synthetic/imports
+format        99529016     207055043  synthetic/nesting
+format       838934048    1650403409  text-2.1.4/src/Data/Text/Internal/Fusion/CaseMapping.hs
+format       251223896     409088661  text-2.1.4/tests/Tests/Properties/Folds.hs
+format       138891552     257772182  time-1.16.0.1/test/main/Test/Format/ParseTime.hs
+format       139419512     262626146  tls-2.4.3/Network/TLS/Extension.hs
+format      1012155416    1980797816  unordered-containers-0.2.21/Data/HashMap/Internal.hs
+format       507741568     947272176  unpacked-containers-0/src/Map/Internal.hs
+format       551670016    1042468240  vector-0.13.2.0/src/Data/Vector/Generic.hs
+format       139272304     260498387  xmonad-0.18.1/src/XMonad/Operations.hs
+recall         8851176      20620493  aeson-2.3.1.0
+recall         5953760      14216861  conduit-1.3.6.1
+recall         5407168      12260501  free-5.2
+recall        14502904      42766044  lens-5.3.6
+recall         5564520      13033858  megaparsec-9.8.1
+recall         5891216      13516032  mtl-2.3.2
+recall         5062032      12025312  optics-0.4.2.1
+recall         5291120      12823256  pandoc-types-1.23.1.2
+recall         6078088      13974670  semigroupoids-6.0.2
+recall         6898696      15358696  servant-0.20.3.0
+recall         8956408      18332091  text-2.1.4
+recall         7805920      17845506  vector-0.13.2.0
+resolve     1934880160    3452012967  aeson-2.3.1.0
+resolve      542464296     969320825  conduit-1.3.6.1
+resolve      561754720     998716408  free-5.2
+resolve     3142664696    5507450217  lens-5.3.6
+resolve      235724304     461395455  megaparsec-9.8.1
+resolve      252811728     486168500  mtl-2.3.2
+resolve       84982856     215535259  optics-0.4.2.1
+resolve       97405360     228106463  pandoc-types-1.23.1.2
+resolve      237916832     461574873  semigroupoids-6.0.2
+resolve      248183728     503102068  servant-0.20.3.0
+resolve     1224151032    2166708926  text-2.1.4
+resolve     2505871344    4300748284  vector-0.13.2.0
diff --git a/bench/cbits/counter.c b/bench/cbits/counter.c
new file mode 100644
--- /dev/null
+++ b/bench/cbits/counter.c
@@ -0,0 +1,46 @@
+#include <stdint.h>
+
+#ifdef __linux__
+
+#include <linux/perf_event.h>
+#include <string.h>
+#include <sys/syscall.h>
+#include <unistd.h>
+
+/* Open a counter of the instructions the calling thread retires in user
+   space, giving -1 where the system does not let a process count them. */
+int tilia_bench_counter_open(void)
+{
+  struct perf_event_attr attr;
+  memset(&attr, 0, sizeof attr);
+  attr.type = PERF_TYPE_HARDWARE;
+  attr.size = sizeof attr;
+  attr.config = PERF_COUNT_HW_INSTRUCTIONS;
+  attr.exclude_kernel = 1;
+  attr.exclude_hv = 1;
+  return syscall(SYS_perf_event_open, &attr, 0, -1, -1, 0);
+}
+
+/* Read a counter. */
+uint64_t tilia_bench_counter_read(int fd)
+{
+  uint64_t count = 0;
+  if (read(fd, &count, sizeof count) != sizeof count)
+    return 0;
+  return count;
+}
+
+#else
+
+int tilia_bench_counter_open(void)
+{
+  return -1;
+}
+
+uint64_t tilia_bench_counter_read(int fd)
+{
+  (void)fd;
+  return 0;
+}
+
+#endif
diff --git a/corpora/hackage/hackage.manifest b/corpora/hackage/hackage.manifest
--- a/corpora/hackage/hackage.manifest
+++ b/corpora/hackage/hackage.manifest
@@ -8,5194 +8,5232 @@
 formatted       a2e019984c92  Agda-2.8.0/src/data/MAlonzo/src/MAlonzo/RTE.hs
 formatted       4e3f28ed5e54  Agda-2.8.0/src/data/MAlonzo/src/MAlonzo/RTE/Float.hs
 formatted       124cef969fcd  Agda-2.8.0/src/full/Agda/Benchmarking.hs
-formatted       957956be26ea  Agda-2.8.0/src/full/Agda/Compiler/Backend.hs
-formatted       98789e7a7f39  Agda-2.8.0/src/full/Agda/Compiler/Backend/Base.hs
-formatted       b8be5cf3b8d8  Agda-2.8.0/src/full/Agda/Compiler/Builtin.hs
-formatted       ef45f44548b6  Agda-2.8.0/src/full/Agda/Compiler/CallCompiler.hs
-formatted       f1e15482ea8b  Agda-2.8.0/src/full/Agda/Compiler/Common.hs
-formatted       199ef6355081  Agda-2.8.0/src/full/Agda/Compiler/JS/Compiler.hs
-formatted       778777e97e31  Agda-2.8.0/src/full/Agda/Compiler/JS/Pretty.hs
-formatted       f3ee347549c0  Agda-2.8.0/src/full/Agda/Compiler/JS/Substitution.hs
-formatted       716643be2984  Agda-2.8.0/src/full/Agda/Compiler/JS/Syntax.hs
-formatted       aa25bd2f6330  Agda-2.8.0/src/full/Agda/Compiler/MAlonzo/Coerce.hs
-formatted       ef6f1f45a952  Agda-2.8.0/src/full/Agda/Compiler/MAlonzo/Compiler.hs
-formatted       a5e37499e9c4  Agda-2.8.0/src/full/Agda/Compiler/MAlonzo/Encode.hs
-formatted       04fc0d770103  Agda-2.8.0/src/full/Agda/Compiler/MAlonzo/HaskellTypes.hs
-formatted       aa62f795f1b2  Agda-2.8.0/src/full/Agda/Compiler/MAlonzo/Misc.hs
-formatted       d8bb7b275f39  Agda-2.8.0/src/full/Agda/Compiler/MAlonzo/Pragmas.hs
-formatted       76490fc3bd40  Agda-2.8.0/src/full/Agda/Compiler/MAlonzo/Pretty.hs
-formatted       b28a330a89c3  Agda-2.8.0/src/full/Agda/Compiler/MAlonzo/Primitives.hs
-formatted       cd156da2fa25  Agda-2.8.0/src/full/Agda/Compiler/MAlonzo/Strict.hs
-formatted       c378a2b833ad  Agda-2.8.0/src/full/Agda/Compiler/ToTreeless.hs
-formatted       0abe92b8f16f  Agda-2.8.0/src/full/Agda/Compiler/Treeless/AsPatterns.hs
-formatted       1ef5a4fa98a1  Agda-2.8.0/src/full/Agda/Compiler/Treeless/Builtin.hs
-formatted       ce128b9cab5e  Agda-2.8.0/src/full/Agda/Compiler/Treeless/Compare.hs
-formatted       3f7ef773d4c9  Agda-2.8.0/src/full/Agda/Compiler/Treeless/EliminateDefaults.hs
-formatted       33e35d69d40c  Agda-2.8.0/src/full/Agda/Compiler/Treeless/EliminateLiteralPatterns.hs
-formatted       1ef7b3a1de25  Agda-2.8.0/src/full/Agda/Compiler/Treeless/Erase.hs
-formatted       4bf71aa72967  Agda-2.8.0/src/full/Agda/Compiler/Treeless/Erase.hs-boot
-formatted       6cefe9037318  Agda-2.8.0/src/full/Agda/Compiler/Treeless/GuardsToPrims.hs
-formatted       8722e737dadc  Agda-2.8.0/src/full/Agda/Compiler/Treeless/Identity.hs
-formatted       f933510f2058  Agda-2.8.0/src/full/Agda/Compiler/Treeless/NormalizeNames.hs
-formatted       43adb2681389  Agda-2.8.0/src/full/Agda/Compiler/Treeless/Pretty.hs
-formatted       9e9ffec9fb88  Agda-2.8.0/src/full/Agda/Compiler/Treeless/Pretty.hs-boot
-formatted       4795b9a43709  Agda-2.8.0/src/full/Agda/Compiler/Treeless/Simplify.hs
-formatted       80fddf5d858f  Agda-2.8.0/src/full/Agda/Compiler/Treeless/Subst.hs
-formatted       83543a8ec338  Agda-2.8.0/src/full/Agda/Compiler/Treeless/Uncase.hs
-formatted       24aeb7ff3365  Agda-2.8.0/src/full/Agda/Compiler/Treeless/Unused.hs
-formatted       3985ec175c5f  Agda-2.8.0/src/full/Agda/ImpossibleTest.hs
-formatted       4bfae407a40f  Agda-2.8.0/src/full/Agda/Interaction/AgdaTop.hs
-formatted       e41de99732fd  Agda-2.8.0/src/full/Agda/Interaction/Base.hs
-formatted       7dea38f021f1  Agda-2.8.0/src/full/Agda/Interaction/BasicOps.hs
-formatted       816c519a07e6  Agda-2.8.0/src/full/Agda/Interaction/BuildLibrary.hs
-formatted       eb4048782016  Agda-2.8.0/src/full/Agda/Interaction/Command.hs
-formatted       c894515a3afb  Agda-2.8.0/src/full/Agda/Interaction/CommandLine.hs
-formatted       ab83a5beeab5  Agda-2.8.0/src/full/Agda/Interaction/EmacsCommand.hs
-formatted       555155a56d86  Agda-2.8.0/src/full/Agda/Interaction/EmacsTop.hs
-formatted       720e5305288c  Agda-2.8.0/src/full/Agda/Interaction/ExitCode.hs
-formatted       17bdb4bd6cff  Agda-2.8.0/src/full/Agda/Interaction/FindFile.hs
-formatted       3170eb1921b4  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/Common.hs
-formatted       1fb0462a1b45  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/Dot.hs
-formatted       273d20bb2305  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/Dot/Backend.hs
-formatted       fc10621b7e2c  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/Dot/Base.hs
-formatted       773365a6b3e4  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/Emacs.hs
-formatted       cb992e2c3ef4  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/FromAbstract.hs
-formatted       b592d71b267b  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/Generate.hs
-formatted       8bc140b18e62  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/Generate.hs-boot
-formatted       9a3fde618f2b  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/HTML.hs
-formatted       3838841067f3  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/HTML/Backend.hs
-formatted       b17a80a34eff  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/HTML/Base.hs
-formatted       d36037cbeadf  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/JSON.hs
-formatted       b5bb035e43f1  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/LaTeX.hs
-formatted       8bd4871fba54  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/LaTeX/Backend.hs
-formatted       45edbada6fe2  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/LaTeX/Base.hs
-formatted       a58ba6711ffc  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/Precise.hs
-formatted       c9f5864c0103  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/Range.hs
-formatted       0054edf8b9e6  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/Vim.hs
-formatted       d0f1fa308509  Agda-2.8.0/src/full/Agda/Interaction/Imports.hs
-formatted       65e8798f3384  Agda-2.8.0/src/full/Agda/Interaction/Imports.hs-boot
-formatted       e71203866f7c  Agda-2.8.0/src/full/Agda/Interaction/InteractionTop.hs
-formatted       3424b7b23f57  Agda-2.8.0/src/full/Agda/Interaction/JSON.hs
-formatted       ee7c581ca624  Agda-2.8.0/src/full/Agda/Interaction/JSONTop.hs
-formatted       b1854ec69b1d  Agda-2.8.0/src/full/Agda/Interaction/Library.hs
-formatted       803e9d296a38  Agda-2.8.0/src/full/Agda/Interaction/Library/Base.hs
-formatted       485f6f0b6ae7  Agda-2.8.0/src/full/Agda/Interaction/Library/Parse.hs
-formatted       8cf6215e1bb9  Agda-2.8.0/src/full/Agda/Interaction/MakeCase.hs
-formatted       dccaf3f6ab13  Agda-2.8.0/src/full/Agda/Interaction/Monad.hs
-formatted       c831a742f557  Agda-2.8.0/src/full/Agda/Interaction/Options.hs
-formatted       ff905a26b6ef  Agda-2.8.0/src/full/Agda/Interaction/Options/Base.hs
-formatted       d1a377c4a707  Agda-2.8.0/src/full/Agda/Interaction/Options/Errors.hs
-formatted       e44ed789f5f9  Agda-2.8.0/src/full/Agda/Interaction/Options/HasOptions.hs
-formatted       434d46226886  Agda-2.8.0/src/full/Agda/Interaction/Options/Help.hs
-formatted       8955b5901517  Agda-2.8.0/src/full/Agda/Interaction/Options/Lenses.hs
-formatted       e04f7f2b15cd  Agda-2.8.0/src/full/Agda/Interaction/Options/Types.hs
-formatted       d4126d498421  Agda-2.8.0/src/full/Agda/Interaction/Options/Warnings.hs
-formatted       11f05a0591fc  Agda-2.8.0/src/full/Agda/Interaction/Output.hs
-formatted       772e302dedad  Agda-2.8.0/src/full/Agda/Interaction/Response.hs
-formatted       77cf584c94f3  Agda-2.8.0/src/full/Agda/Interaction/Response/Base.hs
-formatted       150002ef2df6  Agda-2.8.0/src/full/Agda/Interaction/SearchAbout.hs
-declined        -             Agda-2.8.0/src/full/Agda/Main.hs
-formatted       089cf0cbdae7  Agda-2.8.0/src/full/Agda/Mimer/Mimer.hs
-formatted       5ee8e2854fd8  Agda-2.8.0/src/full/Agda/Mimer/Options.hs
-formatted       d31e480d5b64  Agda-2.8.0/src/full/Agda/Syntax/Abstract.hs
-formatted       c6c710983329  Agda-2.8.0/src/full/Agda/Syntax/Abstract/Name.hs
-formatted       e3b2246d927b  Agda-2.8.0/src/full/Agda/Syntax/Abstract/Pattern.hs
-formatted       8f9f098701be  Agda-2.8.0/src/full/Agda/Syntax/Abstract/PatternSynonyms.hs
-formatted       3f1f9a03363a  Agda-2.8.0/src/full/Agda/Syntax/Abstract/Pretty.hs
-formatted       965e3c3c1a0e  Agda-2.8.0/src/full/Agda/Syntax/Abstract/UsedNames.hs
-formatted       fe4b31b903f2  Agda-2.8.0/src/full/Agda/Syntax/Abstract/Views.hs
-formatted       4860938107fe  Agda-2.8.0/src/full/Agda/Syntax/Builtin.hs
-formatted       a551f361a03b  Agda-2.8.0/src/full/Agda/Syntax/Common.hs
-formatted       e4fbe59bf094  Agda-2.8.0/src/full/Agda/Syntax/Common/Aspect.hs
-formatted       24ed1641ef0b  Agda-2.8.0/src/full/Agda/Syntax/Common/KeywordRange.hs
-formatted       bddb87a288f9  Agda-2.8.0/src/full/Agda/Syntax/Common/Pretty.hs
-formatted       0b01caf3aafb  Agda-2.8.0/src/full/Agda/Syntax/Common/Pretty/ANSI.hs
-formatted       ab82680e0ed9  Agda-2.8.0/src/full/Agda/Syntax/Concrete.hs
-formatted       3ac132adc898  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Attribute.hs
-formatted       8a621f4f4558  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Definitions.hs
-formatted       426479b8ea34  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Definitions/Errors.hs
-formatted       9b402d20ca09  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Definitions/Monad.hs
-formatted       7b8c167c0685  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Definitions/Types.hs
-formatted       961ee2376643  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Fixity.hs
-formatted       d906da5f87a7  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Generic.hs
-formatted       6a2db093db8c  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Glyph.hs
-formatted       88279e378aeb  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Name.hs
-formatted       6a2bac89820e  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Operators.hs
-formatted       ce9f55c318d6  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Operators/Parser.hs
-formatted       d052bdb98637  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Operators/Parser/Monad.hs
-formatted       7e63c760f37f  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Pattern.hs
-formatted       279d71b7193a  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Pretty.hs
-formatted       db8fd8405ab1  Agda-2.8.0/src/full/Agda/Syntax/DoNotation.hs
-formatted       0fa4ef8ac984  Agda-2.8.0/src/full/Agda/Syntax/Fixity.hs
-formatted       f53d6a38a8a5  Agda-2.8.0/src/full/Agda/Syntax/IdiomBrackets.hs
-formatted       30d96511b2ee  Agda-2.8.0/src/full/Agda/Syntax/Info.hs
-formatted       2c69ecf0c73d  Agda-2.8.0/src/full/Agda/Syntax/Internal.hs
-formatted       16ce0f4386b9  Agda-2.8.0/src/full/Agda/Syntax/Internal/Blockers.hs
-formatted       0c3da8bec4ce  Agda-2.8.0/src/full/Agda/Syntax/Internal/Defs.hs
-formatted       93a21efc34d2  Agda-2.8.0/src/full/Agda/Syntax/Internal/Elim.hs
-formatted       59acbea17d71  Agda-2.8.0/src/full/Agda/Syntax/Internal/Generic.hs
-formatted       ff9aafebc54f  Agda-2.8.0/src/full/Agda/Syntax/Internal/MetaVars.hs
-formatted       0da6abb2c898  Agda-2.8.0/src/full/Agda/Syntax/Internal/Names.hs
-formatted       70a2a49f93c0  Agda-2.8.0/src/full/Agda/Syntax/Internal/Pattern.hs
-formatted       4f0688215ae9  Agda-2.8.0/src/full/Agda/Syntax/Internal/SanityCheck.hs
-formatted       dc9c871223a7  Agda-2.8.0/src/full/Agda/Syntax/Internal/Univ.hs
-formatted       0d45e13b2a31  Agda-2.8.0/src/full/Agda/Syntax/Literal.hs
-formatted       1f5db6f08b8e  Agda-2.8.0/src/full/Agda/Syntax/Notation.hs
-formatted       5441d15e6659  Agda-2.8.0/src/full/Agda/Syntax/Parser.hs
-formatted       38e524b350d0  Agda-2.8.0/src/full/Agda/Syntax/Parser/Alex.hs
-formatted       b58b3e60f482  Agda-2.8.0/src/full/Agda/Syntax/Parser/Comments.hs
-formatted       2502cd0a5c24  Agda-2.8.0/src/full/Agda/Syntax/Parser/Helpers.hs
-formatted       0131f3ce9187  Agda-2.8.0/src/full/Agda/Syntax/Parser/Layout.hs
-formatted       700549be6fd6  Agda-2.8.0/src/full/Agda/Syntax/Parser/Layout.hs-boot
-formatted       2e1b70194e94  Agda-2.8.0/src/full/Agda/Syntax/Parser/LexActions.hs
-formatted       a5d57cb1b6b9  Agda-2.8.0/src/full/Agda/Syntax/Parser/LexActions.hs-boot
-formatted       eec09f91bea6  Agda-2.8.0/src/full/Agda/Syntax/Parser/Literate.hs
-formatted       7eb92ce94825  Agda-2.8.0/src/full/Agda/Syntax/Parser/LookAhead.hs
-formatted       0936ca900233  Agda-2.8.0/src/full/Agda/Syntax/Parser/Monad.hs
-formatted       6b041886ce39  Agda-2.8.0/src/full/Agda/Syntax/Parser/StringLiterals.hs
-formatted       2c4b958b94a9  Agda-2.8.0/src/full/Agda/Syntax/Parser/Tokens.hs
-formatted       a0ef5d8e9313  Agda-2.8.0/src/full/Agda/Syntax/Position.hs
-formatted       d16539c2a462  Agda-2.8.0/src/full/Agda/Syntax/Position.hs-boot
-formatted       b1dd8bfd3111  Agda-2.8.0/src/full/Agda/Syntax/Reflected.hs
-formatted       e07f0327dc05  Agda-2.8.0/src/full/Agda/Syntax/Scope/Base.hs
-formatted       6ff9f287871d  Agda-2.8.0/src/full/Agda/Syntax/Scope/Flat.hs
-formatted       074a6f85bb7d  Agda-2.8.0/src/full/Agda/Syntax/Scope/Monad.hs
-formatted       d3a3db0834c5  Agda-2.8.0/src/full/Agda/Syntax/TopLevelModuleName.hs
-formatted       f40939e29708  Agda-2.8.0/src/full/Agda/Syntax/TopLevelModuleName/Boot.hs
-formatted       186389ffe3cc  Agda-2.8.0/src/full/Agda/Syntax/Translation/AbstractToConcrete.hs
-formatted       0ad45d8e0040  Agda-2.8.0/src/full/Agda/Syntax/Translation/ConcreteToAbstract.hs
-formatted       5a2ce5ab4c13  Agda-2.8.0/src/full/Agda/Syntax/Translation/InternalToAbstract.hs
-formatted       8c2de5355091  Agda-2.8.0/src/full/Agda/Syntax/Translation/ReflectedToAbstract.hs
-formatted       1833fe43bc3a  Agda-2.8.0/src/full/Agda/Syntax/Treeless.hs
-formatted       12a4f8c1947c  Agda-2.8.0/src/full/Agda/Termination/CallGraph.hs
-formatted       cfc23b42c681  Agda-2.8.0/src/full/Agda/Termination/CallMatrix.hs
-formatted       ebc4ce14c917  Agda-2.8.0/src/full/Agda/Termination/CutOff.hs
-formatted       4ff8fc0f073c  Agda-2.8.0/src/full/Agda/Termination/Monad.hs
-formatted       2c8fd045045b  Agda-2.8.0/src/full/Agda/Termination/Order.hs
-formatted       3d6943fd6805  Agda-2.8.0/src/full/Agda/Termination/RecCheck.hs
-formatted       5d2396bcde51  Agda-2.8.0/src/full/Agda/Termination/Semiring.hs
-formatted       8231b4fafab9  Agda-2.8.0/src/full/Agda/Termination/SparseMatrix.hs
-formatted       5cf49fc9d151  Agda-2.8.0/src/full/Agda/Termination/TermCheck.hs
-formatted       ed0ea780ef94  Agda-2.8.0/src/full/Agda/Termination/Termination.hs
-formatted       9ce4d907acfa  Agda-2.8.0/src/full/Agda/TheTypeChecker.hs
-formatted       522c2e92c2f2  Agda-2.8.0/src/full/Agda/TypeChecking/Abstract.hs
-formatted       e757073d2d4e  Agda-2.8.0/src/full/Agda/TypeChecking/CheckInternal.hs
-formatted       2d6bbce1312f  Agda-2.8.0/src/full/Agda/TypeChecking/CheckInternal.hs-boot
-formatted       32a35663e792  Agda-2.8.0/src/full/Agda/TypeChecking/CompiledClause.hs
-formatted       93990b804e2f  Agda-2.8.0/src/full/Agda/TypeChecking/CompiledClause/Compile.hs
-formatted       6b8cf4277b16  Agda-2.8.0/src/full/Agda/TypeChecking/CompiledClause/Compile.hs-boot
-formatted       a141f28ffb17  Agda-2.8.0/src/full/Agda/TypeChecking/CompiledClause/Match.hs
-formatted       3142e5d8c639  Agda-2.8.0/src/full/Agda/TypeChecking/CompiledClause/Match.hs-boot
-formatted       8daa667ddddd  Agda-2.8.0/src/full/Agda/TypeChecking/Constraints.hs
-formatted       47ac61419563  Agda-2.8.0/src/full/Agda/TypeChecking/Constraints.hs-boot
-broken          1d46dc5f6f5c  Agda-2.8.0/src/full/Agda/TypeChecking/Conversion.hs
-formatted       cc3a6f5cf005  Agda-2.8.0/src/full/Agda/TypeChecking/Conversion.hs-boot
-formatted       8bb452c258d1  Agda-2.8.0/src/full/Agda/TypeChecking/Conversion/Pure.hs
-formatted       5078fcc899f4  Agda-2.8.0/src/full/Agda/TypeChecking/Coverage.hs
-formatted       494defadf31e  Agda-2.8.0/src/full/Agda/TypeChecking/Coverage/Cubical.hs
-formatted       a5d8271fb8c7  Agda-2.8.0/src/full/Agda/TypeChecking/Coverage/Match.hs
-formatted       66752ed436cd  Agda-2.8.0/src/full/Agda/TypeChecking/Coverage/SplitClause.hs
-formatted       50e4c607d3c4  Agda-2.8.0/src/full/Agda/TypeChecking/Coverage/SplitTree.hs
-formatted       a628c1c13722  Agda-2.8.0/src/full/Agda/TypeChecking/Datatypes.hs
-formatted       bf771aa7c583  Agda-2.8.0/src/full/Agda/TypeChecking/Datatypes.hs-boot
-formatted       70b7181d282e  Agda-2.8.0/src/full/Agda/TypeChecking/DeadCode.hs
-formatted       59bd9e3da33e  Agda-2.8.0/src/full/Agda/TypeChecking/DiscrimTree.hs
-formatted       c17cb27af1b5  Agda-2.8.0/src/full/Agda/TypeChecking/DiscrimTree/Types.hs
-formatted       ee105b08c0e0  Agda-2.8.0/src/full/Agda/TypeChecking/DisplayForm.hs
-formatted       db46b8c74ecf  Agda-2.8.0/src/full/Agda/TypeChecking/DropArgs.hs
-formatted       c4bcc3ec3efc  Agda-2.8.0/src/full/Agda/TypeChecking/Empty.hs
-formatted       546e2690c8bd  Agda-2.8.0/src/full/Agda/TypeChecking/Empty.hs-boot
-formatted       be42b289f13f  Agda-2.8.0/src/full/Agda/TypeChecking/Errors.hs
-formatted       4d637dbd29d8  Agda-2.8.0/src/full/Agda/TypeChecking/Errors.hs-boot
-formatted       aaf8e5a6f74a  Agda-2.8.0/src/full/Agda/TypeChecking/Errors/Names.hs
-formatted       fa9468d1b394  Agda-2.8.0/src/full/Agda/TypeChecking/EtaContract.hs
-formatted       cf915294753e  Agda-2.8.0/src/full/Agda/TypeChecking/Forcing.hs
-formatted       bdbb0b01cf6e  Agda-2.8.0/src/full/Agda/TypeChecking/Free.hs
-formatted       8db094c5d7c6  Agda-2.8.0/src/full/Agda/TypeChecking/Free/Lazy.hs
-formatted       e10225542a24  Agda-2.8.0/src/full/Agda/TypeChecking/Free/Precompute.hs
-formatted       ed93d677a9dd  Agda-2.8.0/src/full/Agda/TypeChecking/Free/Reduce.hs
-formatted       dda08728d05b  Agda-2.8.0/src/full/Agda/TypeChecking/Functions.hs
-formatted       9fc3cf57b64a  Agda-2.8.0/src/full/Agda/TypeChecking/Generalize.hs
-formatted       e7eb98a27abe  Agda-2.8.0/src/full/Agda/TypeChecking/IApplyConfluence.hs
-formatted       87b0399276b5  Agda-2.8.0/src/full/Agda/TypeChecking/Implicit.hs
-formatted       d835876f5a10  Agda-2.8.0/src/full/Agda/TypeChecking/Injectivity.hs
-formatted       32f96c636db2  Agda-2.8.0/src/full/Agda/TypeChecking/Inlining.hs
-formatted       717f70a59997  Agda-2.8.0/src/full/Agda/TypeChecking/InstanceArguments.hs
-formatted       daede539773d  Agda-2.8.0/src/full/Agda/TypeChecking/InstanceArguments.hs-boot
-formatted       e3ca55cde230  Agda-2.8.0/src/full/Agda/TypeChecking/Irrelevance.hs
-formatted       f5e2359204d8  Agda-2.8.0/src/full/Agda/TypeChecking/Irrelevance.hs-boot
-formatted       d1ef164ce157  Agda-2.8.0/src/full/Agda/TypeChecking/Level.hs
-formatted       4df75f041db4  Agda-2.8.0/src/full/Agda/TypeChecking/Level.hs-boot
-formatted       43902630fee9  Agda-2.8.0/src/full/Agda/TypeChecking/Level/Solve.hs
-formatted       ae0893a4561e  Agda-2.8.0/src/full/Agda/TypeChecking/LevelConstraints.hs
-formatted       f1d52a2a57f4  Agda-2.8.0/src/full/Agda/TypeChecking/Lock.hs
-formatted       00b8f5e75aa7  Agda-2.8.0/src/full/Agda/TypeChecking/Lock.hs-boot
-formatted       4d6c3253493c  Agda-2.8.0/src/full/Agda/TypeChecking/MetaVars.hs
-formatted       52101179c5b2  Agda-2.8.0/src/full/Agda/TypeChecking/MetaVars.hs-boot
-formatted       d45b97295243  Agda-2.8.0/src/full/Agda/TypeChecking/MetaVars/Mention.hs
-formatted       402d1f890cfc  Agda-2.8.0/src/full/Agda/TypeChecking/MetaVars/Occurs.hs
-formatted       d47e8c206217  Agda-2.8.0/src/full/Agda/TypeChecking/Modalities.hs
-formatted       1fd16a038ff2  Agda-2.8.0/src/full/Agda/TypeChecking/Monad.hs
-formatted       60eaec2ce48f  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Base.hs
-formatted       8a87322aad4c  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Base/Types.hs
-formatted       7860b2253820  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Base/Warning.hs
-formatted       56ab8bfd7ea3  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Benchmark.hs
-formatted       28bf26746324  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Builtin.hs
-formatted       6b2e93e4eef0  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Builtin.hs-boot
-formatted       d3627bb3ef79  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Caching.hs
-formatted       ceeedfc93ba5  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Closure.hs
-formatted       9e856998188f  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Constraints.hs
-formatted       965403e8d54c  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Context.hs
-formatted       aa421afb353b  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Context.hs-boot
-formatted       93f76be51b99  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Debug.hs
-formatted       07c8440dbd10  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Debug.hs-boot
-formatted       ab2c039addc8  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Env.hs
-formatted       46512cb4f780  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Imports.hs
-formatted       5fb2e7fde476  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/MetaVars.hs
-formatted       894d39f81e58  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/MetaVars.hs-boot
-formatted       b783b82e5721  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Modality.hs
-formatted       bbf8f13a117e  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Mutual.hs
-formatted       8fe6e5c381d6  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Open.hs
-formatted       dbde98a0370f  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Options.hs
-formatted       2b144a9f6ada  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Options.hs-boot
-formatted       a266ccade893  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Pure.hs
-formatted       f549f9160d1c  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Pure.hs-boot
-formatted       f045762684e1  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Signature.hs
-formatted       a5b44843ae0b  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Signature.hs-boot
-formatted       29bd7bc7527e  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/SizedTypes.hs
-formatted       9573759abf1d  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/State.hs
-formatted       63e1167a5c2e  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Statistics.hs
-formatted       091a951c4837  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Trace.hs
-formatted       38ca9a4b989f  Agda-2.8.0/src/full/Agda/TypeChecking/Names.hs
-formatted       5519525e6548  Agda-2.8.0/src/full/Agda/TypeChecking/Opacity.hs
-formatted       d26ddecf1923  Agda-2.8.0/src/full/Agda/TypeChecking/Opacity.hs-boot
-formatted       ec77f6d2c4ee  Agda-2.8.0/src/full/Agda/TypeChecking/Patterns/Abstract.hs
-formatted       0f6e0c168a7c  Agda-2.8.0/src/full/Agda/TypeChecking/Patterns/Internal.hs
-formatted       3bed5c67293b  Agda-2.8.0/src/full/Agda/TypeChecking/Patterns/Match.hs
-formatted       5ee7033010bf  Agda-2.8.0/src/full/Agda/TypeChecking/Patterns/Match.hs-boot
-formatted       997967b0096b  Agda-2.8.0/src/full/Agda/TypeChecking/Polarity.hs
-formatted       2f5659c12840  Agda-2.8.0/src/full/Agda/TypeChecking/Polarity.hs-boot
-formatted       ac80c89f00e2  Agda-2.8.0/src/full/Agda/TypeChecking/Positivity.hs
-formatted       5626959a260d  Agda-2.8.0/src/full/Agda/TypeChecking/Positivity/Occurrence.hs
-formatted       850bea97b290  Agda-2.8.0/src/full/Agda/TypeChecking/Pretty.hs
-formatted       8bd6edac6240  Agda-2.8.0/src/full/Agda/TypeChecking/Pretty.hs-boot
-formatted       9a154e2294df  Agda-2.8.0/src/full/Agda/TypeChecking/Pretty/Call.hs
-formatted       f5434869778b  Agda-2.8.0/src/full/Agda/TypeChecking/Pretty/Call.hs-boot
-formatted       8985c4fc0bc9  Agda-2.8.0/src/full/Agda/TypeChecking/Pretty/Constraint.hs
-formatted       4c2edd49d675  Agda-2.8.0/src/full/Agda/TypeChecking/Pretty/Constraint.hs-boot
-formatted       b837e0103e3f  Agda-2.8.0/src/full/Agda/TypeChecking/Pretty/Warning.hs
-formatted       bf4e737ce041  Agda-2.8.0/src/full/Agda/TypeChecking/Pretty/Warning.hs-boot
-formatted       0f23e151fb6a  Agda-2.8.0/src/full/Agda/TypeChecking/Primitive.hs
-formatted       3c8fe98419dd  Agda-2.8.0/src/full/Agda/TypeChecking/Primitive.hs-boot
-formatted       aa1bd02aba20  Agda-2.8.0/src/full/Agda/TypeChecking/Primitive/Base.hs
-formatted       42186252e310  Agda-2.8.0/src/full/Agda/TypeChecking/Primitive/Cubical.hs
-formatted       52687d62262c  Agda-2.8.0/src/full/Agda/TypeChecking/Primitive/Cubical/Base.hs
-formatted       34da472277ef  Agda-2.8.0/src/full/Agda/TypeChecking/Primitive/Cubical/Base.hs-boot
-formatted       4aec12c8b204  Agda-2.8.0/src/full/Agda/TypeChecking/Primitive/Cubical/Glue.hs
-formatted       4056250b5173  Agda-2.8.0/src/full/Agda/TypeChecking/Primitive/Cubical/HCompU.hs
-formatted       78197ae078a9  Agda-2.8.0/src/full/Agda/TypeChecking/ProjectionLike.hs
-formatted       21d019305ce5  Agda-2.8.0/src/full/Agda/TypeChecking/ProjectionLike.hs-boot
-formatted       2505bf50d757  Agda-2.8.0/src/full/Agda/TypeChecking/Quote.hs
-formatted       134651a3168e  Agda-2.8.0/src/full/Agda/TypeChecking/ReconstructParameters.hs
-formatted       684e26974384  Agda-2.8.0/src/full/Agda/TypeChecking/RecordPatterns.hs
-formatted       8affdcc8111a  Agda-2.8.0/src/full/Agda/TypeChecking/Records.hs
-formatted       65b1d93597cd  Agda-2.8.0/src/full/Agda/TypeChecking/Records.hs-boot
-formatted       d4aed64e6ee4  Agda-2.8.0/src/full/Agda/TypeChecking/Reduce.hs
-formatted       82cb10489996  Agda-2.8.0/src/full/Agda/TypeChecking/Reduce.hs-boot
-formatted       63e3382d2f1d  Agda-2.8.0/src/full/Agda/TypeChecking/Reduce/Fast.hs
-formatted       2158647025d5  Agda-2.8.0/src/full/Agda/TypeChecking/Reduce/Fast.hs-boot
-formatted       52ceaeb66838  Agda-2.8.0/src/full/Agda/TypeChecking/Reduce/Monad.hs
-formatted       4138b13a5df5  Agda-2.8.0/src/full/Agda/TypeChecking/Rewriting.hs
-formatted       0158a552c77f  Agda-2.8.0/src/full/Agda/TypeChecking/Rewriting.hs-boot
-formatted       682e7693d697  Agda-2.8.0/src/full/Agda/TypeChecking/Rewriting/Clause.hs
-formatted       814593fa1f25  Agda-2.8.0/src/full/Agda/TypeChecking/Rewriting/Confluence.hs
-formatted       ffa8c612942d  Agda-2.8.0/src/full/Agda/TypeChecking/Rewriting/NonLinMatch.hs
-formatted       cf2803dfe738  Agda-2.8.0/src/full/Agda/TypeChecking/Rewriting/NonLinPattern.hs
-formatted       205e34acf2dd  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Application.hs
-formatted       8094c6b9ca8d  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Application.hs-boot
-formatted       fe23087ac386  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Builtin.hs
-formatted       bb96b8d55347  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Builtin/Coinduction.hs
-formatted       48f627566132  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Builtin/Coinduction.hs-boot
-formatted       1f8fe493c19f  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Data.hs
-formatted       89ea7a6db701  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Data.hs-boot
-formatted       8ca53478922f  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Decl.hs
-formatted       c3dda6e649e5  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Decl.hs-boot
-formatted       65e84b8c3d9a  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Def.hs
-formatted       aa2e722e924d  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Def.hs-boot
-formatted       fed954351c6b  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Display.hs
-formatted       01bddfcb50ba  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/LHS.hs
-formatted       6773a3880c72  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/LHS/Implicit.hs
-formatted       da382d16a0bc  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/LHS/Problem.hs
-formatted       faf2b455193b  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/LHS/ProblemRest.hs
-formatted       e85e560d8ceb  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/LHS/Unify.hs
-formatted       302ff532dcd1  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/LHS/Unify/LeftInverse.hs
-formatted       d015b6099a7b  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/LHS/Unify/Types.hs
-formatted       4491692a08c5  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Record.hs
-formatted       067a1492920c  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Term.hs
-formatted       ccd5b1bd7f62  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Term.hs-boot
-formatted       49e329be866f  Agda-2.8.0/src/full/Agda/TypeChecking/Serialise.hs
-formatted       b9cec9d0620c  Agda-2.8.0/src/full/Agda/TypeChecking/Serialise/Base.hs
-formatted       0b03fe8ecc8f  Agda-2.8.0/src/full/Agda/TypeChecking/Serialise/Instances.hs
-formatted       50a087db59cf  Agda-2.8.0/src/full/Agda/TypeChecking/Serialise/Instances/Abstract.hs
-formatted       36d52dce312e  Agda-2.8.0/src/full/Agda/TypeChecking/Serialise/Instances/Common.hs
-formatted       d11e2e781bb4  Agda-2.8.0/src/full/Agda/TypeChecking/Serialise/Instances/Compilers.hs
-formatted       1f1b6ebe3573  Agda-2.8.0/src/full/Agda/TypeChecking/Serialise/Instances/Errors.hs
-formatted       abbb853d7207  Agda-2.8.0/src/full/Agda/TypeChecking/Serialise/Instances/Highlighting.hs
-formatted       63778a1a49ac  Agda-2.8.0/src/full/Agda/TypeChecking/Serialise/Instances/Internal.hs
-formatted       b5090c8315a6  Agda-2.8.0/src/full/Agda/TypeChecking/SizedTypes.hs
-formatted       b681d54f057a  Agda-2.8.0/src/full/Agda/TypeChecking/SizedTypes/Pretty.hs
-formatted       1d5f439ca188  Agda-2.8.0/src/full/Agda/TypeChecking/SizedTypes/Solve.hs
-formatted       758f61663e05  Agda-2.8.0/src/full/Agda/TypeChecking/SizedTypes/Syntax.hs
-formatted       904a4e241e74  Agda-2.8.0/src/full/Agda/TypeChecking/SizedTypes/Utils.hs
-formatted       d63891bced83  Agda-2.8.0/src/full/Agda/TypeChecking/SizedTypes/WarshallSolver.hs
-formatted       5e29033dec27  Agda-2.8.0/src/full/Agda/TypeChecking/Sort.hs
-formatted       a6f77cb4339d  Agda-2.8.0/src/full/Agda/TypeChecking/Substitute.hs
-formatted       0710e932d5c1  Agda-2.8.0/src/full/Agda/TypeChecking/Substitute/Class.hs
-formatted       2656f0d28fba  Agda-2.8.0/src/full/Agda/TypeChecking/Substitute/DeBruijn.hs
-formatted       bdddf47208eb  Agda-2.8.0/src/full/Agda/TypeChecking/SyntacticEquality.hs
-formatted       9403f483b826  Agda-2.8.0/src/full/Agda/TypeChecking/Telescope.hs
-formatted       d94c0d202dfc  Agda-2.8.0/src/full/Agda/TypeChecking/Telescope.hs-boot
-formatted       687ac4667b88  Agda-2.8.0/src/full/Agda/TypeChecking/Telescope/Path.hs
-formatted       d927a41c56d4  Agda-2.8.0/src/full/Agda/TypeChecking/Unquote.hs
-formatted       80d32d18ead5  Agda-2.8.0/src/full/Agda/TypeChecking/Warnings.hs
-formatted       1e8984d31ba8  Agda-2.8.0/src/full/Agda/TypeChecking/With.hs
-formatted       b02f16e6d20a  Agda-2.8.0/src/full/Agda/Utils/AffineHole.hs
-formatted       ae5ced9ae20f  Agda-2.8.0/src/full/Agda/Utils/Applicative.hs
-formatted       7fe48d6127fe  Agda-2.8.0/src/full/Agda/Utils/AssocList.hs
-formatted       72df986a37f7  Agda-2.8.0/src/full/Agda/Utils/Bag.hs
-formatted       3856d320f4f2  Agda-2.8.0/src/full/Agda/Utils/Benchmark.hs
-formatted       19e137bd74e4  Agda-2.8.0/src/full/Agda/Utils/BiMap.hs
-formatted       09925de009a1  Agda-2.8.0/src/full/Agda/Utils/BoolSet.hs
-formatted       7f37f70bbf2b  Agda-2.8.0/src/full/Agda/Utils/Boolean.hs
-formatted       880aa8847616  Agda-2.8.0/src/full/Agda/Utils/CallStack.hs
-formatted       1f39698a4f6d  Agda-2.8.0/src/full/Agda/Utils/CallStack/Base.hs
-formatted       dfecf0fc01d4  Agda-2.8.0/src/full/Agda/Utils/CallStack/Pretty.hs
-formatted       eeedf1a4e3da  Agda-2.8.0/src/full/Agda/Utils/Char.hs
-formatted       2b8eb290abc6  Agda-2.8.0/src/full/Agda/Utils/Cluster.hs
-formatted       b2757fa5ae2f  Agda-2.8.0/src/full/Agda/Utils/Either.hs
-formatted       5c0f9924f59f  Agda-2.8.0/src/full/Agda/Utils/Empty.hs
-formatted       284145f1db7f  Agda-2.8.0/src/full/Agda/Utils/Environment.hs
-formatted       e2b0e8db2604  Agda-2.8.0/src/full/Agda/Utils/Fail.hs
-formatted       7ba92e89857d  Agda-2.8.0/src/full/Agda/Utils/Favorites.hs
-formatted       73363066a6a3  Agda-2.8.0/src/full/Agda/Utils/FileId.hs
-formatted       99723aa601c1  Agda-2.8.0/src/full/Agda/Utils/FileName.hs
-formatted       e5f5fbd21c99  Agda-2.8.0/src/full/Agda/Utils/Float.hs
-formatted       bb823613272f  Agda-2.8.0/src/full/Agda/Utils/Function.hs
-formatted       75a5028a6b1a  Agda-2.8.0/src/full/Agda/Utils/Functor.hs
-formatted       026b04b8661e  Agda-2.8.0/src/full/Agda/Utils/GetOpt.hs
-formatted       f69e6f903328  Agda-2.8.0/src/full/Agda/Utils/Graph/AdjacencyMap/Unidirectional.hs
-formatted       989ea83c378b  Agda-2.8.0/src/full/Agda/Utils/Graph/TopSort.hs
-formatted       db38367e7a17  Agda-2.8.0/src/full/Agda/Utils/Hash.hs
-formatted       43284ef7124c  Agda-2.8.0/src/full/Agda/Utils/HashTable.hs
-formatted       019e9637b9b0  Agda-2.8.0/src/full/Agda/Utils/Haskell/Syntax.hs
-formatted       7802531cbbc5  Agda-2.8.0/src/full/Agda/Utils/IArray.hs
-formatted       8d53e1639c43  Agda-2.8.0/src/full/Agda/Utils/IO.hs
-formatted       ddd200e851ab  Agda-2.8.0/src/full/Agda/Utils/IO/Binary.hs
-formatted       c62ffb044eae  Agda-2.8.0/src/full/Agda/Utils/IO/Directory.hs
-formatted       44ca6943bebd  Agda-2.8.0/src/full/Agda/Utils/IO/TempFile.hs
-formatted       51a9c4ed68e8  Agda-2.8.0/src/full/Agda/Utils/IO/UTF8.hs
-formatted       d938f94198a6  Agda-2.8.0/src/full/Agda/Utils/IORef.hs
-formatted       695329a3bad9  Agda-2.8.0/src/full/Agda/Utils/Impossible.hs
-formatted       e5520ad27268  Agda-2.8.0/src/full/Agda/Utils/IndexedList.hs
-formatted       89c592a4472e  Agda-2.8.0/src/full/Agda/Utils/IntSet/Infinite.hs
-formatted       37f9f2b34f7d  Agda-2.8.0/src/full/Agda/Utils/Lens.hs
-formatted       89e41b43691d  Agda-2.8.0/src/full/Agda/Utils/Lens/Examples.hs
-formatted       ef65f125c3b1  Agda-2.8.0/src/full/Agda/Utils/List.hs
-formatted       8392227e3997  Agda-2.8.0/src/full/Agda/Utils/List1.hs
-formatted       3bd635eb52aa  Agda-2.8.0/src/full/Agda/Utils/List1.hs-boot
-formatted       3514de48df05  Agda-2.8.0/src/full/Agda/Utils/List2.hs
-formatted       652d388d38ab  Agda-2.8.0/src/full/Agda/Utils/ListT.hs
-formatted       960b2b6f10d7  Agda-2.8.0/src/full/Agda/Utils/Map.hs
-formatted       8c9045bc776a  Agda-2.8.0/src/full/Agda/Utils/Map1.hs
-formatted       6e06ef12a477  Agda-2.8.0/src/full/Agda/Utils/Maybe.hs
-formatted       f52b8f698d5f  Agda-2.8.0/src/full/Agda/Utils/Maybe/Strict.hs
-formatted       fde8defcff6d  Agda-2.8.0/src/full/Agda/Utils/Memo.hs
-formatted       df3a8985dc8e  Agda-2.8.0/src/full/Agda/Utils/Monad.hs
-formatted       4f8109a5fa85  Agda-2.8.0/src/full/Agda/Utils/Monoid.hs
-formatted       92bb2192c3b2  Agda-2.8.0/src/full/Agda/Utils/Null.hs
-formatted       4fd8ca5748d3  Agda-2.8.0/src/full/Agda/Utils/POMonoid.hs
-formatted       bb186d0604db  Agda-2.8.0/src/full/Agda/Utils/Parser/MemoisedCPS.hs
-formatted       c2d2ccfc3558  Agda-2.8.0/src/full/Agda/Utils/PartialOrd.hs
-formatted       687575c7f482  Agda-2.8.0/src/full/Agda/Utils/Permutation.hs
-formatted       fda572184491  Agda-2.8.0/src/full/Agda/Utils/ProfileOptions.hs
-formatted       49a18a2c6aec  Agda-2.8.0/src/full/Agda/Utils/RangeMap.hs
-formatted       5039e6e9abfe  Agda-2.8.0/src/full/Agda/Utils/SemiRing.hs
-formatted       9aa281a4615c  Agda-2.8.0/src/full/Agda/Utils/Semigroup.hs
-formatted       fdb04073ce98  Agda-2.8.0/src/full/Agda/Utils/Set1.hs
-formatted       f45ad8f08443  Agda-2.8.0/src/full/Agda/Utils/Singleton.hs
-formatted       18c4a0bbe326  Agda-2.8.0/src/full/Agda/Utils/Size.hs
-formatted       f8b306deacdf  Agda-2.8.0/src/full/Agda/Utils/SmallSet.hs
-formatted       21babb4b50a9  Agda-2.8.0/src/full/Agda/Utils/String.hs
-formatted       57a8a5b9fa29  Agda-2.8.0/src/full/Agda/Utils/Suffix.hs
-formatted       736b26cda8bc  Agda-2.8.0/src/full/Agda/Utils/Three.hs
-formatted       ebc104ac11d6  Agda-2.8.0/src/full/Agda/Utils/Time.hs
-formatted       50c5753d1ca4  Agda-2.8.0/src/full/Agda/Utils/Trie.hs
-formatted       1711e06969b5  Agda-2.8.0/src/full/Agda/Utils/Tuple.hs
-formatted       db9dcb1b8f66  Agda-2.8.0/src/full/Agda/Utils/TypeLevel.hs
-formatted       c8c672126225  Agda-2.8.0/src/full/Agda/Utils/TypeLits.hs
-formatted       8d8d3b50eebc  Agda-2.8.0/src/full/Agda/Utils/Unsafe.hs
-formatted       7d2c7a588009  Agda-2.8.0/src/full/Agda/Utils/Update.hs
-formatted       383866b27bb0  Agda-2.8.0/src/full/Agda/Utils/VarSet.hs
-formatted       9f0839da86cb  Agda-2.8.0/src/full/Agda/Utils/WithDefault.hs
-formatted       fe0ca6de293d  Agda-2.8.0/src/full/Agda/Utils/Zipper.hs
-formatted       86e923a357db  Agda-2.8.0/src/main/Main.hs
-formatted       d3512172a4bc  Agda-2.8.0/src/setup/Agda/Setup.hs
-formatted       114aa5ab1508  Agda-2.8.0/src/setup/Agda/Setup/DataFiles.hs
-formatted       42af21c8ecf8  Agda-2.8.0/src/setup/Agda/Setup/EmacsMode.hs
-formatted       acb74e0db7a5  Agda-2.8.0/src/setup/Agda/Version.hs
-formatted       5164a4006c26  Agda-2.8.0/src/setup/Agda/VersionCommit.hs
-formatted       90cd663d9426  HUnit-1.6.2.0/examples/Example.hs
-formatted       9b1cac4b6c09  HUnit-1.6.2.0/src/Test/HUnit.hs
-formatted       a931a3d6bf9f  HUnit-1.6.2.0/src/Test/HUnit/Base.hs
-formatted       ab91586830e9  HUnit-1.6.2.0/src/Test/HUnit/Lang.hs
-formatted       f9959d10adae  HUnit-1.6.2.0/src/Test/HUnit/Terminal.hs
-formatted       c1c1d4fdc273  HUnit-1.6.2.0/src/Test/HUnit/Text.hs
-formatted       358e8e211fe4  HUnit-1.6.2.0/tests/HUnitTestExtended.hs
-formatted       2277de61adab  HUnit-1.6.2.0/tests/HUnitTests.hs
-formatted       6f374a392385  HUnit-1.6.2.0/tests/TerminalTest.hs
-formatted       3c8a199a8a36  QuickCheck-2.18.0.0/examples/Heap.hs
-formatted       0bd3a87ca5b5  QuickCheck-2.18.0.0/examples/Heap_Program.hs
-formatted       85df59b82228  QuickCheck-2.18.0.0/examples/Heap_ProgramAlgebraic.hs
-formatted       cc37d9bcd159  QuickCheck-2.18.0.0/examples/Lambda.hs
-formatted       56c98d50971f  QuickCheck-2.18.0.0/examples/Merge.hs
-formatted       6506a17a91ff  QuickCheck-2.18.0.0/examples/Set.hs
-formatted       598740b3d57c  QuickCheck-2.18.0.0/examples/Simple.hs
-partly-checked  5234e8085ba9  QuickCheck-2.18.0.0/src/Test/QuickCheck.hs
-formatted       02ad02d885d3  QuickCheck-2.18.0.0/src/Test/QuickCheck/All.hs
-declined        -             QuickCheck-2.18.0.0/src/Test/QuickCheck/Arbitrary.hs
-formatted       b394fbd4debb  QuickCheck-2.18.0.0/src/Test/QuickCheck/Compat.hs
-partly-checked  06fafd04e06a  QuickCheck-2.18.0.0/src/Test/QuickCheck/Exception.hs
-formatted       24dc2fbcd085  QuickCheck-2.18.0.0/src/Test/QuickCheck/Features.hs
-declined        -             QuickCheck-2.18.0.0/src/Test/QuickCheck/Function.hs
-formatted       061130c71dd5  QuickCheck-2.18.0.0/src/Test/QuickCheck/Gen.hs
-formatted       0488daa21096  QuickCheck-2.18.0.0/src/Test/QuickCheck/Gen/Unsafe.hs
-declined        -             QuickCheck-2.18.0.0/src/Test/QuickCheck/Modifiers.hs
-declined        -             QuickCheck-2.18.0.0/src/Test/QuickCheck/Monadic.hs
-formatted       a94b9d13da2f  QuickCheck-2.18.0.0/src/Test/QuickCheck/Monoids.hs
-formatted       0c4f8c706edf  QuickCheck-2.18.0.0/src/Test/QuickCheck/Poly.hs
-declined        -             QuickCheck-2.18.0.0/src/Test/QuickCheck/Property.hs
-formatted       d248979763fb  QuickCheck-2.18.0.0/src/Test/QuickCheck/Random.hs
-formatted       67a6c49f2d76  QuickCheck-2.18.0.0/src/Test/QuickCheck/State.hs
-formatted       3bad70f5b189  QuickCheck-2.18.0.0/src/Test/QuickCheck/Test.hs
-formatted       fc335cb1eb17  QuickCheck-2.18.0.0/src/Test/QuickCheck/Text.hs
-formatted       9ca8d4e83360  QuickCheck-2.18.0.0/tests/CollectDataTypes.hs
-formatted       da3fb75adccf  QuickCheck-2.18.0.0/tests/DiscardRatio.hs
-formatted       5408e5e13bd3  QuickCheck-2.18.0.0/tests/GCoArbitraryExample.hs
-formatted       8dd012261272  QuickCheck-2.18.0.0/tests/GShrinkExample.hs
-formatted       4c75e82798d4  QuickCheck-2.18.0.0/tests/Generators.hs
-formatted       057887c409bc  QuickCheck-2.18.0.0/tests/Misc.hs
-formatted       414efdc48918  QuickCheck-2.18.0.0/tests/MonadFix.hs
-formatted       85ad2d1decbe  QuickCheck-2.18.0.0/tests/Monoids.hs
-formatted       eae30fa51b1b  QuickCheck-2.18.0.0/tests/RunCollectDataTypes.hs
-formatted       d798509570fa  QuickCheck-2.18.0.0/tests/Split.hs
-formatted       da1fe583377c  QuickCheck-2.18.0.0/tests/Strictness.hs
-formatted       5b211214c287  QuickCheck-2.18.0.0/tests/Terminal.hs
-formatted       398a0f17171d  QuickCheck-2.18.0.0/tests/WithProgress.hs
-formatted       5bd7a41e0fb6  ShellCheck-0.11.0/shellcheck.hs
-formatted       e96f582d0994  ShellCheck-0.11.0/src/ShellCheck/AST.hs
-formatted       c37d63683cf0  ShellCheck-0.11.0/src/ShellCheck/ASTLib.hs
-formatted       84d65963cef4  ShellCheck-0.11.0/src/ShellCheck/Analytics.hs
-formatted       a37e7d6ad771  ShellCheck-0.11.0/src/ShellCheck/Analyzer.hs
-formatted       dc01891211e6  ShellCheck-0.11.0/src/ShellCheck/AnalyzerLib.hs
-formatted       d2cb76d4885e  ShellCheck-0.11.0/src/ShellCheck/CFG.hs
-formatted       612615cdeb63  ShellCheck-0.11.0/src/ShellCheck/CFGAnalysis.hs
-formatted       64df5efa4dca  ShellCheck-0.11.0/src/ShellCheck/Checker.hs
-formatted       7ef4c3e0a33f  ShellCheck-0.11.0/src/ShellCheck/Checks/Commands.hs
-formatted       4499e00fdc51  ShellCheck-0.11.0/src/ShellCheck/Checks/ControlFlow.hs
-formatted       0cbfece4e54b  ShellCheck-0.11.0/src/ShellCheck/Checks/Custom.hs
-formatted       e1006f2d757d  ShellCheck-0.11.0/src/ShellCheck/Checks/ShellSupport.hs
-formatted       d39eda0efa56  ShellCheck-0.11.0/src/ShellCheck/Data.hs
-formatted       0b8c4331f2cb  ShellCheck-0.11.0/src/ShellCheck/Debug.hs
-formatted       801ef2ddf76d  ShellCheck-0.11.0/src/ShellCheck/Fixer.hs
-formatted       1c5c142bbc8c  ShellCheck-0.11.0/src/ShellCheck/Formatter/CheckStyle.hs
-formatted       13b3c15a19bc  ShellCheck-0.11.0/src/ShellCheck/Formatter/Diff.hs
-formatted       78112453fad7  ShellCheck-0.11.0/src/ShellCheck/Formatter/Format.hs
-formatted       d90b451f113e  ShellCheck-0.11.0/src/ShellCheck/Formatter/GCC.hs
-formatted       b5dba8eeaa1e  ShellCheck-0.11.0/src/ShellCheck/Formatter/JSON.hs
-formatted       fb9c03a6a335  ShellCheck-0.11.0/src/ShellCheck/Formatter/JSON1.hs
-formatted       a381122da904  ShellCheck-0.11.0/src/ShellCheck/Formatter/Quiet.hs
-formatted       ede5712d5ab7  ShellCheck-0.11.0/src/ShellCheck/Formatter/TTY.hs
-formatted       a601aea10041  ShellCheck-0.11.0/src/ShellCheck/Interface.hs
-formatted       1f9ece3950b4  ShellCheck-0.11.0/src/ShellCheck/Parser.hs
-formatted       41e45f4ec82e  ShellCheck-0.11.0/src/ShellCheck/Prelude.hs
-formatted       0b6a2ca650ea  ShellCheck-0.11.0/src/ShellCheck/Regex.hs
-formatted       d7f66e7f3a00  ShellCheck-0.11.0/test/shellcheck.hs
-formatted       f11704872a0d  adjunctions-4.4.4/HLint.hs
-formatted       b76eebd88dde  adjunctions-4.4.4/src/Control/Comonad/Representable/Store.hs
-formatted       de45dcce87b3  adjunctions-4.4.4/src/Control/Comonad/Trans/Adjoint.hs
-formatted       b2d151be53ba  adjunctions-4.4.4/src/Control/Monad/Representable/Reader.hs
-formatted       a638921f9e27  adjunctions-4.4.4/src/Control/Monad/Representable/State.hs
-formatted       090896034199  adjunctions-4.4.4/src/Control/Monad/Trans/Adjoint.hs
-formatted       e1817af58b0a  adjunctions-4.4.4/src/Control/Monad/Trans/Contravariant/Adjoint.hs
-formatted       e1065b4a8220  adjunctions-4.4.4/src/Control/Monad/Trans/Conts.hs
-formatted       a9be4a7e726b  adjunctions-4.4.4/src/Data/Functor/Adjunction.hs
-formatted       191e78a8f894  adjunctions-4.4.4/src/Data/Functor/Contravariant/Adjunction.hs
-formatted       573a1fcd59fd  adjunctions-4.4.4/src/Data/Functor/Contravariant/Rep.hs
-formatted       28caf428004b  adjunctions-4.4.4/src/Data/Functor/Rep.hs
-formatted       885922fbbfe0  adjunctions-4.4.4/tests/GenericsSpec.hs
-formatted       2fbd14b119a4  adjunctions-4.4.4/tests/Spec.hs
-formatted       7bbf4758e5ad  aeson-2.3.1.0/src/Data/Aeson.hs
-formatted       e884d6813fc6  aeson-2.3.1.0/src/Data/Aeson/Decoding.hs
-formatted       93bdee10e02a  aeson-2.3.1.0/src/Data/Aeson/Decoding/ByteString.hs
-formatted       635321399aa4  aeson-2.3.1.0/src/Data/Aeson/Decoding/ByteString/Lazy.hs
-formatted       1d3a54288c25  aeson-2.3.1.0/src/Data/Aeson/Decoding/Conversion.hs
-formatted       f1f142fef403  aeson-2.3.1.0/src/Data/Aeson/Decoding/Internal.hs
-formatted       e972ebea468c  aeson-2.3.1.0/src/Data/Aeson/Decoding/Text.hs
-formatted       709b71ada144  aeson-2.3.1.0/src/Data/Aeson/Decoding/Tokens.hs
-formatted       c6cf8dff7aea  aeson-2.3.1.0/src/Data/Aeson/Encoding.hs
-formatted       96d4e6121b81  aeson-2.3.1.0/src/Data/Aeson/Encoding/Builder.hs
-formatted       32e6990c1aad  aeson-2.3.1.0/src/Data/Aeson/Encoding/Internal.hs
-formatted       d7002010fdc9  aeson-2.3.1.0/src/Data/Aeson/Internal/ByteString.hs
-formatted       7ff60392d6c3  aeson-2.3.1.0/src/Data/Aeson/Internal/Functions.hs
-formatted       e048ffa25767  aeson-2.3.1.0/src/Data/Aeson/Internal/Prelude.hs
-formatted       57e28222c296  aeson-2.3.1.0/src/Data/Aeson/Internal/Scientific.hs
-formatted       6bb6b5229c29  aeson-2.3.1.0/src/Data/Aeson/Internal/TH.hs
-formatted       b61b87ef28b1  aeson-2.3.1.0/src/Data/Aeson/Internal/Text.hs
-formatted       e83337edc6e6  aeson-2.3.1.0/src/Data/Aeson/Internal/Unescape.hs
-formatted       20257ed727b2  aeson-2.3.1.0/src/Data/Aeson/Internal/UnescapeFromText.hs
-formatted       1052e9d7d311  aeson-2.3.1.0/src/Data/Aeson/Key.hs
-formatted       cae25a09a08c  aeson-2.3.1.0/src/Data/Aeson/KeyMap.hs
-formatted       a8f98f92bb33  aeson-2.3.1.0/src/Data/Aeson/Parser/Time.hs
-formatted       34673c7e3119  aeson-2.3.1.0/src/Data/Aeson/QQ/Simple.hs
-formatted       8c47510bfe90  aeson-2.3.1.0/src/Data/Aeson/RFC8785.hs
-formatted       f60561be7302  aeson-2.3.1.0/src/Data/Aeson/TH.hs
-formatted       12a0132d4a2c  aeson-2.3.1.0/src/Data/Aeson/Text.hs
-formatted       d929af4e0687  aeson-2.3.1.0/src/Data/Aeson/Types.hs
-formatted       e11d9a90b593  aeson-2.3.1.0/src/Data/Aeson/Types/Class.hs
-formatted       36f39e5a3dd4  aeson-2.3.1.0/src/Data/Aeson/Types/FromJSON.hs
-formatted       af543197c845  aeson-2.3.1.0/src/Data/Aeson/Types/Generic.hs
-formatted       9fc1ad97795b  aeson-2.3.1.0/src/Data/Aeson/Types/Internal.hs
-formatted       36a7e779b4fc  aeson-2.3.1.0/src/Data/Aeson/Types/ToJSON.hs
-formatted       4a92c519c2c4  aeson-2.3.1.0/tests/CastFloat.hs
-formatted       bad3a5065737  aeson-2.3.1.0/tests/DataFamilies/Encoders.hs
-formatted       0d864147e795  aeson-2.3.1.0/tests/DataFamilies/Instances.hs
-formatted       91fe7aa4d3dc  aeson-2.3.1.0/tests/DataFamilies/Properties.hs
-formatted       4d002c77704c  aeson-2.3.1.0/tests/DataFamilies/Types.hs
-formatted       18d45630b0f4  aeson-2.3.1.0/tests/DoubleToScientific.hs
-formatted       659a9357b588  aeson-2.3.1.0/tests/Encoders.hs
-formatted       30150da5a855  aeson-2.3.1.0/tests/ErrorMessages.hs
-formatted       72fb423455c1  aeson-2.3.1.0/tests/Functions.hs
-formatted       45b065b98a94  aeson-2.3.1.0/tests/Instances.hs
-formatted       38b7096d53c4  aeson-2.3.1.0/tests/JSONTestSuite.hs
-formatted       82f27586e194  aeson-2.3.1.0/tests/Options.hs
-formatted       269fd896fd74  aeson-2.3.1.0/tests/PropUtils.hs
-formatted       5c7e1bcf3dd6  aeson-2.3.1.0/tests/Properties.hs
-formatted       47a934388051  aeson-2.3.1.0/tests/PropertyGeneric.hs
-formatted       109d7fb52b5b  aeson-2.3.1.0/tests/PropertyKeys.hs
-formatted       0d9df9d04cba  aeson-2.3.1.0/tests/PropertyQC.hs
-formatted       a2e378d49eb8  aeson-2.3.1.0/tests/PropertyRTFunctors.hs
-formatted       d54279308532  aeson-2.3.1.0/tests/PropertyRoundTrip.hs
-formatted       1c47871a8c20  aeson-2.3.1.0/tests/PropertyTH.hs
-formatted       816e57772780  aeson-2.3.1.0/tests/RFC8785.hs
-formatted       378b97660503  aeson-2.3.1.0/tests/Regression/Issue1138.hs
-formatted       1cfcacdcaf11  aeson-2.3.1.0/tests/Regression/Issue351.hs
-formatted       f000e9c51f1a  aeson-2.3.1.0/tests/Regression/Issue571.hs
-formatted       650ac09bee0a  aeson-2.3.1.0/tests/Regression/Issue687.hs
-formatted       e5c541d1465a  aeson-2.3.1.0/tests/Regression/Issue967.hs
-formatted       f9a4bb5a21f0  aeson-2.3.1.0/tests/SerializationFormatSpec.hs
-formatted       8eaa36c16021  aeson-2.3.1.0/tests/Tests.hs
-formatted       c88e88732cfd  aeson-2.3.1.0/tests/Types.hs
-formatted       ac8b6651c5ec  aeson-2.3.1.0/tests/UnitTests.hs
-formatted       f18689008d86  aeson-2.3.1.0/tests/UnitTests/FromJSONKey.hs
-formatted       8fa12a214cda  aeson-2.3.1.0/tests/UnitTests/Hashable.hs
-formatted       2e6e13a2b307  aeson-2.3.1.0/tests/UnitTests/KeyMapInsertWith.hs
-formatted       fc462ed61e50  aeson-2.3.1.0/tests/UnitTests/MonadFix.hs
-formatted       657449faeb93  aeson-2.3.1.0/tests/UnitTests/NoThunks.hs
-formatted       31a111ec64d8  aeson-2.3.1.0/tests/UnitTests/NullaryConstructors.hs
-formatted       21ebc1b4f9c4  aeson-2.3.1.0/tests/UnitTests/OmitNothingFieldsNote.hs
-formatted       11d14533f820  aeson-2.3.1.0/tests/UnitTests/OptionalFields.hs
-formatted       699f022c0cb2  aeson-2.3.1.0/tests/UnitTests/OptionalFields/Common.hs
-formatted       d8f208687b90  aeson-2.3.1.0/tests/UnitTests/OptionalFields/Generics.hs
-formatted       0bea65848d96  aeson-2.3.1.0/tests/UnitTests/OptionalFields/Manual.hs
-formatted       4a6ecc95787f  aeson-2.3.1.0/tests/UnitTests/OptionalFields/TH.hs
-formatted       e93203961852  aeson-2.3.1.0/tests/UnitTests/UTCTime.hs
-formatted       e865ae48f11b  ansi-terminal-1.1.5/Setup.hs
-formatted       444d34793bf4  ansi-terminal-1.1.5/app/Example.hs
-formatted       64edb10877a8  ansi-terminal-1.1.5/src/System/Console/ANSI.hs
-formatted       0cc59e71668d  ansi-terminal-1.1.5/unix/System/Console/ANSI/Internal.hs
-formatted       2ee987b3a95a  ansi-terminal-1.1.5/win/System/Console/ANSI/Internal.hs
-broken          5c7d30c5b6fe  ansi-terminal-1.1.5/win/System/Console/ANSI/Windows/Foreign.hs
-formatted       70161e33d5f6  ansi-terminal-1.1.5/win/System/Console/ANSI/Windows/Win32/Types.hs
-formatted       9e25d9947df5  async-2.2.6/Control/Concurrent/Async.hs
-partly-checked  3a3b893cb914  async-2.2.6/Control/Concurrent/Async/Internal.hs
-formatted       68777666410b  async-2.2.6/Control/Concurrent/Async/Warden.hs
-formatted       a0f5a7bd29cb  async-2.2.6/Control/Concurrent/Stream.hs
-formatted       e865ae48f11b  async-2.2.6/Setup.hs
-formatted       7f1489b412a3  async-2.2.6/bench/concasync.hs
-formatted       947eb9e17a7c  async-2.2.6/bench/conccancel.hs
-formatted       6fd907018c80  async-2.2.6/bench/race.hs
-formatted       4db35c37a9a6  async-2.2.6/test/test-async.hs
-formatted       9f3238148609  attoparsec-0.14.4/Data/Attoparsec.hs
-formatted       7d88b33f4399  attoparsec-0.14.4/Data/Attoparsec/ByteString.hs
-formatted       4ba03080e749  attoparsec-0.14.4/Data/Attoparsec/ByteString/Char8.hs
-formatted       0e47afce0362  attoparsec-0.14.4/Data/Attoparsec/ByteString/Internal.hs
-formatted       fcc23ffbbc3d  attoparsec-0.14.4/Data/Attoparsec/ByteString/Lazy.hs
-formatted       220f76f3ce4e  attoparsec-0.14.4/Data/Attoparsec/Char8.hs
-formatted       90be588fbc3a  attoparsec-0.14.4/Data/Attoparsec/Combinator.hs
-formatted       4b9154d41c2a  attoparsec-0.14.4/Data/Attoparsec/Internal.hs
-formatted       dbeb97f732d5  attoparsec-0.14.4/Data/Attoparsec/Internal/Types.hs
-formatted       ea3b710a875e  attoparsec-0.14.4/Data/Attoparsec/Lazy.hs
-formatted       3d8057d5d688  attoparsec-0.14.4/Data/Attoparsec/Number.hs
-formatted       45050bdb0a87  attoparsec-0.14.4/Data/Attoparsec/Text.hs
-formatted       8419b057d5a4  attoparsec-0.14.4/Data/Attoparsec/Text/Internal.hs
-formatted       b1c4021729a8  attoparsec-0.14.4/Data/Attoparsec/Text/Lazy.hs
-formatted       63d322215a87  attoparsec-0.14.4/Data/Attoparsec/Types.hs
-formatted       8ab300fd67b0  attoparsec-0.14.4/Data/Attoparsec/Zepto.hs
-formatted       53b0400e60aa  attoparsec-0.14.4/benchmarks/Aeson.hs
-formatted       b151a3ed3e1a  attoparsec-0.14.4/benchmarks/Benchmarks.hs
-formatted       bd0309211105  attoparsec-0.14.4/benchmarks/Common.hs
-formatted       baa4df75c7d8  attoparsec-0.14.4/benchmarks/Genome.hs
-formatted       3f8483fc03da  attoparsec-0.14.4/benchmarks/HeadersByteString.hs
-formatted       bb42606c4a8a  attoparsec-0.14.4/benchmarks/HeadersByteString/Atto.hs
-formatted       5a57c6aaa740  attoparsec-0.14.4/benchmarks/HeadersText.hs
-formatted       8fa6e462f95f  attoparsec-0.14.4/benchmarks/Links.hs
-formatted       f582abe3e244  attoparsec-0.14.4/benchmarks/Numbers.hs
-formatted       696be472825c  attoparsec-0.14.4/benchmarks/Sets.hs
-formatted       0d64d700acb4  attoparsec-0.14.4/benchmarks/TextFastSet.hs
-formatted       2b16e18cd8c0  attoparsec-0.14.4/benchmarks/Warp.hs
-formatted       5aab92534568  attoparsec-0.14.4/benchmarks/warp-3.0.1.1/Network/Wai/Handler/Warp/ReadInt.hs
-formatted       1f7d3a417fb5  attoparsec-0.14.4/benchmarks/warp-3.0.1.1/Network/Wai/Handler/Warp/RequestHeader.hs
-formatted       0d3565bef090  attoparsec-0.14.4/examples/Atto_RFC2616.hs
-formatted       b6861e7aadf8  attoparsec-0.14.4/examples/Parsec_RFC2616.hs
-formatted       af7fdd1013cc  attoparsec-0.14.4/examples/RFC2616.hs
-formatted       ef93830525fb  attoparsec-0.14.4/internal/Data/Attoparsec/ByteString/Buffer.hs
-formatted       f351843a1420  attoparsec-0.14.4/internal/Data/Attoparsec/ByteString/FastSet.hs
-formatted       f21e47830b1f  attoparsec-0.14.4/internal/Data/Attoparsec/Internal/Compat.hs
-formatted       4498fcbfa61f  attoparsec-0.14.4/internal/Data/Attoparsec/Internal/Fhthagn.hs
-formatted       bc12b2ada3b5  attoparsec-0.14.4/internal/Data/Attoparsec/Text/Buffer.hs
-formatted       b2e14e3c02d3  attoparsec-0.14.4/internal/Data/Attoparsec/Text/FastSet.hs
-formatted       ccaeb87485db  attoparsec-0.14.4/tests/QC.hs
-formatted       c4481214d6c0  attoparsec-0.14.4/tests/QC/Buffer.hs
-formatted       ae7fa7b38a4b  attoparsec-0.14.4/tests/QC/ByteString.hs
-formatted       455e4866502a  attoparsec-0.14.4/tests/QC/Combinator.hs
-formatted       2bd326ae7162  attoparsec-0.14.4/tests/QC/Common.hs
-formatted       7558d60104bb  attoparsec-0.14.4/tests/QC/IPv6/Internal.hs
-formatted       0692feda416d  attoparsec-0.14.4/tests/QC/IPv6/Types.hs
-formatted       08452f3d9508  attoparsec-0.14.4/tests/QC/Rechunked.hs
-formatted       0bab40e54197  attoparsec-0.14.4/tests/QC/Simple.hs
-formatted       f610227583f7  attoparsec-0.14.4/tests/QC/Text.hs
-formatted       930b366b3b68  attoparsec-0.14.4/tests/QC/Text/FastSet.hs
-formatted       ed6a9f21b67c  attoparsec-0.14.4/tests/QC/Text/Regressions.hs
-formatted       7710b806795e  aws-0.25.3/Aws.hs
-formatted       a0ce75039c94  aws-0.25.3/Aws/Aws.hs
-formatted       905ef20b8b35  aws-0.25.3/Aws/Core.hs
-formatted       526f7494fea1  aws-0.25.3/Aws/DynamoDb.hs
-formatted       11c5a36e6111  aws-0.25.3/Aws/DynamoDb/Commands.hs
-formatted       233aad0bb1ed  aws-0.25.3/Aws/DynamoDb/Commands/BatchGetItem.hs
-formatted       d1bdb0d1df58  aws-0.25.3/Aws/DynamoDb/Commands/BatchWriteItem.hs
-formatted       80eee4eebfe0  aws-0.25.3/Aws/DynamoDb/Commands/DeleteItem.hs
-formatted       3feb28aee701  aws-0.25.3/Aws/DynamoDb/Commands/GetItem.hs
-formatted       7c5a72d0256b  aws-0.25.3/Aws/DynamoDb/Commands/PutItem.hs
-formatted       0e5d2def9d4d  aws-0.25.3/Aws/DynamoDb/Commands/Query.hs
-formatted       826249cb5bbc  aws-0.25.3/Aws/DynamoDb/Commands/Scan.hs
-formatted       9bea9ff7b1ae  aws-0.25.3/Aws/DynamoDb/Commands/Table.hs
-formatted       3081d5cd4a3b  aws-0.25.3/Aws/DynamoDb/Commands/UpdateItem.hs
-formatted       b92828b82a58  aws-0.25.3/Aws/DynamoDb/Core.hs
-formatted       7da30757579d  aws-0.25.3/Aws/Ec2/InstanceMetadata.hs
-formatted       64524ea72e53  aws-0.25.3/Aws/Iam.hs
-formatted       749eee8b56a6  aws-0.25.3/Aws/Iam/Commands.hs
-formatted       ad79f5d57197  aws-0.25.3/Aws/Iam/Commands/AddUserToGroup.hs
-formatted       915fd6e3db63  aws-0.25.3/Aws/Iam/Commands/CreateAccessKey.hs
-formatted       bde533108084  aws-0.25.3/Aws/Iam/Commands/CreateGroup.hs
-formatted       71878d688298  aws-0.25.3/Aws/Iam/Commands/CreateUser.hs
-formatted       9e5113cbceb2  aws-0.25.3/Aws/Iam/Commands/DeleteAccessKey.hs
-formatted       69f808dacd5c  aws-0.25.3/Aws/Iam/Commands/DeleteGroup.hs
-formatted       8e3043dbd167  aws-0.25.3/Aws/Iam/Commands/DeleteGroupPolicy.hs
-formatted       7214274b0a75  aws-0.25.3/Aws/Iam/Commands/DeleteUser.hs
-formatted       f49416222f95  aws-0.25.3/Aws/Iam/Commands/DeleteUserPolicy.hs
-formatted       1b4517924917  aws-0.25.3/Aws/Iam/Commands/GetGroupPolicy.hs
-formatted       512be8c8f03d  aws-0.25.3/Aws/Iam/Commands/GetUser.hs
-formatted       52a399c24ce2  aws-0.25.3/Aws/Iam/Commands/GetUserPolicy.hs
-formatted       76b52f1c10e6  aws-0.25.3/Aws/Iam/Commands/ListAccessKeys.hs
-formatted       f147cb58a827  aws-0.25.3/Aws/Iam/Commands/ListGroupPolicies.hs
-formatted       9055a8593cb5  aws-0.25.3/Aws/Iam/Commands/ListGroups.hs
-formatted       d4d566b0d162  aws-0.25.3/Aws/Iam/Commands/ListMfaDevices.hs
-formatted       c2765a268c08  aws-0.25.3/Aws/Iam/Commands/ListUserPolicies.hs
-formatted       81792beec6f5  aws-0.25.3/Aws/Iam/Commands/ListUsers.hs
-formatted       12e4d06eee79  aws-0.25.3/Aws/Iam/Commands/PutGroupPolicy.hs
-formatted       f35205957f88  aws-0.25.3/Aws/Iam/Commands/PutUserPolicy.hs
-formatted       73390f7341bb  aws-0.25.3/Aws/Iam/Commands/RemoveUserFromGroup.hs
-formatted       6471d441fd65  aws-0.25.3/Aws/Iam/Commands/UpdateAccessKey.hs
-formatted       1df52130a26f  aws-0.25.3/Aws/Iam/Commands/UpdateGroup.hs
-formatted       9d554d7c5663  aws-0.25.3/Aws/Iam/Commands/UpdateUser.hs
-formatted       7f6159798a1d  aws-0.25.3/Aws/Iam/Core.hs
-formatted       feab396b426b  aws-0.25.3/Aws/Iam/Internal.hs
-formatted       48b677d290e9  aws-0.25.3/Aws/Network.hs
-formatted       ce77812a32a4  aws-0.25.3/Aws/S3.hs
-formatted       468614525265  aws-0.25.3/Aws/S3/Commands.hs
-formatted       2646f70fe9fa  aws-0.25.3/Aws/S3/Commands/CopyObject.hs
-formatted       679fbc8ba590  aws-0.25.3/Aws/S3/Commands/DeleteBucket.hs
-formatted       dc00b880ff44  aws-0.25.3/Aws/S3/Commands/DeleteObject.hs
-formatted       15d5415d448a  aws-0.25.3/Aws/S3/Commands/DeleteObjectVersion.hs
-formatted       a7835a797996  aws-0.25.3/Aws/S3/Commands/DeleteObjects.hs
-formatted       9a5f4d5ab8cb  aws-0.25.3/Aws/S3/Commands/GetBucket.hs
-formatted       fd9ef9806007  aws-0.25.3/Aws/S3/Commands/GetBucketLocation.hs
-formatted       8892058ce5a8  aws-0.25.3/Aws/S3/Commands/GetBucketObjectVersions.hs
-formatted       77560acf62f4  aws-0.25.3/Aws/S3/Commands/GetBucketVersioning.hs
-formatted       89fc0e4e1542  aws-0.25.3/Aws/S3/Commands/GetObject.hs
-formatted       b2f36afa32e0  aws-0.25.3/Aws/S3/Commands/GetService.hs
-formatted       a771521a31ae  aws-0.25.3/Aws/S3/Commands/HeadObject.hs
-formatted       be81d8b96bcb  aws-0.25.3/Aws/S3/Commands/Multipart.hs
-formatted       311a84a6ddb3  aws-0.25.3/Aws/S3/Commands/PutBucket.hs
-formatted       2428bf962e66  aws-0.25.3/Aws/S3/Commands/PutBucketVersioning.hs
-formatted       ed3a2453d1ee  aws-0.25.3/Aws/S3/Commands/PutObject.hs
-formatted       bc50203fa9d6  aws-0.25.3/Aws/S3/Commands/RestoreObject.hs
-formatted       691e7d45ad83  aws-0.25.3/Aws/S3/Core.hs
-formatted       e59133632c71  aws-0.25.3/Aws/Ses.hs
-formatted       98906d812790  aws-0.25.3/Aws/Ses/Commands.hs
-formatted       d82f6af0c772  aws-0.25.3/Aws/Ses/Commands/DeleteIdentity.hs
-formatted       81e7c8056065  aws-0.25.3/Aws/Ses/Commands/GetIdentityDkimAttributes.hs
-formatted       ea5078ceaf94  aws-0.25.3/Aws/Ses/Commands/GetIdentityNotificationAttributes.hs
-formatted       d96fd6a7f13d  aws-0.25.3/Aws/Ses/Commands/GetIdentityVerificationAttributes.hs
-formatted       3b484cb8347e  aws-0.25.3/Aws/Ses/Commands/ListIdentities.hs
-formatted       147fb92b671d  aws-0.25.3/Aws/Ses/Commands/SendRawEmail.hs
-formatted       c04b0e5d6ba3  aws-0.25.3/Aws/Ses/Commands/SetIdentityDkimEnabled.hs
-formatted       a32e25c2dc37  aws-0.25.3/Aws/Ses/Commands/SetIdentityFeedbackForwardingEnabled.hs
-formatted       b262146aced4  aws-0.25.3/Aws/Ses/Commands/SetIdentityNotificationTopic.hs
-formatted       2ef608635aeb  aws-0.25.3/Aws/Ses/Commands/VerifyDomainDkim.hs
-formatted       ffb19c08b235  aws-0.25.3/Aws/Ses/Commands/VerifyDomainIdentity.hs
-formatted       de43062d4755  aws-0.25.3/Aws/Ses/Commands/VerifyEmailIdentity.hs
-formatted       93d2568d042f  aws-0.25.3/Aws/Ses/Core.hs
-formatted       4115c76b6f3d  aws-0.25.3/Aws/SimpleDb.hs
-formatted       0b6040677d6d  aws-0.25.3/Aws/SimpleDb/Commands.hs
-formatted       30e4762ca046  aws-0.25.3/Aws/SimpleDb/Commands/Attributes.hs
-formatted       66e68309ec36  aws-0.25.3/Aws/SimpleDb/Commands/Domain.hs
-formatted       d6accda5efc3  aws-0.25.3/Aws/SimpleDb/Commands/Select.hs
-formatted       75d5726cf334  aws-0.25.3/Aws/SimpleDb/Core.hs
-formatted       412e7ea774c8  aws-0.25.3/Aws/Sqs.hs
-formatted       346f822a2760  aws-0.25.3/Aws/Sqs/Commands.hs
-formatted       a5744e9dccb8  aws-0.25.3/Aws/Sqs/Commands/Message.hs
-formatted       cf945609c0a3  aws-0.25.3/Aws/Sqs/Commands/Permission.hs
-formatted       a63871aa35df  aws-0.25.3/Aws/Sqs/Commands/Queue.hs
-formatted       6fbdfbc403cf  aws-0.25.3/Aws/Sqs/Commands/QueueAttributes.hs
-formatted       ffc8850066c4  aws-0.25.3/Aws/Sqs/Core.hs
-formatted       edf61ab9d90d  aws-0.25.3/Examples/DynamoDb.hs
-formatted       aa1fdefebee6  aws-0.25.3/Examples/GetObject.hs
-formatted       6a4e3eea6653  aws-0.25.3/Examples/GetObjectGoogle.hs
-formatted       94c0a4242cce  aws-0.25.3/Examples/GetObjectV4.hs
-formatted       5762e0f1fddf  aws-0.25.3/Examples/MultipartTransfer.hs
-formatted       c09c03a39390  aws-0.25.3/Examples/MultipartUpload.hs
-formatted       f8163e1e4473  aws-0.25.3/Examples/NukeBucket.hs
-formatted       34698069cedb  aws-0.25.3/Examples/PutBucketNearLine.hs
-formatted       9ad36fcdaae7  aws-0.25.3/Examples/SimpleDb.hs
-formatted       c31e8b7adbf5  aws-0.25.3/Examples/Sqs.hs
-formatted       e865ae48f11b  aws-0.25.3/Setup.hs
-formatted       354bb309a68c  aws-0.25.3/tests/DynamoDb/Main.hs
-formatted       75daea597c6a  aws-0.25.3/tests/DynamoDb/Utils.hs
-formatted       5886bbdd46c9  aws-0.25.3/tests/S3/Main.hs
-formatted       44336eea1e26  aws-0.25.3/tests/Sqs/Main.hs
-formatted       001f1d1eb163  aws-0.25.3/tests/Utils.hs
-formatted       c4588035d2e2  base64-bytestring-1.2.1.0/Data/ByteString/Base64.hs
-formatted       2897fc80ce31  base64-bytestring-1.2.1.0/Data/ByteString/Base64/Internal.hs
-formatted       dae9abac8bd0  base64-bytestring-1.2.1.0/Data/ByteString/Base64/Lazy.hs
-formatted       f0e7d8a34f4b  base64-bytestring-1.2.1.0/Data/ByteString/Base64/URL.hs
-formatted       0d8bf6b77f56  base64-bytestring-1.2.1.0/Data/ByteString/Base64/URL/Lazy.hs
-formatted       e865ae48f11b  base64-bytestring-1.2.1.0/Setup.hs
-formatted       0328dc0c3c7c  base64-bytestring-1.2.1.0/benchmarks/BM.hs
-formatted       e856b328c01f  base64-bytestring-1.2.1.0/tests/Tests.hs
-formatted       d41a83550f57  base64-bytestring-1.2.1.0/utils/Transcode.hs
-formatted       a696585f6bb3  bifunctors-5.6.3/src/Data/Biapplicative.hs
-formatted       463448893cde  bifunctors-5.6.3/src/Data/Bifunctor/Biap.hs
-formatted       9705f6a45db6  bifunctors-5.6.3/src/Data/Bifunctor/Biff.hs
-formatted       738f47d063bd  bifunctors-5.6.3/src/Data/Bifunctor/Clown.hs
-formatted       6d43dacbcc13  bifunctors-5.6.3/src/Data/Bifunctor/Fix.hs
-formatted       a1ca106ac715  bifunctors-5.6.3/src/Data/Bifunctor/Flip.hs
-formatted       3ac44f1c96ed  bifunctors-5.6.3/src/Data/Bifunctor/Functor.hs
-formatted       33b8fe550adc  bifunctors-5.6.3/src/Data/Bifunctor/Join.hs
-formatted       bc37198ad9bd  bifunctors-5.6.3/src/Data/Bifunctor/Joker.hs
-formatted       d60de274f1df  bifunctors-5.6.3/src/Data/Bifunctor/Product.hs
-formatted       a4989781f0a5  bifunctors-5.6.3/src/Data/Bifunctor/Sum.hs
-formatted       288f57b835fa  bifunctors-5.6.3/src/Data/Bifunctor/TH.hs
-formatted       73cfe6b7a060  bifunctors-5.6.3/src/Data/Bifunctor/TH/Internal.hs
-formatted       4a12830ba36a  bifunctors-5.6.3/src/Data/Bifunctor/Tannen.hs
-formatted       34520394097f  bifunctors-5.6.3/src/Data/Bifunctor/Wrapped.hs
-formatted       04a6a496b2b6  bifunctors-5.6.3/tests/BifunctorSpec.hs
-formatted       2fbd14b119a4  bifunctors-5.6.3/tests/Spec.hs
-formatted       6fd640c12d5f  bifunctors-5.6.3/tests/T89Spec.hs
-formatted       e865ae48f11b  blaze-html-0.9.2.0/Setup.hs
-formatted       59b1e28dc18c  blaze-html-0.9.2.0/src/Text/Blaze/Html.hs
-formatted       1ceaed7998ed  blaze-html-0.9.2.0/src/Text/Blaze/Html/Renderer/Pretty.hs
-formatted       a5a8080ce8a3  blaze-html-0.9.2.0/src/Text/Blaze/Html/Renderer/String.hs
-formatted       850270b61be0  blaze-html-0.9.2.0/src/Text/Blaze/Html/Renderer/Text.hs
-formatted       4dbd824fb533  blaze-html-0.9.2.0/src/Text/Blaze/Html/Renderer/Utf8.hs
-formatted       193787aa6e82  blaze-html-0.9.2.0/src/Text/Blaze/Html4/FrameSet.hs
-formatted       311d6a242cd1  blaze-html-0.9.2.0/src/Text/Blaze/Html4/FrameSet/Attributes.hs
-formatted       980072ab3333  blaze-html-0.9.2.0/src/Text/Blaze/Html4/Strict.hs
-formatted       6d96fbabc526  blaze-html-0.9.2.0/src/Text/Blaze/Html4/Strict/Attributes.hs
-formatted       4c6ce53fa6c0  blaze-html-0.9.2.0/src/Text/Blaze/Html4/Transitional.hs
-formatted       d39d423c9274  blaze-html-0.9.2.0/src/Text/Blaze/Html4/Transitional/Attributes.hs
-formatted       6593178d8914  blaze-html-0.9.2.0/src/Text/Blaze/Html5.hs
-formatted       a51b4ec4c88c  blaze-html-0.9.2.0/src/Text/Blaze/Html5/Attributes.hs
-formatted       a3131475444c  blaze-html-0.9.2.0/src/Text/Blaze/XHtml1/FrameSet.hs
-formatted       b11110851d4d  blaze-html-0.9.2.0/src/Text/Blaze/XHtml1/FrameSet/Attributes.hs
-formatted       326a6b8007f4  blaze-html-0.9.2.0/src/Text/Blaze/XHtml1/Strict.hs
-formatted       614d1d8b8758  blaze-html-0.9.2.0/src/Text/Blaze/XHtml1/Strict/Attributes.hs
-formatted       f18debc4b04a  blaze-html-0.9.2.0/src/Text/Blaze/XHtml1/Transitional.hs
-formatted       b02420bd150d  blaze-html-0.9.2.0/src/Text/Blaze/XHtml1/Transitional/Attributes.hs
-formatted       19fcd3fe0b2a  blaze-html-0.9.2.0/src/Text/Blaze/XHtml5.hs
-formatted       e7349ea7b26e  blaze-html-0.9.2.0/src/Text/Blaze/XHtml5/Attributes.hs
-formatted       6a3eeb3e9d8b  blaze-html-0.9.2.0/src/Util/GenerateHtmlCombinators.hs
-formatted       c350d72adcf6  blaze-html-0.9.2.0/src/Util/Sanitize.hs
-formatted       3b0e5b5fbcb0  blaze-html-0.9.2.0/tests/TestSuite.hs
-formatted       e2943235e42d  blaze-html-0.9.2.0/tests/Text/Blaze/Html/Tests.hs
-formatted       9dae0554f33d  blaze-html-0.9.2.0/tests/Text/Blaze/Html/Tests/Util.hs
-formatted       c858d7e158e9  blaze-html-0.9.2.0/tests/Util/Tests.hs
-formatted       e865ae48f11b  blaze-markup-0.8.3.0/Setup.hs
-formatted       a414efd123bb  blaze-markup-0.8.3.0/src/Text/Blaze.hs
-formatted       88904daa5374  blaze-markup-0.8.3.0/src/Text/Blaze/Internal.hs
-formatted       4846f41adc9e  blaze-markup-0.8.3.0/src/Text/Blaze/Renderer/Pretty.hs
-formatted       2e54745ce84a  blaze-markup-0.8.3.0/src/Text/Blaze/Renderer/String.hs
-formatted       8bb5a6b40341  blaze-markup-0.8.3.0/src/Text/Blaze/Renderer/Text.hs
-formatted       c0f54cd6a8ef  blaze-markup-0.8.3.0/src/Text/Blaze/Renderer/Utf8.hs
-formatted       c7292f26d075  blaze-markup-0.8.3.0/tests/TestSuite.hs
-formatted       efa997a477e9  blaze-markup-0.8.3.0/tests/Text/Blaze/Tests.hs
-formatted       e6ac9555645c  blaze-markup-0.8.3.0/tests/Text/Blaze/Tests/Util.hs
-formatted       e865ae48f11b  brick-2.13/Setup.hs
-formatted       2eb9ed1b5eff  brick-2.13/programs/AnimationDemo.hs
-formatted       5d807c6bfef9  brick-2.13/programs/AttrDemo.hs
-formatted       efff9829e309  brick-2.13/programs/BorderDemo.hs
-formatted       aef958fe74cd  brick-2.13/programs/CacheDemo.hs
-formatted       095e55ce36f6  brick-2.13/programs/CroppingDemo.hs
-formatted       2bd41626b7f1  brick-2.13/programs/CustomEventDemo.hs
-formatted       74968af52af2  brick-2.13/programs/CustomKeybindingDemo.hs
-formatted       8438ad4ac269  brick-2.13/programs/DialogDemo.hs
-formatted       70a751a6fa70  brick-2.13/programs/DynamicBorderDemo.hs
-formatted       464ea19b0d91  brick-2.13/programs/EditDemo.hs
-formatted       4cce67dc7675  brick-2.13/programs/EditorLineNumbersDemo.hs
-formatted       cb441c25368f  brick-2.13/programs/FileBrowserDemo.hs
-formatted       f42c468e824d  brick-2.13/programs/FillDemo.hs
-formatted       c4c35fd7ec81  brick-2.13/programs/FormDemo.hs
-formatted       ccec85b0d210  brick-2.13/programs/HelloWorldDemo.hs
-formatted       df3c26970095  brick-2.13/programs/LayerDemo.hs
-formatted       f010e64931de  brick-2.13/programs/ListDemo.hs
-formatted       72b3c637e7a9  brick-2.13/programs/ListViDemo.hs
-formatted       79a27a0bcb66  brick-2.13/programs/MouseDemo.hs
-formatted       07bae652c697  brick-2.13/programs/PaddingDemo.hs
-formatted       004a2e91363a  brick-2.13/programs/ProgressBarDemo.hs
-formatted       663c2424c9c5  brick-2.13/programs/ReadmeDemo.hs
-formatted       ae2bca4be4b6  brick-2.13/programs/SuspendAndResumeDemo.hs
-formatted       da922e788566  brick-2.13/programs/TableDemo.hs
-formatted       4475181f29de  brick-2.13/programs/TabularListDemo.hs
-formatted       b7e39f0a8d19  brick-2.13/programs/TailDemo.hs
-formatted       3b76b7057152  brick-2.13/programs/TextWrapDemo.hs
-formatted       4539be6276d5  brick-2.13/programs/ThemeDemo.hs
-formatted       2c64cf0649ba  brick-2.13/programs/ViewportScrollDemo.hs
-formatted       c72281d04a63  brick-2.13/programs/ViewportScrollbarsDemo.hs
-formatted       e2bd645f4c8a  brick-2.13/programs/VisibilityDemo.hs
-formatted       0abc07286e47  brick-2.13/src/Brick.hs
-formatted       0b61e5fb53be  brick-2.13/src/Brick/Animation.hs
-formatted       deb1866c9333  brick-2.13/src/Brick/Animation/Clock.hs
-formatted       91b158ee4b8a  brick-2.13/src/Brick/AttrMap.hs
-formatted       13c109f25eb8  brick-2.13/src/Brick/BChan.hs
-formatted       571007a8c984  brick-2.13/src/Brick/BorderMap.hs
-formatted       7aa4818185b3  brick-2.13/src/Brick/Focus.hs
-formatted       625bef2068d0  brick-2.13/src/Brick/Forms.hs
-formatted       d6c2a2e1b0a0  brick-2.13/src/Brick/Keybindings.hs
-formatted       f2e06c7c9f62  brick-2.13/src/Brick/Keybindings/KeyConfig.hs
-formatted       0d7739277f36  brick-2.13/src/Brick/Keybindings/KeyDispatcher.hs
-formatted       10682f468a33  brick-2.13/src/Brick/Keybindings/KeyEvents.hs
-formatted       20d38a2fef1c  brick-2.13/src/Brick/Keybindings/Normalize.hs
-formatted       422ce68b006b  brick-2.13/src/Brick/Keybindings/Parse.hs
-formatted       500582ecf6a0  brick-2.13/src/Brick/Keybindings/Pretty.hs
-formatted       03d2579eec1e  brick-2.13/src/Brick/Main.hs
-formatted       74d114b85be0  brick-2.13/src/Brick/Themes.hs
-formatted       af2489bd5835  brick-2.13/src/Brick/Types.hs
-formatted       e45b8d9f62c9  brick-2.13/src/Brick/Types/Common.hs
-formatted       1053ffe4d321  brick-2.13/src/Brick/Types/EventM.hs
-formatted       680c7fc4c12b  brick-2.13/src/Brick/Types/Internal.hs
-formatted       81c674829568  brick-2.13/src/Brick/Types/TH.hs
-formatted       02b0e53f451c  brick-2.13/src/Brick/Util.hs
-formatted       cba7b18b8f68  brick-2.13/src/Brick/Widgets/Border.hs
-formatted       89894b08f498  brick-2.13/src/Brick/Widgets/Border/Style.hs
-formatted       e3b47970aba1  brick-2.13/src/Brick/Widgets/Center.hs
-formatted       d864d6f5529c  brick-2.13/src/Brick/Widgets/Core.hs
-formatted       2da08c79b932  brick-2.13/src/Brick/Widgets/Dialog.hs
-formatted       c71ef0bf6ec5  brick-2.13/src/Brick/Widgets/Edit.hs
-formatted       b718a3a76032  brick-2.13/src/Brick/Widgets/FileBrowser.hs
-formatted       d879be7d89bd  brick-2.13/src/Brick/Widgets/Internal.hs
-formatted       f35028306876  brick-2.13/src/Brick/Widgets/List.hs
-formatted       45273510047b  brick-2.13/src/Brick/Widgets/ProgressBar.hs
-formatted       891b88a55449  brick-2.13/src/Brick/Widgets/Table.hs
-formatted       4c3f2bfed619  brick-2.13/src/Data/IMap.hs
-formatted       15733bb95234  brick-2.13/tests/List.hs
-formatted       2e6ed8d0e976  brick-2.13/tests/Main.hs
-formatted       073f01c2462e  brick-2.13/tests/Render.hs
-formatted       e0fa5e2b222c  brittany-0.14.0.2/data/Test1.hs
-formatted       a7fed1125f29  brittany-0.14.0.2/data/Test10.hs
-formatted       dd2db552d155  brittany-0.14.0.2/data/Test100.hs
-formatted       3ebccae4d2bf  brittany-0.14.0.2/data/Test101.hs
-formatted       000b618097d0  brittany-0.14.0.2/data/Test102.hs
-formatted       26845ab84f6a  brittany-0.14.0.2/data/Test103.hs
-formatted       25cf4c76ed6b  brittany-0.14.0.2/data/Test104.hs
-formatted       bac120fe0092  brittany-0.14.0.2/data/Test105.hs
-formatted       e29d7ffca93f  brittany-0.14.0.2/data/Test106.hs
-formatted       0b6e06bf2c23  brittany-0.14.0.2/data/Test107.hs
-formatted       eda42fe4d65b  brittany-0.14.0.2/data/Test108.hs
-formatted       9ce1b7bc7832  brittany-0.14.0.2/data/Test109.hs
-formatted       c7d09069af77  brittany-0.14.0.2/data/Test11.hs
-formatted       61661f795457  brittany-0.14.0.2/data/Test110.hs
-formatted       37d78f5961ec  brittany-0.14.0.2/data/Test111.hs
-formatted       1e4bb8275bfb  brittany-0.14.0.2/data/Test112.hs
-formatted       8cda89e87702  brittany-0.14.0.2/data/Test113.hs
-formatted       751bfd56bc69  brittany-0.14.0.2/data/Test114.hs
-formatted       5078888fc5d2  brittany-0.14.0.2/data/Test115.hs
-formatted       3fdf3b074d25  brittany-0.14.0.2/data/Test116.hs
-formatted       15ad0c63e705  brittany-0.14.0.2/data/Test117.hs
-formatted       77f7ec9848cd  brittany-0.14.0.2/data/Test118.hs
-formatted       2a994aca8970  brittany-0.14.0.2/data/Test119.hs
-formatted       624becd3f674  brittany-0.14.0.2/data/Test12.hs
-formatted       5bbfe94a03d4  brittany-0.14.0.2/data/Test120.hs
-formatted       01ac88bcab1a  brittany-0.14.0.2/data/Test121.hs
-formatted       057f0ce3ffb0  brittany-0.14.0.2/data/Test122.hs
-formatted       661f6da49632  brittany-0.14.0.2/data/Test123.hs
-formatted       86c1caf3eee5  brittany-0.14.0.2/data/Test124.hs
-formatted       c6ffbf389d8d  brittany-0.14.0.2/data/Test125.hs
-formatted       1b2ef1cfadaa  brittany-0.14.0.2/data/Test126.hs
-formatted       058f31d7f6cc  brittany-0.14.0.2/data/Test127.hs
-formatted       bec0f8aa554d  brittany-0.14.0.2/data/Test128.hs
-formatted       f712d9c961eb  brittany-0.14.0.2/data/Test129.hs
-formatted       79735ec00a3d  brittany-0.14.0.2/data/Test13.hs
-formatted       f808d5477ba7  brittany-0.14.0.2/data/Test130.hs
-formatted       2372bf2e1670  brittany-0.14.0.2/data/Test131.hs
-formatted       c6526aabb3c3  brittany-0.14.0.2/data/Test132.hs
-formatted       5287afc100b5  brittany-0.14.0.2/data/Test133.hs
-formatted       cbf28cc3de46  brittany-0.14.0.2/data/Test134.hs
-formatted       e9f15a2df4fd  brittany-0.14.0.2/data/Test135.hs
-formatted       d40ccadec39d  brittany-0.14.0.2/data/Test136.hs
-formatted       e8b4564e3bfa  brittany-0.14.0.2/data/Test137.hs
-formatted       ddbd7b880898  brittany-0.14.0.2/data/Test138.hs
-formatted       4ce9b0b36ac2  brittany-0.14.0.2/data/Test139.hs
-formatted       bb31ea72e15c  brittany-0.14.0.2/data/Test14.hs
-formatted       f04daeaa79e9  brittany-0.14.0.2/data/Test140.hs
-formatted       3f2c0367c6f9  brittany-0.14.0.2/data/Test141.hs
-formatted       edb875329172  brittany-0.14.0.2/data/Test142.hs
-formatted       fa53ce7f455d  brittany-0.14.0.2/data/Test143.hs
-formatted       1c5e166b5b3c  brittany-0.14.0.2/data/Test144.hs
-formatted       412dc562e63e  brittany-0.14.0.2/data/Test145.hs
-formatted       6594ac0ac89d  brittany-0.14.0.2/data/Test146.hs
-formatted       0132945dc887  brittany-0.14.0.2/data/Test147.hs
-formatted       0277bb5ca795  brittany-0.14.0.2/data/Test148.hs
-formatted       cbbb9e8ddafa  brittany-0.14.0.2/data/Test149.hs
-formatted       9db344b52a25  brittany-0.14.0.2/data/Test15.hs
-formatted       d29a46b01b30  brittany-0.14.0.2/data/Test150.hs
-formatted       d4d803460298  brittany-0.14.0.2/data/Test151.hs
-formatted       a36d7b2912f5  brittany-0.14.0.2/data/Test152.hs
-formatted       ea0b611491be  brittany-0.14.0.2/data/Test153.hs
-formatted       6607ab7d8924  brittany-0.14.0.2/data/Test154.hs
-formatted       66cbd556135d  brittany-0.14.0.2/data/Test155.hs
-formatted       2913f4f1ea6b  brittany-0.14.0.2/data/Test156.hs
-formatted       57f3fe7514c4  brittany-0.14.0.2/data/Test157.hs
-formatted       7cff7b0ac651  brittany-0.14.0.2/data/Test158.hs
-formatted       d8fde995e15b  brittany-0.14.0.2/data/Test159.hs
-formatted       b65a3702395c  brittany-0.14.0.2/data/Test16.hs
-formatted       8f083a4a74fc  brittany-0.14.0.2/data/Test160.hs
-formatted       756b8d709d75  brittany-0.14.0.2/data/Test161.hs
-formatted       fb931ccfd1e4  brittany-0.14.0.2/data/Test162.hs
-formatted       30ebe5ac65f1  brittany-0.14.0.2/data/Test163.hs
-formatted       729a285d4963  brittany-0.14.0.2/data/Test164.hs
-formatted       1d7b340799de  brittany-0.14.0.2/data/Test165.hs
-formatted       660e2a8d17c4  brittany-0.14.0.2/data/Test166.hs
-formatted       9034e094d375  brittany-0.14.0.2/data/Test167.hs
-formatted       d8056c8b2928  brittany-0.14.0.2/data/Test168.hs
-formatted       cd8fce2bda23  brittany-0.14.0.2/data/Test169.hs
-formatted       bce8e4d3c9ba  brittany-0.14.0.2/data/Test17.hs
-formatted       b9c1ba677274  brittany-0.14.0.2/data/Test170.hs
-formatted       81fa7c381707  brittany-0.14.0.2/data/Test171.hs
-formatted       ac4339e3794f  brittany-0.14.0.2/data/Test172.hs
-formatted       c651a0d78d61  brittany-0.14.0.2/data/Test173.hs
-formatted       893e9047ccc9  brittany-0.14.0.2/data/Test174.hs
-formatted       44a807f3c420  brittany-0.14.0.2/data/Test175.hs
-formatted       feac3083c99d  brittany-0.14.0.2/data/Test176.hs
-formatted       2cc15cb26130  brittany-0.14.0.2/data/Test177.hs
-formatted       47771349ee44  brittany-0.14.0.2/data/Test178.hs
-formatted       fe3c3245408d  brittany-0.14.0.2/data/Test179.hs
-formatted       674dab4fdbcb  brittany-0.14.0.2/data/Test18.hs
-formatted       c68cfb31f575  brittany-0.14.0.2/data/Test180.hs
-formatted       e6325e11af38  brittany-0.14.0.2/data/Test181.hs
-formatted       42d9bc7fc2ce  brittany-0.14.0.2/data/Test182.hs
-formatted       a1e86d78ee32  brittany-0.14.0.2/data/Test183.hs
-formatted       88ddfc17a44e  brittany-0.14.0.2/data/Test184.hs
-formatted       f6c7f8ad0585  brittany-0.14.0.2/data/Test185.hs
-formatted       5016aa65eeae  brittany-0.14.0.2/data/Test186.hs
-formatted       1f6812c3d99f  brittany-0.14.0.2/data/Test187.hs
-formatted       a063a95ec0b5  brittany-0.14.0.2/data/Test188.hs
-formatted       67c40f7b42e6  brittany-0.14.0.2/data/Test189.hs
-formatted       1b68494e9013  brittany-0.14.0.2/data/Test19.hs
-formatted       96f1ef06a2f4  brittany-0.14.0.2/data/Test190.hs
-formatted       a063a95ec0b5  brittany-0.14.0.2/data/Test191.hs
-formatted       dc32174d8f9d  brittany-0.14.0.2/data/Test192.hs
-formatted       b35395abfd05  brittany-0.14.0.2/data/Test193.hs
-formatted       4d5ddfd8aaab  brittany-0.14.0.2/data/Test194.hs
-formatted       8bb98e83f59e  brittany-0.14.0.2/data/Test195.hs
-formatted       45232601b2c3  brittany-0.14.0.2/data/Test196.hs
-formatted       bdc233fea9ba  brittany-0.14.0.2/data/Test197.hs
-formatted       9ce65738e093  brittany-0.14.0.2/data/Test198.hs
-formatted       eec0cab9f980  brittany-0.14.0.2/data/Test199.hs
-formatted       31b2046f8a67  brittany-0.14.0.2/data/Test2.hs
-formatted       a7a0e1c03060  brittany-0.14.0.2/data/Test20.hs
-formatted       d2a7653b9ba4  brittany-0.14.0.2/data/Test200.hs
-formatted       585cd696f310  brittany-0.14.0.2/data/Test201.hs
-formatted       8bba3630cd88  brittany-0.14.0.2/data/Test202.hs
-formatted       3e4e79b5a82a  brittany-0.14.0.2/data/Test203.hs
-formatted       4ce40055a31c  brittany-0.14.0.2/data/Test204.hs
-formatted       be6b7a8883f5  brittany-0.14.0.2/data/Test205.hs
-formatted       8e7d7929e338  brittany-0.14.0.2/data/Test206.hs
-formatted       3e6a91618060  brittany-0.14.0.2/data/Test207.hs
-formatted       59f9efb3349d  brittany-0.14.0.2/data/Test208.hs
-formatted       79081f0fe37d  brittany-0.14.0.2/data/Test209.hs
-formatted       b383b15d82f0  brittany-0.14.0.2/data/Test21.hs
-formatted       4f8c82f9b51b  brittany-0.14.0.2/data/Test210.hs
-formatted       210d2b918c18  brittany-0.14.0.2/data/Test211.hs
-formatted       d8fb0486ae8c  brittany-0.14.0.2/data/Test212.hs
-formatted       e75e1dd08970  brittany-0.14.0.2/data/Test213.hs
-formatted       43a86c48e3e0  brittany-0.14.0.2/data/Test214.hs
-formatted       ccd8170ddd1c  brittany-0.14.0.2/data/Test215.hs
-formatted       d9d08f97d6ce  brittany-0.14.0.2/data/Test216.hs
-formatted       ee242f311cec  brittany-0.14.0.2/data/Test217.hs
-formatted       2c1a4f8388c7  brittany-0.14.0.2/data/Test218.hs
-formatted       77521cf0255b  brittany-0.14.0.2/data/Test219.hs
-formatted       df6920225c3e  brittany-0.14.0.2/data/Test22.hs
-formatted       6912b515f3d4  brittany-0.14.0.2/data/Test220.hs
-formatted       7e87f164cb90  brittany-0.14.0.2/data/Test221.hs
-formatted       d7e0783e5c83  brittany-0.14.0.2/data/Test222.hs
-formatted       ac59786a0059  brittany-0.14.0.2/data/Test223.hs
-formatted       f4b2c131b776  brittany-0.14.0.2/data/Test224.hs
-formatted       fc2a39383602  brittany-0.14.0.2/data/Test225.hs
-formatted       0a2523228f93  brittany-0.14.0.2/data/Test226.hs
-formatted       228fee2942c2  brittany-0.14.0.2/data/Test227.hs
-formatted       911d30954d07  brittany-0.14.0.2/data/Test228.hs
-formatted       2f660f4ac662  brittany-0.14.0.2/data/Test229.hs
-formatted       fbc349a18ac2  brittany-0.14.0.2/data/Test23.hs
-formatted       a7a3d4cdb042  brittany-0.14.0.2/data/Test230.hs
-formatted       8213e25c0010  brittany-0.14.0.2/data/Test231.hs
-formatted       cf2c7ac7b851  brittany-0.14.0.2/data/Test232.hs
-formatted       60e66feea926  brittany-0.14.0.2/data/Test233.hs
-formatted       b6113299b5da  brittany-0.14.0.2/data/Test234.hs
-formatted       661c1fe894fb  brittany-0.14.0.2/data/Test235.hs
-formatted       57f09569ac82  brittany-0.14.0.2/data/Test236.hs
-formatted       0dfd55915ad3  brittany-0.14.0.2/data/Test237.hs
-formatted       4bc18bfc8664  brittany-0.14.0.2/data/Test238.hs
-formatted       f1066c5f9396  brittany-0.14.0.2/data/Test239.hs
-formatted       d0c0b62e11ea  brittany-0.14.0.2/data/Test24.hs
-formatted       a51ff778ca0c  brittany-0.14.0.2/data/Test240.hs
-formatted       6f66ff6e7884  brittany-0.14.0.2/data/Test241.hs
-formatted       7526d4749124  brittany-0.14.0.2/data/Test242.hs
-formatted       d600bfded86f  brittany-0.14.0.2/data/Test243.hs
-formatted       19618fd51fab  brittany-0.14.0.2/data/Test244.hs
-formatted       03cd50abedcb  brittany-0.14.0.2/data/Test245.hs
-formatted       676a58886eb0  brittany-0.14.0.2/data/Test246.hs
-formatted       86d72bb559bc  brittany-0.14.0.2/data/Test247.hs
-formatted       15d8e562989b  brittany-0.14.0.2/data/Test248.hs
-formatted       95a821921e97  brittany-0.14.0.2/data/Test249.hs
-formatted       372e384be5d9  brittany-0.14.0.2/data/Test25.hs
-formatted       c8b79c319e1b  brittany-0.14.0.2/data/Test250.hs
-formatted       9e983a1c88d0  brittany-0.14.0.2/data/Test251.hs
-formatted       e25fa77a311d  brittany-0.14.0.2/data/Test252.hs
-formatted       2abc462210d7  brittany-0.14.0.2/data/Test253.hs
-formatted       3dab93bb6c11  brittany-0.14.0.2/data/Test254.hs
-formatted       ded4f913ac25  brittany-0.14.0.2/data/Test255.hs
-formatted       7072c13a95c7  brittany-0.14.0.2/data/Test256.hs
-formatted       f79f249e0890  brittany-0.14.0.2/data/Test257.hs
-formatted       a9cbb8a905a0  brittany-0.14.0.2/data/Test258.hs
-formatted       7c0c18756066  brittany-0.14.0.2/data/Test259.hs
-formatted       a9993e322f84  brittany-0.14.0.2/data/Test26.hs
-formatted       bd4ad74e5ad1  brittany-0.14.0.2/data/Test260.hs
-formatted       40147eb0ec0f  brittany-0.14.0.2/data/Test261.hs
-formatted       3821b5d35161  brittany-0.14.0.2/data/Test262.hs
-formatted       fd9a1453387e  brittany-0.14.0.2/data/Test263.hs
-formatted       b7281c5fb795  brittany-0.14.0.2/data/Test264.hs
-formatted       d815db72d171  brittany-0.14.0.2/data/Test265.hs
-formatted       e1e74708d396  brittany-0.14.0.2/data/Test266.hs
-formatted       7a35a02bb934  brittany-0.14.0.2/data/Test267.hs
-formatted       0ca543b36b5d  brittany-0.14.0.2/data/Test268.hs
-formatted       93850bc1adc9  brittany-0.14.0.2/data/Test269.hs
-formatted       b82004f9b520  brittany-0.14.0.2/data/Test27.hs
-formatted       0465690dd788  brittany-0.14.0.2/data/Test270.hs
-formatted       8da0ed8508b1  brittany-0.14.0.2/data/Test271.hs
-formatted       059cb60e3ffb  brittany-0.14.0.2/data/Test272.hs
-formatted       ce7c5a9f7346  brittany-0.14.0.2/data/Test273.hs
-formatted       cf3d3b9f17a4  brittany-0.14.0.2/data/Test274.hs
-formatted       5687e1c0c469  brittany-0.14.0.2/data/Test275.hs
-formatted       f54d68eb932d  brittany-0.14.0.2/data/Test276.hs
-formatted       5280a70aa08d  brittany-0.14.0.2/data/Test277.hs
-formatted       42b39ee183e6  brittany-0.14.0.2/data/Test278.hs
-formatted       9a6ca39add52  brittany-0.14.0.2/data/Test279.hs
-formatted       35c64cf444f0  brittany-0.14.0.2/data/Test28.hs
-formatted       2c62cf845c15  brittany-0.14.0.2/data/Test280.hs
-formatted       6582acde6803  brittany-0.14.0.2/data/Test281.hs
-formatted       d69c5a291173  brittany-0.14.0.2/data/Test282.hs
-formatted       dad1fa89cc7b  brittany-0.14.0.2/data/Test283.hs
-formatted       61ba8c0a1014  brittany-0.14.0.2/data/Test284.hs
-formatted       dc5e12a45407  brittany-0.14.0.2/data/Test285.hs
-formatted       dc5e12a45407  brittany-0.14.0.2/data/Test286.hs
-formatted       e73001f7bfd5  brittany-0.14.0.2/data/Test287.hs
-formatted       3fdaf4d18a7c  brittany-0.14.0.2/data/Test288.hs
-formatted       8472b4d5d119  brittany-0.14.0.2/data/Test289.hs
-formatted       4b4297a0f4c5  brittany-0.14.0.2/data/Test29.hs
-formatted       af881940fba6  brittany-0.14.0.2/data/Test290.hs
-formatted       6b8b53cb8029  brittany-0.14.0.2/data/Test291.hs
-formatted       afd400f5f5ca  brittany-0.14.0.2/data/Test292.hs
-formatted       dbd53f969525  brittany-0.14.0.2/data/Test293.hs
-formatted       8e4e40c43066  brittany-0.14.0.2/data/Test294.hs
-formatted       5378d8225be8  brittany-0.14.0.2/data/Test295.hs
-formatted       efa089fba7ce  brittany-0.14.0.2/data/Test296.hs
-formatted       f2528253489c  brittany-0.14.0.2/data/Test297.hs
-formatted       a71313de7a74  brittany-0.14.0.2/data/Test298.hs
-formatted       9c7a3513d329  brittany-0.14.0.2/data/Test299.hs
-formatted       e430aa9e3dac  brittany-0.14.0.2/data/Test3.hs
-formatted       b786e0a045c4  brittany-0.14.0.2/data/Test30.hs
-formatted       82411c11ab17  brittany-0.14.0.2/data/Test300.hs
-formatted       6578a96b238b  brittany-0.14.0.2/data/Test301.hs
-formatted       8cee95f91f47  brittany-0.14.0.2/data/Test302.hs
-formatted       01d16f13bc99  brittany-0.14.0.2/data/Test303.hs
-formatted       2f37bef49ce1  brittany-0.14.0.2/data/Test304.hs
-formatted       9d3e8b7bf639  brittany-0.14.0.2/data/Test305.hs
-formatted       20c63b9ecba6  brittany-0.14.0.2/data/Test306.hs
-formatted       348106878578  brittany-0.14.0.2/data/Test307.hs
-formatted       017f020a856d  brittany-0.14.0.2/data/Test308.hs
-formatted       980708cbb4c4  brittany-0.14.0.2/data/Test309.hs
-formatted       b7f73c7d2a34  brittany-0.14.0.2/data/Test31.hs
-formatted       3c2cc10d169b  brittany-0.14.0.2/data/Test310.hs
-formatted       66fcc75686ea  brittany-0.14.0.2/data/Test311.hs
-formatted       611a32da9261  brittany-0.14.0.2/data/Test312.hs
-formatted       e63f0b07266f  brittany-0.14.0.2/data/Test313.hs
-formatted       1801f39045ac  brittany-0.14.0.2/data/Test314.hs
-formatted       3e5aa0cbbf8d  brittany-0.14.0.2/data/Test315.hs
-formatted       77220193f4fd  brittany-0.14.0.2/data/Test316.hs
-formatted       681c70c26bdd  brittany-0.14.0.2/data/Test317.hs
-formatted       c9b19f55338f  brittany-0.14.0.2/data/Test318.hs
-formatted       fa83330d01a6  brittany-0.14.0.2/data/Test319.hs
-formatted       310b7bac3014  brittany-0.14.0.2/data/Test32.hs
-formatted       d911bbdfeb7f  brittany-0.14.0.2/data/Test320.hs
-formatted       1275e28eeb82  brittany-0.14.0.2/data/Test321.hs
-formatted       d51414b5c108  brittany-0.14.0.2/data/Test322.hs
-formatted       e318ac8aa564  brittany-0.14.0.2/data/Test323.hs
-formatted       f018e148e8d5  brittany-0.14.0.2/data/Test324.hs
-formatted       1d0af944da7b  brittany-0.14.0.2/data/Test325.hs
-formatted       5798a680c21f  brittany-0.14.0.2/data/Test326.hs
-formatted       023057e5ea2c  brittany-0.14.0.2/data/Test327.hs
-formatted       2341d88441d5  brittany-0.14.0.2/data/Test328.hs
-formatted       947d63282515  brittany-0.14.0.2/data/Test329.hs
-formatted       786cf111bdad  brittany-0.14.0.2/data/Test33.hs
-formatted       9dd64349f3ea  brittany-0.14.0.2/data/Test330.hs
-formatted       15292e5353c7  brittany-0.14.0.2/data/Test331.hs
-formatted       909ea0b219f8  brittany-0.14.0.2/data/Test332.hs
-formatted       2ad0ebe6ebb0  brittany-0.14.0.2/data/Test333.hs
-formatted       9b7204f946d7  brittany-0.14.0.2/data/Test334.hs
-formatted       10c6d64e6811  brittany-0.14.0.2/data/Test335.hs
-formatted       b2addef5d712  brittany-0.14.0.2/data/Test336.hs
-formatted       571c3cac2376  brittany-0.14.0.2/data/Test337.hs
-formatted       7ab714dc2fd3  brittany-0.14.0.2/data/Test338.hs
-formatted       0b6993151fe2  brittany-0.14.0.2/data/Test339.hs
-formatted       7056ebf6bcea  brittany-0.14.0.2/data/Test34.hs
-formatted       aed8c9d9f03b  brittany-0.14.0.2/data/Test340.hs
-formatted       c93ad9724528  brittany-0.14.0.2/data/Test341.hs
-formatted       1a162378043c  brittany-0.14.0.2/data/Test342.hs
-formatted       237c79a35514  brittany-0.14.0.2/data/Test343.hs
-formatted       5af677fa0a9b  brittany-0.14.0.2/data/Test344.hs
-formatted       abe1b659b346  brittany-0.14.0.2/data/Test345.hs
-formatted       3c1f80fba7f5  brittany-0.14.0.2/data/Test346.hs
-formatted       7f12720f2600  brittany-0.14.0.2/data/Test347.hs
-formatted       264cc0e7cf96  brittany-0.14.0.2/data/Test348.hs
-formatted       03a3efa0a75e  brittany-0.14.0.2/data/Test349.hs
-formatted       b7f73c7d2a34  brittany-0.14.0.2/data/Test35.hs
-formatted       726069a13358  brittany-0.14.0.2/data/Test350.hs
-formatted       a50f8646bfb1  brittany-0.14.0.2/data/Test351.hs
-formatted       849dab5ec39d  brittany-0.14.0.2/data/Test352.hs
-formatted       baedf91b8ccd  brittany-0.14.0.2/data/Test353.hs
-formatted       fcae903dc453  brittany-0.14.0.2/data/Test354.hs
-formatted       2637fe2659d5  brittany-0.14.0.2/data/Test355.hs
-formatted       65798192c40d  brittany-0.14.0.2/data/Test356.hs
-formatted       2cdb94cbf551  brittany-0.14.0.2/data/Test357.hs
-formatted       501e5f69073e  brittany-0.14.0.2/data/Test358.hs
-formatted       86bec0344083  brittany-0.14.0.2/data/Test359.hs
-formatted       987603d032ac  brittany-0.14.0.2/data/Test36.hs
-formatted       15308dc2dd01  brittany-0.14.0.2/data/Test360.hs
-formatted       0b2ad491920b  brittany-0.14.0.2/data/Test361.hs
-formatted       d9da88c7cdef  brittany-0.14.0.2/data/Test362.hs
-formatted       d9831cd6816b  brittany-0.14.0.2/data/Test363.hs
-formatted       1ae4a98bcc4a  brittany-0.14.0.2/data/Test364.hs
-formatted       ce4109a16e55  brittany-0.14.0.2/data/Test365.hs
-formatted       d16eae4aad20  brittany-0.14.0.2/data/Test366.hs
-formatted       b07954dfc9bf  brittany-0.14.0.2/data/Test367.hs
-formatted       45eeef287ee4  brittany-0.14.0.2/data/Test368.hs
-formatted       e61e587a6843  brittany-0.14.0.2/data/Test369.hs
-formatted       f500b3d5f559  brittany-0.14.0.2/data/Test37.hs
-formatted       08718fefbaf6  brittany-0.14.0.2/data/Test370.hs
-formatted       2fc71603e098  brittany-0.14.0.2/data/Test371.hs
-formatted       34177b9d84e3  brittany-0.14.0.2/data/Test372.hs
-formatted       5fa71c232724  brittany-0.14.0.2/data/Test373.hs
-formatted       f5fca966196b  brittany-0.14.0.2/data/Test374.hs
-formatted       a4d64bf7587b  brittany-0.14.0.2/data/Test375.hs
-formatted       14e2ed1f0f63  brittany-0.14.0.2/data/Test376.hs
-formatted       f5a4e0c1e34f  brittany-0.14.0.2/data/Test377.hs
-formatted       bddefc49765b  brittany-0.14.0.2/data/Test378.hs
-formatted       ea19c516bcbf  brittany-0.14.0.2/data/Test379.hs
-formatted       7335e7ca5bd3  brittany-0.14.0.2/data/Test38.hs
-formatted       d2ee555751f5  brittany-0.14.0.2/data/Test380.hs
-formatted       3823e3c2d919  brittany-0.14.0.2/data/Test381.hs
-formatted       80271da1e835  brittany-0.14.0.2/data/Test382.hs
-formatted       ed5f4e8c4709  brittany-0.14.0.2/data/Test383.hs
-formatted       d4963535df46  brittany-0.14.0.2/data/Test384.hs
-formatted       6ced47de66db  brittany-0.14.0.2/data/Test385.hs
-formatted       1570d72029b7  brittany-0.14.0.2/data/Test386.hs
-formatted       1416aa178cdb  brittany-0.14.0.2/data/Test387.hs
-formatted       edfafa8fb3e5  brittany-0.14.0.2/data/Test388.hs
-formatted       4e122b4b2697  brittany-0.14.0.2/data/Test389.hs
-formatted       6c58063d3fab  brittany-0.14.0.2/data/Test39.hs
-formatted       fac1b1c7f0c1  brittany-0.14.0.2/data/Test390.hs
-formatted       edfafa8fb3e5  brittany-0.14.0.2/data/Test391.hs
-formatted       b0d3ee7240ad  brittany-0.14.0.2/data/Test392.hs
-formatted       3742d5df31d3  brittany-0.14.0.2/data/Test393.hs
-formatted       28dd7a32aa13  brittany-0.14.0.2/data/Test394.hs
-formatted       91de5c22d799  brittany-0.14.0.2/data/Test395.hs
-formatted       15521d568177  brittany-0.14.0.2/data/Test396.hs
-formatted       bc632756e066  brittany-0.14.0.2/data/Test397.hs
-formatted       fc2de0dfca48  brittany-0.14.0.2/data/Test398.hs
-formatted       8294327ebf8b  brittany-0.14.0.2/data/Test399.hs
-formatted       c3cdd2cbcecc  brittany-0.14.0.2/data/Test4.hs
-formatted       c8a00284c5f4  brittany-0.14.0.2/data/Test40.hs
-formatted       e55074dcd689  brittany-0.14.0.2/data/Test400.hs
-formatted       4da9e5870180  brittany-0.14.0.2/data/Test401.hs
-formatted       74396290a673  brittany-0.14.0.2/data/Test402.hs
-formatted       d2fafd899e89  brittany-0.14.0.2/data/Test403.hs
-formatted       dede30d772d6  brittany-0.14.0.2/data/Test404.hs
-formatted       899e8af490d3  brittany-0.14.0.2/data/Test405.hs
-formatted       6a318c357310  brittany-0.14.0.2/data/Test406.hs
-formatted       183f062112e1  brittany-0.14.0.2/data/Test407.hs
-formatted       55c58dc8cf59  brittany-0.14.0.2/data/Test408.hs
-formatted       a04dc9525882  brittany-0.14.0.2/data/Test409.hs
-formatted       cdc2db1c8449  brittany-0.14.0.2/data/Test41.hs
-formatted       a59bda637fa1  brittany-0.14.0.2/data/Test410.hs
-formatted       c65e5f1f3ba5  brittany-0.14.0.2/data/Test411.hs
-formatted       462efbd02872  brittany-0.14.0.2/data/Test412.hs
-formatted       4fc4ab30dcc3  brittany-0.14.0.2/data/Test413.hs
-formatted       d9eab58246aa  brittany-0.14.0.2/data/Test414.hs
-formatted       3d11263d426e  brittany-0.14.0.2/data/Test415.hs
-formatted       dbbe7b5f2b24  brittany-0.14.0.2/data/Test416.hs
-formatted       099959230be5  brittany-0.14.0.2/data/Test417.hs
-formatted       056c3c85e1ce  brittany-0.14.0.2/data/Test418.hs
-formatted       bd3660de0717  brittany-0.14.0.2/data/Test419.hs
-formatted       e3f087db5440  brittany-0.14.0.2/data/Test42.hs
-formatted       821fd8910ac5  brittany-0.14.0.2/data/Test420.hs
-formatted       d9b47c23fec6  brittany-0.14.0.2/data/Test421.hs
-formatted       15fe8b3f5a9e  brittany-0.14.0.2/data/Test422.hs
-formatted       cafda87f90a6  brittany-0.14.0.2/data/Test423.hs
-formatted       7fa298da41f9  brittany-0.14.0.2/data/Test424.hs
-formatted       acddf7b49624  brittany-0.14.0.2/data/Test425.hs
-formatted       84cfb756f2f4  brittany-0.14.0.2/data/Test426.hs
-formatted       33c641a7a072  brittany-0.14.0.2/data/Test427.hs
-formatted       19772ef1090c  brittany-0.14.0.2/data/Test428.hs
-formatted       07a30e1c142f  brittany-0.14.0.2/data/Test429.hs
-formatted       6aa1c5a0086b  brittany-0.14.0.2/data/Test43.hs
-formatted       f5d76f5634f5  brittany-0.14.0.2/data/Test430.hs
-formatted       9aae587a1706  brittany-0.14.0.2/data/Test431.hs
-formatted       cab5eb48ea87  brittany-0.14.0.2/data/Test432.hs
-formatted       035c19e15e23  brittany-0.14.0.2/data/Test433.hs
-formatted       54c8c833912d  brittany-0.14.0.2/data/Test434.hs
-formatted       4b85517ecc64  brittany-0.14.0.2/data/Test435.hs
-formatted       ab4c449d67c6  brittany-0.14.0.2/data/Test436.hs
-formatted       9e0a9c4de4a7  brittany-0.14.0.2/data/Test437.hs
-formatted       22f3bbfaab9e  brittany-0.14.0.2/data/Test438.hs
-formatted       27ee3c3a9f1d  brittany-0.14.0.2/data/Test439.hs
-formatted       2369814e00a3  brittany-0.14.0.2/data/Test44.hs
-formatted       f114f80afa88  brittany-0.14.0.2/data/Test440.hs
-formatted       91959f72bf42  brittany-0.14.0.2/data/Test441.hs
-formatted       e100c133e0a6  brittany-0.14.0.2/data/Test442.hs
-formatted       a447fa310286  brittany-0.14.0.2/data/Test443.hs
-formatted       afb74691ba25  brittany-0.14.0.2/data/Test444.hs
-formatted       b04dcb13770d  brittany-0.14.0.2/data/Test445.hs
-formatted       005984004c81  brittany-0.14.0.2/data/Test446.hs
-formatted       519cfd48a90e  brittany-0.14.0.2/data/Test447.hs
-formatted       245fb4545054  brittany-0.14.0.2/data/Test448.hs
-formatted       036f126597a1  brittany-0.14.0.2/data/Test449.hs
-formatted       914e8892ce9f  brittany-0.14.0.2/data/Test45.hs
-formatted       dfae62440755  brittany-0.14.0.2/data/Test450.hs
-formatted       3d8e022d4ea8  brittany-0.14.0.2/data/Test451.hs
-formatted       204a8f956d01  brittany-0.14.0.2/data/Test452.hs
-formatted       3ae152eef9f8  brittany-0.14.0.2/data/Test453.hs
-formatted       dd5c2ba000d9  brittany-0.14.0.2/data/Test454.hs
-formatted       255bf40fcf81  brittany-0.14.0.2/data/Test455.hs
-formatted       186aedf45b55  brittany-0.14.0.2/data/Test456.hs
-formatted       00342a85f4ce  brittany-0.14.0.2/data/Test457.hs
-formatted       4d9ccb4d6155  brittany-0.14.0.2/data/Test458.hs
-formatted       33f453ac627f  brittany-0.14.0.2/data/Test459.hs
-formatted       65a9efd49258  brittany-0.14.0.2/data/Test46.hs
-formatted       dbfa4f771264  brittany-0.14.0.2/data/Test460.hs
-formatted       75bf53838e5c  brittany-0.14.0.2/data/Test461.hs
-formatted       5fde28db6063  brittany-0.14.0.2/data/Test462.hs
-formatted       ff5bcd3737f2  brittany-0.14.0.2/data/Test463.hs
-formatted       e30c0ff394dd  brittany-0.14.0.2/data/Test464.hs
-formatted       82f7c7fb716e  brittany-0.14.0.2/data/Test465.hs
-formatted       f59579bd97ca  brittany-0.14.0.2/data/Test466.hs
-formatted       5909971846f9  brittany-0.14.0.2/data/Test467.hs
-formatted       fe8bf0d3f053  brittany-0.14.0.2/data/Test468.hs
-formatted       79dd70b7320f  brittany-0.14.0.2/data/Test469.hs
-formatted       1983a10a25f3  brittany-0.14.0.2/data/Test47.hs
-formatted       271132ce279b  brittany-0.14.0.2/data/Test470.hs
-formatted       14a056182567  brittany-0.14.0.2/data/Test471.hs
-formatted       cbe652ef0cbb  brittany-0.14.0.2/data/Test472.hs
-formatted       3bf39beb5bf7  brittany-0.14.0.2/data/Test473.hs
-formatted       ac6e5e3c9b28  brittany-0.14.0.2/data/Test474.hs
-formatted       7752938de9c6  brittany-0.14.0.2/data/Test475.hs
-formatted       756e0e0edd8b  brittany-0.14.0.2/data/Test476.hs
-formatted       a87acb3bdeb3  brittany-0.14.0.2/data/Test477.hs
-formatted       d489d082ed14  brittany-0.14.0.2/data/Test478.hs
-formatted       dca2bbac2e81  brittany-0.14.0.2/data/Test479.hs
-formatted       00909af2b184  brittany-0.14.0.2/data/Test48.hs
-formatted       0150b83ded52  brittany-0.14.0.2/data/Test480.hs
-formatted       9fd1038ae87c  brittany-0.14.0.2/data/Test481.hs
-formatted       99e73c09fd8f  brittany-0.14.0.2/data/Test482.hs
-formatted       b6e0c157ec82  brittany-0.14.0.2/data/Test483.hs
-formatted       5308cabef2dd  brittany-0.14.0.2/data/Test484.hs
-formatted       3b0850dd8d8d  brittany-0.14.0.2/data/Test485.hs
-formatted       3a14007e64e3  brittany-0.14.0.2/data/Test486.hs
-formatted       e28b3f6dc92a  brittany-0.14.0.2/data/Test487.hs
-formatted       d7ac2e728ca4  brittany-0.14.0.2/data/Test488.hs
-formatted       3455b362a4d8  brittany-0.14.0.2/data/Test489.hs
-formatted       379cdfc91569  brittany-0.14.0.2/data/Test49.hs
-formatted       d2c2b5b45546  brittany-0.14.0.2/data/Test490.hs
-formatted       964f39f9fdd1  brittany-0.14.0.2/data/Test491.hs
-formatted       d469e1b3965b  brittany-0.14.0.2/data/Test492.hs
-formatted       d469e1b3965b  brittany-0.14.0.2/data/Test493.hs
-formatted       1eddc3503b32  brittany-0.14.0.2/data/Test494.hs
-formatted       196d9b015a57  brittany-0.14.0.2/data/Test495.hs
-formatted       00e8a8e9cc86  brittany-0.14.0.2/data/Test496.hs
-formatted       cbeb80fac007  brittany-0.14.0.2/data/Test497.hs
-formatted       326e5653c262  brittany-0.14.0.2/data/Test498.hs
-formatted       46d0f48bc543  brittany-0.14.0.2/data/Test499.hs
-formatted       3bb5ad04d6c9  brittany-0.14.0.2/data/Test5.hs
-formatted       30d139cbecdf  brittany-0.14.0.2/data/Test50.hs
-formatted       bb1de50ba61a  brittany-0.14.0.2/data/Test500.hs
-formatted       46987cddeeb1  brittany-0.14.0.2/data/Test501.hs
-formatted       a26bb5e5e289  brittany-0.14.0.2/data/Test502.hs
-formatted       608441a45ea2  brittany-0.14.0.2/data/Test503.hs
-formatted       088a029a2027  brittany-0.14.0.2/data/Test504.hs
-formatted       b8d19bd75331  brittany-0.14.0.2/data/Test505.hs
-formatted       7aafe7248e10  brittany-0.14.0.2/data/Test506.hs
-formatted       283db15defde  brittany-0.14.0.2/data/Test507.hs
-formatted       a017d7235dda  brittany-0.14.0.2/data/Test508.hs
-formatted       525ac73a7645  brittany-0.14.0.2/data/Test509.hs
-formatted       bdb9309b69ef  brittany-0.14.0.2/data/Test51.hs
-formatted       be3e1e21b3e7  brittany-0.14.0.2/data/Test510.hs
-formatted       386680696e97  brittany-0.14.0.2/data/Test511.hs
-formatted       c74bbb4b17cf  brittany-0.14.0.2/data/Test512.hs
-formatted       bb9ffbc270ba  brittany-0.14.0.2/data/Test513.hs
-formatted       4babc1db968e  brittany-0.14.0.2/data/Test514.hs
-formatted       4babc1db968e  brittany-0.14.0.2/data/Test515.hs
-formatted       4ded8e9531d5  brittany-0.14.0.2/data/Test516.hs
-formatted       9cdba405b7be  brittany-0.14.0.2/data/Test517.hs
-formatted       6192bf9c4318  brittany-0.14.0.2/data/Test518.hs
-formatted       438975b07785  brittany-0.14.0.2/data/Test519.hs
-formatted       3e9fb57fe53f  brittany-0.14.0.2/data/Test52.hs
-formatted       e0922f030820  brittany-0.14.0.2/data/Test520.hs
-formatted       7a6eceaa78bc  brittany-0.14.0.2/data/Test521.hs
-formatted       cd889668f531  brittany-0.14.0.2/data/Test522.hs
-formatted       5eae819cfab2  brittany-0.14.0.2/data/Test523.hs
-formatted       cdd55a113657  brittany-0.14.0.2/data/Test524.hs
-formatted       948aab2f7cf9  brittany-0.14.0.2/data/Test525.hs
-formatted       74dd57f3e6b2  brittany-0.14.0.2/data/Test526.hs
-formatted       ebc6624271d5  brittany-0.14.0.2/data/Test527.hs
-formatted       6d566659bc06  brittany-0.14.0.2/data/Test528.hs
-formatted       86bb82b0ae12  brittany-0.14.0.2/data/Test529.hs
-formatted       113cb843c235  brittany-0.14.0.2/data/Test53.hs
-formatted       c77ad7418bdb  brittany-0.14.0.2/data/Test530.hs
-formatted       e82e4a69ecaf  brittany-0.14.0.2/data/Test531.hs
-formatted       98d38ba919b8  brittany-0.14.0.2/data/Test532.hs
-formatted       93f0725e6f33  brittany-0.14.0.2/data/Test533.hs
-formatted       2f3eea919721  brittany-0.14.0.2/data/Test534.hs
-formatted       4dfe442efa9f  brittany-0.14.0.2/data/Test535.hs
-formatted       083e49e545b1  brittany-0.14.0.2/data/Test536.hs
-formatted       a93167132f4b  brittany-0.14.0.2/data/Test537.hs
-formatted       76a9d8390ac0  brittany-0.14.0.2/data/Test538.hs
-formatted       cb52a4163a3d  brittany-0.14.0.2/data/Test539.hs
-formatted       3206388ca862  brittany-0.14.0.2/data/Test54.hs
-formatted       32bac85b1c99  brittany-0.14.0.2/data/Test540.hs
-formatted       c1076b4718f2  brittany-0.14.0.2/data/Test55.hs
-formatted       5b5da4a27041  brittany-0.14.0.2/data/Test56.hs
-formatted       7d48cd742ee9  brittany-0.14.0.2/data/Test57.hs
-formatted       09a9442047e7  brittany-0.14.0.2/data/Test58.hs
-formatted       007b3f5499fb  brittany-0.14.0.2/data/Test59.hs
-formatted       d9ed4ebe21ed  brittany-0.14.0.2/data/Test6.hs
-formatted       87e8860858b2  brittany-0.14.0.2/data/Test60.hs
-formatted       7bba808f3304  brittany-0.14.0.2/data/Test61.hs
-formatted       7e7c53e8f5f9  brittany-0.14.0.2/data/Test62.hs
-formatted       38957227fb18  brittany-0.14.0.2/data/Test63.hs
-formatted       d1d477cbcd19  brittany-0.14.0.2/data/Test64.hs
-formatted       abec5eceeaf7  brittany-0.14.0.2/data/Test65.hs
-formatted       7e83cb328466  brittany-0.14.0.2/data/Test66.hs
-formatted       08c924dc75db  brittany-0.14.0.2/data/Test67.hs
-formatted       534f9f24c4c4  brittany-0.14.0.2/data/Test68.hs
-formatted       0edc4bf88879  brittany-0.14.0.2/data/Test69.hs
-formatted       6e4a80a16587  brittany-0.14.0.2/data/Test7.hs
-formatted       c26c8d4af0d4  brittany-0.14.0.2/data/Test70.hs
-formatted       7f9b2bb1df69  brittany-0.14.0.2/data/Test71.hs
-formatted       9d549df4742d  brittany-0.14.0.2/data/Test72.hs
-formatted       05ed72d9e760  brittany-0.14.0.2/data/Test73.hs
-formatted       a54128f146c1  brittany-0.14.0.2/data/Test74.hs
-formatted       29302a244e5c  brittany-0.14.0.2/data/Test75.hs
-formatted       89a2a63deffe  brittany-0.14.0.2/data/Test76.hs
-formatted       7a3ad7569e3d  brittany-0.14.0.2/data/Test77.hs
-formatted       286a50a0eb22  brittany-0.14.0.2/data/Test78.hs
-formatted       bc99bdbbbb1e  brittany-0.14.0.2/data/Test79.hs
-formatted       0a8cec799b2a  brittany-0.14.0.2/data/Test8.hs
-formatted       2f2e96416d6d  brittany-0.14.0.2/data/Test80.hs
-formatted       d1d172867e08  brittany-0.14.0.2/data/Test81.hs
-formatted       f66f9b2381e3  brittany-0.14.0.2/data/Test82.hs
-formatted       4fe035cf193a  brittany-0.14.0.2/data/Test83.hs
-formatted       43e925441c75  brittany-0.14.0.2/data/Test84.hs
-formatted       dddcd81d8e89  brittany-0.14.0.2/data/Test85.hs
-formatted       b34676f3162a  brittany-0.14.0.2/data/Test86.hs
-formatted       847e26a48a11  brittany-0.14.0.2/data/Test87.hs
-formatted       d37afb2bca9c  brittany-0.14.0.2/data/Test88.hs
-formatted       870cc6003dc1  brittany-0.14.0.2/data/Test89.hs
-formatted       cd000b5a236a  brittany-0.14.0.2/data/Test9.hs
-formatted       14a1a4f54ceb  brittany-0.14.0.2/data/Test90.hs
-formatted       583f169ace4c  brittany-0.14.0.2/data/Test91.hs
-formatted       1d30d5458df2  brittany-0.14.0.2/data/Test92.hs
-formatted       21ca73bf65e9  brittany-0.14.0.2/data/Test93.hs
-formatted       2640ff7299cc  brittany-0.14.0.2/data/Test94.hs
-formatted       139f17bd37c8  brittany-0.14.0.2/data/Test95.hs
-formatted       3f35ed17b5d4  brittany-0.14.0.2/data/Test96.hs
-formatted       54dbf9915298  brittany-0.14.0.2/data/Test97.hs
-formatted       25178db879d4  brittany-0.14.0.2/data/Test98.hs
-formatted       52caf5793d73  brittany-0.14.0.2/data/Test99.hs
-formatted       7a5d0ee67b99  brittany-0.14.0.2/source/executable/Main.hs
-formatted       f006bb65ddb6  brittany-0.14.0.2/source/library/Language/Haskell/Brittany.hs
-formatted       1cf8df647dcd  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal.hs
-formatted       1b40549c94dc  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Backend.hs
-formatted       45a3ccbf1f6b  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/BackendUtils.hs
-formatted       4db6008c162f  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Config.hs
-formatted       4387eb5344c3  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Config/Types.hs
-formatted       e13b5e1cf845  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Config/Types/Instances.hs
-formatted       3a7e4e0507b6  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/ExactPrintUtils.hs
-formatted       5d4339023e83  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/LayouterBasics.hs
-formatted       5d4ba42810fc  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Layouters/DataDecl.hs
-formatted       ee47e6ccde82  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Layouters/Decl.hs
-formatted       09c403355abb  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Layouters/Expr.hs
-formatted       63ac93aa854f  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Layouters/Expr.hs-boot
-formatted       f730e71a6728  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Layouters/IE.hs
-formatted       ba5e2c3aa9ff  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Layouters/Import.hs
-formatted       2724197a64a5  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Layouters/Module.hs
-formatted       7acd5afe90f4  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Layouters/Pattern.hs
-formatted       d46ed5a9675b  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Layouters/Stmt.hs
-formatted       08c3e5d27dd4  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Layouters/Stmt.hs-boot
-formatted       f89ce9912b0a  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Layouters/Type.hs
-formatted       8d7327e29615  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Obfuscation.hs
-formatted       0dc2352f4480  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/ParseModule.hs
-formatted       79e767ee3e91  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Prelude.hs
-formatted       1a8db66fd521  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/PreludeUtils.hs
-formatted       8a5b5275ee15  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Transformations/Alt.hs
-formatted       c6217dd1471b  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Transformations/Columns.hs
-formatted       f558625f25b7  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Transformations/Floating.hs
-formatted       7d95cc82a77f  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Transformations/Indent.hs
-formatted       c84030401f3e  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Transformations/Par.hs
-formatted       db1436f9e84c  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Types.hs
-formatted       203fcf60dae6  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Utils.hs
-formatted       359d70ea598f  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Main.hs
-formatted       e425ebfb8e97  brittany-0.14.0.2/source/test-suite/Main.hs
-formatted       e865ae48f11b  capability-0.5.0.1/Setup.hs
-formatted       6772160dec0c  capability-0.5.0.1/examples/CountLog.hs
-formatted       2eb939764385  capability-0.5.0.1/examples/Error.hs
-formatted       c878dfd98c1c  capability-0.5.0.1/examples/Reader.hs
-formatted       cf7788db327f  capability-0.5.0.1/examples/Reflection.hs
-formatted       4ca78b40a428  capability-0.5.0.1/examples/Sink.hs
-formatted       4bd9f1f5ce20  capability-0.5.0.1/examples/State.hs
-formatted       de729285889f  capability-0.5.0.1/examples/Test.hs
-formatted       bc483d61ffa2  capability-0.5.0.1/examples/Test/Common.hs
-formatted       7e4f90ed485c  capability-0.5.0.1/examples/WordCount.hs
-formatted       9a2c6692cf10  capability-0.5.0.1/examples/Writer.hs
-formatted       c7634b7f4e60  capability-0.5.0.1/src/Capability.hs
-formatted       83447b7b7ea5  capability-0.5.0.1/src/Capability/Accessors.hs
-formatted       8d8d36f3f008  capability-0.5.0.1/src/Capability/Constraints.hs
-formatted       f8fc4a2aaee2  capability-0.5.0.1/src/Capability/Derive.hs
-formatted       3c4efc286c22  capability-0.5.0.1/src/Capability/Error.hs
-formatted       97515747424b  capability-0.5.0.1/src/Capability/Reader.hs
-formatted       89877e765220  capability-0.5.0.1/src/Capability/Reader/Internal/Class.hs
-formatted       007089e89b2a  capability-0.5.0.1/src/Capability/Reader/Internal/Strategies.hs
-formatted       cdf1d99e626f  capability-0.5.0.1/src/Capability/Reflection.hs
-formatted       42f2a624abd3  capability-0.5.0.1/src/Capability/Sink.hs
-formatted       8e57397c62e4  capability-0.5.0.1/src/Capability/Sink/Internal/Class.hs
-formatted       074cd292b8a7  capability-0.5.0.1/src/Capability/Sink/Internal/Strategies.hs
-formatted       d6a811b81394  capability-0.5.0.1/src/Capability/Source.hs
-formatted       b2d52c4c15ca  capability-0.5.0.1/src/Capability/Source/Internal/Class.hs
-formatted       b718392f90a6  capability-0.5.0.1/src/Capability/Source/Internal/Strategies.hs
-formatted       e288db1d616d  capability-0.5.0.1/src/Capability/State.hs
-formatted       9d0280d2e19e  capability-0.5.0.1/src/Capability/State/Internal/Class.hs
-formatted       77e19ee12ef0  capability-0.5.0.1/src/Capability/State/Internal/Strategies.hs
-formatted       e0fc7f2c44f9  capability-0.5.0.1/src/Capability/State/Internal/Strategies/Common.hs
-formatted       dca34ed58cfd  capability-0.5.0.1/src/Capability/Stream.hs
-formatted       6cd51b2d63f1  capability-0.5.0.1/src/Capability/TypeOf.hs
-formatted       9a266b123a93  capability-0.5.0.1/src/Capability/Writer.hs
-formatted       e865ae48f11b  cassava-0.5.5.0/Setup.hs
-formatted       f8de97e1c58a  cassava-0.5.5.0/examples/IncrementalIndexedBasedDecode.hs
-formatted       b9e7e3d9a0fb  cassava-0.5.5.0/examples/IncrementalNamedBasedEncode.hs
-formatted       a004028b7dc3  cassava-0.5.5.0/examples/IndexBasedDecode.hs
-formatted       03830830ed9e  cassava-0.5.5.0/examples/IndexBasedGeneric.hs
-formatted       f4fb7ce7564b  cassava-0.5.5.0/examples/NamedBasedDecode.hs
-formatted       ecf9a4c54a67  cassava-0.5.5.0/examples/NamedBasedExplicitDecode.hs
-formatted       d51604b7e89f  cassava-0.5.5.0/examples/NamedBasedGeneric.hs
-formatted       9612391bd37b  cassava-0.5.5.0/examples/StreamingIndexBasedDecode.hs
-formatted       efc1fe9896ec  cassava-0.5.5.0/src/Data/Csv.hs
-formatted       817b8cca8d06  cassava-0.5.5.0/src/Data/Csv/Builder.hs
-formatted       38c7c4badf0a  cassava-0.5.5.0/src/Data/Csv/Conversion.hs
-formatted       a4c56813cba7  cassava-0.5.5.0/src/Data/Csv/Conversion/Internal.hs
-formatted       5906452b290a  cassava-0.5.5.0/src/Data/Csv/Encoding.hs
-formatted       32c60ff1a4fd  cassava-0.5.5.0/src/Data/Csv/Incremental.hs
-formatted       be1c60df3b34  cassava-0.5.5.0/src/Data/Csv/Parser.hs
-formatted       014bb9b262b9  cassava-0.5.5.0/src/Data/Csv/Streaming.hs
-formatted       20f42a736b97  cassava-0.5.5.0/src/Data/Csv/Types.hs
-formatted       4a5a0e1a51c9  cassava-0.5.5.0/src/Data/Csv/Util.hs
-formatted       61c26773c418  cassava-0.5.5.0/tests/UnitTests.hs
-formatted       b77256b69093  comonad-5.0.10/examples/History.hs
-formatted       9e72148ec524  comonad-5.0.10/src/Control/Comonad.hs
-formatted       d084cf5c7fa7  comonad-5.0.10/src/Control/Comonad/Env.hs
-formatted       3b8ec012a04c  comonad-5.0.10/src/Control/Comonad/Env/Class.hs
-formatted       0dcf633542eb  comonad-5.0.10/src/Control/Comonad/Hoist/Class.hs
-formatted       4bfafba3ce3b  comonad-5.0.10/src/Control/Comonad/Identity.hs
-formatted       49b438747b63  comonad-5.0.10/src/Control/Comonad/Store.hs
-formatted       cf408da422ba  comonad-5.0.10/src/Control/Comonad/Store/Class.hs
-formatted       2c72a397c339  comonad-5.0.10/src/Control/Comonad/Traced.hs
-formatted       da617308f9a3  comonad-5.0.10/src/Control/Comonad/Traced/Class.hs
-formatted       adbd6d7e0f72  comonad-5.0.10/src/Control/Comonad/Trans/Class.hs
-formatted       871b9e0bc5cd  comonad-5.0.10/src/Control/Comonad/Trans/Env.hs
-formatted       c405a550608b  comonad-5.0.10/src/Control/Comonad/Trans/Identity.hs
-formatted       6b990e80a8eb  comonad-5.0.10/src/Control/Comonad/Trans/Store.hs
-formatted       314d93d6a1d8  comonad-5.0.10/src/Control/Comonad/Trans/Traced.hs
-formatted       34f425eff98b  comonad-5.0.10/src/Data/Functor/Composition.hs
-formatted       be111de01001  conduit-1.3.6.1/benchmarks/optimize-201408.hs
-formatted       f70f6155e62a  conduit-1.3.6.1/benchmarks/unfused.hs
-formatted       20fad0c5aecd  conduit-1.3.6.1/src/Conduit.hs
-formatted       bf88ceabad43  conduit-1.3.6.1/src/Data/Conduit.hs
-formatted       6fba99ab1b1b  conduit-1.3.6.1/src/Data/Conduit/Combinators.hs
-formatted       9e46f7ab29ac  conduit-1.3.6.1/src/Data/Conduit/Combinators/Stream.hs
-formatted       1290e9b983f1  conduit-1.3.6.1/src/Data/Conduit/Combinators/Unqualified.hs
-formatted       8e861a915c2f  conduit-1.3.6.1/src/Data/Conduit/Internal.hs
-formatted       27c68c4604b4  conduit-1.3.6.1/src/Data/Conduit/Internal/Conduit.hs
-formatted       bbfd28e5b98b  conduit-1.3.6.1/src/Data/Conduit/Internal/Fusion.hs
-formatted       54120af8edce  conduit-1.3.6.1/src/Data/Conduit/Internal/List/Stream.hs
-formatted       2fe8b1b7e798  conduit-1.3.6.1/src/Data/Conduit/Internal/Pipe.hs
-formatted       4a4c14b72249  conduit-1.3.6.1/src/Data/Conduit/Lift.hs
-formatted       15e5ac8a2cb1  conduit-1.3.6.1/src/Data/Conduit/List.hs
-formatted       55a50272f6a7  conduit-1.3.6.1/src/Data/Streaming/FileRead.hs
-formatted       71e1c3bf7039  conduit-1.3.6.1/src/Data/Streaming/Filesystem.hs
-formatted       d9e8dbaa2534  conduit-1.3.6.1/test/Data/Conduit/Extra/ZipConduitSpec.hs
-formatted       3df81ded6599  conduit-1.3.6.1/test/Data/Conduit/StreamSpec.hs
-formatted       cf41359a6248  conduit-1.3.6.1/test/Spec.hs
-formatted       18f42fad75a6  conduit-1.3.6.1/test/StreamSpec.hs
-formatted       db2295b8113a  conduit-1.3.6.1/test/doctests.hs
-formatted       a21201eaf0ea  conduit-1.3.6.1/test/main.hs
-formatted       cf30290b0c41  contravariant-1.5.6/old-src/Data/Functor/Contravariant.hs
-formatted       4ddb460640d4  contravariant-1.5.6/src/Data/Functor/Contravariant/Compose.hs
-formatted       ca6ed6c2a277  contravariant-1.5.6/src/Data/Functor/Contravariant/Divisible.hs
-formatted       c83d2c04f4ed  contravariant-1.5.6/src/Data/Functor/Contravariant/Generic.hs
-formatted       2841bd16822b  criterion-1.6.5.0/Criterion.hs
-formatted       417b9eafad2d  criterion-1.6.5.0/Criterion/Analysis.hs
-formatted       c039ba5918a9  criterion-1.6.5.0/Criterion/EmbeddedData.hs
-formatted       f07714df2d3d  criterion-1.6.5.0/Criterion/IO.hs
-formatted       9cbbe0381e04  criterion-1.6.5.0/Criterion/IO/Printf.hs
-formatted       7f06470ac8f8  criterion-1.6.5.0/Criterion/Internal.hs
-formatted       61563e5b80e1  criterion-1.6.5.0/Criterion/Main.hs
-formatted       a7ae79817c1c  criterion-1.6.5.0/Criterion/Main/Options.hs
-formatted       aab23b74a86d  criterion-1.6.5.0/Criterion/Monad.hs
-formatted       344969265c26  criterion-1.6.5.0/Criterion/Monad/Internal.hs
-formatted       68661ef87043  criterion-1.6.5.0/Criterion/Report.hs
-formatted       ef0e89d5813d  criterion-1.6.5.0/Criterion/Types.hs
-formatted       fb8e29343d89  criterion-1.6.5.0/app/Options.hs
-formatted       1c316429bc18  criterion-1.6.5.0/app/Report.hs
-formatted       a437ea93f53e  criterion-1.6.5.0/examples/BadReadFile.hs
-formatted       bfb4844251ca  criterion-1.6.5.0/examples/Comparison.hs
-formatted       f54fba36e069  criterion-1.6.5.0/examples/ConduitVsPipes.hs
-formatted       a4f8cda29d3c  criterion-1.6.5.0/examples/ExtensibleCLI.hs
-formatted       8f4df570ff4e  criterion-1.6.5.0/examples/Fibber.hs
-formatted       9196e3f4c3d7  criterion-1.6.5.0/examples/GoodReadFile.hs
-formatted       e85b2e0c3354  criterion-1.6.5.0/examples/Judy.hs
-formatted       7d1ede331f1f  criterion-1.6.5.0/examples/Maps.hs
-formatted       f396bcf9c829  criterion-1.6.5.0/examples/Overhead.hs
-formatted       3a50edf5477c  criterion-1.6.5.0/examples/Quotes.hs
-formatted       e88811d40513  criterion-1.6.5.0/tests/Cleanup.hs
-formatted       78253dc00e1a  criterion-1.6.5.0/tests/Properties.hs
-formatted       a99e4edb542c  criterion-1.6.5.0/tests/Sanity.hs
-formatted       f8a8d8f2c4ae  criterion-1.6.5.0/tests/Tests.hs
-formatted       44af498375d5  cryptonite-0.30/Crypto/Cipher/AES.hs
-formatted       2240267dad51  cryptonite-0.30/Crypto/Cipher/AES/Primitive.hs
-formatted       5694da9617bf  cryptonite-0.30/Crypto/Cipher/AESGCMSIV.hs
-formatted       ab05e6ed96e9  cryptonite-0.30/Crypto/Cipher/Blowfish.hs
-formatted       98e1845904ad  cryptonite-0.30/Crypto/Cipher/Blowfish/Box.hs
-formatted       23c195272bfd  cryptonite-0.30/Crypto/Cipher/Blowfish/Primitive.hs
-formatted       7ece5bd42232  cryptonite-0.30/Crypto/Cipher/CAST5.hs
-formatted       d0210ba9a96f  cryptonite-0.30/Crypto/Cipher/CAST5/Primitive.hs
-formatted       c818f5ccfd4a  cryptonite-0.30/Crypto/Cipher/Camellia.hs
-formatted       f429b69d6156  cryptonite-0.30/Crypto/Cipher/Camellia/Primitive.hs
-formatted       dbd216d2f0aa  cryptonite-0.30/Crypto/Cipher/ChaCha.hs
-formatted       bcadafa03089  cryptonite-0.30/Crypto/Cipher/ChaChaPoly1305.hs
-formatted       092e6bcae818  cryptonite-0.30/Crypto/Cipher/DES.hs
-formatted       b66fa5163d3f  cryptonite-0.30/Crypto/Cipher/DES/Primitive.hs
-formatted       bc58b513348e  cryptonite-0.30/Crypto/Cipher/RC4.hs
-formatted       d59fa1e97895  cryptonite-0.30/Crypto/Cipher/Salsa.hs
-formatted       58b5729d32db  cryptonite-0.30/Crypto/Cipher/TripleDES.hs
-formatted       8aafca6b830e  cryptonite-0.30/Crypto/Cipher/Twofish.hs
-formatted       6b6428c6bd37  cryptonite-0.30/Crypto/Cipher/Twofish/Primitive.hs
-formatted       54afbb146e5c  cryptonite-0.30/Crypto/Cipher/Types.hs
-formatted       9872fb82a680  cryptonite-0.30/Crypto/Cipher/Types/AEAD.hs
-formatted       ea04a762895f  cryptonite-0.30/Crypto/Cipher/Types/Base.hs
-formatted       e02385d86f90  cryptonite-0.30/Crypto/Cipher/Types/Block.hs
-formatted       7c2782316618  cryptonite-0.30/Crypto/Cipher/Types/GF.hs
-formatted       17ceaf6e3360  cryptonite-0.30/Crypto/Cipher/Types/Stream.hs
-formatted       6cdb1c7bd28d  cryptonite-0.30/Crypto/Cipher/Types/Utils.hs
-formatted       f1893d3edfa7  cryptonite-0.30/Crypto/Cipher/Utils.hs
-formatted       20107f92349f  cryptonite-0.30/Crypto/Cipher/XSalsa.hs
-formatted       117e7ce7c967  cryptonite-0.30/Crypto/ConstructHash/MiyaguchiPreneel.hs
-formatted       4f15b3874982  cryptonite-0.30/Crypto/Data/AFIS.hs
-formatted       37c60fc95ef2  cryptonite-0.30/Crypto/Data/Padding.hs
-formatted       2ba3cd2f51b9  cryptonite-0.30/Crypto/ECC.hs
-formatted       951ccc172449  cryptonite-0.30/Crypto/ECC/Edwards25519.hs
-formatted       26c0fcc08733  cryptonite-0.30/Crypto/ECC/Simple/Prim.hs
-formatted       64fc04cd74ae  cryptonite-0.30/Crypto/ECC/Simple/Types.hs
-formatted       3560b9821c3b  cryptonite-0.30/Crypto/Error.hs
-formatted       0caeb40058f2  cryptonite-0.30/Crypto/Error/Types.hs
-formatted       bcc2e2a5ecac  cryptonite-0.30/Crypto/Hash.hs
-formatted       514502d73233  cryptonite-0.30/Crypto/Hash/Algorithms.hs
-formatted       a83eee5ae7b0  cryptonite-0.30/Crypto/Hash/Blake2.hs
-formatted       f99040e35232  cryptonite-0.30/Crypto/Hash/Blake2b.hs
-formatted       9fc6dd4195c9  cryptonite-0.30/Crypto/Hash/Blake2bp.hs
-formatted       aa6fb8816478  cryptonite-0.30/Crypto/Hash/Blake2s.hs
-formatted       5987b76d2285  cryptonite-0.30/Crypto/Hash/Blake2sp.hs
-formatted       36d330a27ffe  cryptonite-0.30/Crypto/Hash/IO.hs
-formatted       527ac917164f  cryptonite-0.30/Crypto/Hash/Keccak.hs
-formatted       988960beff03  cryptonite-0.30/Crypto/Hash/MD2.hs
-formatted       643fd2f5f7f2  cryptonite-0.30/Crypto/Hash/MD4.hs
-formatted       0176320f82f4  cryptonite-0.30/Crypto/Hash/MD5.hs
-formatted       54c369b13f00  cryptonite-0.30/Crypto/Hash/RIPEMD160.hs
-formatted       0cf990ecd2cd  cryptonite-0.30/Crypto/Hash/SHA1.hs
-formatted       6b15758ab087  cryptonite-0.30/Crypto/Hash/SHA224.hs
-formatted       a5a52f418404  cryptonite-0.30/Crypto/Hash/SHA256.hs
-formatted       05629720d732  cryptonite-0.30/Crypto/Hash/SHA3.hs
-formatted       076c9d704bf2  cryptonite-0.30/Crypto/Hash/SHA384.hs
-formatted       d65edf0aeac8  cryptonite-0.30/Crypto/Hash/SHA512.hs
-formatted       94400683916e  cryptonite-0.30/Crypto/Hash/SHA512t.hs
-formatted       9b214034fb00  cryptonite-0.30/Crypto/Hash/SHAKE.hs
-formatted       506e64c190a2  cryptonite-0.30/Crypto/Hash/Skein256.hs
-formatted       da70bee9980a  cryptonite-0.30/Crypto/Hash/Skein512.hs
-formatted       2f8832cc95bb  cryptonite-0.30/Crypto/Hash/Tiger.hs
-formatted       f7994b599588  cryptonite-0.30/Crypto/Hash/Types.hs
-formatted       4ea25e04f5c1  cryptonite-0.30/Crypto/Hash/Whirlpool.hs
-formatted       f70544b8e5f8  cryptonite-0.30/Crypto/Internal/Builder.hs
-formatted       98a5de0267ed  cryptonite-0.30/Crypto/Internal/ByteArray.hs
-formatted       f801f423094d  cryptonite-0.30/Crypto/Internal/Compat.hs
-formatted       54db2fce0fcc  cryptonite-0.30/Crypto/Internal/CompatPrim.hs
-formatted       d4435b068486  cryptonite-0.30/Crypto/Internal/DeepSeq.hs
-formatted       4646f54cc944  cryptonite-0.30/Crypto/Internal/Imports.hs
-formatted       4878b8fb8411  cryptonite-0.30/Crypto/Internal/Nat.hs
-formatted       483861a9b72d  cryptonite-0.30/Crypto/Internal/WordArray.hs
-formatted       5786998be3b3  cryptonite-0.30/Crypto/Internal/Words.hs
-formatted       0434f24b7a9f  cryptonite-0.30/Crypto/KDF/Argon2.hs
-formatted       9725e47b1b66  cryptonite-0.30/Crypto/KDF/BCrypt.hs
-formatted       28be07832b83  cryptonite-0.30/Crypto/KDF/BCryptPBKDF.hs
-formatted       7c78160cd13d  cryptonite-0.30/Crypto/KDF/HKDF.hs
-formatted       f25d68c357c2  cryptonite-0.30/Crypto/KDF/PBKDF2.hs
-formatted       3307468c4b5d  cryptonite-0.30/Crypto/KDF/Scrypt.hs
-formatted       8f3891401559  cryptonite-0.30/Crypto/MAC/CMAC.hs
-formatted       9dff2956cdea  cryptonite-0.30/Crypto/MAC/HMAC.hs
-formatted       859812024323  cryptonite-0.30/Crypto/MAC/KMAC.hs
-formatted       a54d3189768c  cryptonite-0.30/Crypto/MAC/Poly1305.hs
-formatted       c065c0ae8804  cryptonite-0.30/Crypto/Number/Basic.hs
-partly-checked  27ebb2f56bcc  cryptonite-0.30/Crypto/Number/Compat.hs
-formatted       d8e4da3cf8c5  cryptonite-0.30/Crypto/Number/F2m.hs
-formatted       7b62d9f0185b  cryptonite-0.30/Crypto/Number/Generate.hs
-formatted       53fbd1bf4d6c  cryptonite-0.30/Crypto/Number/ModArithmetic.hs
-formatted       3887ba3c7c43  cryptonite-0.30/Crypto/Number/Nat.hs
-formatted       930fa05c486f  cryptonite-0.30/Crypto/Number/Prime.hs
-formatted       3be1d9c43e52  cryptonite-0.30/Crypto/Number/Serialize.hs
-formatted       cfe6a456efe7  cryptonite-0.30/Crypto/Number/Serialize/Internal.hs
-formatted       8f181f9bc069  cryptonite-0.30/Crypto/Number/Serialize/Internal/LE.hs
-formatted       c21267dc7970  cryptonite-0.30/Crypto/Number/Serialize/LE.hs
-formatted       306914497f38  cryptonite-0.30/Crypto/OTP.hs
-formatted       47ac3109be1c  cryptonite-0.30/Crypto/PubKey/Curve25519.hs
-formatted       ff1bad4fe0ae  cryptonite-0.30/Crypto/PubKey/Curve448.hs
-formatted       7279b7fc32ee  cryptonite-0.30/Crypto/PubKey/DH.hs
-formatted       61fc8cd02023  cryptonite-0.30/Crypto/PubKey/DSA.hs
-formatted       9671d669d9fb  cryptonite-0.30/Crypto/PubKey/ECC/DH.hs
-formatted       face3da85363  cryptonite-0.30/Crypto/PubKey/ECC/ECDSA.hs
-formatted       97c5eb3f0754  cryptonite-0.30/Crypto/PubKey/ECC/Generate.hs
-formatted       d4527eb98a84  cryptonite-0.30/Crypto/PubKey/ECC/P256.hs
-formatted       421cbae47c83  cryptonite-0.30/Crypto/PubKey/ECC/Prim.hs
-formatted       65081a388743  cryptonite-0.30/Crypto/PubKey/ECC/Types.hs
-formatted       dae44ef68546  cryptonite-0.30/Crypto/PubKey/ECDSA.hs
-formatted       04ef544fcbc1  cryptonite-0.30/Crypto/PubKey/ECIES.hs
-formatted       ca8ec46db323  cryptonite-0.30/Crypto/PubKey/Ed25519.hs
-formatted       dba822ca565e  cryptonite-0.30/Crypto/PubKey/Ed448.hs
-formatted       365814eb2b58  cryptonite-0.30/Crypto/PubKey/EdDSA.hs
-formatted       e083f4a748a3  cryptonite-0.30/Crypto/PubKey/ElGamal.hs
-formatted       5a0517dd2399  cryptonite-0.30/Crypto/PubKey/Internal.hs
-formatted       83e024783092  cryptonite-0.30/Crypto/PubKey/MaskGenFunction.hs
-formatted       aaafa0f20f26  cryptonite-0.30/Crypto/PubKey/RSA.hs
-formatted       c12317773f47  cryptonite-0.30/Crypto/PubKey/RSA/OAEP.hs
-formatted       b777939c6984  cryptonite-0.30/Crypto/PubKey/RSA/PKCS15.hs
-formatted       9255a1c6fd3d  cryptonite-0.30/Crypto/PubKey/RSA/PSS.hs
-formatted       8643b6ddea84  cryptonite-0.30/Crypto/PubKey/RSA/Prim.hs
-formatted       7ab3ae862f55  cryptonite-0.30/Crypto/PubKey/RSA/Types.hs
-formatted       a97d7fbec7cf  cryptonite-0.30/Crypto/PubKey/Rabin/Basic.hs
-formatted       3e0ac8c999c0  cryptonite-0.30/Crypto/PubKey/Rabin/Modified.hs
-formatted       a53ee7c1c1a5  cryptonite-0.30/Crypto/PubKey/Rabin/OAEP.hs
-formatted       b578b97afc3e  cryptonite-0.30/Crypto/PubKey/Rabin/RW.hs
-formatted       c0eae64dcf68  cryptonite-0.30/Crypto/PubKey/Rabin/Types.hs
-formatted       1854f69b3828  cryptonite-0.30/Crypto/Random.hs
-formatted       f3902d2c9c96  cryptonite-0.30/Crypto/Random/ChaChaDRG.hs
-formatted       8b31b5a87af9  cryptonite-0.30/Crypto/Random/Entropy.hs
-formatted       f8afb2ba19cc  cryptonite-0.30/Crypto/Random/Entropy/Backend.hs
-formatted       9b0c8653e10a  cryptonite-0.30/Crypto/Random/Entropy/RDRand.hs
-formatted       0c206170779c  cryptonite-0.30/Crypto/Random/Entropy/Source.hs
-formatted       75121bc8d581  cryptonite-0.30/Crypto/Random/Entropy/Unix.hs
-formatted       2b02d2fc4203  cryptonite-0.30/Crypto/Random/Entropy/Unsafe.hs
-declined        -             cryptonite-0.30/Crypto/Random/Entropy/Windows.hs
-formatted       4f4ac464c6e9  cryptonite-0.30/Crypto/Random/EntropyPool.hs
-formatted       762f30275eb4  cryptonite-0.30/Crypto/Random/Probabilistic.hs
-formatted       dd360e4a76e6  cryptonite-0.30/Crypto/Random/SystemDRG.hs
-formatted       3613df3a0846  cryptonite-0.30/Crypto/Random/Types.hs
-formatted       b12c43b64866  cryptonite-0.30/Crypto/System/CPU.hs
-formatted       3f10131f3add  cryptonite-0.30/Crypto/Tutorial.hs
-formatted       e865ae48f11b  cryptonite-0.30/Setup.hs
-formatted       ac276403f523  cryptonite-0.30/benchs/Bench.hs
-formatted       772fcb717c67  cryptonite-0.30/benchs/Number/F2m.hs
-formatted       57d09cf26ff7  cryptonite-0.30/tests/BCrypt.hs
-formatted       e0a9d879663a  cryptonite-0.30/tests/BCryptPBKDF.hs
-formatted       1fb7875ac9b3  cryptonite-0.30/tests/BlockCipher.hs
-formatted       ae1da1712bf7  cryptonite-0.30/tests/ChaCha.hs
-formatted       2ff39a30e968  cryptonite-0.30/tests/ChaChaPoly1305.hs
-formatted       c628564c97aa  cryptonite-0.30/tests/ECC.hs
-formatted       5d886e661761  cryptonite-0.30/tests/ECC/Edwards25519.hs
-formatted       e8de6edaf6ac  cryptonite-0.30/tests/ECDSA.hs
-formatted       27ce811073c1  cryptonite-0.30/tests/Hash.hs
-formatted       e00752436aeb  cryptonite-0.30/tests/Imports.hs
-formatted       beecfeaa8fb1  cryptonite-0.30/tests/KAT_AES.hs
-formatted       810d48314931  cryptonite-0.30/tests/KAT_AES/KATCBC.hs
-formatted       18eaacc22a0b  cryptonite-0.30/tests/KAT_AES/KATCCM.hs
-formatted       44fe15b7084a  cryptonite-0.30/tests/KAT_AES/KATECB.hs
-formatted       82fa19f7ce7a  cryptonite-0.30/tests/KAT_AES/KATGCM.hs
-formatted       615d3d0c3896  cryptonite-0.30/tests/KAT_AES/KATOCB3.hs
-formatted       7ab1f2d998b8  cryptonite-0.30/tests/KAT_AES/KATXTS.hs
-formatted       1e2edc23eab4  cryptonite-0.30/tests/KAT_AESGCMSIV.hs
-formatted       5f71c9d0489d  cryptonite-0.30/tests/KAT_AFIS.hs
-formatted       a29f1f177a83  cryptonite-0.30/tests/KAT_Argon2.hs
-formatted       8415bc362f2c  cryptonite-0.30/tests/KAT_Blowfish.hs
-formatted       05a7dbeb9005  cryptonite-0.30/tests/KAT_CAST5.hs
-formatted       a3584b1b317f  cryptonite-0.30/tests/KAT_CMAC.hs
-formatted       c4f1dbee51d6  cryptonite-0.30/tests/KAT_Camellia.hs
-formatted       6afe12fcf4eb  cryptonite-0.30/tests/KAT_Curve25519.hs
-formatted       6093259a5aa9  cryptonite-0.30/tests/KAT_Curve448.hs
-formatted       8e0eac40b9d6  cryptonite-0.30/tests/KAT_DES.hs
-formatted       3a7902b73bd8  cryptonite-0.30/tests/KAT_Ed25519.hs
-formatted       bbf6a21d5f18  cryptonite-0.30/tests/KAT_Ed448.hs
-formatted       b59a87e7f1e5  cryptonite-0.30/tests/KAT_EdDSA.hs
-formatted       0fa0afdb302b  cryptonite-0.30/tests/KAT_HKDF.hs
-formatted       f0b45b263f2a  cryptonite-0.30/tests/KAT_HMAC.hs
-formatted       ee17a2d47a67  cryptonite-0.30/tests/KAT_KMAC.hs
-formatted       66cf41c37e13  cryptonite-0.30/tests/KAT_MiyaguchiPreneel.hs
-formatted       5161823955d7  cryptonite-0.30/tests/KAT_OTP.hs
-formatted       e23a8a363aff  cryptonite-0.30/tests/KAT_PBKDF2.hs
-formatted       1f0d2812b0a5  cryptonite-0.30/tests/KAT_PubKey.hs
-formatted       c92369374dbb  cryptonite-0.30/tests/KAT_PubKey/DSA.hs
-formatted       743790d1c893  cryptonite-0.30/tests/KAT_PubKey/ECC.hs
-formatted       72827abb8090  cryptonite-0.30/tests/KAT_PubKey/ECDSA.hs
-formatted       0a8edec8bb84  cryptonite-0.30/tests/KAT_PubKey/OAEP.hs
-formatted       6ba37e5828ed  cryptonite-0.30/tests/KAT_PubKey/P256.hs
-formatted       93c9f8d40494  cryptonite-0.30/tests/KAT_PubKey/PSS.hs
-formatted       bba8cd12072c  cryptonite-0.30/tests/KAT_PubKey/RSA.hs
-formatted       cd527ad025c4  cryptonite-0.30/tests/KAT_PubKey/Rabin.hs
-formatted       fa1389bb8af8  cryptonite-0.30/tests/KAT_RC4.hs
-formatted       6c174475decc  cryptonite-0.30/tests/KAT_Scrypt.hs
-formatted       36380d994c1c  cryptonite-0.30/tests/KAT_TripleDES.hs
-formatted       88dd0eef74a1  cryptonite-0.30/tests/KAT_Twofish.hs
-formatted       d3ffb4dd724c  cryptonite-0.30/tests/Number.hs
-formatted       7da4a28c8580  cryptonite-0.30/tests/Number/F2m.hs
-formatted       153769199399  cryptonite-0.30/tests/Padding.hs
-formatted       e4b87212dc1f  cryptonite-0.30/tests/Poly1305.hs
-formatted       38c09837971d  cryptonite-0.30/tests/Salsa.hs
-formatted       54065ea7b3f2  cryptonite-0.30/tests/Tests.hs
-formatted       be766d438585  cryptonite-0.30/tests/Utils.hs
-formatted       f7ee48c90ce9  cryptonite-0.30/tests/XSalsa.hs
-formatted       e865ae48f11b  diagrams-core-1.5.1.2/Setup.hs
-formatted       390dfdff3fbc  diagrams-core-1.5.1.2/src/Diagrams/Core.hs
-formatted       5b9f4064740f  diagrams-core-1.5.1.2/src/Diagrams/Core/Compile.hs
-formatted       dcc0b6e7d82d  diagrams-core-1.5.1.2/src/Diagrams/Core/Envelope.hs
-formatted       c945af86b66d  diagrams-core-1.5.1.2/src/Diagrams/Core/HasOrigin.hs
-formatted       5e6397a73cbf  diagrams-core-1.5.1.2/src/Diagrams/Core/Juxtapose.hs
-formatted       0de67b81d340  diagrams-core-1.5.1.2/src/Diagrams/Core/Measure.hs
-formatted       3f232ced8cd3  diagrams-core-1.5.1.2/src/Diagrams/Core/Names.hs
-formatted       169fec80496d  diagrams-core-1.5.1.2/src/Diagrams/Core/Points.hs
-formatted       f005c45a7335  diagrams-core-1.5.1.2/src/Diagrams/Core/Query.hs
-formatted       c1f6572049e6  diagrams-core-1.5.1.2/src/Diagrams/Core/Style.hs
-formatted       0d93bb9387d4  diagrams-core-1.5.1.2/src/Diagrams/Core/Trace.hs
-formatted       ceb1829b99d5  diagrams-core-1.5.1.2/src/Diagrams/Core/Transform.hs
-formatted       053c9acdc8a3  diagrams-core-1.5.1.2/src/Diagrams/Core/Types.hs
-formatted       a9f71c9c75d0  diagrams-core-1.5.1.2/src/Diagrams/Core/V.hs
-formatted       5cabe7655bac  distributed-process-0.7.8/benchmarks/Channels.hs
-formatted       504953bb1387  distributed-process-0.7.8/benchmarks/Latency.hs
-formatted       e43130036e36  distributed-process-0.7.8/benchmarks/ProcessRing.hs
-formatted       c83a31f749c7  distributed-process-0.7.8/benchmarks/Spawns.hs
-formatted       54738fd746e9  distributed-process-0.7.8/benchmarks/Throughput.hs
-formatted       e7bfb48f27d1  distributed-process-0.7.8/src/Control/Distributed/Process.hs
-formatted       3f710068b83b  distributed-process-0.7.8/src/Control/Distributed/Process/Closure.hs
-formatted       9abdf121594b  distributed-process-0.7.8/src/Control/Distributed/Process/Debug.hs
-formatted       c98976ba0493  distributed-process-0.7.8/src/Control/Distributed/Process/Internal/BiMultiMap.hs
-formatted       fe72c6f43347  distributed-process-0.7.8/src/Control/Distributed/Process/Internal/CQueue.hs
-formatted       2946b3a11a2f  distributed-process-0.7.8/src/Control/Distributed/Process/Internal/Closure/BuiltIn.hs
-formatted       a950bf8d3ff9  distributed-process-0.7.8/src/Control/Distributed/Process/Internal/Closure/Explicit.hs
-formatted       8ab242465a6d  distributed-process-0.7.8/src/Control/Distributed/Process/Internal/Closure/TH.hs
-formatted       4f632ae95bca  distributed-process-0.7.8/src/Control/Distributed/Process/Internal/Messaging.hs
-formatted       cdbd1062f92e  distributed-process-0.7.8/src/Control/Distributed/Process/Internal/Primitives.hs
-formatted       e45882712088  distributed-process-0.7.8/src/Control/Distributed/Process/Internal/Spawn.hs
-formatted       cd3afabcd890  distributed-process-0.7.8/src/Control/Distributed/Process/Internal/StrictContainerAccessors.hs
-formatted       8a9d9c67b86f  distributed-process-0.7.8/src/Control/Distributed/Process/Internal/StrictList.hs
-formatted       b21182e8f9f2  distributed-process-0.7.8/src/Control/Distributed/Process/Internal/StrictMVar.hs
-formatted       872f36ee90c9  distributed-process-0.7.8/src/Control/Distributed/Process/Internal/Types.hs
-formatted       d8a70ea27555  distributed-process-0.7.8/src/Control/Distributed/Process/Internal/WeakTQueue.hs
-formatted       b54c3b7901fc  distributed-process-0.7.8/src/Control/Distributed/Process/Management.hs
-formatted       0fc21b015e4c  distributed-process-0.7.8/src/Control/Distributed/Process/Management/Internal/Agent.hs
-formatted       39b50d32c5a6  distributed-process-0.7.8/src/Control/Distributed/Process/Management/Internal/Bus.hs
-formatted       5e7aa53931dc  distributed-process-0.7.8/src/Control/Distributed/Process/Management/Internal/Trace/Primitives.hs
-formatted       818907f11c3f  distributed-process-0.7.8/src/Control/Distributed/Process/Management/Internal/Trace/Remote.hs
-formatted       b20da2c91302  distributed-process-0.7.8/src/Control/Distributed/Process/Management/Internal/Trace/Tracer.hs
-formatted       2b21046051cd  distributed-process-0.7.8/src/Control/Distributed/Process/Management/Internal/Trace/Types.hs
-formatted       07108d12c1fe  distributed-process-0.7.8/src/Control/Distributed/Process/Management/Internal/Types.hs
-formatted       b797d0b46d2e  distributed-process-0.7.8/src/Control/Distributed/Process/Node.hs
-formatted       6b86ee01b32a  distributed-process-0.7.8/src/Control/Distributed/Process/Serializable.hs
-formatted       daf3cd1d8b53  distributed-process-0.7.8/src/Control/Distributed/Process/UnsafePrimitives.hs
-broken          c7f3522faa0a  dlist-1.0/Data/DList.hs
-formatted       20c1dbe536f4  dlist-1.0/Data/DList/DNonEmpty.hs
-formatted       3d51b496abb0  dlist-1.0/Data/DList/DNonEmpty/Internal.hs
-declined        -             dlist-1.0/Data/DList/Internal.hs
-formatted       669ee89127ed  dlist-1.0/Data/DList/Unsafe.hs
-formatted       c7f9b52c6db5  dlist-1.0/tests/DListProperties.hs
-formatted       54f0c52fc06b  dlist-1.0/tests/DNonEmptyProperties.hs
-formatted       9471e1a867e9  dlist-1.0/tests/ImportUnsafe.hs
-formatted       977d78f79456  dlist-1.0/tests/Main.hs
-formatted       ff0ea90a2896  dlist-1.0/tests/OverloadedStrings.hs
-formatted       eda938831fc8  dlist-1.0/tests/QuickCheckUtil.hs
-formatted       e865ae48f11b  esqueleto-3.6.0.3/Setup.hs
-formatted       fb274a829f01  esqueleto-3.6.0.3/src/Database/Esqueleto.hs
-formatted       99a3554c79c4  esqueleto-3.6.0.3/src/Database/Esqueleto/Experimental.hs
-formatted       f39aad505f10  esqueleto-3.6.0.3/src/Database/Esqueleto/Experimental/From.hs
-formatted       3dc85ea0c84f  esqueleto-3.6.0.3/src/Database/Esqueleto/Experimental/From/CommonTableExpression.hs
-formatted       1c658ac7468e  esqueleto-3.6.0.3/src/Database/Esqueleto/Experimental/From/Join.hs
-formatted       beecd102c083  esqueleto-3.6.0.3/src/Database/Esqueleto/Experimental/From/SqlSetOperation.hs
-formatted       6bfe86eb6141  esqueleto-3.6.0.3/src/Database/Esqueleto/Experimental/ToAlias.hs
-formatted       ed8893f41cd7  esqueleto-3.6.0.3/src/Database/Esqueleto/Experimental/ToAliasReference.hs
-formatted       9f36875401e2  esqueleto-3.6.0.3/src/Database/Esqueleto/Experimental/ToMaybe.hs
-formatted       a736ace7f7d4  esqueleto-3.6.0.3/src/Database/Esqueleto/Internal/ExprParser.hs
-formatted       00efc44de803  esqueleto-3.6.0.3/src/Database/Esqueleto/Internal/Internal.hs
-formatted       8e8a8c378f2b  esqueleto-3.6.0.3/src/Database/Esqueleto/Internal/PersistentImport.hs
-formatted       23c62f207b2d  esqueleto-3.6.0.3/src/Database/Esqueleto/Legacy.hs
-formatted       9cd66d1b3ed2  esqueleto-3.6.0.3/src/Database/Esqueleto/MySQL.hs
-formatted       03e7cbed2cf8  esqueleto-3.6.0.3/src/Database/Esqueleto/PostgreSQL.hs
-formatted       c9c85bd4863e  esqueleto-3.6.0.3/src/Database/Esqueleto/PostgreSQL/JSON.hs
-formatted       df35c8f3b6bf  esqueleto-3.6.0.3/src/Database/Esqueleto/PostgreSQL/JSON/Instances.hs
-formatted       573ddd92ef4a  esqueleto-3.6.0.3/src/Database/Esqueleto/Record.hs
-formatted       167fa1cef38a  esqueleto-3.6.0.3/src/Database/Esqueleto/SQLite.hs
-formatted       791ffee464be  esqueleto-3.6.0.3/test/Common/Record.hs
-formatted       3d260d3951bd  esqueleto-3.6.0.3/test/Common/Test.hs
-formatted       07d3054c5606  esqueleto-3.6.0.3/test/Common/Test/CTE.hs
-formatted       1f83d04692e3  esqueleto-3.6.0.3/test/Common/Test/Import.hs
-formatted       2e16567983e5  esqueleto-3.6.0.3/test/Common/Test/Models.hs
-formatted       1e1af0ff65e2  esqueleto-3.6.0.3/test/Common/Test/Select.hs
-formatted       6c403a7dbfd3  esqueleto-3.6.0.3/test/MySQL/Test.hs
-formatted       649022fe6ecf  esqueleto-3.6.0.3/test/PostgreSQL/MigrateJSON.hs
-formatted       cbb4df3506fe  esqueleto-3.6.0.3/test/PostgreSQL/Test.hs
-formatted       0e0ef1763885  esqueleto-3.6.0.3/test/SQLite/Test.hs
-formatted       9c274d8e66c1  esqueleto-3.6.0.3/test/Spec.hs
-formatted       27965836c84d  exceptions-0.10.12/src/Control/Monad/Catch.hs
-formatted       2982a44f9995  exceptions-0.10.12/src/Control/Monad/Catch/Pure.hs
-formatted       da6b7265725b  exceptions-0.10.12/tests/Control/Monad/Catch/Tests.hs
-formatted       bba664ba2b8b  exceptions-0.10.12/tests/Tests.hs
-formatted       421394df9111  fay-0.24.2.0/Setup.hs
-formatted       ec9eeba0c6a1  fay-0.24.2.0/examples/CodeWorld.hs
-formatted       7cf91d63601f  fay-0.24.2.0/examples/CodeWorldMain.hs
-formatted       d34203032896  fay-0.24.2.0/examples/Cont.hs
-formatted       b5088332842e  fay-0.24.2.0/examples/D3TreeSample.hs
-formatted       45fa087c720a  fay-0.24.2.0/examples/FayFromJs.hs
-formatted       d4be2511948d  fay-0.24.2.0/examples/Separated.hs
-formatted       73cbc6340843  fay-0.24.2.0/examples/X.hs
-formatted       89a1e9058dc3  fay-0.24.2.0/examples/Y.hs
-formatted       55d7b8cf115f  fay-0.24.2.0/examples/alert.hs
-formatted       3563971c6bdb  fay-0.24.2.0/examples/calc.hs
-formatted       2d60fb67f2de  fay-0.24.2.0/examples/canvaswater.hs
-formatted       97df12f5dfa2  fay-0.24.2.0/examples/console.hs
-formatted       7608e18ca01c  fay-0.24.2.0/examples/data.hs
-formatted       57124dd1aa0e  fay-0.24.2.0/examples/dom.hs
-formatted       a017f7092550  fay-0.24.2.0/examples/jquery.hs
-formatted       19887dc6f70a  fay-0.24.2.0/examples/json.hs
-formatted       db1cb782ccc3  fay-0.24.2.0/examples/node.hs
-formatted       f3df3b020033  fay-0.24.2.0/examples/nqueens.hs
-formatted       615082642614  fay-0.24.2.0/examples/obj.hs
-formatted       a197f077306c  fay-0.24.2.0/examples/oscillator.hs
-formatted       c79a44579d85  fay-0.24.2.0/examples/pat.hs
-formatted       fa732b1a5e66  fay-0.24.2.0/examples/properties.hs
-formatted       7085b02d6471  fay-0.24.2.0/examples/ref.hs
-formatted       55fe2b9f624f  fay-0.24.2.0/examples/showExamples.hs
-formatted       884b6fbdaadc  fay-0.24.2.0/examples/tailrecursive.hs
-formatted       c2d5e370d7e2  fay-0.24.2.0/src/Fay.hs
-formatted       9a042d6a7ba9  fay-0.24.2.0/src/Fay/Compiler.hs
-formatted       727b9da5eeda  fay-0.24.2.0/src/Fay/Compiler/Decl.hs
-formatted       d4575500ee48  fay-0.24.2.0/src/Fay/Compiler/Defaults.hs
-formatted       891834d5aec2  fay-0.24.2.0/src/Fay/Compiler/Desugar.hs
-formatted       570ca805808c  fay-0.24.2.0/src/Fay/Compiler/Desugar/Name.hs
-formatted       fe53147a7e33  fay-0.24.2.0/src/Fay/Compiler/Desugar/Types.hs
-formatted       cd957c0884e8  fay-0.24.2.0/src/Fay/Compiler/Exp.hs
-formatted       cfc0f0f46b43  fay-0.24.2.0/src/Fay/Compiler/FFI.hs
-formatted       69fd6dd80a66  fay-0.24.2.0/src/Fay/Compiler/GADT.hs
-formatted       bcb9d437929e  fay-0.24.2.0/src/Fay/Compiler/Import.hs
-formatted       766c34ce53b0  fay-0.24.2.0/src/Fay/Compiler/InitialPass.hs
-formatted       c3937a070cdf  fay-0.24.2.0/src/Fay/Compiler/Misc.hs
-formatted       bce0992d570d  fay-0.24.2.0/src/Fay/Compiler/ModuleT.hs
-formatted       2fdd19da261b  fay-0.24.2.0/src/Fay/Compiler/Optimizer.hs
-formatted       ac32749d90ec  fay-0.24.2.0/src/Fay/Compiler/Packages.hs
-formatted       1798f425b036  fay-0.24.2.0/src/Fay/Compiler/Parse.hs
-formatted       46f343ccba7b  fay-0.24.2.0/src/Fay/Compiler/Pattern.hs
-formatted       7cca783f3fcd  fay-0.24.2.0/src/Fay/Compiler/Prelude.hs
-formatted       0fe3943a05fb  fay-0.24.2.0/src/Fay/Compiler/PrimOp.hs
-formatted       a55524f4b7fa  fay-0.24.2.0/src/Fay/Compiler/Print.hs
-formatted       da23ccb55970  fay-0.24.2.0/src/Fay/Compiler/QName.hs
-formatted       9fe2fbd3e360  fay-0.24.2.0/src/Fay/Compiler/State.hs
-formatted       fb1831a445cc  fay-0.24.2.0/src/Fay/Compiler/Typecheck.hs
-formatted       631cbd5cb454  fay-0.24.2.0/src/Fay/Config.hs
-formatted       15cd1e849d0e  fay-0.24.2.0/src/Fay/Convert.hs
-formatted       80d46083d774  fay-0.24.2.0/src/Fay/Exts.hs
-formatted       7ec6f093e0ca  fay-0.24.2.0/src/Fay/Exts/NoAnnotation.hs
-formatted       bd1f234d96c0  fay-0.24.2.0/src/Fay/Exts/Scoped.hs
-formatted       f7856f337bee  fay-0.24.2.0/src/Fay/FFI.hs
-formatted       7dd89da8a466  fay-0.24.2.0/src/Fay/Runtime.hs
-formatted       0ac5069cbf76  fay-0.24.2.0/src/Fay/Types.hs
-formatted       6654772d79a6  fay-0.24.2.0/src/Fay/Types/CompileError.hs
-formatted       4f7fdfee2a8f  fay-0.24.2.0/src/Fay/Types/CompileResult.hs
-formatted       f21a75633d68  fay-0.24.2.0/src/Fay/Types/FFI.hs
-formatted       16c62b3f8086  fay-0.24.2.0/src/Fay/Types/Js.hs
-formatted       1165cbb859cc  fay-0.24.2.0/src/Fay/Types/ModulePath.hs
-formatted       ed80698a7cd1  fay-0.24.2.0/src/Fay/Types/Printer.hs
-formatted       6593766b1d2e  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names.hs
-formatted       bfea4a051d5e  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/Annotated.hs
-formatted       effa30f29551  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/Exports.hs
-formatted       2c705aaf3085  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/GetBound.hs
-formatted       74e293075d13  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/GlobalSymbolTable.hs
-formatted       13662130820d  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/GlobalSymbolTable.hs-boot
-formatted       3346bfa56c31  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/Imports.hs
-formatted       bda66c725ce4  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/LocalSymbolTable.hs
-formatted       c6c4acea37c3  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/ModuleSymbols.hs
-formatted       76ce45f69410  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/Open/Base.hs
-formatted       b12db8ba5ce9  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/Open/Derived.hs
-formatted       325536c28de7  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/Open/Instances.hs
-formatted       deb2b656a1ad  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/RecordWildcards.hs
-formatted       80dec7fda3fb  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/Recursive.hs
-formatted       006f3c334ab0  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/ScopeUtils.hs
-formatted       3dd4a51f2cc5  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/SyntaxUtils.hs
-formatted       2b1329bafe82  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/Types.hs
-formatted       a185a50b6e6a  fay-0.24.2.0/src/main/Main.hs
-formatted       b9c869a29067  fay-0.24.2.0/src/tests/Test/CommandLine.hs
-formatted       68c640b352e9  fay-0.24.2.0/src/tests/Test/Compile.hs
-formatted       6fdbf9951c76  fay-0.24.2.0/src/tests/Test/Convert.hs
-formatted       89d594b07db0  fay-0.24.2.0/src/tests/Test/Desugar.hs
-formatted       a3937c4d8bef  fay-0.24.2.0/src/tests/Test/Util.hs
-formatted       63cce78f9492  fay-0.24.2.0/src/tests/Tests.hs
-formatted       8114602da4c3  fay-0.24.2.0/tests/AllBaseModules.hs
-formatted       e78d25c5a73d  fay-0.24.2.0/tests/AutomaticList.hs
-formatted       779c72fbdb74  fay-0.24.2.0/tests/Bool.hs
-formatted       85b587f06e29  fay-0.24.2.0/tests/CPP.hs
-formatted       61e542a01350  fay-0.24.2.0/tests/Char.hs
-formatted       7badee2f20a7  fay-0.24.2.0/tests/Compile/CPPMultiLineStrings.hs
-formatted       a5ace073f2a3  fay-0.24.2.0/tests/Compile/CPPTypecheck.hs
-formatted       66d008a435ce  fay-0.24.2.0/tests/Compile/EnumChar.hs
-formatted       79a705007362  fay-0.24.2.0/tests/Compile/ImportRecords.hs
-formatted       ad7ecf9ee4fe  fay-0.24.2.0/tests/Compile/Records.hs
-formatted       9817e9c801a0  fay-0.24.2.0/tests/Compile/StrictWrapper.hs
-formatted       3f10c446d77e  fay-0.24.2.0/tests/Compile/pretty.hs
-formatted       3f10c446d77e  fay-0.24.2.0/tests/Compile/prettyOperators.hs
-formatted       3f10c446d77e  fay-0.24.2.0/tests/Compile/prettyThunks.hs
-formatted       7e5ba819c89a  fay-0.24.2.0/tests/Defined.hs
-formatted       933b5c75c95d  fay-0.24.2.0/tests/DesugarFFI.hs
-formatted       247bf5cdbba0  fay-0.24.2.0/tests/DoLet2.hs
-formatted       8e59e23cdef2  fay-0.24.2.0/tests/DoLet3.hs
-formatted       8506e48ae167  fay-0.24.2.0/tests/Double.hs
-formatted       555ed6125da8  fay-0.24.2.0/tests/Double2.hs
-formatted       940c2db0f038  fay-0.24.2.0/tests/Double3.hs
-formatted       ce51517b312e  fay-0.24.2.0/tests/Double4.hs
-formatted       e7d8f2571cb1  fay-0.24.2.0/tests/Either.hs
-formatted       f00c11dbed60  fay-0.24.2.0/tests/EmptyDataDeclArray.hs
-formatted       7c2bc66a86e6  fay-0.24.2.0/tests/Eq.hs
-formatted       25d8fd9d5d5a  fay-0.24.2.0/tests/ExportEThingAll.hs
-formatted       bea5851db3b4  fay-0.24.2.0/tests/ExportEThingAll_Export.hs
-formatted       b86ba0189dff  fay-0.24.2.0/tests/ExportEThingWith.hs
-formatted       6c639783702a  fay-0.24.2.0/tests/ExportList.hs
-formatted       c70d5951fda8  fay-0.24.2.0/tests/ExportList_A.hs
-formatted       eb351b1cfd3e  fay-0.24.2.0/tests/ExportList_B.hs
-formatted       4736c70718a7  fay-0.24.2.0/tests/ExportList_C.hs
-formatted       41c7f9eb857a  fay-0.24.2.0/tests/ExportList_D.hs
-formatted       b42dad751766  fay-0.24.2.0/tests/ExportQualified_Export.hs
-formatted       e08dc6f4e84b  fay-0.24.2.0/tests/ExportQualified_Import.hs
-formatted       e9617631d536  fay-0.24.2.0/tests/ExportType.hs
-formatted       ba54245a67ef  fay-0.24.2.0/tests/Floating.hs
-formatted       02165869295d  fay-0.24.2.0/tests/FromString.hs
-formatted       fc43945a5277  fay-0.24.2.0/tests/FromString/Dep.hs
-formatted       09e516e107ad  fay-0.24.2.0/tests/FromString/DepDep.hs
-formatted       a8e31b7f9068  fay-0.24.2.0/tests/FromString/FayText.hs
-formatted       3da43a919ebc  fay-0.24.2.0/tests/GADTs_without_records.hs
-formatted       102949714efb  fay-0.24.2.0/tests/GuardWhere.hs
-formatted       4c6803c7f169  fay-0.24.2.0/tests/HidePreludeImport.hs
-formatted       a1408d450caf  fay-0.24.2.0/tests/HidePreludeImport_Import.hs
-formatted       fa5b4cc76a44  fay-0.24.2.0/tests/Hierarchical/Export.hs
-formatted       102307416bcd  fay-0.24.2.0/tests/Hierarchical/RecordDefined.hs
-formatted       920c9acca3b5  fay-0.24.2.0/tests/HierarchicalImport.hs
-formatted       def230ba708f  fay-0.24.2.0/tests/ImplicitPrelude.hs
-formatted       c71809dd7876  fay-0.24.2.0/tests/ImportHiding.hs
-formatted       75f8ddda7df8  fay-0.24.2.0/tests/ImportIThingAll.hs
-formatted       b4c50a46461c  fay-0.24.2.0/tests/ImportList.hs
-formatted       87c5a69d1b76  fay-0.24.2.0/tests/ImportList1/A.hs
-formatted       a25b5782f91c  fay-0.24.2.0/tests/ImportList1/B.hs
-formatted       a9003116e1c9  fay-0.24.2.0/tests/ImportList1/C.hs
-formatted       b5cb6de55974  fay-0.24.2.0/tests/ImportListType.hs
-formatted       69bb47d76aef  fay-0.24.2.0/tests/ImportType.hs
-formatted       440bc41f78be  fay-0.24.2.0/tests/ImportType2.hs
-formatted       5ff8e931a567  fay-0.24.2.0/tests/ImportType2I/A.hs
-formatted       e15dbb9a2720  fay-0.24.2.0/tests/ImportType2I/B.hs
-formatted       9d4bcec16bd7  fay-0.24.2.0/tests/Integer.hs
-formatted       ed2b3650244f  fay-0.24.2.0/tests/Integral.hs
-formatted       dadef2b7cb03  fay-0.24.2.0/tests/Issue215/B.hs
-formatted       eeedb44973d0  fay-0.24.2.0/tests/Issue215A.hs
-formatted       b0a19078b259  fay-0.24.2.0/tests/Js2FayFunc.hs
-formatted       8592007d3db3  fay-0.24.2.0/tests/JsFunctionPassing.hs
-formatted       009642e56a6b  fay-0.24.2.0/tests/LambdaCase.hs
-formatted       47266926fa39  fay-0.24.2.0/tests/LazyOperators.hs
-formatted       ee291ee7e00e  fay-0.24.2.0/tests/List.hs
-formatted       c8021ca9ec3f  fay-0.24.2.0/tests/List2.hs
-formatted       a93b0ff4bcc5  fay-0.24.2.0/tests/ListEq.hs
-formatted       c3daafcf2461  fay-0.24.2.0/tests/MainThunk.hs
-formatted       350d9831d6f8  fay-0.24.2.0/tests/ModuleReExport/ExportsIdentifier.hs
-formatted       25cef8780cae  fay-0.24.2.0/tests/ModuleReExport/ExportsModule.hs
-formatted       9dfef0f7c129  fay-0.24.2.0/tests/ModuleReExports.hs
-formatted       c082d387d888  fay-0.24.2.0/tests/ModuleRecordClash.hs
-formatted       997782df97ba  fay-0.24.2.0/tests/ModuleRecordClash/R.hs
-formatted       53ea9782c8a3  fay-0.24.2.0/tests/ModuleRecordClash2.hs
-formatted       3f2cf09e81b7  fay-0.24.2.0/tests/ModuleRecordClash2_Hello.hs
-formatted       1a83fbebaaf8  fay-0.24.2.0/tests/Monad.hs
-formatted       b3f89d2ed36e  fay-0.24.2.0/tests/Monad2.hs
-formatted       0c9780229637  fay-0.24.2.0/tests/MultiWayIf.hs
-formatted       0e3845c048a2  fay-0.24.2.0/tests/NestedImporting.hs
-formatted       4b3a670722e0  fay-0.24.2.0/tests/NestedImporting/A.hs
-formatted       2a092a0c1f4c  fay-0.24.2.0/tests/NestedImporting2.hs
-formatted       19cbbffb80bc  fay-0.24.2.0/tests/NestedImporting2/A.hs
-formatted       17f211243d54  fay-0.24.2.0/tests/NewtypeImport_Export.hs
-formatted       34ed28dbd073  fay-0.24.2.0/tests/NewtypeImport_Import.hs
-formatted       ad07b3a0d755  fay-0.24.2.0/tests/Nullable.hs
-formatted       f01c35cc494d  fay-0.24.2.0/tests/Num.hs
-formatted       75ea0e91fb04  fay-0.24.2.0/tests/Ord.hs
-formatted       66e4369c7bda  fay-0.24.2.0/tests/PrefixOpPat.hs
-formatted       129023442df5  fay-0.24.2.0/tests/QualifiedImport.hs
-formatted       3298b9301836  fay-0.24.2.0/tests/QualifiedImport/X.hs
-formatted       391559feaa6f  fay-0.24.2.0/tests/QualifiedImport/Y.hs
-formatted       5a73215af899  fay-0.24.2.0/tests/Ratio.hs
-formatted       577c81fcbe39  fay-0.24.2.0/tests/ReExport1.hs
-formatted       97f273a7040d  fay-0.24.2.0/tests/ReExport2.hs
-formatted       9fb50fe15789  fay-0.24.2.0/tests/ReExport3.hs
-formatted       8b077416b2a2  fay-0.24.2.0/tests/ReExportGlobally.hs
-formatted       4b9cbdde2416  fay-0.24.2.0/tests/ReExportGlobally/A.hs
-formatted       b21d1616e152  fay-0.24.2.0/tests/ReExportGloballyExplicit.hs
-formatted       9315bbd88930  fay-0.24.2.0/tests/RealFrac.hs
-formatted       1a6a33c6ac9d  fay-0.24.2.0/tests/RecCon.hs
-formatted       986c34c1b565  fay-0.24.2.0/tests/RecDecl.hs
-formatted       bb55ab6798d0  fay-0.24.2.0/tests/RecordImport2_Export1.hs
-formatted       938433aeb8c8  fay-0.24.2.0/tests/RecordImport2_Export2.hs
-formatted       c044e70c8101  fay-0.24.2.0/tests/RecordImport2_Import.hs
-formatted       9ed1c0f11b4a  fay-0.24.2.0/tests/RecordImport_Export.hs
-formatted       7436f43b45cc  fay-0.24.2.0/tests/RecordImport_Import.hs
-formatted       227a87a9ae8b  fay-0.24.2.0/tests/Sink.hs
-formatted       0d52d0cd7e4b  fay-0.24.2.0/tests/SkipLetTypes.hs
-formatted       79a7eb241171  fay-0.24.2.0/tests/SkipWhereTypes.hs
-formatted       b2f90faa6d96  fay-0.24.2.0/tests/StringForcing.hs
-formatted       78f704c770c1  fay-0.24.2.0/tests/Strings.hs
-formatted       b23a6f00c551  fay-0.24.2.0/tests/T190.hs
-formatted       692f0dae5fb8  fay-0.24.2.0/tests/T190_A.hs
-formatted       8e73afc88ae8  fay-0.24.2.0/tests/T190_B.hs
-formatted       e68acdaf2dfe  fay-0.24.2.0/tests/T190_C.hs
-formatted       7bd1c4fd8478  fay-0.24.2.0/tests/TextOrd.hs
-formatted       f47544b81667  fay-0.24.2.0/tests/Trace.hs
-formatted       c578ce2acbf6  fay-0.24.2.0/tests/TupleCalls.hs
-formatted       d35a3f3c7245  fay-0.24.2.0/tests/TyVarSerialization.hs
-formatted       7d85fb13bd93  fay-0.24.2.0/tests/Var.hs
-formatted       7a2ffc1587f5  fay-0.24.2.0/tests/VarPtr.hs
-formatted       5bcb67338113  fay-0.24.2.0/tests/WhenUnlessRecursion.hs
-formatted       c767b8778a1d  fay-0.24.2.0/tests/asPatternMatch.hs
-formatted       aa05f8bd2bf0  fay-0.24.2.0/tests/automatic.hs
-formatted       83d1d385ae83  fay-0.24.2.0/tests/baseFixities.hs
-formatted       ce58f47bac04  fay-0.24.2.0/tests/basicFunctions.hs
-formatted       33b5a5453ff8  fay-0.24.2.0/tests/case.hs
-formatted       a51f036ac082  fay-0.24.2.0/tests/case2.hs
-formatted       4a4542652251  fay-0.24.2.0/tests/case3.hs
-formatted       e563419849e3  fay-0.24.2.0/tests/caseList.hs
-formatted       6f41ab7df8c9  fay-0.24.2.0/tests/caseWildcard.hs
-formatted       9437474fc565  fay-0.24.2.0/tests/circular.hs
-formatted       3ac360393116  fay-0.24.2.0/tests/curry.hs
-formatted       9bbe8cd8c749  fay-0.24.2.0/tests/cycle.hs
-formatted       d07827315b77  fay-0.24.2.0/tests/do.hs
-formatted       262e4e61e6b8  fay-0.24.2.0/tests/doAssingPatternMatch.hs
-formatted       ad5b707f664a  fay-0.24.2.0/tests/doBindAssign.hs
-formatted       e41cbdd7656a  fay-0.24.2.0/tests/doLet.hs
-formatted       9f8a8d10c1d3  fay-0.24.2.0/tests/emptyMain.hs
-formatted       380eff7dedb9  fay-0.24.2.0/tests/enumFrom.hs
-formatted       05834fe58432  fay-0.24.2.0/tests/error.hs
-formatted       f563902672cb  fay-0.24.2.0/tests/ffiExpr.hs
-formatted       73697f0c099c  fay-0.24.2.0/tests/ffimunging.hs
-formatted       dc67c504a097  fay-0.24.2.0/tests/fix.hs
-formatted       9267690ec8d2  fay-0.24.2.0/tests/fromInteger.hs
-formatted       73a7dce83bdd  fay-0.24.2.0/tests/fromIntegral.hs
-formatted       860a7aed8af3  fay-0.24.2.0/tests/guards.hs
-formatted       8ff7b7e5d80d  fay-0.24.2.0/tests/infixDataConst.hs
-formatted       99c963974ca0  fay-0.24.2.0/tests/ints.hs
-formatted       9ec2af24577b  fay-0.24.2.0/tests/linesAndWords.hs
-formatted       36a10a974013  fay-0.24.2.0/tests/listComprehensions.hs
-formatted       392b79e97d1d  fay-0.24.2.0/tests/listlen.hs
-formatted       9d98dc262b39  fay-0.24.2.0/tests/mutableReference.hs
-formatted       f983711e6f6b  fay-0.24.2.0/tests/nameGen.hs
-formatted       00499901b441  fay-0.24.2.0/tests/namedFieldPuns.hs
-formatted       68fcd666b331  fay-0.24.2.0/tests/negation.hs
-formatted       4c9cf35b4aee  fay-0.24.2.0/tests/newtype.hs
-formatted       36cf37d7cd68  fay-0.24.2.0/tests/newtypeIndirectApp.hs
-formatted       a587812e6602  fay-0.24.2.0/tests/numTheory.hs
-formatted       40bd883716b3  fay-0.24.2.0/tests/nums.hs
-formatted       c27df9670630  fay-0.24.2.0/tests/pats.hs
-formatted       b317cbb85f97  fay-0.24.2.0/tests/patternGuards.hs
-formatted       353e37b5a857  fay-0.24.2.0/tests/patternMatchFail.hs
-formatted       0e69935e45c9  fay-0.24.2.0/tests/patternMatchLet.hs
-formatted       f963663ae2cf  fay-0.24.2.0/tests/patternMatchingTuples.hs
-formatted       41871bce5735  fay-0.24.2.0/tests/recordFunctionPatternMatch.hs
-formatted       6010444abc75  fay-0.24.2.0/tests/recordPatternMatch.hs
-formatted       0dda5fc8df9d  fay-0.24.2.0/tests/recordPatternMatch2.hs
-formatted       63b9091a92a2  fay-0.24.2.0/tests/recordUseBeforeDefine.hs
-formatted       6000e445e696  fay-0.24.2.0/tests/recordWildCards.hs
-formatted       63a19682d7d9  fay-0.24.2.0/tests/records.hs
-formatted       a371f7d8d704  fay-0.24.2.0/tests/recursive.hs
-formatted       9797f8836f3b  fay-0.24.2.0/tests/reservedWords.hs
-formatted       3bdaf5d65328  fay-0.24.2.0/tests/sections.hs
-formatted       19e9c7c69db9  fay-0.24.2.0/tests/seq-fake.hs
-formatted       2ac1dc3c2516  fay-0.24.2.0/tests/seq.hs
-formatted       add7affcb8d6  fay-0.24.2.0/tests/serialization.hs
-formatted       e76961e79030  fay-0.24.2.0/tests/succPred.hs
-formatted       461d16ef4da1  fay-0.24.2.0/tests/tailRecursion.hs
-formatted       b29bc268b713  fay-0.24.2.0/tests/then.hs
-formatted       7b2a525c6d17  fay-0.24.2.0/tests/tupleCon.hs
-formatted       71a59816933e  fay-0.24.2.0/tests/tupleSec.hs
-formatted       c864de89b243  fay-0.24.2.0/tests/unit.hs
-formatted       cfb7dd15a745  fay-0.24.2.0/tests/utf8.hs
-formatted       68905bc32429  fay-0.24.2.0/tests/where.hs
-formatted       6ea0b301c8c4  fay-0.24.2.0/tests/whereBind.hs
-formatted       62b7dd25b5c9  fay-0.24.2.0/tests/whereBind2.hs
-formatted       dd52de0acf94  fay-0.24.2.0/tests/whereBind3.hs
-formatted       b3d258de0403  free-5.2/examples/PerfTH.hs
-formatted       24418bc38fac  free-5.2/examples/RetryTH.hs
-formatted       7641743d0c1f  free-5.2/examples/ValidationForm.hs
-formatted       9fcd1a6b4714  free-5.2/src/Control/Alternative/Free.hs
-formatted       6cdf81c21164  free-5.2/src/Control/Alternative/Free/Final.hs
-formatted       8b307bae43e5  free-5.2/src/Control/Applicative/Free.hs
-formatted       1593e637f12f  free-5.2/src/Control/Applicative/Free/Fast.hs
-formatted       f23f3f214be8  free-5.2/src/Control/Applicative/Free/Final.hs
-formatted       51e39ca09f78  free-5.2/src/Control/Applicative/Trans/Free.hs
-formatted       dd9069083e98  free-5.2/src/Control/Comonad/Cofree.hs
-formatted       9b0f6d5a4082  free-5.2/src/Control/Comonad/Cofree/Class.hs
-formatted       866a464a9f8d  free-5.2/src/Control/Comonad/Trans/Cofree.hs
-formatted       19144d43e9b1  free-5.2/src/Control/Comonad/Trans/Coiter.hs
-formatted       f6734128b306  free-5.2/src/Control/Monad/Free.hs
-formatted       92f9ffbc940f  free-5.2/src/Control/Monad/Free/Ap.hs
-formatted       93c96d44b956  free-5.2/src/Control/Monad/Free/Church.hs
-formatted       39bf4e33f6e2  free-5.2/src/Control/Monad/Free/Class.hs
-formatted       d6318fb07edb  free-5.2/src/Control/Monad/Free/TH.hs
-formatted       a51821c826a6  free-5.2/src/Control/Monad/Trans/Free.hs
-formatted       b9554e2bf6b2  free-5.2/src/Control/Monad/Trans/Free/Ap.hs
-formatted       91e1c571caac  free-5.2/src/Control/Monad/Trans/Free/Church.hs
-formatted       d881a98c4458  free-5.2/src/Control/Monad/Trans/Iter.hs
-formatted       e865ae48f11b  hakyll-4.17.0.0/Setup.hs
-formatted       0a3f98709f72  hakyll-4.17.0.0/data/example/site.hs
-formatted       116aaa72d476  hakyll-4.17.0.0/lib/Data/List/Extended.hs
-formatted       f638cd45236f  hakyll-4.17.0.0/lib/Data/Yaml/Extended.hs
-formatted       0fcae45b2ba9  hakyll-4.17.0.0/lib/Hakyll.hs
-formatted       26eb24c40060  hakyll-4.17.0.0/lib/Hakyll/Check.hs
-formatted       d16c4d72c9d4  hakyll-4.17.0.0/lib/Hakyll/Commands.hs
-formatted       dd7499d469a5  hakyll-4.17.0.0/lib/Hakyll/Core/Compiler.hs
-formatted       e9f89f339007  hakyll-4.17.0.0/lib/Hakyll/Core/Compiler/Internal.hs
-formatted       c7cfc530bd2a  hakyll-4.17.0.0/lib/Hakyll/Core/Compiler/Require.hs
-formatted       10bda89cbe6d  hakyll-4.17.0.0/lib/Hakyll/Core/Configuration.hs
-formatted       9ea9908950b2  hakyll-4.17.0.0/lib/Hakyll/Core/Dependencies.hs
-formatted       558f0d294954  hakyll-4.17.0.0/lib/Hakyll/Core/File.hs
-formatted       c3cd48ba4d35  hakyll-4.17.0.0/lib/Hakyll/Core/Identifier.hs
-formatted       02b568af6a14  hakyll-4.17.0.0/lib/Hakyll/Core/Identifier/Pattern.hs
-formatted       4da1703227de  hakyll-4.17.0.0/lib/Hakyll/Core/Identifier/Pattern/Internal.hs
-formatted       25bce39252d0  hakyll-4.17.0.0/lib/Hakyll/Core/Item.hs
-formatted       ea66b0f47f92  hakyll-4.17.0.0/lib/Hakyll/Core/Item/SomeItem.hs
-formatted       8d06795590b2  hakyll-4.17.0.0/lib/Hakyll/Core/Logger.hs
-formatted       06876ce9052c  hakyll-4.17.0.0/lib/Hakyll/Core/Metadata.hs
-formatted       6e39852547dc  hakyll-4.17.0.0/lib/Hakyll/Core/Provider.hs
-formatted       1de546a3cffb  hakyll-4.17.0.0/lib/Hakyll/Core/Provider/Internal.hs
-formatted       4380c86a9504  hakyll-4.17.0.0/lib/Hakyll/Core/Provider/Metadata.hs
-formatted       0cfbeb9b73ba  hakyll-4.17.0.0/lib/Hakyll/Core/Provider/MetadataCache.hs
-formatted       b66bbdf4a200  hakyll-4.17.0.0/lib/Hakyll/Core/Routes.hs
-formatted       1be73b780ecd  hakyll-4.17.0.0/lib/Hakyll/Core/Rules.hs
-formatted       a3472736a528  hakyll-4.17.0.0/lib/Hakyll/Core/Rules/Internal.hs
-formatted       f97472fe3373  hakyll-4.17.0.0/lib/Hakyll/Core/Runtime.hs
-formatted       df1c2bd7e8fb  hakyll-4.17.0.0/lib/Hakyll/Core/Store.hs
-formatted       69e4cf2a975a  hakyll-4.17.0.0/lib/Hakyll/Core/UnixFilter.hs
-formatted       acbb971a63bc  hakyll-4.17.0.0/lib/Hakyll/Core/Util/File.hs
-formatted       5cef0dfbc5f6  hakyll-4.17.0.0/lib/Hakyll/Core/Util/Parser.hs
-formatted       3f21bbf445b2  hakyll-4.17.0.0/lib/Hakyll/Core/Util/String.hs
-formatted       a3abc0522132  hakyll-4.17.0.0/lib/Hakyll/Core/Writable.hs
-formatted       3c8ce7fbc317  hakyll-4.17.0.0/lib/Hakyll/Main.hs
-formatted       6ed09594e890  hakyll-4.17.0.0/lib/Hakyll/Preview/Poll.hs
-formatted       d363dc04f1a7  hakyll-4.17.0.0/lib/Hakyll/Preview/Server.hs
-formatted       90f95798e3c7  hakyll-4.17.0.0/lib/Hakyll/Web/CompressCss.hs
-formatted       2fc0d8fdc6f4  hakyll-4.17.0.0/lib/Hakyll/Web/Feed.hs
-formatted       e50bf6641fdd  hakyll-4.17.0.0/lib/Hakyll/Web/Html.hs
-formatted       2c80bbb22db0  hakyll-4.17.0.0/lib/Hakyll/Web/Html/RelativizeUrls.hs
-formatted       0923e680c5d2  hakyll-4.17.0.0/lib/Hakyll/Web/Meta/JSONLD.hs
-formatted       a3dbe80d0b45  hakyll-4.17.0.0/lib/Hakyll/Web/Meta/OpenGraph.hs
-formatted       a3b6503b2c4a  hakyll-4.17.0.0/lib/Hakyll/Web/Meta/TwitterCard.hs
-formatted       47b99b2ffc3a  hakyll-4.17.0.0/lib/Hakyll/Web/Paginate.hs
-formatted       54df60c90d30  hakyll-4.17.0.0/lib/Hakyll/Web/Pandoc.hs
-formatted       c168dc9fdb41  hakyll-4.17.0.0/lib/Hakyll/Web/Pandoc/Biblio.hs
-formatted       63c711e3ed6f  hakyll-4.17.0.0/lib/Hakyll/Web/Pandoc/Binary.hs
-formatted       413e30365505  hakyll-4.17.0.0/lib/Hakyll/Web/Pandoc/FileType.hs
-formatted       d77258d3d120  hakyll-4.17.0.0/lib/Hakyll/Web/Redirect.hs
-formatted       89e848715da3  hakyll-4.17.0.0/lib/Hakyll/Web/Tags.hs
-formatted       0e9947c1a4f2  hakyll-4.17.0.0/lib/Hakyll/Web/Template.hs
-formatted       61c4714e9090  hakyll-4.17.0.0/lib/Hakyll/Web/Template/Context.hs
-formatted       46295fe0766a  hakyll-4.17.0.0/lib/Hakyll/Web/Template/Internal.hs
-formatted       1ba12838107a  hakyll-4.17.0.0/lib/Hakyll/Web/Template/Internal/Element.hs
-formatted       7741b1b5c63c  hakyll-4.17.0.0/lib/Hakyll/Web/Template/Internal/Trim.hs
-formatted       270fe0160883  hakyll-4.17.0.0/lib/Hakyll/Web/Template/List.hs
-formatted       73b58eb8d063  hakyll-4.17.0.0/src/Init.hs
-formatted       a98f565dc3bd  hakyll-4.17.0.0/tests/Hakyll/Core/Dependencies/Tests.hs
-formatted       178a4cbe186e  hakyll-4.17.0.0/tests/Hakyll/Core/Identifier/Tests.hs
-formatted       f8af7a73d467  hakyll-4.17.0.0/tests/Hakyll/Core/Provider/Metadata/Tests.hs
-formatted       7741f8e19a21  hakyll-4.17.0.0/tests/Hakyll/Core/Provider/Tests.hs
-formatted       0a6fac8a3fe5  hakyll-4.17.0.0/tests/Hakyll/Core/Routes/Tests.hs
-formatted       db910a6e5dc7  hakyll-4.17.0.0/tests/Hakyll/Core/Rules/Tests.hs
-formatted       82ed53ac9567  hakyll-4.17.0.0/tests/Hakyll/Core/Runtime/Tests.hs
-formatted       3a05a7e0bc33  hakyll-4.17.0.0/tests/Hakyll/Core/Store/Tests.hs
-formatted       7d940c89cef0  hakyll-4.17.0.0/tests/Hakyll/Core/UnixFilter/Tests.hs
-formatted       e736c3a104ec  hakyll-4.17.0.0/tests/Hakyll/Core/Util/String/Tests.hs
-formatted       0bb0c4e70b5a  hakyll-4.17.0.0/tests/Hakyll/Web/CompressCss/Tests.hs
-formatted       a15554f5d248  hakyll-4.17.0.0/tests/Hakyll/Web/Feed/Tests.hs
-formatted       e35e1039078b  hakyll-4.17.0.0/tests/Hakyll/Web/Html/RelativizeUrls/Tests.hs
-formatted       4744c78df9c5  hakyll-4.17.0.0/tests/Hakyll/Web/Html/Tests.hs
-formatted       c4bc526fff1a  hakyll-4.17.0.0/tests/Hakyll/Web/Pandoc/Biblio/Tests.hs
-formatted       6ca61c42770e  hakyll-4.17.0.0/tests/Hakyll/Web/Pandoc/FileType/Tests.hs
-formatted       84bc8e02e810  hakyll-4.17.0.0/tests/Hakyll/Web/Tags/Tests.hs
-formatted       22cdf7a972b8  hakyll-4.17.0.0/tests/Hakyll/Web/Template/Context/Tests.hs
-formatted       713b01148048  hakyll-4.17.0.0/tests/Hakyll/Web/Template/Tests.hs
-formatted       7638b562c2be  hakyll-4.17.0.0/tests/TestSuite.hs
-formatted       d0e8ca390798  hakyll-4.17.0.0/tests/TestSuite/Util.hs
-formatted       66153c16e099  hakyll-4.17.0.0/web/site.hs
-formatted       9226007b6541  hashable-1.5.1.0/Setup.hs
-formatted       ca97ac3a2690  hashable-1.5.1.0/examples/Main.hs
-formatted       eeae7da4f236  hashable-1.5.1.0/src/Data/Hashable.hs
-declined        -             hashable-1.5.1.0/src/Data/Hashable/Class.hs
-formatted       63527ee9cd6b  hashable-1.5.1.0/src/Data/Hashable/FFI.hs
-formatted       d2be5b809f2a  hashable-1.5.1.0/src/Data/Hashable/Generic.hs
-formatted       d0ab998f02db  hashable-1.5.1.0/src/Data/Hashable/Generic/Instances.hs
-formatted       c9c87bb00bc0  hashable-1.5.1.0/src/Data/Hashable/Imports.hs
-formatted       e6b4c010a36d  hashable-1.5.1.0/src/Data/Hashable/Lifted.hs
-formatted       710bda251742  hashable-1.5.1.0/src/Data/Hashable/LowLevel.hs
-formatted       228c88ef0843  hashable-1.5.1.0/src/Data/Hashable/Mix.hs
-formatted       bd7108c77ca4  hashable-1.5.1.0/src/Data/Hashable/XXH3.hs
-formatted       f74f5b618f9a  hashable-1.5.1.0/tests/Main.hs
-formatted       4b0bb45c43ac  hashable-1.5.1.0/tests/Properties.hs
-broken          42af08530ac7  hashable-1.5.1.0/tests/Regress.hs
-formatted       468c72120829  hashable-1.5.1.0/tests/xxhash-tests.hs
-formatted       867a035875ee  haxl-2.5.1.1/Haxl/Core.hs
-formatted       d1219c0fe211  haxl-2.5.1.1/Haxl/Core/CallGraph.hs
-formatted       0ae77138c17c  haxl-2.5.1.1/Haxl/Core/DataCache.hs
-formatted       87d5268c5c21  haxl-2.5.1.1/Haxl/Core/DataSource.hs
-formatted       5b1c04eff76f  haxl-2.5.1.1/Haxl/Core/Exception.hs
-formatted       d831d20c5b60  haxl-2.5.1.1/Haxl/Core/Fetch.hs
-formatted       b4afaa8d717d  haxl-2.5.1.1/Haxl/Core/Flags.hs
-formatted       05bc0ffa5edc  haxl-2.5.1.1/Haxl/Core/Memo.hs
-formatted       8dde76ebd719  haxl-2.5.1.1/Haxl/Core/Monad.hs
-formatted       59de6a1f9ba8  haxl-2.5.1.1/Haxl/Core/Parallel.hs
-formatted       0c9d4b9d05db  haxl-2.5.1.1/Haxl/Core/Profile.hs
-formatted       72749066756e  haxl-2.5.1.1/Haxl/Core/RequestStore.hs
-formatted       5a7f12165a3c  haxl-2.5.1.1/Haxl/Core/Run.hs
-formatted       a8e73c380c33  haxl-2.5.1.1/Haxl/Core/ShowP.hs
-formatted       f2cb25c4ae73  haxl-2.5.1.1/Haxl/Core/StateStore.hs
-formatted       fa6eb029c52a  haxl-2.5.1.1/Haxl/Core/Stats.hs
-formatted       bd368a5862fd  haxl-2.5.1.1/Haxl/Core/Util.hs
-formatted       4d201ce15d28  haxl-2.5.1.1/Haxl/DataSource/ConcurrentIO.hs
-formatted       cf38b55569d1  haxl-2.5.1.1/Haxl/Prelude.hs
-formatted       0bf115c25c25  haxl-2.5.1.1/Setup.hs
-formatted       5897e1a72e86  haxl-2.5.1.1/tests/AdoTests.hs
-formatted       7392cb2bf8df  haxl-2.5.1.1/tests/AllTests.hs
-formatted       29963bfcd43e  haxl-2.5.1.1/tests/BadDataSource.hs
-formatted       9869a85f8734  haxl-2.5.1.1/tests/BatchTests.hs
-formatted       a75656cc58b4  haxl-2.5.1.1/tests/Bench.hs
-formatted       6b4d75212e14  haxl-2.5.1.1/tests/CoreTests.hs
-formatted       46378c08a2d4  haxl-2.5.1.1/tests/DataCacheTest.hs
-formatted       8120f9ee1106  haxl-2.5.1.1/tests/DataSourceDispatchTests.hs
-formatted       33020c9fb8aa  haxl-2.5.1.1/tests/ExampleDataSource.hs
-formatted       fd091691f6be  haxl-2.5.1.1/tests/ExceptionStackTests.hs
-formatted       329e1c7e0fd4  haxl-2.5.1.1/tests/FullyAsyncTest.hs
-formatted       5b348a1f5fab  haxl-2.5.1.1/tests/LoadCache.hs
-formatted       4c9a496637db  haxl-2.5.1.1/tests/MemoizationTests.hs
-formatted       cd2dd7052af8  haxl-2.5.1.1/tests/MockTAO.hs
-formatted       679224c9d5e5  haxl-2.5.1.1/tests/MonadAsyncTest.hs
-formatted       08f288ec8741  haxl-2.5.1.1/tests/MonadBench.hs
-formatted       44fb28b20457  haxl-2.5.1.1/tests/OutgoneFetchesTests.hs
-formatted       f760bff6e190  haxl-2.5.1.1/tests/ParallelTests.hs
-formatted       643586a70ba2  haxl-2.5.1.1/tests/ProfileTests.hs
-formatted       478999c2d1bd  haxl-2.5.1.1/tests/SleepDataSource.hs
-formatted       23f293b1253d  haxl-2.5.1.1/tests/StatsTests.hs
-formatted       0deec7d41cb2  haxl-2.5.1.1/tests/TestBadDataSource.hs
-formatted       6270eac19e14  haxl-2.5.1.1/tests/TestExampleDataSource.hs
-formatted       33f33c2b6767  haxl-2.5.1.1/tests/TestMain.hs
-formatted       c0a01d1bb863  haxl-2.5.1.1/tests/TestTypes.hs
-formatted       0cdf14515138  haxl-2.5.1.1/tests/TestUtils.hs
-formatted       19781f6f8677  haxl-2.5.1.1/tests/WorkDataSource.hs
-formatted       b8be7bcaa06e  haxl-2.5.1.1/tests/WriteTests.hs
-formatted       39ae68a1e26c  hedgehog-1.7/src/Hedgehog.hs
-formatted       1c094fda6263  hedgehog-1.7/src/Hedgehog/Gen.hs
-formatted       c03c7c6e1080  hedgehog-1.7/src/Hedgehog/Internal/Barbie.hs
-formatted       d9db2ccb4bc7  hedgehog-1.7/src/Hedgehog/Internal/Config.hs
-formatted       7855a4bfe6fc  hedgehog-1.7/src/Hedgehog/Internal/Discovery.hs
-formatted       968088a89cf8  hedgehog-1.7/src/Hedgehog/Internal/Distributive.hs
-formatted       db3d79ebed8e  hedgehog-1.7/src/Hedgehog/Internal/Exception.hs
-formatted       9815c1a50552  hedgehog-1.7/src/Hedgehog/Internal/Gen.hs
-formatted       82bd44e46c74  hedgehog-1.7/src/Hedgehog/Internal/HTraversable.hs
-formatted       0b6e930c617c  hedgehog-1.7/src/Hedgehog/Internal/Opaque.hs
-formatted       0c41d0d4f087  hedgehog-1.7/src/Hedgehog/Internal/Prelude.hs
-formatted       b86df2643b9e  hedgehog-1.7/src/Hedgehog/Internal/Property.hs
-formatted       144a39866885  hedgehog-1.7/src/Hedgehog/Internal/Queue.hs
-formatted       9d14d12ad0b0  hedgehog-1.7/src/Hedgehog/Internal/Range.hs
-formatted       e83fa4c27743  hedgehog-1.7/src/Hedgehog/Internal/Region.hs
-formatted       b3790e6d22f8  hedgehog-1.7/src/Hedgehog/Internal/Report.hs
-formatted       f9b00a2731b7  hedgehog-1.7/src/Hedgehog/Internal/Runner.hs
-formatted       5c17cc008e95  hedgehog-1.7/src/Hedgehog/Internal/Seed.hs
-formatted       8b91f20c13a8  hedgehog-1.7/src/Hedgehog/Internal/Show.hs
-formatted       c446e4f9c366  hedgehog-1.7/src/Hedgehog/Internal/Shrink.hs
-formatted       c9e8e47ba6c5  hedgehog-1.7/src/Hedgehog/Internal/Source.hs
-formatted       274f471767dd  hedgehog-1.7/src/Hedgehog/Internal/State.hs
-formatted       6c94f06be1cf  hedgehog-1.7/src/Hedgehog/Internal/TH.hs
-formatted       8a627c0fefb1  hedgehog-1.7/src/Hedgehog/Internal/Tree.hs
-formatted       42e8fad71904  hedgehog-1.7/src/Hedgehog/Internal/Tripping.hs
-formatted       33c9141eeffd  hedgehog-1.7/src/Hedgehog/Main.hs
-formatted       d71772dad16c  hedgehog-1.7/src/Hedgehog/Range.hs
-formatted       e23ab85e9c05  hedgehog-1.7/test/Test/Hedgehog/Applicative.hs
-formatted       37e6a1383406  hedgehog-1.7/test/Test/Hedgehog/Confidence.hs
-formatted       937e5890d2b0  hedgehog-1.7/test/Test/Hedgehog/Filter.hs
-formatted       6e253dd6a871  hedgehog-1.7/test/Test/Hedgehog/Maybe.hs
-formatted       b90e9af1e67d  hedgehog-1.7/test/Test/Hedgehog/Seed.hs
-formatted       4edd92333a33  hedgehog-1.7/test/Test/Hedgehog/Skip.hs
-formatted       d20ec251ab72  hedgehog-1.7/test/Test/Hedgehog/Text.hs
-formatted       2d3b2e9d7168  hedgehog-1.7/test/Test/Hedgehog/Zip.hs
-formatted       df799f9ffb57  hedgehog-1.7/test/test.hs
-formatted       c7d7c0d944a8  hledger-1.52.1/Hledger/Cli.hs
-formatted       367c43f7a331  hledger-1.52.1/Hledger/Cli/Anchor.hs
-formatted       8da9d899b517  hledger-1.52.1/Hledger/Cli/Anon.hs
-formatted       4ff2914ca588  hledger-1.52.1/Hledger/Cli/CliOptions.hs
-formatted       9a8576f9b568  hledger-1.52.1/Hledger/Cli/Commands.hs
-formatted       2b1dfb85dfe1  hledger-1.52.1/Hledger/Cli/Commands/Accounts.hs
-formatted       17bf0339577c  hledger-1.52.1/Hledger/Cli/Commands/Activity.hs
-formatted       c68caf7ae7ab  hledger-1.52.1/Hledger/Cli/Commands/Add.hs
-formatted       8bc565ccfdc9  hledger-1.52.1/Hledger/Cli/Commands/Aregister.hs
-formatted       23d3572ab1c4  hledger-1.52.1/Hledger/Cli/Commands/Balance.hs
-formatted       df62b41123dc  hledger-1.52.1/Hledger/Cli/Commands/Balancesheet.hs
-formatted       2a8714e55f40  hledger-1.52.1/Hledger/Cli/Commands/Balancesheetequity.hs
-formatted       a74be8a824e5  hledger-1.52.1/Hledger/Cli/Commands/Cashflow.hs
-formatted       3d46f3fa2141  hledger-1.52.1/Hledger/Cli/Commands/Check.hs
-formatted       d72408ffa321  hledger-1.52.1/Hledger/Cli/Commands/Close.hs
-formatted       e9c489e0f01e  hledger-1.52.1/Hledger/Cli/Commands/Codes.hs
-formatted       075784a0845d  hledger-1.52.1/Hledger/Cli/Commands/Commodities.hs
-formatted       4441dcd70f80  hledger-1.52.1/Hledger/Cli/Commands/Demo.hs
-formatted       82dfab8a9677  hledger-1.52.1/Hledger/Cli/Commands/Descriptions.hs
-formatted       3999deea0979  hledger-1.52.1/Hledger/Cli/Commands/Diff.hs
-formatted       b51410797a83  hledger-1.52.1/Hledger/Cli/Commands/Files.hs
-formatted       15d50a6cb01a  hledger-1.52.1/Hledger/Cli/Commands/Help.hs
-formatted       6f60ce8d90d0  hledger-1.52.1/Hledger/Cli/Commands/Import.hs
-formatted       3fc4bde8aaae  hledger-1.52.1/Hledger/Cli/Commands/Incomestatement.hs
-formatted       e795242e76e2  hledger-1.52.1/Hledger/Cli/Commands/Notes.hs
-formatted       7868c26f6945  hledger-1.52.1/Hledger/Cli/Commands/Payees.hs
-formatted       74c42e16a7cb  hledger-1.52.1/Hledger/Cli/Commands/Prices.hs
-formatted       c1d1665ea336  hledger-1.52.1/Hledger/Cli/Commands/Print.hs
-formatted       b3664f32c410  hledger-1.52.1/Hledger/Cli/Commands/Register.hs
-formatted       fe57269eee06  hledger-1.52.1/Hledger/Cli/Commands/Rewrite.hs
-formatted       47c5a107dffd  hledger-1.52.1/Hledger/Cli/Commands/Roi.hs
-formatted       446ba4a560aa  hledger-1.52.1/Hledger/Cli/Commands/Run.hs
-formatted       518388ac79ba  hledger-1.52.1/Hledger/Cli/Commands/Setup.hs
-formatted       72882e775cf1  hledger-1.52.1/Hledger/Cli/Commands/Stats.hs
-formatted       c0d493d6d059  hledger-1.52.1/Hledger/Cli/Commands/Tags.hs
-formatted       8ca30544dcfc  hledger-1.52.1/Hledger/Cli/CompoundBalanceCommand.hs
-formatted       b20a3db0f839  hledger-1.52.1/Hledger/Cli/Conf.hs
-formatted       d2d28f0566d1  hledger-1.52.1/Hledger/Cli/DocFiles.hs
-formatted       060eef1f372e  hledger-1.52.1/Hledger/Cli/Script.hs
-formatted       3977570cbdad  hledger-1.52.1/Hledger/Cli/Utils.hs
-formatted       54a7475ed07e  hledger-1.52.1/Hledger/Cli/Version.hs
-formatted       e865ae48f11b  hledger-1.52.1/Setup.hs
-formatted       5f05220c744b  hledger-1.52.1/app/hledger-cli.hs
-formatted       f7397f99b8f6  hledger-1.52.1/bench/bench.hs
-formatted       770ce114d693  hledger-1.52.1/test/unittest.hs
-formatted       e865ae48f11b  hlint-3.10/Setup.hs
-formatted       0b9c394414b3  hlint-3.10/data/HLint_QuickCheck.hs
-declined        -             hlint-3.10/data/HLint_TypeCheck.hs
-formatted       7f62e2698706  hlint-3.10/data/Test.hs
-formatted       a3cf0d266650  hlint-3.10/src/Apply.hs
-formatted       8114bd9792d9  hlint-3.10/src/CC.hs
-formatted       0b9726856d3e  hlint-3.10/src/CmdLine.hs
-formatted       5ecebf30e886  hlint-3.10/src/Config/Compute.hs
-formatted       76a1b906c927  hlint-3.10/src/Config/Haskell.hs
-formatted       747182f5f5c1  hlint-3.10/src/Config/Read.hs
-formatted       36ef2b52eee9  hlint-3.10/src/Config/Type.hs
-declined        -             hlint-3.10/src/Config/Yaml.hs
-formatted       871e24292ba2  hlint-3.10/src/EmbedData.hs
-formatted       a0cce8b000d7  hlint-3.10/src/Extension.hs
-formatted       232c5ddbbb9b  hlint-3.10/src/Fixity.hs
-formatted       1c82631c3859  hlint-3.10/src/GHC/All.hs
-formatted       63d81c2c405a  hlint-3.10/src/GHC/Util.hs
-formatted       f8ab552f2009  hlint-3.10/src/GHC/Util/ApiAnnotation.hs
-formatted       c2680a511d29  hlint-3.10/src/GHC/Util/Brackets.hs
-formatted       8cff3984ef92  hlint-3.10/src/GHC/Util/DynFlags.hs
-formatted       7c1f93703a5a  hlint-3.10/src/GHC/Util/FreeVars.hs
-formatted       3d386a403912  hlint-3.10/src/GHC/Util/HsDecl.hs
-formatted       86e7bc3b5850  hlint-3.10/src/GHC/Util/HsExpr.hs
-formatted       e4c7dc5d6be8  hlint-3.10/src/GHC/Util/Scope.hs
-formatted       d8a06089d209  hlint-3.10/src/GHC/Util/SrcLoc.hs
-formatted       57a53e29344b  hlint-3.10/src/GHC/Util/Unify.hs
-formatted       b405492ce03f  hlint-3.10/src/GHC/Util/View.hs
-formatted       6a92057478ff  hlint-3.10/src/HLint.hs
-formatted       9c128d41e9da  hlint-3.10/src/Hint/All.hs
-formatted       92b62ac403c1  hlint-3.10/src/Hint/Bracket.hs
-formatted       e0953eb3c567  hlint-3.10/src/Hint/Comment.hs
-formatted       4a34094f4e91  hlint-3.10/src/Hint/Duplicate.hs
-formatted       63510e8bd4a6  hlint-3.10/src/Hint/Export.hs
-formatted       c3f23d24fb11  hlint-3.10/src/Hint/Extensions.hs
-formatted       8499a9dafb7a  hlint-3.10/src/Hint/Fixities.hs
-formatted       8fffda41f5e4  hlint-3.10/src/Hint/Import.hs
-formatted       e2ae13afdd01  hlint-3.10/src/Hint/Lambda.hs
-formatted       272b8222175a  hlint-3.10/src/Hint/List.hs
-formatted       bd27e035ec08  hlint-3.10/src/Hint/ListRec.hs
-formatted       3027b7686bbd  hlint-3.10/src/Hint/Match.hs
-formatted       7215f269ef89  hlint-3.10/src/Hint/Monad.hs
-formatted       4d078aac9ede  hlint-3.10/src/Hint/Naming.hs
-formatted       a1a5d9519cee  hlint-3.10/src/Hint/Negation.hs
-formatted       9bd70a7dc4ae  hlint-3.10/src/Hint/NewType.hs
-formatted       f6fa0661942d  hlint-3.10/src/Hint/NumLiteral.hs
-formatted       b961726611b0  hlint-3.10/src/Hint/Pattern.hs
-formatted       0076ccb5bd1c  hlint-3.10/src/Hint/Pragma.hs
-formatted       d6403b65887f  hlint-3.10/src/Hint/Restrict.hs
-formatted       b85945417175  hlint-3.10/src/Hint/Smell.hs
-formatted       3308ee100b88  hlint-3.10/src/Hint/Type.hs
-formatted       a7c7f90eb40c  hlint-3.10/src/Hint/Unsafe.hs
-formatted       48cd04ad2e02  hlint-3.10/src/HsColour.hs
-formatted       dd9801a47942  hlint-3.10/src/Idea.hs
-formatted       576b754ba5d4  hlint-3.10/src/Language/Haskell/HLint.hs
-formatted       7b8846cb4591  hlint-3.10/src/Main.hs
-formatted       fcdf50a5835c  hlint-3.10/src/Parallel.hs
-formatted       cddb107b52b7  hlint-3.10/src/Refact.hs
-formatted       97865215d682  hlint-3.10/src/Report.hs
-formatted       5752f0cb1c82  hlint-3.10/src/SARIF.hs
-formatted       3a554bc4caa1  hlint-3.10/src/Summary.hs
-formatted       3b64750323e1  hlint-3.10/src/Test/All.hs
-formatted       2dbc7a87e003  hlint-3.10/src/Test/Annotations.hs
-formatted       d9f760fed213  hlint-3.10/src/Test/InputOutput.hs
-formatted       265163b13605  hlint-3.10/src/Test/Util.hs
-formatted       0f5eb69b44dd  hlint-3.10/src/Timing.hs
-formatted       40bafe709540  hlint-3.10/src/Util.hs
-formatted       14f5f9f6c72a  hspec-core-2.11.17/src/GetOpt/Declarative.hs
-formatted       13b54fc56d9e  hspec-core-2.11.17/src/GetOpt/Declarative/Environment.hs
-formatted       ac874aa7540a  hspec-core-2.11.17/src/GetOpt/Declarative/Interpret.hs
-formatted       aed8c8d69571  hspec-core-2.11.17/src/GetOpt/Declarative/Types.hs
-formatted       7963314c7b2d  hspec-core-2.11.17/src/GetOpt/Declarative/Util.hs
-formatted       c59700aebda7  hspec-core-2.11.17/src/Test/Hspec/Core/Annotations.hs
-formatted       aaed3a708e2b  hspec-core-2.11.17/src/Test/Hspec/Core/Clock.hs
-broken          043159a88536  hspec-core-2.11.17/src/Test/Hspec/Core/Compat.hs
-formatted       f5ded9eab569  hspec-core-2.11.17/src/Test/Hspec/Core/Config.hs
-formatted       b9ed2689f1a4  hspec-core-2.11.17/src/Test/Hspec/Core/Config/Definition.hs
-formatted       2c2affbefb39  hspec-core-2.11.17/src/Test/Hspec/Core/Config/Options.hs
-formatted       d65135838a37  hspec-core-2.11.17/src/Test/Hspec/Core/Example.hs
-formatted       e124d4a06c47  hspec-core-2.11.17/src/Test/Hspec/Core/Example/Location.hs
-formatted       19c90134f072  hspec-core-2.11.17/src/Test/Hspec/Core/Extension.hs
-formatted       b5766e2580e3  hspec-core-2.11.17/src/Test/Hspec/Core/Extension/Config.hs
-formatted       b0c9672ff2ee  hspec-core-2.11.17/src/Test/Hspec/Core/Extension/Config/Type.hs
-formatted       dfaf22b9e266  hspec-core-2.11.17/src/Test/Hspec/Core/Extension/Item.hs
-formatted       61fffea8ad44  hspec-core-2.11.17/src/Test/Hspec/Core/Extension/Option.hs
-formatted       2c1d2b4038d2  hspec-core-2.11.17/src/Test/Hspec/Core/Extension/Spec.hs
-formatted       090871045b95  hspec-core-2.11.17/src/Test/Hspec/Core/Extension/Tree.hs
-formatted       9a4c4c61d167  hspec-core-2.11.17/src/Test/Hspec/Core/FailureReport.hs
-formatted       a49d2bd24295  hspec-core-2.11.17/src/Test/Hspec/Core/Format.hs
-formatted       b8b03afd38ee  hspec-core-2.11.17/src/Test/Hspec/Core/Formatters.hs
-formatted       0f6c87760ec2  hspec-core-2.11.17/src/Test/Hspec/Core/Formatters/Diff.hs
-formatted       3cff8cbca823  hspec-core-2.11.17/src/Test/Hspec/Core/Formatters/Internal.hs
-formatted       7b21864b9eed  hspec-core-2.11.17/src/Test/Hspec/Core/Formatters/Pretty.hs
-formatted       71e26cb11ffa  hspec-core-2.11.17/src/Test/Hspec/Core/Formatters/Pretty/Parser.hs
-formatted       07264fb33ca8  hspec-core-2.11.17/src/Test/Hspec/Core/Formatters/Pretty/Unicode.hs
-formatted       32564aeda195  hspec-core-2.11.17/src/Test/Hspec/Core/Formatters/V1.hs
-formatted       f7f280a9eab8  hspec-core-2.11.17/src/Test/Hspec/Core/Formatters/V1/Free.hs
-formatted       be38872426b7  hspec-core-2.11.17/src/Test/Hspec/Core/Formatters/V1/Internal.hs
-formatted       94d88619a62f  hspec-core-2.11.17/src/Test/Hspec/Core/Formatters/V1/Monad.hs
-formatted       b83d7732b214  hspec-core-2.11.17/src/Test/Hspec/Core/Formatters/V2.hs
-formatted       f3ed1fa624ba  hspec-core-2.11.17/src/Test/Hspec/Core/Hooks.hs
-formatted       d7e33bec18c0  hspec-core-2.11.17/src/Test/Hspec/Core/QuickCheck.hs
-formatted       6285779479c8  hspec-core-2.11.17/src/Test/Hspec/Core/QuickCheck/Util.hs
-formatted       1be2d9c4a008  hspec-core-2.11.17/src/Test/Hspec/Core/Runner.hs
-formatted       559e8587e33c  hspec-core-2.11.17/src/Test/Hspec/Core/Runner/Eval.hs
-formatted       45d877a0b59c  hspec-core-2.11.17/src/Test/Hspec/Core/Runner/JobQueue.hs
-formatted       486c3e882e3e  hspec-core-2.11.17/src/Test/Hspec/Core/Runner/PrintSlowSpecItems.hs
-formatted       36777b3d173e  hspec-core-2.11.17/src/Test/Hspec/Core/Runner/Result.hs
-formatted       d699e2b567f5  hspec-core-2.11.17/src/Test/Hspec/Core/Shuffle.hs
-formatted       929d1248e847  hspec-core-2.11.17/src/Test/Hspec/Core/Spec.hs
-formatted       36dcfb961aa9  hspec-core-2.11.17/src/Test/Hspec/Core/Spec/Monad.hs
-formatted       1b327d112974  hspec-core-2.11.17/src/Test/Hspec/Core/Timer.hs
-formatted       32318dd91cf8  hspec-core-2.11.17/src/Test/Hspec/Core/Tree.hs
-formatted       80d2d2b8d380  hspec-core-2.11.17/src/Test/Hspec/Core/Util.hs
-formatted       e06b7cc46fd9  hspec-core-2.11.17/test/GetOpt/Declarative/EnvironmentSpec.hs
-formatted       6655e2e71bb3  hspec-core-2.11.17/test/GetOpt/Declarative/UtilSpec.hs
-formatted       aaa94a74898c  hspec-core-2.11.17/test/Helper.hs
-formatted       10aa2070ffb6  hspec-core-2.11.17/test/Mock.hs
-formatted       42263bafabb2  hspec-core-2.11.17/test/Spec.hs
-formatted       409fb8a0b5e3  hspec-core-2.11.17/test/SpecHook.hs
-formatted       ae9de2079048  hspec-core-2.11.17/test/Test/Hspec/Core/AnnotationsSpec.hs
-formatted       1157d1650ac3  hspec-core-2.11.17/test/Test/Hspec/Core/ClockSpec.hs
-formatted       819d29d3431f  hspec-core-2.11.17/test/Test/Hspec/Core/CompatSpec.hs
-formatted       e5db68e3c868  hspec-core-2.11.17/test/Test/Hspec/Core/Config/DefinitionSpec.hs
-formatted       105756fabf5e  hspec-core-2.11.17/test/Test/Hspec/Core/Config/OptionsSpec.hs
-formatted       edfe82f15e2d  hspec-core-2.11.17/test/Test/Hspec/Core/ConfigSpec.hs
-formatted       beef08e20fe4  hspec-core-2.11.17/test/Test/Hspec/Core/Example/LocationSpec.hs
-formatted       d51ddf803043  hspec-core-2.11.17/test/Test/Hspec/Core/ExampleSpec.hs
-formatted       1a45c62099d0  hspec-core-2.11.17/test/Test/Hspec/Core/FailureReportSpec.hs
-formatted       8992979a0121  hspec-core-2.11.17/test/Test/Hspec/Core/FormatSpec.hs
-formatted       c2d7791f1000  hspec-core-2.11.17/test/Test/Hspec/Core/Formatters/DiffSpec.hs
-formatted       cb3d38eb1461  hspec-core-2.11.17/test/Test/Hspec/Core/Formatters/InternalSpec.hs
-formatted       2ffb49f5a742  hspec-core-2.11.17/test/Test/Hspec/Core/Formatters/Pretty/ParserSpec.hs
-formatted       afa9ffaa3bf1  hspec-core-2.11.17/test/Test/Hspec/Core/Formatters/Pretty/UnicodeSpec.hs
-formatted       ac2da1dd4d6b  hspec-core-2.11.17/test/Test/Hspec/Core/Formatters/PrettySpec.hs
-formatted       2665482bea3b  hspec-core-2.11.17/test/Test/Hspec/Core/Formatters/V1Spec.hs
-formatted       fdce61371e6b  hspec-core-2.11.17/test/Test/Hspec/Core/Formatters/V2Spec.hs
-formatted       b43a06946394  hspec-core-2.11.17/test/Test/Hspec/Core/HooksSpec.hs
-formatted       788492850ef9  hspec-core-2.11.17/test/Test/Hspec/Core/QuickCheck/UtilSpec.hs
-formatted       775321ce08bf  hspec-core-2.11.17/test/Test/Hspec/Core/Runner/EvalSpec.hs
-formatted       1a7b81d688ce  hspec-core-2.11.17/test/Test/Hspec/Core/Runner/JobQueueSpec.hs
-formatted       a0e5092545a6  hspec-core-2.11.17/test/Test/Hspec/Core/Runner/PrintSlowSpecItemsSpec.hs
-formatted       2781ae88628b  hspec-core-2.11.17/test/Test/Hspec/Core/Runner/ResultSpec.hs
-formatted       f416fc0ebea5  hspec-core-2.11.17/test/Test/Hspec/Core/RunnerSpec.hs
-formatted       be08f1178641  hspec-core-2.11.17/test/Test/Hspec/Core/ShuffleSpec.hs
-formatted       6c250c13b42b  hspec-core-2.11.17/test/Test/Hspec/Core/SpecSpec.hs
-formatted       ccd964421c9d  hspec-core-2.11.17/test/Test/Hspec/Core/TimerSpec.hs
-formatted       ad44f3bb30b2  hspec-core-2.11.17/test/Test/Hspec/Core/TreeSpec.hs
-formatted       a46fa24d2bd0  hspec-core-2.11.17/test/Test/Hspec/Core/UtilSpec.hs
-formatted       e13927dd80dc  hspec-core-2.11.17/vendor/Data/Algorithm/Diff.hs
-partly-checked  f983214ae642  hspec-core-2.11.17/vendor/async-2.2.5/Control/Concurrent/Async.hs
-formatted       bea44982097a  hspec-core-2.11.17/vendor/stm-2.5.0.1/Control/Concurrent/STM/TMVar.hs
-formatted       b3d4964504e7  http-client-0.7.19/Data/KeyedPool.hs
-formatted       3e436f1b2afb  http-client-0.7.19/Network/HTTP/Client.hs
-formatted       547642efe2cc  http-client-0.7.19/Network/HTTP/Client/Body.hs
-formatted       d5454cf22a87  http-client-0.7.19/Network/HTTP/Client/Connection.hs
-formatted       b7a129091d84  http-client-0.7.19/Network/HTTP/Client/Cookies.hs
-formatted       d532447f828a  http-client-0.7.19/Network/HTTP/Client/Core.hs
-formatted       7a5aad8e01a5  http-client-0.7.19/Network/HTTP/Client/Headers.hs
-formatted       44b1ad27a89e  http-client-0.7.19/Network/HTTP/Client/Internal.hs
-formatted       e04e09593516  http-client-0.7.19/Network/HTTP/Client/Manager.hs
-formatted       91acc2df5de6  http-client-0.7.19/Network/HTTP/Client/MultipartFormData.hs
-formatted       c91e32be7257  http-client-0.7.19/Network/HTTP/Client/Request.hs
-formatted       cf2358330a5c  http-client-0.7.19/Network/HTTP/Client/Response.hs
-formatted       d48abdb1339e  http-client-0.7.19/Network/HTTP/Client/Types.hs
-formatted       ca6a48d5e983  http-client-0.7.19/Network/HTTP/Client/Util.hs
-formatted       824fcf5320e3  http-client-0.7.19/Network/HTTP/Proxy.hs
-formatted       e865ae48f11b  http-client-0.7.19/Setup.hs
-formatted       b1d3bc1d8679  http-client-0.7.19/publicsuffixlist/Network/PublicSuffixList/DataStructure.hs
-formatted       245d124b8415  http-client-0.7.19/publicsuffixlist/Network/PublicSuffixList/Lookup.hs
-formatted       765e07adf78d  http-client-0.7.19/publicsuffixlist/Network/PublicSuffixList/Serialize.hs
-formatted       a7f41d1b5ab1  http-client-0.7.19/publicsuffixlist/Network/PublicSuffixList/Types.hs
-formatted       5a31984d56fd  http-client-0.7.19/test-nonet/Network/HTTP/Client/BodySpec.hs
-formatted       329d7775ecfb  http-client-0.7.19/test-nonet/Network/HTTP/Client/ConnectionSpec.hs
-formatted       c152236f3c88  http-client-0.7.19/test-nonet/Network/HTTP/Client/CookieSpec.hs
-formatted       11f71ff1af3c  http-client-0.7.19/test-nonet/Network/HTTP/Client/HeadersSpec.hs
-formatted       37bbc630210e  http-client-0.7.19/test-nonet/Network/HTTP/Client/RequestBodySpec.hs
-formatted       9d193cb0c288  http-client-0.7.19/test-nonet/Network/HTTP/Client/RequestSpec.hs
-formatted       5109990dfcb0  http-client-0.7.19/test-nonet/Network/HTTP/Client/ResponseSpec.hs
-formatted       78f0fd41871c  http-client-0.7.19/test-nonet/Network/HTTP/ClientSpec.hs
-formatted       2fbd14b119a4  http-client-0.7.19/test-nonet/Spec.hs
-formatted       5a4d43a61ed2  http-client-0.7.19/test/Network/HTTP/ClientSpec.hs
-formatted       2fbd14b119a4  http-client-0.7.19/test/Spec.hs
-formatted       13d151556922  http-types-0.12.6/Network/HTTP/Types.hs
-formatted       e7eff6d3c526  http-types-0.12.6/Network/HTTP/Types/Header.hs
-formatted       26f2850b0a92  http-types-0.12.6/Network/HTTP/Types/Method.hs
-formatted       937169187cf1  http-types-0.12.6/Network/HTTP/Types/QueryLike.hs
-formatted       973c6368ae63  http-types-0.12.6/Network/HTTP/Types/Status.hs
-formatted       8393cb3031e8  http-types-0.12.6/Network/HTTP/Types/URI.hs
-formatted       f437cc36b9fa  http-types-0.12.6/Network/HTTP/Types/Version.hs
-formatted       e865ae48f11b  http-types-0.12.6/Setup.hs
-formatted       7d11c2eb808e  http-types-0.12.6/test/Network/HTTP/Types/HeaderSpec.hs
-formatted       1816a6090b5e  http-types-0.12.6/test/Network/HTTP/Types/MethodSpec.hs
-formatted       848ef1c45ded  http-types-0.12.6/test/Network/HTTP/Types/StatusSpec.hs
-formatted       9a3fe7ad6e47  http-types-0.12.6/test/Network/HTTP/Types/URISpec.hs
-formatted       5ac67585c5a1  http-types-0.12.6/test/Network/HTTP/Types/VersionSpec.hs
-formatted       2fbd14b119a4  http-types-0.12.6/test/Spec.hs
-formatted       6d7c004ed36a  http-types-0.12.6/test/doctests.hs
-declined        -             idris-1.3.4/Setup.hs
-formatted       6c39a6764f61  idris-1.3.4/codegen/idris-codegen-c/Main.hs
-formatted       66ce632c5bcb  idris-1.3.4/codegen/idris-codegen-javascript/Main.hs
-formatted       06a7843d0cd6  idris-1.3.4/codegen/idris-codegen-node/Main.hs
-formatted       eaa6467947db  idris-1.3.4/main/Main.hs
-formatted       3fd541795c69  idris-1.3.4/src/IRTS/Bytecode.hs
-formatted       9c31d32e255a  idris-1.3.4/src/IRTS/CodegenC.hs
-formatted       9e5812762ec8  idris-1.3.4/src/IRTS/CodegenCommon.hs
-formatted       563f242aebaf  idris-1.3.4/src/IRTS/CodegenJavaScript.hs
-formatted       c9cee36f8fdf  idris-1.3.4/src/IRTS/Compiler.hs
-formatted       649c4334c449  idris-1.3.4/src/IRTS/Defunctionalise.hs
-formatted       521a60c0c99b  idris-1.3.4/src/IRTS/DumpBC.hs
-formatted       67e26a69bf18  idris-1.3.4/src/IRTS/Exports.hs
-formatted       9e44d172890b  idris-1.3.4/src/IRTS/Inliner.hs
-formatted       ca2a16bd8e2f  idris-1.3.4/src/IRTS/JavaScript/AST.hs
-formatted       783e391156ee  idris-1.3.4/src/IRTS/JavaScript/Codegen.hs
-formatted       b171baf09627  idris-1.3.4/src/IRTS/JavaScript/LangTransforms.hs
-formatted       837e1fafadd6  idris-1.3.4/src/IRTS/JavaScript/Name.hs
-formatted       cd5cebdbb649  idris-1.3.4/src/IRTS/JavaScript/PrimOp.hs
-formatted       5eff81bf418b  idris-1.3.4/src/IRTS/JavaScript/Specialize.hs
-formatted       be460f171d5f  idris-1.3.4/src/IRTS/Lang.hs
-formatted       877532317321  idris-1.3.4/src/IRTS/LangOpts.hs
-formatted       54ee13488588  idris-1.3.4/src/IRTS/Portable.hs
-formatted       c092168371c9  idris-1.3.4/src/IRTS/Simplified.hs
-formatted       8a93ea593409  idris-1.3.4/src/IRTS/System.hs
-formatted       0b84ce237bb8  idris-1.3.4/src/Idris/ASTUtils.hs
-broken          4ab968445573  idris-1.3.4/src/Idris/AbsSyntax.hs
-formatted       5d7408d71382  idris-1.3.4/src/Idris/AbsSyntaxTree.hs
-formatted       9f032fa98b74  idris-1.3.4/src/Idris/Apropos.hs
-formatted       d0256ad5e06e  idris-1.3.4/src/Idris/CaseSplit.hs
-formatted       887228791bf4  idris-1.3.4/src/Idris/Chaser.hs
-formatted       a47646c618f2  idris-1.3.4/src/Idris/CmdOptions.hs
-formatted       4da7f931a59f  idris-1.3.4/src/Idris/Colours.hs
-formatted       f4a75f24bcf9  idris-1.3.4/src/Idris/Completion.hs
-formatted       499686be90c6  idris-1.3.4/src/Idris/Core/Binary.hs
-formatted       306094253161  idris-1.3.4/src/Idris/Core/CaseTree.hs
-formatted       fa5732ba0860  idris-1.3.4/src/Idris/Core/Constraints.hs
-formatted       32e1f1dc7a41  idris-1.3.4/src/Idris/Core/DeepSeq.hs
-formatted       de3d97104fff  idris-1.3.4/src/Idris/Core/Elaborate.hs
-formatted       0a4a3162394e  idris-1.3.4/src/Idris/Core/Evaluate.hs
-formatted       248e1a132506  idris-1.3.4/src/Idris/Core/Execute.hs
-formatted       71595a0d7382  idris-1.3.4/src/Idris/Core/ProofState.hs
-formatted       54380e55c12e  idris-1.3.4/src/Idris/Core/ProofTerm.hs
-formatted       335b146f54a6  idris-1.3.4/src/Idris/Core/TT.hs
-formatted       418dc775272d  idris-1.3.4/src/Idris/Core/Typecheck.hs
-formatted       1125cc1a59f1  idris-1.3.4/src/Idris/Core/Unify.hs
-formatted       71eb35dcc836  idris-1.3.4/src/Idris/Core/WHNF.hs
-formatted       e884d58256bb  idris-1.3.4/src/Idris/Coverage.hs
-formatted       61677e52356c  idris-1.3.4/src/Idris/DSL.hs
-formatted       04b448aefa16  idris-1.3.4/src/Idris/DataOpts.hs
-formatted       591136fc0c25  idris-1.3.4/src/Idris/DeepSeq.hs
-formatted       5f5aff7f4f6d  idris-1.3.4/src/Idris/Delaborate.hs
-formatted       c0a210b99952  idris-1.3.4/src/Idris/Directives.hs
-formatted       3d3d5a0afe4c  idris-1.3.4/src/Idris/Docs.hs
-formatted       a485f5642886  idris-1.3.4/src/Idris/Docstrings.hs
-formatted       a1c474156864  idris-1.3.4/src/Idris/Elab/AsPat.hs
-formatted       b2f9d95c85c2  idris-1.3.4/src/Idris/Elab/Clause.hs
-formatted       9e5c2909e062  idris-1.3.4/src/Idris/Elab/Data.hs
-formatted       ed958562399c  idris-1.3.4/src/Idris/Elab/Implementation.hs
-formatted       9349c5236898  idris-1.3.4/src/Idris/Elab/Interface.hs
-formatted       7c5f6b45e740  idris-1.3.4/src/Idris/Elab/Provider.hs
-formatted       432315b423c7  idris-1.3.4/src/Idris/Elab/Quasiquote.hs
-formatted       229f49cf1c9d  idris-1.3.4/src/Idris/Elab/Record.hs
-formatted       38c4274131ac  idris-1.3.4/src/Idris/Elab/Rewrite.hs
-formatted       77ebc33633f8  idris-1.3.4/src/Idris/Elab/RunElab.hs
-formatted       63bebea5b00c  idris-1.3.4/src/Idris/Elab/Term.hs
-formatted       43565a6d9bac  idris-1.3.4/src/Idris/Elab/Transform.hs
-formatted       cf8cbbec4fe7  idris-1.3.4/src/Idris/Elab/Type.hs
-formatted       6546f8cfdb65  idris-1.3.4/src/Idris/Elab/Utils.hs
-formatted       ac9c50ffdaf7  idris-1.3.4/src/Idris/Elab/Value.hs
-formatted       de7dafd8bd53  idris-1.3.4/src/Idris/ElabDecls.hs
-formatted       68025bd6dc21  idris-1.3.4/src/Idris/Erasure.hs
-formatted       7c4b0ef95bf4  idris-1.3.4/src/Idris/ErrReverse.hs
-formatted       28314a1db8cc  idris-1.3.4/src/Idris/Error.hs
-formatted       21bcb871fca8  idris-1.3.4/src/Idris/Help.hs
-formatted       e70cd4eb645a  idris-1.3.4/src/Idris/IBC.hs
-formatted       cce75249d4d5  idris-1.3.4/src/Idris/IdeMode.hs
-formatted       e909e2fe452b  idris-1.3.4/src/Idris/IdrisDoc.hs
-formatted       8b7f62814233  idris-1.3.4/src/Idris/Imports.hs
-formatted       3e21520569d8  idris-1.3.4/src/Idris/Info.hs
-formatted       90f54928d9ca  idris-1.3.4/src/Idris/Info/Show.hs
-formatted       eb72f451c8f1  idris-1.3.4/src/Idris/Inliner.hs
-formatted       5ef6f905cab7  idris-1.3.4/src/Idris/Interactive.hs
-formatted       5071375a4820  idris-1.3.4/src/Idris/Main.hs
-formatted       b65944ecc220  idris-1.3.4/src/Idris/ModeCommon.hs
-formatted       28bd80263c16  idris-1.3.4/src/Idris/Options.hs
-formatted       02fa432a9240  idris-1.3.4/src/Idris/Output.hs
-formatted       8f1650d3c095  idris-1.3.4/src/Idris/Package.hs
-formatted       2a5fae85b8c9  idris-1.3.4/src/Idris/Package/Common.hs
-formatted       90885df148d3  idris-1.3.4/src/Idris/Package/Parser.hs
-formatted       5fc13e822179  idris-1.3.4/src/Idris/Parser.hs
-formatted       d367b2f46d9f  idris-1.3.4/src/Idris/Parser/Data.hs
-formatted       9475514d3152  idris-1.3.4/src/Idris/Parser/Expr.hs
-formatted       1c16d75635f7  idris-1.3.4/src/Idris/Parser/Helpers.hs
-formatted       00297a830b2d  idris-1.3.4/src/Idris/Parser/Ops.hs
-formatted       4c95439ef192  idris-1.3.4/src/Idris/Parser/Stack.hs
-formatted       f0e3821f6651  idris-1.3.4/src/Idris/PartialEval.hs
-formatted       58ad84ded5d8  idris-1.3.4/src/Idris/Primitives.hs
-formatted       55a7e58fbd43  idris-1.3.4/src/Idris/ProofSearch.hs
-formatted       4e3b3f931f23  idris-1.3.4/src/Idris/Prover.hs
-formatted       b2ed059dd3da  idris-1.3.4/src/Idris/Providers.hs
-formatted       f1e4c14b910c  idris-1.3.4/src/Idris/REPL.hs
-formatted       d43671c3f627  idris-1.3.4/src/Idris/REPL/Browse.hs
-formatted       adeb73659e58  idris-1.3.4/src/Idris/REPL/Commands.hs
-formatted       34b1bf56383b  idris-1.3.4/src/Idris/REPL/Parser.hs
-formatted       a35f4ee64226  idris-1.3.4/src/Idris/Reflection.hs
-formatted       bb390b89c850  idris-1.3.4/src/Idris/Termination.hs
-formatted       6837e439e7d6  idris-1.3.4/src/Idris/Transforms.hs
-formatted       06befdb6fc0c  idris-1.3.4/src/Idris/TypeSearch.hs
-formatted       efed23bf7411  idris-1.3.4/src/Idris/Unlit.hs
-formatted       b613b7be20de  idris-1.3.4/src/Idris/WhoCalls.hs
-declined        -             idris-1.3.4/src/Util/DynamicLinker.hs
-formatted       298e72ccbb61  idris-1.3.4/src/Util/Net.hs
-formatted       f47f361e150a  idris-1.3.4/src/Util/Pretty.hs
-formatted       13363649406c  idris-1.3.4/src/Util/ScreenSize.hs
-formatted       7d39399c082d  idris-1.3.4/src/Util/System.hs
-formatted       ff2fc4a7a778  idris-1.3.4/test/TestData.hs
-formatted       720af8681b46  idris-1.3.4/test/TestRun.hs
-formatted       e865ae48f11b  intero-0.1.40/Setup.hs
-formatted       2179d52567a7  intero-0.1.40/src/Completion.hs
-formatted       3cb1551c3e6d  intero-0.1.40/src/GhciFind.hs
-partly-checked  337930d69360  intero-0.1.40/src/GhciInfo.hs
-formatted       ca4cd509270a  intero-0.1.40/src/GhciMonad.hs
-formatted       43c5576cb10f  intero-0.1.40/src/GhciTags.hs
-formatted       72999d5c814e  intero-0.1.40/src/GhciTypes.hs
-declined        -             intero-0.1.40/src/InteractiveUI.hs
-formatted       d3b894941b5e  intero-0.1.40/src/Intero/Compat.hs
-declined        -             intero-0.1.40/src/Main.hs
-formatted       13b22f1a2f96  intero-0.1.40/src/test/Main.hs
-formatted       4fe73bbfe233  leksah-0.16.2.2/data/leksah-welcome/src/Main.hs
-formatted       1cefb44a49bc  leksah-0.16.2.2/data/leksah-welcome/test/Main.hs
-formatted       9b1bc79c9ca2  leksah-0.16.2.2/main/Main.hs
-formatted       f85b57b39a49  leksah-0.16.2.2/src/IDE/BufferMode.hs
-formatted       04ce4038bfa5  leksah-0.16.2.2/src/IDE/Build.hs
-formatted       c91b409f9724  leksah-0.16.2.2/src/IDE/Command.hs
-formatted       311f46674981  leksah-0.16.2.2/src/IDE/Command/Print.hs
-formatted       3587f60b8002  leksah-0.16.2.2/src/IDE/Command/VCS.hs
-formatted       4c605686bc49  leksah-0.16.2.2/src/IDE/Command/VCS/Common.hs
-formatted       800101f9a2a4  leksah-0.16.2.2/src/IDE/Command/VCS/Common/GUI.hs
-formatted       06c097b39c19  leksah-0.16.2.2/src/IDE/Command/VCS/Common/Helper.hs
-formatted       8615cfe9c636  leksah-0.16.2.2/src/IDE/Command/VCS/Common/Workspaces.hs
-formatted       703e291d1e3f  leksah-0.16.2.2/src/IDE/Command/VCS/GIT.hs
-formatted       5bebaffe9dd2  leksah-0.16.2.2/src/IDE/Command/VCS/Mercurial.hs
-formatted       5af0b2acf931  leksah-0.16.2.2/src/IDE/Command/VCS/SVN.hs
-formatted       092138f05183  leksah-0.16.2.2/src/IDE/Command/VCS/Types.hs
-formatted       bd0b4fcf92e3  leksah-0.16.2.2/src/IDE/Completion.hs
-formatted       ee31e800e58b  leksah-0.16.2.2/src/IDE/Core/State.hs
-formatted       9083c43cc5be  leksah-0.16.2.2/src/IDE/Core/Types.hs
-formatted       375889d7ec16  leksah-0.16.2.2/src/IDE/Debug.hs
-does-not-parse  -             leksah-0.16.2.2/src/IDE/Find.hs
-formatted       ca0b06346e9b  leksah-0.16.2.2/src/IDE/GUIHistory.hs
-formatted       b9c2b4c52ba2  leksah-0.16.2.2/src/IDE/HLint.hs
-formatted       c88bafa6fd21  leksah-0.16.2.2/src/IDE/ImportTool.hs
-formatted       e95cc4a80230  leksah-0.16.2.2/src/IDE/Keymap.hs
-formatted       3f0638c605cd  leksah-0.16.2.2/src/IDE/LPaste.hs
-formatted       9fa364538e13  leksah-0.16.2.2/src/IDE/Leksah.hs
-formatted       229f425b195b  leksah-0.16.2.2/src/IDE/LogRef.hs
-formatted       fd6764bf4d1f  leksah-0.16.2.2/src/IDE/Metainfo/Provider.hs
-formatted       32e0957c2aa5  leksah-0.16.2.2/src/IDE/NotebookFlipper.hs
-formatted       d441d0417158  leksah-0.16.2.2/src/IDE/OSX.hs
-formatted       9773aa44e1f7  leksah-0.16.2.2/src/IDE/Package.hs
-formatted       59c82086f3fb  leksah-0.16.2.2/src/IDE/Pane/Breakpoints.hs
-formatted       1590e7831013  leksah-0.16.2.2/src/IDE/Pane/Errors.hs
-formatted       65a5181355a0  leksah-0.16.2.2/src/IDE/Pane/Files.hs
-formatted       fae74ac3b1ee  leksah-0.16.2.2/src/IDE/Pane/Grep.hs
-formatted       8322865655a5  leksah-0.16.2.2/src/IDE/Pane/HLint.hs
-formatted       2cc74d884f25  leksah-0.16.2.2/src/IDE/Pane/Info.hs
-formatted       84026b055134  leksah-0.16.2.2/src/IDE/Pane/Log.hs
-formatted       88d223364b06  leksah-0.16.2.2/src/IDE/Pane/Modules.hs
-broken          a567b56cc5f6  leksah-0.16.2.2/src/IDE/Pane/PackageEditor.hs
-formatted       e551f5f880ef  leksah-0.16.2.2/src/IDE/Pane/PackageFlags.hs
-formatted       021c30d05e66  leksah-0.16.2.2/src/IDE/Pane/Search.hs
-formatted       0896ee40207a  leksah-0.16.2.2/src/IDE/Pane/SourceBuffer.hs
-formatted       52733de58564  leksah-0.16.2.2/src/IDE/Pane/Trace.hs
-formatted       70de0231fabd  leksah-0.16.2.2/src/IDE/Pane/Variables.hs
-formatted       080c993f98fe  leksah-0.16.2.2/src/IDE/Pane/WebKit/Documentation.hs
-formatted       c47f6ec9f808  leksah-0.16.2.2/src/IDE/Pane/WebKit/Inspect.hs
-formatted       b526c4eb3dc8  leksah-0.16.2.2/src/IDE/Pane/WebKit/Output.hs
-formatted       ffd0f6653485  leksah-0.16.2.2/src/IDE/Pane/Workspace.hs
-formatted       33a766cc1c7d  leksah-0.16.2.2/src/IDE/PaneGroups.hs
-formatted       83b95acfea83  leksah-0.16.2.2/src/IDE/Preferences.hs
-formatted       d73d66c34b8c  leksah-0.16.2.2/src/IDE/Session.hs
-formatted       277f211ae71b  leksah-0.16.2.2/src/IDE/SourceCandy.hs
-formatted       95169d9d3f63  leksah-0.16.2.2/src/IDE/Statusbar.hs
-formatted       70eb7c99746e  leksah-0.16.2.2/src/IDE/SymbolNavigation.hs
-formatted       265b135c829e  leksah-0.16.2.2/src/IDE/TextEditor.hs
-formatted       b345661c1e07  leksah-0.16.2.2/src/IDE/TextEditor/Class.hs
-formatted       be8c9023310e  leksah-0.16.2.2/src/IDE/TextEditor/CodeMirror.hs
-formatted       bd04bccef282  leksah-0.16.2.2/src/IDE/TextEditor/GtkSourceView.hs
-formatted       6af4d4de87f6  leksah-0.16.2.2/src/IDE/TextEditor/Yi.hs
-formatted       c73baf7194c2  leksah-0.16.2.2/src/IDE/TextEditor/Yi/Config.hs
-formatted       007fe37642f2  leksah-0.16.2.2/src/IDE/Utils/CabalUtils.hs
-formatted       a1e35678dab5  leksah-0.16.2.2/src/IDE/Utils/DirectoryUtils.hs
-formatted       8c14e6468260  leksah-0.16.2.2/src/IDE/Utils/ExternalTool.hs
-formatted       f82cd3575fb1  leksah-0.16.2.2/src/IDE/Utils/GUIUtils.hs
-formatted       681c8db74a16  leksah-0.16.2.2/src/IDE/Utils/ServerConnection.hs
-formatted       57b163af09de  leksah-0.16.2.2/src/IDE/Workspaces.hs
-formatted       bb3e875ba328  leksah-0.16.2.2/src/IDE/Workspaces/Writer.hs
-formatted       50c9e4996c17  lens-5.3.6/benchmarks/alongside.hs
-formatted       9fb7d388f89d  lens-5.3.6/benchmarks/folds.hs
-formatted       a5e826be2e18  lens-5.3.6/benchmarks/plated.hs
-formatted       474a59bad6c3  lens-5.3.6/benchmarks/traversals.hs
-formatted       ed5e8ac0099f  lens-5.3.6/benchmarks/unsafe.hs
-formatted       6b5d9407288a  lens-5.3.6/examples/Aeson.hs
-formatted       fcea15eace15  lens-5.3.6/examples/Plates.hs
-formatted       42c84063ca40  lens-5.3.6/examples/Pong.hs
-formatted       1e7ca6c2bac4  lens-5.3.6/examples/Turtle.hs
-formatted       e865ae48f11b  lens-5.3.6/lens-properties/Setup.hs
-formatted       03d5b652be06  lens-5.3.6/lens-properties/src/Control/Lens/Properties.hs
-broken          6f66b6321d8b  lens-5.3.6/src/Control/Exception/Lens.hs
-formatted       4fb8b462c692  lens-5.3.6/src/Control/Lens.hs
-formatted       dab5fde53fc2  lens-5.3.6/src/Control/Lens/At.hs
-formatted       1a555e9740b2  lens-5.3.6/src/Control/Lens/Combinators.hs
-formatted       45285718981c  lens-5.3.6/src/Control/Lens/Cons.hs
-formatted       087aa6536345  lens-5.3.6/src/Control/Lens/Each.hs
-formatted       db06507f8eb3  lens-5.3.6/src/Control/Lens/Empty.hs
-formatted       afba13ca40b2  lens-5.3.6/src/Control/Lens/Equality.hs
-formatted       e63ce52c62a6  lens-5.3.6/src/Control/Lens/Extras.hs
-formatted       bc07f01d16f1  lens-5.3.6/src/Control/Lens/Fold.hs
-formatted       1d6b4529afae  lens-5.3.6/src/Control/Lens/Getter.hs
-formatted       be96a32da04a  lens-5.3.6/src/Control/Lens/Indexed.hs
-formatted       f2b77c23d24e  lens-5.3.6/src/Control/Lens/Internal.hs
-formatted       08075ad39685  lens-5.3.6/src/Control/Lens/Internal/Bazaar.hs
-formatted       77d72de128e9  lens-5.3.6/src/Control/Lens/Internal/ByteString.hs
-formatted       d8ca8cef6fef  lens-5.3.6/src/Control/Lens/Internal/CTypes.hs
-formatted       d27aa876059e  lens-5.3.6/src/Control/Lens/Internal/Context.hs
-formatted       a6d8f75d39fc  lens-5.3.6/src/Control/Lens/Internal/Deque.hs
-formatted       4c63a54a8aeb  lens-5.3.6/src/Control/Lens/Internal/Doctest.hs
-formatted       36dfae32602b  lens-5.3.6/src/Control/Lens/Internal/Exception.hs
-formatted       94e9c2ef7d99  lens-5.3.6/src/Control/Lens/Internal/FieldTH.hs
-formatted       8751bf3b6318  lens-5.3.6/src/Control/Lens/Internal/Fold.hs
-formatted       fe2ce335a9fd  lens-5.3.6/src/Control/Lens/Internal/Getter.hs
-formatted       febc67fc7f79  lens-5.3.6/src/Control/Lens/Internal/Indexed.hs
-formatted       74a115066cae  lens-5.3.6/src/Control/Lens/Internal/Instances.hs
-formatted       a9257a233659  lens-5.3.6/src/Control/Lens/Internal/Iso.hs
-formatted       62616dcfe279  lens-5.3.6/src/Control/Lens/Internal/Level.hs
-formatted       929b3db19b16  lens-5.3.6/src/Control/Lens/Internal/List.hs
-formatted       b107d5717343  lens-5.3.6/src/Control/Lens/Internal/Magma.hs
-formatted       e8fad9977f5a  lens-5.3.6/src/Control/Lens/Internal/Prelude.hs
-formatted       d033545bb0fa  lens-5.3.6/src/Control/Lens/Internal/Prism.hs
-formatted       c5b138918bc8  lens-5.3.6/src/Control/Lens/Internal/PrismTH.hs
-formatted       d1e3368088fd  lens-5.3.6/src/Control/Lens/Internal/Profunctor.hs
-formatted       a0cfb7f64915  lens-5.3.6/src/Control/Lens/Internal/Review.hs
-formatted       bd611b570342  lens-5.3.6/src/Control/Lens/Internal/Setter.hs
-formatted       cb94f36001d0  lens-5.3.6/src/Control/Lens/Internal/TH.hs
-formatted       f38703e41b26  lens-5.3.6/src/Control/Lens/Internal/Zoom.hs
-formatted       4d4a8b86f259  lens-5.3.6/src/Control/Lens/Iso.hs
-formatted       90c89d25de5a  lens-5.3.6/src/Control/Lens/Lens.hs
-formatted       bde563e05b67  lens-5.3.6/src/Control/Lens/Level.hs
-formatted       b84cf710176f  lens-5.3.6/src/Control/Lens/Operators.hs
-formatted       61aef519b850  lens-5.3.6/src/Control/Lens/Plated.hs
-formatted       cd556da34caa  lens-5.3.6/src/Control/Lens/Prism.hs
-formatted       b465099e5056  lens-5.3.6/src/Control/Lens/Profunctor.hs
-formatted       4fa75f887167  lens-5.3.6/src/Control/Lens/Reified.hs
-formatted       6e871d8e4385  lens-5.3.6/src/Control/Lens/Review.hs
-formatted       5f1a95d65c20  lens-5.3.6/src/Control/Lens/Setter.hs
-formatted       bd765a03081a  lens-5.3.6/src/Control/Lens/TH.hs
-formatted       9164ff122ee8  lens-5.3.6/src/Control/Lens/Traversal.hs
-formatted       3a5cbb2c959c  lens-5.3.6/src/Control/Lens/Tuple.hs
-formatted       181a647a9c7b  lens-5.3.6/src/Control/Lens/Type.hs
-formatted       ff8881502434  lens-5.3.6/src/Control/Lens/Unsound.hs
-declined        -             lens-5.3.6/src/Control/Lens/Wrapped.hs
-formatted       2c3a223dec39  lens-5.3.6/src/Control/Lens/Zoom.hs
-formatted       d04fd074c74d  lens-5.3.6/src/Control/Monad/Error/Lens.hs
-formatted       b9bfa6cc2ae6  lens-5.3.6/src/Control/Parallel/Strategies/Lens.hs
-formatted       3580c9fdbe74  lens-5.3.6/src/Control/Seq/Lens.hs
-formatted       ae1408607f92  lens-5.3.6/src/Data/Array/Lens.hs
-formatted       4f2a2066b52a  lens-5.3.6/src/Data/Bits/Lens.hs
-formatted       e1c3ede72b89  lens-5.3.6/src/Data/ByteString/Lazy/Lens.hs
-formatted       fd83b8412797  lens-5.3.6/src/Data/ByteString/Lens.hs
-formatted       a0beda949826  lens-5.3.6/src/Data/ByteString/Strict/Lens.hs
-formatted       e7fc0d3b8334  lens-5.3.6/src/Data/Complex/Lens.hs
-formatted       626272b6276a  lens-5.3.6/src/Data/Data/Lens.hs
-formatted       ae776c45408a  lens-5.3.6/src/Data/Dynamic/Lens.hs
-formatted       9817c7fd06d9  lens-5.3.6/src/Data/HashSet/Lens.hs
-formatted       9b6a7ea1de9a  lens-5.3.6/src/Data/IntSet/Lens.hs
-formatted       afd0c52fb1bb  lens-5.3.6/src/Data/List/Lens.hs
-formatted       c78898aaa504  lens-5.3.6/src/Data/Map/Lens.hs
-formatted       bf33871e79d3  lens-5.3.6/src/Data/Sequence/Lens.hs
-formatted       3b630e1120f0  lens-5.3.6/src/Data/Set/Lens.hs
-formatted       6abbc5ff2a97  lens-5.3.6/src/Data/Text/Lazy/Lens.hs
-formatted       c144e0a2b4d7  lens-5.3.6/src/Data/Text/Lens.hs
-formatted       5ce20871a8d2  lens-5.3.6/src/Data/Text/Strict/Lens.hs
-formatted       a4a006800f1d  lens-5.3.6/src/Data/Tree/Lens.hs
-formatted       bfb9f14912e5  lens-5.3.6/src/Data/Typeable/Lens.hs
-formatted       fa5b2f903156  lens-5.3.6/src/Data/Vector/Generic/Lens.hs
-formatted       4348b84e4ed7  lens-5.3.6/src/Data/Vector/Lens.hs
-formatted       7e80fcd30b07  lens-5.3.6/src/GHC/Generics/Lens.hs
-declined        -             lens-5.3.6/src/Language/Haskell/TH/Lens.hs
-formatted       6142187a095c  lens-5.3.6/src/Numeric/Lens.hs
-formatted       11d5331927be  lens-5.3.6/src/Numeric/Natural/Lens.hs
-formatted       353cf4551a49  lens-5.3.6/src/System/Exit/Lens.hs
-formatted       5a4f7cf6359b  lens-5.3.6/src/System/FilePath/Lens.hs
-formatted       221e65299a9b  lens-5.3.6/src/System/IO/Error/Lens.hs
-formatted       aa93fbb09ce5  lens-5.3.6/tests/BigRecord.hs
-formatted       4bb6e1258874  lens-5.3.6/tests/T1024.hs
-formatted       783da428b966  lens-5.3.6/tests/T799.hs
-formatted       735c78d5ee02  lens-5.3.6/tests/T917.hs
-formatted       1d3a1a7a064d  lens-5.3.6/tests/T972.hs
-formatted       1e9429a79aca  lens-5.3.6/tests/doctests.hs
-formatted       a554fa5629d9  lens-5.3.6/tests/hunit.hs
-declined        -             lens-5.3.6/tests/properties.hs
-formatted       4f53ed8ff572  lens-5.3.6/tests/templates.hs
-formatted       0331614d7776  megaparsec-9.8.1/Text/Megaparsec.hs
-formatted       aaf0968c72cf  megaparsec-9.8.1/Text/Megaparsec/Byte.hs
-formatted       af93162c0732  megaparsec-9.8.1/Text/Megaparsec/Byte/Binary.hs
-formatted       6daebd54878b  megaparsec-9.8.1/Text/Megaparsec/Byte/Lexer.hs
-formatted       a8f12808d592  megaparsec-9.8.1/Text/Megaparsec/Char.hs
-formatted       fb0aa0491a35  megaparsec-9.8.1/Text/Megaparsec/Char/Lexer.hs
-formatted       9ada7619d986  megaparsec-9.8.1/Text/Megaparsec/Class.hs
-formatted       04c41e5e9d68  megaparsec-9.8.1/Text/Megaparsec/Common.hs
-formatted       516df951af5f  megaparsec-9.8.1/Text/Megaparsec/Debug.hs
-formatted       063bb778990a  megaparsec-9.8.1/Text/Megaparsec/Error.hs
-formatted       6dc9b6ce5897  megaparsec-9.8.1/Text/Megaparsec/Error.hs-boot
-formatted       92e848d5b88d  megaparsec-9.8.1/Text/Megaparsec/Error/Builder.hs
-formatted       ef8c030d6d02  megaparsec-9.8.1/Text/Megaparsec/Internal.hs
-formatted       2d845f6be8a2  megaparsec-9.8.1/Text/Megaparsec/Internal.hs-boot
-formatted       fb54b4f4cab3  megaparsec-9.8.1/Text/Megaparsec/Lexer.hs
-formatted       0db88dbc985e  megaparsec-9.8.1/Text/Megaparsec/Pos.hs
-formatted       4f1b6ce7ca12  megaparsec-9.8.1/Text/Megaparsec/State.hs
-formatted       e5a839627bb9  megaparsec-9.8.1/Text/Megaparsec/Stream.hs
-formatted       5e21ab523a4c  megaparsec-9.8.1/Text/Megaparsec/Unicode.hs
-formatted       882124e5ceb6  megaparsec-9.8.1/bench/memory/Main.hs
-formatted       d8a32e7340de  megaparsec-9.8.1/bench/speed/Main.hs
-formatted       e865ae48f11b  microlens-0.5.0.0/Setup.hs
-declined        -             microlens-0.5.0.0/src/Lens/Micro.hs
-formatted       a33fe5ffd3d9  microlens-0.5.0.0/src/Lens/Micro/Extras.hs
-formatted       3608b82ef46d  microlens-0.5.0.0/src/Lens/Micro/FieldN.hs
-declined        -             microlens-0.5.0.0/src/Lens/Micro/Internal.hs
-formatted       de09492cc927  microlens-0.5.0.0/src/Lens/Micro/Type.hs
-formatted       9fd4d8759261  mtl-2.3.2/Control/Monad/Accum.hs
-formatted       1c966453ae10  mtl-2.3.2/Control/Monad/Cont.hs
-formatted       6543a3adf1ee  mtl-2.3.2/Control/Monad/Cont/Class.hs
-formatted       a1002896353b  mtl-2.3.2/Control/Monad/Error/Class.hs
-formatted       241b9ab5b29e  mtl-2.3.2/Control/Monad/Except.hs
-formatted       fae093b03648  mtl-2.3.2/Control/Monad/Identity.hs
-formatted       8bb64ac32001  mtl-2.3.2/Control/Monad/RWS.hs
-formatted       f59a78122b11  mtl-2.3.2/Control/Monad/RWS/CPS.hs
-formatted       853a42d0a7d0  mtl-2.3.2/Control/Monad/RWS/Class.hs
-formatted       6fedd348f84f  mtl-2.3.2/Control/Monad/RWS/Lazy.hs
-formatted       ddc740ed2ba9  mtl-2.3.2/Control/Monad/RWS/Strict.hs
-formatted       70448da6c08e  mtl-2.3.2/Control/Monad/Reader.hs
-formatted       048f1d41ceeb  mtl-2.3.2/Control/Monad/Reader/Class.hs
-formatted       fda85a3d8a5b  mtl-2.3.2/Control/Monad/Select.hs
-formatted       dbf53d8970a0  mtl-2.3.2/Control/Monad/State.hs
-formatted       a11cb9d9968b  mtl-2.3.2/Control/Monad/State/Class.hs
-formatted       297011983d2c  mtl-2.3.2/Control/Monad/State/Lazy.hs
-formatted       77f07f071154  mtl-2.3.2/Control/Monad/State/Strict.hs
-formatted       4442f9cb2755  mtl-2.3.2/Control/Monad/Trans.hs
-formatted       c315c681e4a7  mtl-2.3.2/Control/Monad/Writer.hs
-formatted       bd34c32bca35  mtl-2.3.2/Control/Monad/Writer/CPS.hs
-formatted       220119ac3010  mtl-2.3.2/Control/Monad/Writer/Class.hs
-formatted       26c1b816de3a  mtl-2.3.2/Control/Monad/Writer/Lazy.hs
-formatted       e5a4e79a643b  mtl-2.3.2/Control/Monad/Writer/Strict.hs
-formatted       e865ae48f11b  mtl-2.3.2/Setup.hs
-formatted       9007a7528d49  optics-0.4.2.1/benchmarks/folds.hs
-formatted       6819e713d7fd  optics-0.4.2.1/benchmarks/traversals.hs
-formatted       39c6a1f9e980  optics-0.4.2.1/src/Optics.hs
-formatted       fbb3a44aca1a  optics-0.4.2.1/tests/Optics/Tests.hs
-formatted       c6d811f3b338  optics-0.4.2.1/tests/Optics/Tests/Computation.hs
-formatted       26a0cf8a6c0d  optics-0.4.2.1/tests/Optics/Tests/Core.hs
-formatted       714f321c1085  optics-0.4.2.1/tests/Optics/Tests/Eta.hs
-formatted       fa94f2166eef  optics-0.4.2.1/tests/Optics/Tests/Labels/Generic.hs
-formatted       be66017a6045  optics-0.4.2.1/tests/Optics/Tests/Labels/TH.hs
-formatted       1ec08bb9f22e  optics-0.4.2.1/tests/Optics/Tests/Misc.hs
-formatted       9a4b74c6e2a0  optics-0.4.2.1/tests/Optics/Tests/Properties.hs
-declined        -             optics-0.4.2.1/tests/Optics/Tests/Utils.hs
-formatted       e865ae48f11b  optparse-applicative-0.19.0.0/Setup.hs
-formatted       64905439cdc6  optparse-applicative-0.19.0.0/src/Options/Applicative.hs
-formatted       c906682e4329  optparse-applicative-0.19.0.0/src/Options/Applicative/Arrows.hs
-formatted       fa5bdd86f120  optparse-applicative-0.19.0.0/src/Options/Applicative/BashCompletion.hs
-formatted       792f6352d0d9  optparse-applicative-0.19.0.0/src/Options/Applicative/Builder.hs
-formatted       b35877965cca  optparse-applicative-0.19.0.0/src/Options/Applicative/Builder/Completer.hs
-formatted       24b9dc042174  optparse-applicative-0.19.0.0/src/Options/Applicative/Builder/Internal.hs
-formatted       2677a4207b59  optparse-applicative-0.19.0.0/src/Options/Applicative/Common.hs
-formatted       c1063409f73c  optparse-applicative-0.19.0.0/src/Options/Applicative/Extra.hs
-formatted       02404b06b751  optparse-applicative-0.19.0.0/src/Options/Applicative/Help.hs
-formatted       309f18523f28  optparse-applicative-0.19.0.0/src/Options/Applicative/Help/Chunk.hs
-formatted       45fed0cf69dd  optparse-applicative-0.19.0.0/src/Options/Applicative/Help/Core.hs
-formatted       c6289fc77a0b  optparse-applicative-0.19.0.0/src/Options/Applicative/Help/Levenshtein.hs
-formatted       dbad440603b5  optparse-applicative-0.19.0.0/src/Options/Applicative/Help/Pretty.hs
-formatted       ea64d277c8d8  optparse-applicative-0.19.0.0/src/Options/Applicative/Help/Types.hs
-formatted       5f19dd3bfbfc  optparse-applicative-0.19.0.0/src/Options/Applicative/Internal.hs
-formatted       cfaae94bf094  optparse-applicative-0.19.0.0/src/Options/Applicative/NonEmpty.hs
-formatted       1b1444725881  optparse-applicative-0.19.0.0/src/Options/Applicative/Types.hs
-formatted       88e47dac52ad  optparse-applicative-0.19.0.0/tests/Examples/Alternatives.hs
-formatted       9cdd4cffe98a  optparse-applicative-0.19.0.0/tests/Examples/Cabal.hs
-formatted       6eb87c31763d  optparse-applicative-0.19.0.0/tests/Examples/Commands.hs
-formatted       3e7e8c6885db  optparse-applicative-0.19.0.0/tests/Examples/Formatting.hs
-formatted       63619af33822  optparse-applicative-0.19.0.0/tests/Examples/Hello.hs
-formatted       515fef001627  optparse-applicative-0.19.0.0/tests/Examples/LongSub.hs
-formatted       c2e700c8f642  optparse-applicative-0.19.0.0/tests/Examples/ParserGroup/AllGrouped.hs
-formatted       f5ab674c163c  optparse-applicative-0.19.0.0/tests/Examples/ParserGroup/Basic.hs
-formatted       dbff3ca47a7d  optparse-applicative-0.19.0.0/tests/Examples/ParserGroup/CommandGroups.hs
-formatted       87c22c856d69  optparse-applicative-0.19.0.0/tests/Examples/ParserGroup/DuplicateCommandGroups.hs
-formatted       ded6a73332cc  optparse-applicative-0.19.0.0/tests/Examples/ParserGroup/Duplicates.hs
-formatted       8ea0fc79c8f6  optparse-applicative-0.19.0.0/tests/Examples/ParserGroup/Nested.hs
-formatted       25bcbf4b701f  optparse-applicative-0.19.0.0/tests/test.hs
-formatted       40d0309b0851  pandoc-3.10.2/benchmark/benchmark-pandoc.hs
-formatted       e9cc6bbe8397  pandoc-3.10.2/src/Text/Pandoc.hs
-formatted       8c46f3c9674c  pandoc-3.10.2/src/Text/Pandoc/App.hs
-formatted       c058b2ade26f  pandoc-3.10.2/src/Text/Pandoc/App/CommandLineOptions.hs
-formatted       0d1b64ebcf3b  pandoc-3.10.2/src/Text/Pandoc/App/Input.hs
-formatted       6ed96a696002  pandoc-3.10.2/src/Text/Pandoc/App/Opt.hs
-formatted       3a8ec3e92f62  pandoc-3.10.2/src/Text/Pandoc/App/OutputSettings.hs
-formatted       30536e2da049  pandoc-3.10.2/src/Text/Pandoc/Asciify.hs
-formatted       0798d787f37f  pandoc-3.10.2/src/Text/Pandoc/CSS.hs
-formatted       eb9916b55f28  pandoc-3.10.2/src/Text/Pandoc/CSV.hs
-formatted       425285a86e63  pandoc-3.10.2/src/Text/Pandoc/Char.hs
-formatted       829d97307b71  pandoc-3.10.2/src/Text/Pandoc/Chunks.hs
-formatted       78112fbbaa4f  pandoc-3.10.2/src/Text/Pandoc/Citeproc.hs
-formatted       73b49670ac75  pandoc-3.10.2/src/Text/Pandoc/Citeproc/BibTeX.hs
-formatted       f4a7c604316e  pandoc-3.10.2/src/Text/Pandoc/Citeproc/CslJson.hs
-formatted       a47804651b9d  pandoc-3.10.2/src/Text/Pandoc/Citeproc/Data.hs
-formatted       b5fa30d4eebe  pandoc-3.10.2/src/Text/Pandoc/Citeproc/Locator.hs
-formatted       f41105d87bc7  pandoc-3.10.2/src/Text/Pandoc/Citeproc/MetaValue.hs
-formatted       ba128290e789  pandoc-3.10.2/src/Text/Pandoc/Citeproc/Name.hs
-formatted       76559347a97c  pandoc-3.10.2/src/Text/Pandoc/Citeproc/Util.hs
-formatted       1b13d0dc5e1b  pandoc-3.10.2/src/Text/Pandoc/Class.hs
-formatted       121629e38e36  pandoc-3.10.2/src/Text/Pandoc/Class/CommonState.hs
-formatted       e2b41d9d63a2  pandoc-3.10.2/src/Text/Pandoc/Class/IO.hs
-formatted       554e3fd3f722  pandoc-3.10.2/src/Text/Pandoc/Class/PandocIO.hs
-formatted       c65acaaeb3de  pandoc-3.10.2/src/Text/Pandoc/Class/PandocMonad.hs
-formatted       f896da08c30f  pandoc-3.10.2/src/Text/Pandoc/Class/PandocPure.hs
-formatted       0b8f40903d65  pandoc-3.10.2/src/Text/Pandoc/Class/Sandbox.hs
-formatted       407b6ea8dcf3  pandoc-3.10.2/src/Text/Pandoc/Data.hs
-formatted       a40ce7ee511d  pandoc-3.10.2/src/Text/Pandoc/Data/BakedIn.hs
-formatted       58434b0c4602  pandoc-3.10.2/src/Text/Pandoc/Emoji.hs
-formatted       232d7de23b73  pandoc-3.10.2/src/Text/Pandoc/Error.hs
-formatted       72ff19ca80f5  pandoc-3.10.2/src/Text/Pandoc/Extensions.hs
-formatted       3bdc8aed022b  pandoc-3.10.2/src/Text/Pandoc/Filter.hs
-formatted       1be979d2afbf  pandoc-3.10.2/src/Text/Pandoc/Filter/Environment.hs
-formatted       3921a2426b07  pandoc-3.10.2/src/Text/Pandoc/Filter/JSON.hs
-formatted       9bf058c6704f  pandoc-3.10.2/src/Text/Pandoc/Format.hs
-formatted       3df0ace70613  pandoc-3.10.2/src/Text/Pandoc/Highlighting.hs
-formatted       834edab63758  pandoc-3.10.2/src/Text/Pandoc/Image.hs
-formatted       f331e86b53d6  pandoc-3.10.2/src/Text/Pandoc/ImageSize.hs
-formatted       f519615c70eb  pandoc-3.10.2/src/Text/Pandoc/Logging.hs
-formatted       198eaaad0ea2  pandoc-3.10.2/src/Text/Pandoc/MIME.hs
-formatted       fc58bac11b5e  pandoc-3.10.2/src/Text/Pandoc/MediaBag.hs
-formatted       e52f385e0fff  pandoc-3.10.2/src/Text/Pandoc/Options.hs
-formatted       d4caa78b9b84  pandoc-3.10.2/src/Text/Pandoc/PDF.hs
-formatted       1378d4b80344  pandoc-3.10.2/src/Text/Pandoc/Parsing.hs
-formatted       d0bfe0ebb5ca  pandoc-3.10.2/src/Text/Pandoc/Parsing/Capabilities.hs
-formatted       78249fa68c58  pandoc-3.10.2/src/Text/Pandoc/Parsing/Citations.hs
-formatted       3947601983af  pandoc-3.10.2/src/Text/Pandoc/Parsing/Future.hs
-formatted       854dc9763274  pandoc-3.10.2/src/Text/Pandoc/Parsing/General.hs
-formatted       ebf243a003b2  pandoc-3.10.2/src/Text/Pandoc/Parsing/GridTable.hs
-formatted       6ae9fc28f92d  pandoc-3.10.2/src/Text/Pandoc/Parsing/Lists.hs
-formatted       957cafdf0f36  pandoc-3.10.2/src/Text/Pandoc/Parsing/Math.hs
-formatted       fad3834b08e5  pandoc-3.10.2/src/Text/Pandoc/Parsing/Smart.hs
-formatted       96971d0301f6  pandoc-3.10.2/src/Text/Pandoc/Parsing/State.hs
-formatted       a83effd57b53  pandoc-3.10.2/src/Text/Pandoc/Process.hs
-formatted       5798ce9f1d3b  pandoc-3.10.2/src/Text/Pandoc/Readers.hs
-formatted       cf02c585d42e  pandoc-3.10.2/src/Text/Pandoc/Readers/AsciiDoc.hs
-formatted       fb9989e02f4c  pandoc-3.10.2/src/Text/Pandoc/Readers/BibTeX.hs
-formatted       6df32968e0c9  pandoc-3.10.2/src/Text/Pandoc/Readers/CSV.hs
-formatted       9daab54008b1  pandoc-3.10.2/src/Text/Pandoc/Readers/CommonMark.hs
-formatted       663d47f4276b  pandoc-3.10.2/src/Text/Pandoc/Readers/Creole.hs
-formatted       9a91a657b202  pandoc-3.10.2/src/Text/Pandoc/Readers/CslJson.hs
-formatted       8f06acca3961  pandoc-3.10.2/src/Text/Pandoc/Readers/Djot.hs
-formatted       5c67409b0a54  pandoc-3.10.2/src/Text/Pandoc/Readers/DocBook.hs
-formatted       fbd149ee0503  pandoc-3.10.2/src/Text/Pandoc/Readers/Docx.hs
-formatted       fc9009e1ca7b  pandoc-3.10.2/src/Text/Pandoc/Readers/Docx/Combine.hs
-formatted       2d1f14f169d4  pandoc-3.10.2/src/Text/Pandoc/Readers/Docx/Fields.hs
-formatted       1182acf4b772  pandoc-3.10.2/src/Text/Pandoc/Readers/Docx/Lists.hs
-formatted       33062d5907a1  pandoc-3.10.2/src/Text/Pandoc/Readers/Docx/Parse.hs
-formatted       cdafbece822b  pandoc-3.10.2/src/Text/Pandoc/Readers/Docx/Parse/Styles.hs
-formatted       59a529967b45  pandoc-3.10.2/src/Text/Pandoc/Readers/Docx/Symbols.hs
-formatted       5ca3b138e6d7  pandoc-3.10.2/src/Text/Pandoc/Readers/Docx/Util.hs
-formatted       646ac8cb5cfc  pandoc-3.10.2/src/Text/Pandoc/Readers/DokuWiki.hs
-formatted       84bb8bb4469c  pandoc-3.10.2/src/Text/Pandoc/Readers/EPUB.hs
-formatted       f3a6089222df  pandoc-3.10.2/src/Text/Pandoc/Readers/EndNote.hs
-formatted       14038d82e889  pandoc-3.10.2/src/Text/Pandoc/Readers/FB2.hs
-formatted       aaf76caf87c9  pandoc-3.10.2/src/Text/Pandoc/Readers/HTML.hs
-formatted       dffd88697abd  pandoc-3.10.2/src/Text/Pandoc/Readers/HTML/Parsing.hs
-formatted       7906dc4b5ee7  pandoc-3.10.2/src/Text/Pandoc/Readers/HTML/Table.hs
-formatted       d02eee6a5e0a  pandoc-3.10.2/src/Text/Pandoc/Readers/HTML/TagCategories.hs
-formatted       4fb367cd5dd3  pandoc-3.10.2/src/Text/Pandoc/Readers/HTML/Types.hs
-formatted       eff46e987f16  pandoc-3.10.2/src/Text/Pandoc/Readers/Haddock.hs
-formatted       0f6ff76a8634  pandoc-3.10.2/src/Text/Pandoc/Readers/Ipynb.hs
-formatted       cc07dc20c65e  pandoc-3.10.2/src/Text/Pandoc/Readers/JATS.hs
-formatted       f20ff0b6f36b  pandoc-3.10.2/src/Text/Pandoc/Readers/Jira.hs
-formatted       a5e8a79ffa46  pandoc-3.10.2/src/Text/Pandoc/Readers/LaTeX.hs
-formatted       9555c9856dcb  pandoc-3.10.2/src/Text/Pandoc/Readers/LaTeX/Citation.hs
-formatted       69ebcdbb13ca  pandoc-3.10.2/src/Text/Pandoc/Readers/LaTeX/Inline.hs
-formatted       c4741ac43b79  pandoc-3.10.2/src/Text/Pandoc/Readers/LaTeX/Lang.hs
-formatted       7551c37a91a0  pandoc-3.10.2/src/Text/Pandoc/Readers/LaTeX/Macro.hs
-formatted       70d5e382dd09  pandoc-3.10.2/src/Text/Pandoc/Readers/LaTeX/Math.hs
-formatted       0ff31df07620  pandoc-3.10.2/src/Text/Pandoc/Readers/LaTeX/Parsing.hs
-formatted       c5052708c057  pandoc-3.10.2/src/Text/Pandoc/Readers/LaTeX/SIunitx.hs
-formatted       464b8d34afbe  pandoc-3.10.2/src/Text/Pandoc/Readers/LaTeX/Table.hs
-formatted       9c0b878a8cae  pandoc-3.10.2/src/Text/Pandoc/Readers/Man.hs
-formatted       6961ea97f0d3  pandoc-3.10.2/src/Text/Pandoc/Readers/Markdown.hs
-formatted       b7b9f1155f1b  pandoc-3.10.2/src/Text/Pandoc/Readers/Mdoc.hs
-formatted       f6551b5d7655  pandoc-3.10.2/src/Text/Pandoc/Readers/Mdoc/Lex.hs
-formatted       728f79b431ec  pandoc-3.10.2/src/Text/Pandoc/Readers/Mdoc/Macros.hs
-formatted       1a3b54c227b9  pandoc-3.10.2/src/Text/Pandoc/Readers/Mdoc/Standards.hs
-formatted       d18bc1b58890  pandoc-3.10.2/src/Text/Pandoc/Readers/MediaWiki.hs
-formatted       ff97e43c99ad  pandoc-3.10.2/src/Text/Pandoc/Readers/Metadata.hs
-formatted       9f0f39d21fdd  pandoc-3.10.2/src/Text/Pandoc/Readers/Muse.hs
-formatted       b5fdcc7976c0  pandoc-3.10.2/src/Text/Pandoc/Readers/Native.hs
-formatted       00dc84441dee  pandoc-3.10.2/src/Text/Pandoc/Readers/ODT.hs
-formatted       4b763e5899cb  pandoc-3.10.2/src/Text/Pandoc/Readers/ODT/Arrows/State.hs
-formatted       978b213b2283  pandoc-3.10.2/src/Text/Pandoc/Readers/ODT/Arrows/Utils.hs
-formatted       bf610e3c1650  pandoc-3.10.2/src/Text/Pandoc/Readers/ODT/Base.hs
-formatted       09ce4137cc6f  pandoc-3.10.2/src/Text/Pandoc/Readers/ODT/ContentReader.hs
-formatted       9f7e17b79fd2  pandoc-3.10.2/src/Text/Pandoc/Readers/ODT/Generic/Fallible.hs
-formatted       3cb13f8a11b2  pandoc-3.10.2/src/Text/Pandoc/Readers/ODT/Generic/Namespaces.hs
-formatted       6d9540eaec43  pandoc-3.10.2/src/Text/Pandoc/Readers/ODT/Generic/SetMap.hs
-formatted       e530287347dc  pandoc-3.10.2/src/Text/Pandoc/Readers/ODT/Generic/Utils.hs
-formatted       cea88b9dd60d  pandoc-3.10.2/src/Text/Pandoc/Readers/ODT/Generic/XMLConverter.hs
-formatted       32a05a5e6b5d  pandoc-3.10.2/src/Text/Pandoc/Readers/ODT/Namespaces.hs
-formatted       1a2225a211e5  pandoc-3.10.2/src/Text/Pandoc/Readers/ODT/StyleReader.hs
-formatted       fc024f0c1f5f  pandoc-3.10.2/src/Text/Pandoc/Readers/OOXML/Shared.hs
-formatted       af1d77effb19  pandoc-3.10.2/src/Text/Pandoc/Readers/OPML.hs
-formatted       f0c2a727f84e  pandoc-3.10.2/src/Text/Pandoc/Readers/Org.hs
-formatted       b11790cf298d  pandoc-3.10.2/src/Text/Pandoc/Readers/Org/BlockStarts.hs
-formatted       87d98588269f  pandoc-3.10.2/src/Text/Pandoc/Readers/Org/Blocks.hs
-formatted       3ff195adb2ff  pandoc-3.10.2/src/Text/Pandoc/Readers/Org/DocumentTree.hs
-formatted       0e89e887eae3  pandoc-3.10.2/src/Text/Pandoc/Readers/Org/ExportSettings.hs
-formatted       2cc65319731e  pandoc-3.10.2/src/Text/Pandoc/Readers/Org/Inlines.hs
-formatted       e34a610bde26  pandoc-3.10.2/src/Text/Pandoc/Readers/Org/Meta.hs
-formatted       ddd05cefe687  pandoc-3.10.2/src/Text/Pandoc/Readers/Org/ParserState.hs
-formatted       cddaebd35c79  pandoc-3.10.2/src/Text/Pandoc/Readers/Org/Parsing.hs
-formatted       56b3882f7c5f  pandoc-3.10.2/src/Text/Pandoc/Readers/Org/Shared.hs
-formatted       b88c97613fb0  pandoc-3.10.2/src/Text/Pandoc/Readers/Pod.hs
-formatted       53643fbdc8d6  pandoc-3.10.2/src/Text/Pandoc/Readers/Pptx.hs
-formatted       9f0a1be15c9c  pandoc-3.10.2/src/Text/Pandoc/Readers/Pptx/Parse.hs
-formatted       06b32e0a02bb  pandoc-3.10.2/src/Text/Pandoc/Readers/Pptx/Shapes.hs
-formatted       68136f2cd896  pandoc-3.10.2/src/Text/Pandoc/Readers/Pptx/Slides.hs
-formatted       2a1143e52057  pandoc-3.10.2/src/Text/Pandoc/Readers/Pptx/SmartArt.hs
-formatted       57c12a897562  pandoc-3.10.2/src/Text/Pandoc/Readers/RIS.hs
-formatted       c533a0d22bb6  pandoc-3.10.2/src/Text/Pandoc/Readers/RST.hs
-formatted       e222e84bebc7  pandoc-3.10.2/src/Text/Pandoc/Readers/RTF.hs
-formatted       a56e5e804b58  pandoc-3.10.2/src/Text/Pandoc/Readers/Roff.hs
-formatted       a8d91c97594d  pandoc-3.10.2/src/Text/Pandoc/Readers/Roff/Escape.hs
-formatted       75e54639331c  pandoc-3.10.2/src/Text/Pandoc/Readers/TWiki.hs
-formatted       25cccdcbef5d  pandoc-3.10.2/src/Text/Pandoc/Readers/Textile.hs
-formatted       fcd546021514  pandoc-3.10.2/src/Text/Pandoc/Readers/TikiWiki.hs
-formatted       92e7cf81f874  pandoc-3.10.2/src/Text/Pandoc/Readers/Txt2Tags.hs
-formatted       4af418633a39  pandoc-3.10.2/src/Text/Pandoc/Readers/Typst.hs
-formatted       2f111f50b7d1  pandoc-3.10.2/src/Text/Pandoc/Readers/Typst/Math.hs
-formatted       084c50c01141  pandoc-3.10.2/src/Text/Pandoc/Readers/Typst/Parsing.hs
-formatted       d9474be2d4dd  pandoc-3.10.2/src/Text/Pandoc/Readers/Vimwiki.hs
-formatted       a6c0f74dc4bf  pandoc-3.10.2/src/Text/Pandoc/Readers/XML.hs
-formatted       6da1519e9667  pandoc-3.10.2/src/Text/Pandoc/Readers/Xlsx.hs
-formatted       835a84d727ab  pandoc-3.10.2/src/Text/Pandoc/Readers/Xlsx/Cells.hs
-formatted       da7c96257b3c  pandoc-3.10.2/src/Text/Pandoc/Readers/Xlsx/Parse.hs
-formatted       cec0a64a8f3d  pandoc-3.10.2/src/Text/Pandoc/Readers/Xlsx/Sheets.hs
-formatted       a3abe5c4303a  pandoc-3.10.2/src/Text/Pandoc/RoffChar.hs
-formatted       3b2c2c8b4a58  pandoc-3.10.2/src/Text/Pandoc/Scripting.hs
-formatted       3131b6626379  pandoc-3.10.2/src/Text/Pandoc/SelfContained.hs
-formatted       9b4ca9cf24ae  pandoc-3.10.2/src/Text/Pandoc/Shared.hs
-formatted       d4b69c2106f2  pandoc-3.10.2/src/Text/Pandoc/Slides.hs
-formatted       f972700afdb1  pandoc-3.10.2/src/Text/Pandoc/Sources.hs
-formatted       4723b914e051  pandoc-3.10.2/src/Text/Pandoc/TeX.hs
-formatted       1af167eb5091  pandoc-3.10.2/src/Text/Pandoc/Templates.hs
-formatted       762abd63d880  pandoc-3.10.2/src/Text/Pandoc/Transforms.hs
-formatted       353cd881b0ba  pandoc-3.10.2/src/Text/Pandoc/Translations.hs
-formatted       062da3b78ef5  pandoc-3.10.2/src/Text/Pandoc/Translations/Types.hs
-formatted       e8b9d88b67b0  pandoc-3.10.2/src/Text/Pandoc/URI.hs
-formatted       4aa82cbc83c8  pandoc-3.10.2/src/Text/Pandoc/UTF8.hs
-formatted       e958a4d78635  pandoc-3.10.2/src/Text/Pandoc/UUID.hs
-formatted       c4b212f4e18f  pandoc-3.10.2/src/Text/Pandoc/Version.hs
-formatted       64127df72dfc  pandoc-3.10.2/src/Text/Pandoc/Writers.hs
-formatted       740042f14295  pandoc-3.10.2/src/Text/Pandoc/Writers/ANSI.hs
-formatted       a5a598c6ebd6  pandoc-3.10.2/src/Text/Pandoc/Writers/AnnotatedTable.hs
-formatted       5e0b72f01d26  pandoc-3.10.2/src/Text/Pandoc/Writers/AsciiDoc.hs
-formatted       737b11e36b7a  pandoc-3.10.2/src/Text/Pandoc/Writers/BBCode.hs
-formatted       74bebaa57c03  pandoc-3.10.2/src/Text/Pandoc/Writers/BibTeX.hs
-formatted       c3a3e99a6a7b  pandoc-3.10.2/src/Text/Pandoc/Writers/Blaze.hs
-formatted       fd730c859a35  pandoc-3.10.2/src/Text/Pandoc/Writers/ChunkedHTML.hs
-formatted       936b3d7e333a  pandoc-3.10.2/src/Text/Pandoc/Writers/CommonMark.hs
-formatted       41db06e725da  pandoc-3.10.2/src/Text/Pandoc/Writers/ConTeXt.hs
-formatted       d9b0707d098c  pandoc-3.10.2/src/Text/Pandoc/Writers/CslJson.hs
-formatted       225f5fe7008c  pandoc-3.10.2/src/Text/Pandoc/Writers/Djot.hs
-formatted       f33c2046ecde  pandoc-3.10.2/src/Text/Pandoc/Writers/DocBook.hs
-formatted       7bf8f7c3beff  pandoc-3.10.2/src/Text/Pandoc/Writers/Docx.hs
-formatted       08e3ddf08ad6  pandoc-3.10.2/src/Text/Pandoc/Writers/Docx/OpenXML.hs
-formatted       47c7fc1f3217  pandoc-3.10.2/src/Text/Pandoc/Writers/Docx/StyleMap.hs
-formatted       b7f5506567c9  pandoc-3.10.2/src/Text/Pandoc/Writers/Docx/Table.hs
-formatted       a7b1f18b1b94  pandoc-3.10.2/src/Text/Pandoc/Writers/Docx/Types.hs
-formatted       fc05af348123  pandoc-3.10.2/src/Text/Pandoc/Writers/DokuWiki.hs
-formatted       9912d53d0231  pandoc-3.10.2/src/Text/Pandoc/Writers/EPUB.hs
-formatted       18a7003d6454  pandoc-3.10.2/src/Text/Pandoc/Writers/FB2.hs
-formatted       c4b4f9d5a6e4  pandoc-3.10.2/src/Text/Pandoc/Writers/GridTable.hs
-formatted       f9963e822f59  pandoc-3.10.2/src/Text/Pandoc/Writers/HTML.hs
-formatted       dca952fca265  pandoc-3.10.2/src/Text/Pandoc/Writers/Haddock.hs
-formatted       f94230c4f153  pandoc-3.10.2/src/Text/Pandoc/Writers/ICML.hs
-formatted       dd0566d62914  pandoc-3.10.2/src/Text/Pandoc/Writers/Ipynb.hs
-formatted       316916f894bd  pandoc-3.10.2/src/Text/Pandoc/Writers/JATS.hs
-formatted       4a683f5d9700  pandoc-3.10.2/src/Text/Pandoc/Writers/JATS/References.hs
-formatted       e7a9cf0c0644  pandoc-3.10.2/src/Text/Pandoc/Writers/JATS/Table.hs
-formatted       3aae3967440a  pandoc-3.10.2/src/Text/Pandoc/Writers/JATS/Types.hs
-formatted       9cd811748938  pandoc-3.10.2/src/Text/Pandoc/Writers/Jira.hs
-formatted       2736c4a68c2a  pandoc-3.10.2/src/Text/Pandoc/Writers/LaTeX.hs
-formatted       cafc5a3796df  pandoc-3.10.2/src/Text/Pandoc/Writers/LaTeX/Caption.hs
-formatted       e809a90650c6  pandoc-3.10.2/src/Text/Pandoc/Writers/LaTeX/Citation.hs
-formatted       e89e979a29e1  pandoc-3.10.2/src/Text/Pandoc/Writers/LaTeX/Lang.hs
-formatted       8c164dd5cc9c  pandoc-3.10.2/src/Text/Pandoc/Writers/LaTeX/Notes.hs
-formatted       549c44bdd262  pandoc-3.10.2/src/Text/Pandoc/Writers/LaTeX/Table.hs
-formatted       a4eb629d0029  pandoc-3.10.2/src/Text/Pandoc/Writers/LaTeX/Types.hs
-formatted       62321b6f0ef0  pandoc-3.10.2/src/Text/Pandoc/Writers/LaTeX/Util.hs
-formatted       85fcfddb12db  pandoc-3.10.2/src/Text/Pandoc/Writers/Man.hs
-formatted       e7926f029264  pandoc-3.10.2/src/Text/Pandoc/Writers/Markdown.hs
-formatted       c19b6a394787  pandoc-3.10.2/src/Text/Pandoc/Writers/Markdown/Inline.hs
-formatted       c57101b9ec66  pandoc-3.10.2/src/Text/Pandoc/Writers/Markdown/Table.hs
-formatted       02c7eb593d88  pandoc-3.10.2/src/Text/Pandoc/Writers/Markdown/Types.hs
-formatted       3d9d722a4e7e  pandoc-3.10.2/src/Text/Pandoc/Writers/Math.hs
-formatted       aa965fb1df0e  pandoc-3.10.2/src/Text/Pandoc/Writers/MediaWiki.hs
-formatted       377073fe2e6d  pandoc-3.10.2/src/Text/Pandoc/Writers/Ms.hs
-formatted       6403175b00b9  pandoc-3.10.2/src/Text/Pandoc/Writers/Muse.hs
-formatted       4acde5355993  pandoc-3.10.2/src/Text/Pandoc/Writers/Native.hs
-formatted       1364fe58b369  pandoc-3.10.2/src/Text/Pandoc/Writers/ODT.hs
-formatted       780b39e3c620  pandoc-3.10.2/src/Text/Pandoc/Writers/OOXML.hs
-formatted       4c4123778a13  pandoc-3.10.2/src/Text/Pandoc/Writers/OPML.hs
-formatted       11f3bed781a4  pandoc-3.10.2/src/Text/Pandoc/Writers/OpenDocument.hs
-formatted       1ceb9cecad0c  pandoc-3.10.2/src/Text/Pandoc/Writers/Org.hs
-formatted       74e7486aeef1  pandoc-3.10.2/src/Text/Pandoc/Writers/Powerpoint.hs
-formatted       0abff9869e1b  pandoc-3.10.2/src/Text/Pandoc/Writers/Powerpoint/Output.hs
-formatted       ba52b96a9642  pandoc-3.10.2/src/Text/Pandoc/Writers/Powerpoint/Presentation.hs
-formatted       e5e637fb6da9  pandoc-3.10.2/src/Text/Pandoc/Writers/RST.hs
-formatted       4864c0915868  pandoc-3.10.2/src/Text/Pandoc/Writers/RTF.hs
-formatted       526459d5f74f  pandoc-3.10.2/src/Text/Pandoc/Writers/Roff.hs
-formatted       64258df1d09e  pandoc-3.10.2/src/Text/Pandoc/Writers/Shared.hs
-formatted       6ff714d9bc8d  pandoc-3.10.2/src/Text/Pandoc/Writers/TEI.hs
-formatted       c11f0dc1873d  pandoc-3.10.2/src/Text/Pandoc/Writers/Texinfo.hs
-formatted       3a596ddb6e0a  pandoc-3.10.2/src/Text/Pandoc/Writers/Textile.hs
-formatted       e65d7bf1c614  pandoc-3.10.2/src/Text/Pandoc/Writers/Txt2Tags.hs
-formatted       e7008c6412af  pandoc-3.10.2/src/Text/Pandoc/Writers/Typst.hs
-formatted       94845d56aeb1  pandoc-3.10.2/src/Text/Pandoc/Writers/Vimdoc.hs
-formatted       030057adfda6  pandoc-3.10.2/src/Text/Pandoc/Writers/XML.hs
-formatted       159b08d5178c  pandoc-3.10.2/src/Text/Pandoc/Writers/XWiki.hs
-formatted       d353c0adc4a4  pandoc-3.10.2/src/Text/Pandoc/Writers/ZimWiki.hs
-formatted       c0bf42044a17  pandoc-3.10.2/src/Text/Pandoc/XML.hs
-formatted       29da3381e068  pandoc-3.10.2/src/Text/Pandoc/XMLFormat.hs
-formatted       57155b5f1fa9  pandoc-3.10.2/test/Tests/Command.hs
-formatted       cc2af1e38ce1  pandoc-3.10.2/test/Tests/Helpers.hs
-formatted       08a6d3f3d84f  pandoc-3.10.2/test/Tests/MediaBag.hs
-formatted       58f15e3f067a  pandoc-3.10.2/test/Tests/Old.hs
-formatted       333649c94dd9  pandoc-3.10.2/test/Tests/Readers/Creole.hs
-formatted       c5655e1aeeef  pandoc-3.10.2/test/Tests/Readers/Docx.hs
-formatted       bee6f3e148cf  pandoc-3.10.2/test/Tests/Readers/DokuWiki.hs
-formatted       150d1390d716  pandoc-3.10.2/test/Tests/Readers/EPUB.hs
-formatted       0d2db3fa6504  pandoc-3.10.2/test/Tests/Readers/FB2.hs
-formatted       155489214643  pandoc-3.10.2/test/Tests/Readers/HTML.hs
-formatted       a047fe6e2033  pandoc-3.10.2/test/Tests/Readers/JATS.hs
-formatted       3ee2ef6dea11  pandoc-3.10.2/test/Tests/Readers/Jira.hs
-formatted       a0bebbb719e9  pandoc-3.10.2/test/Tests/Readers/LaTeX.hs
-formatted       54c9a9360dac  pandoc-3.10.2/test/Tests/Readers/Man.hs
-formatted       67e0bd9ae4b8  pandoc-3.10.2/test/Tests/Readers/Markdown.hs
-formatted       7aec4f85c064  pandoc-3.10.2/test/Tests/Readers/Mdoc.hs
-formatted       725337c69fd0  pandoc-3.10.2/test/Tests/Readers/Muse.hs
-formatted       d850617edb68  pandoc-3.10.2/test/Tests/Readers/ODT.hs
-formatted       4cec297f4fab  pandoc-3.10.2/test/Tests/Readers/Org.hs
-formatted       e5c1db2d073f  pandoc-3.10.2/test/Tests/Readers/Org/Block.hs
-formatted       b4b9cddd5711  pandoc-3.10.2/test/Tests/Readers/Org/Block/CodeBlock.hs
-formatted       8bfbfbb823bf  pandoc-3.10.2/test/Tests/Readers/Org/Block/Figure.hs
-formatted       1db2ce6020c8  pandoc-3.10.2/test/Tests/Readers/Org/Block/Header.hs
-formatted       6040ddbe898e  pandoc-3.10.2/test/Tests/Readers/Org/Block/List.hs
-formatted       3e9d7a83d060  pandoc-3.10.2/test/Tests/Readers/Org/Block/Table.hs
-formatted       2059c719f367  pandoc-3.10.2/test/Tests/Readers/Org/Directive.hs
-formatted       bfd915a68797  pandoc-3.10.2/test/Tests/Readers/Org/Inline.hs
-formatted       c762e1d74166  pandoc-3.10.2/test/Tests/Readers/Org/Inline/Citation.hs
-formatted       b2fb48f770ee  pandoc-3.10.2/test/Tests/Readers/Org/Inline/Note.hs
-formatted       c86aabaf01bb  pandoc-3.10.2/test/Tests/Readers/Org/Inline/Smart.hs
-formatted       06c0169c3199  pandoc-3.10.2/test/Tests/Readers/Org/Meta.hs
-formatted       9f0320fe3803  pandoc-3.10.2/test/Tests/Readers/Org/Shared.hs
-formatted       1eb1a05f4635  pandoc-3.10.2/test/Tests/Readers/Pod.hs
-formatted       ff6bbea7ddc9  pandoc-3.10.2/test/Tests/Readers/Pptx.hs
-formatted       1320e3e7aa2d  pandoc-3.10.2/test/Tests/Readers/RST.hs
-formatted       63d3f17d29f9  pandoc-3.10.2/test/Tests/Readers/RTF.hs
-formatted       aca713b17e29  pandoc-3.10.2/test/Tests/Readers/Txt2Tags.hs
-formatted       d805d2ea3361  pandoc-3.10.2/test/Tests/Readers/Xlsx.hs
-formatted       2692dc26ee41  pandoc-3.10.2/test/Tests/Shared.hs
-formatted       ad523df96992  pandoc-3.10.2/test/Tests/Writers/AnnotatedTable.hs
-formatted       b21e7e06def4  pandoc-3.10.2/test/Tests/Writers/AsciiDoc.hs
-formatted       70088c61a9f3  pandoc-3.10.2/test/Tests/Writers/BBCode.hs
-formatted       6dcb350b3086  pandoc-3.10.2/test/Tests/Writers/ConTeXt.hs
-formatted       5881a7a78ecb  pandoc-3.10.2/test/Tests/Writers/DocBook.hs
-formatted       3734475521c2  pandoc-3.10.2/test/Tests/Writers/Docx.hs
-formatted       c93a204195d1  pandoc-3.10.2/test/Tests/Writers/FB2.hs
-formatted       328c6dec4e08  pandoc-3.10.2/test/Tests/Writers/HTML.hs
-formatted       e20190db8973  pandoc-3.10.2/test/Tests/Writers/JATS.hs
-formatted       f691886863f7  pandoc-3.10.2/test/Tests/Writers/Jira.hs
-formatted       9b6e923fe756  pandoc-3.10.2/test/Tests/Writers/LaTeX.hs
-formatted       c301d7bef6ff  pandoc-3.10.2/test/Tests/Writers/Markdown.hs
-formatted       c8345b0f787e  pandoc-3.10.2/test/Tests/Writers/Markua.hs
-formatted       fb4d32e30070  pandoc-3.10.2/test/Tests/Writers/Ms.hs
-formatted       ef0e40bc038b  pandoc-3.10.2/test/Tests/Writers/Muse.hs
-formatted       9309764377bd  pandoc-3.10.2/test/Tests/Writers/Native.hs
-formatted       123f7ce6880c  pandoc-3.10.2/test/Tests/Writers/OOXML.hs
-formatted       3033600cbe42  pandoc-3.10.2/test/Tests/Writers/Org.hs
-formatted       0e4b414e2dea  pandoc-3.10.2/test/Tests/Writers/Plain.hs
-formatted       1b5be67cf1c4  pandoc-3.10.2/test/Tests/Writers/Powerpoint.hs
-formatted       05aa845f56f2  pandoc-3.10.2/test/Tests/Writers/RST.hs
-formatted       7f7f9e6de407  pandoc-3.10.2/test/Tests/Writers/TEI.hs
-formatted       9286c785c97e  pandoc-3.10.2/test/Tests/Writers/Txt2Tags.hs
-formatted       14edd0465124  pandoc-3.10.2/test/Tests/XML.hs
-formatted       16057c777a9d  pandoc-3.10.2/test/command/3510-src.hs
-formatted       3f023b0abbe3  pandoc-3.10.2/test/command/6466-beg.hs
-formatted       06289f98fcac  pandoc-3.10.2/test/command/6466-end.hs
-formatted       546301610b9b  pandoc-3.10.2/test/command/6466-mid.hs
-formatted       b6f515e00962  pandoc-3.10.2/test/command/6466-whole.hs
-formatted       53aaf2e2c6e0  pandoc-3.10.2/test/test-pandoc.hs
-formatted       2556d5cb9f72  pandoc-3.10.2/xml-light/Text/Pandoc/XML/Light.hs
-formatted       3cd6a981ab05  pandoc-3.10.2/xml-light/Text/Pandoc/XML/Light/Output.hs
-formatted       3f7a60f285f2  pandoc-3.10.2/xml-light/Text/Pandoc/XML/Light/Proc.hs
-formatted       79460d761fcd  pandoc-3.10.2/xml-light/Text/Pandoc/XML/Light/Types.hs
-formatted       e865ae48f11b  pandoc-types-1.23.1.2/Setup.hs
-formatted       8376040e03f4  pandoc-types-1.23.1.2/benchmark/bench.hs
-formatted       779df2fa2e63  pandoc-types-1.23.1.2/src/Text/Pandoc/Arbitrary.hs
-formatted       2b99499bebfa  pandoc-types-1.23.1.2/src/Text/Pandoc/Builder.hs
-formatted       7400bafe0ab3  pandoc-types-1.23.1.2/src/Text/Pandoc/Definition.hs
-formatted       42a13347f367  pandoc-types-1.23.1.2/src/Text/Pandoc/Generic.hs
-formatted       8fad29f2adc4  pandoc-types-1.23.1.2/src/Text/Pandoc/JSON.hs
-formatted       521e0dcaf505  pandoc-types-1.23.1.2/src/Text/Pandoc/Walk.hs
-formatted       dcf10d45e788  pandoc-types-1.23.1.2/test/Data/String/QQ.hs
-formatted       aa803b05c956  pandoc-types-1.23.1.2/test/test-pandoc-types.hs
-formatted       7474b7e1d4f5  parsec3-1.0.1.8/Setup.hs
-formatted       48d72ad7fc59  parsec3-1.0.1.8/Text/Parsec.hs
-formatted       afc3d5a902fe  parsec3-1.0.1.8/Text/Parsec/ByteString.hs
-formatted       a9c7a6dd5b30  parsec3-1.0.1.8/Text/Parsec/ByteString/Lazy.hs
-formatted       5e6bdea20cf6  parsec3-1.0.1.8/Text/Parsec/Char.hs
-formatted       4abab8f9ceb8  parsec3-1.0.1.8/Text/Parsec/Combinator.hs
-formatted       94a0c2798c5a  parsec3-1.0.1.8/Text/Parsec/Error.hs
-formatted       048c32e5a768  parsec3-1.0.1.8/Text/Parsec/Expr.hs
-formatted       156014d6ed26  parsec3-1.0.1.8/Text/Parsec/Language.hs
-formatted       40bf4d018d51  parsec3-1.0.1.8/Text/Parsec/Perm.hs
-formatted       c50efff79fe5  parsec3-1.0.1.8/Text/Parsec/Pos.hs
-formatted       7c2c5a4c585c  parsec3-1.0.1.8/Text/Parsec/Prim.hs
-formatted       c911dc63e8d5  parsec3-1.0.1.8/Text/Parsec/String.hs
-formatted       72422924874a  parsec3-1.0.1.8/Text/Parsec/Text.hs
-formatted       6fd69590f1d3  parsec3-1.0.1.8/Text/Parsec/Text/Lazy.hs
-formatted       b6e8b0e16d14  parsec3-1.0.1.8/Text/Parsec/Token.hs
-formatted       22b02f116512  parser-combinators-1.3.1/Control/Applicative/Combinators.hs
-formatted       2b483a550d21  parser-combinators-1.3.1/Control/Applicative/Combinators/NonEmpty.hs
-formatted       7d01c0dddfcd  parser-combinators-1.3.1/Control/Applicative/Permutations.hs
-formatted       80eb76464ce8  parser-combinators-1.3.1/Control/Monad/Combinators.hs
-formatted       203c01d41bb8  parser-combinators-1.3.1/Control/Monad/Combinators/Expr.hs
-formatted       f63c3b21684d  parser-combinators-1.3.1/Control/Monad/Combinators/NonEmpty.hs
-formatted       2ce12720b575  parser-combinators-1.3.1/Control/Monad/Permutations.hs
-formatted       4c7a2ed66fb7  persistent-2.18.1.0/Database/Persist.hs
-formatted       af7417196697  persistent-2.18.1.0/Database/Persist/Class.hs
-formatted       a62cb576f4b1  persistent-2.18.1.0/Database/Persist/Class/PersistConfig.hs
-formatted       56f625ad1ea2  persistent-2.18.1.0/Database/Persist/Class/PersistEntity.hs
-formatted       59a8f044a3b1  persistent-2.18.1.0/Database/Persist/Class/PersistField.hs
-formatted       4229d83e727f  persistent-2.18.1.0/Database/Persist/Class/PersistQuery.hs
-formatted       194836df1fd0  persistent-2.18.1.0/Database/Persist/Class/PersistStore.hs
-formatted       c7df1c76c273  persistent-2.18.1.0/Database/Persist/Class/PersistUnique.hs
-formatted       8411f5f4d556  persistent-2.18.1.0/Database/Persist/Compatible.hs
-formatted       40afca283a80  persistent-2.18.1.0/Database/Persist/Compatible/TH.hs
-formatted       88f7099ef25d  persistent-2.18.1.0/Database/Persist/Compatible/Types.hs
-formatted       afd0e0f5df2e  persistent-2.18.1.0/Database/Persist/EntityDef.hs
-formatted       849d0a429195  persistent-2.18.1.0/Database/Persist/EntityDef/Internal.hs
-formatted       e1f19a8d7ad8  persistent-2.18.1.0/Database/Persist/FieldDef.hs
-formatted       ab8743cef9ef  persistent-2.18.1.0/Database/Persist/FieldDef/Internal.hs
-formatted       62ee350971e4  persistent-2.18.1.0/Database/Persist/ImplicitIdDef.hs
-formatted       23219cfb95d9  persistent-2.18.1.0/Database/Persist/ImplicitIdDef/Internal.hs
-formatted       03da4b4e1d1b  persistent-2.18.1.0/Database/Persist/Names.hs
-formatted       67c816fd5b28  persistent-2.18.1.0/Database/Persist/PersistValue.hs
-formatted       3b8981721873  persistent-2.18.1.0/Database/Persist/Quasi.hs
-formatted       8181443f0a2e  persistent-2.18.1.0/Database/Persist/Quasi/Internal.hs
-formatted       46a99c7ced31  persistent-2.18.1.0/Database/Persist/Quasi/Internal/ModelParser.hs
-formatted       7c334061474c  persistent-2.18.1.0/Database/Persist/Quasi/Internal/TypeParser.hs
-formatted       21110acf54fd  persistent-2.18.1.0/Database/Persist/Quasi/PersistSettings.hs
-formatted       bd8ed569b227  persistent-2.18.1.0/Database/Persist/Quasi/PersistSettings/Internal.hs
-formatted       a2208d509db2  persistent-2.18.1.0/Database/Persist/Sql.hs
-formatted       246fc7fd8a33  persistent-2.18.1.0/Database/Persist/Sql/Class.hs
-formatted       7df96aa6ca37  persistent-2.18.1.0/Database/Persist/Sql/Internal.hs
-formatted       8961bf4b32ff  persistent-2.18.1.0/Database/Persist/Sql/Migration.hs
-formatted       6bb586234ba3  persistent-2.18.1.0/Database/Persist/Sql/Orphan/PersistQuery.hs
-formatted       f92ba225547b  persistent-2.18.1.0/Database/Persist/Sql/Orphan/PersistStore.hs
-formatted       423a6f1ddcbf  persistent-2.18.1.0/Database/Persist/Sql/Orphan/PersistUnique.hs
-formatted       4da2e4b129cc  persistent-2.18.1.0/Database/Persist/Sql/Raw.hs
-formatted       0e7b2ba6e228  persistent-2.18.1.0/Database/Persist/Sql/Run.hs
-formatted       87c15b78e7c4  persistent-2.18.1.0/Database/Persist/Sql/Types.hs
-formatted       9e7bc02b72db  persistent-2.18.1.0/Database/Persist/Sql/Types/Internal.hs
-formatted       4501af7f2e24  persistent-2.18.1.0/Database/Persist/Sql/Util.hs
-formatted       20882da7c4ce  persistent-2.18.1.0/Database/Persist/SqlBackend.hs
-formatted       748cbc69c920  persistent-2.18.1.0/Database/Persist/SqlBackend/Internal.hs
-formatted       47acc3733907  persistent-2.18.1.0/Database/Persist/SqlBackend/Internal/InsertSqlResult.hs
-formatted       4bd5d30fe421  persistent-2.18.1.0/Database/Persist/SqlBackend/Internal/IsolationLevel.hs
-formatted       c8a378801422  persistent-2.18.1.0/Database/Persist/SqlBackend/Internal/MkSqlBackend.hs
-formatted       945521fad6a2  persistent-2.18.1.0/Database/Persist/SqlBackend/Internal/SqlPoolHooks.hs
-formatted       4e0a2509487b  persistent-2.18.1.0/Database/Persist/SqlBackend/Internal/Statement.hs
-formatted       e5985feb4a17  persistent-2.18.1.0/Database/Persist/SqlBackend/Internal/StatementCache.hs
-formatted       8c6a9aceba09  persistent-2.18.1.0/Database/Persist/SqlBackend/SqlPoolHooks.hs
-formatted       22acd1321720  persistent-2.18.1.0/Database/Persist/SqlBackend/StatementCache.hs
-formatted       c43972a3241b  persistent-2.18.1.0/Database/Persist/TH.hs
-formatted       041ebd0c7bdf  persistent-2.18.1.0/Database/Persist/TH/Internal.hs
-formatted       3eb1ab75fbdf  persistent-2.18.1.0/Database/Persist/Types.hs
-formatted       602702e0f86e  persistent-2.18.1.0/Database/Persist/Types/Base.hs
-formatted       b8189bc0e07d  persistent-2.18.1.0/Database/Persist/Types/SourceSpan.hs
-formatted       1aec50d3544f  persistent-2.18.1.0/bench/Main.hs
-formatted       d4e78e3f895b  persistent-2.18.1.0/bench/Models.hs
-formatted       1e8c8c93c976  persistent-2.18.1.0/test/Database/Persist/ClassSpec.hs
-formatted       6082a8164f41  persistent-2.18.1.0/test/Database/Persist/PersistValueSpec.hs
-formatted       6b7b4611f96f  persistent-2.18.1.0/test/Database/Persist/QuasiSpec.hs
-formatted       519e8fe84f6b  persistent-2.18.1.0/test/Database/Persist/TH/CommentSpec.hs
-formatted       e39700ee9e91  persistent-2.18.1.0/test/Database/Persist/TH/CompositeKeyStyleSpec.hs
-formatted       f9f4014951e3  persistent-2.18.1.0/test/Database/Persist/TH/DiscoverEntitiesSpec.hs
-formatted       c444c6731179  persistent-2.18.1.0/test/Database/Persist/TH/EmbedSpec.hs
-formatted       bf23d25d4982  persistent-2.18.1.0/test/Database/Persist/TH/EntityHaddockSpec.hs
-formatted       6809c758a81d  persistent-2.18.1.0/test/Database/Persist/TH/ForeignRefSpec.hs
-formatted       0c3421ff2893  persistent-2.18.1.0/test/Database/Persist/TH/ImplicitIdColSpec.hs
-formatted       8570d4321968  persistent-2.18.1.0/test/Database/Persist/TH/JsonEncodingSpec.hs
-formatted       8adfe4a4228d  persistent-2.18.1.0/test/Database/Persist/TH/KindEntitiesSpec.hs
-formatted       5aacd109f219  persistent-2.18.1.0/test/Database/Persist/TH/KindEntitiesSpecImports.hs
-formatted       95ba90d362da  persistent-2.18.1.0/test/Database/Persist/TH/MaybeFieldDefsSpec.hs
-formatted       c4b2085e7249  persistent-2.18.1.0/test/Database/Persist/TH/MigrationOnlySpec.hs
-formatted       dbad9d8d922f  persistent-2.18.1.0/test/Database/Persist/TH/MultiBlockSpec.hs
-formatted       b776165f7ac3  persistent-2.18.1.0/test/Database/Persist/TH/MultiBlockSpec/Model.hs
-formatted       baa7f67273ec  persistent-2.18.1.0/test/Database/Persist/TH/NestedSymbolsInTypeSpec.hs
-formatted       f0e370f995e7  persistent-2.18.1.0/test/Database/Persist/TH/NestedSymbolsInTypeSpecImports.hs
-formatted       148f97b27fd9  persistent-2.18.1.0/test/Database/Persist/TH/NoFieldSelectorsSpec.hs
-formatted       e227905a242e  persistent-2.18.1.0/test/Database/Persist/TH/OverloadedLabelSpec.hs
-formatted       ad712bcac46e  persistent-2.18.1.0/test/Database/Persist/TH/PersistWith/Model.hs
-formatted       8d58beb8b33c  persistent-2.18.1.0/test/Database/Persist/TH/PersistWith/Model2.hs
-formatted       a7b8dff135f1  persistent-2.18.1.0/test/Database/Persist/TH/PersistWithSpec.hs
-formatted       7b6cf72d5ecc  persistent-2.18.1.0/test/Database/Persist/TH/RequireOnlyPersistImportSpec.hs
-formatted       9a0756832b2d  persistent-2.18.1.0/test/Database/Persist/TH/SharedPrimaryKeyImportedSpec.hs
-formatted       885e1164f19c  persistent-2.18.1.0/test/Database/Persist/TH/SharedPrimaryKeySpec.hs
-formatted       145463b36f4d  persistent-2.18.1.0/test/Database/Persist/TH/SumSpec.hs
-formatted       e6bfe40fd881  persistent-2.18.1.0/test/Database/Persist/TH/ToFromPersistValuesSpec.hs
-formatted       a18bfc6474db  persistent-2.18.1.0/test/Database/Persist/TH/TypeLitFieldDefsSpec.hs
-formatted       4b5eb99e6097  persistent-2.18.1.0/test/Database/Persist/THSpec.hs
-formatted       f9304e426550  persistent-2.18.1.0/test/TemplateTestImports.hs
-formatted       7f05465b25d5  persistent-2.18.1.0/test/main.hs
-formatted       e865ae48f11b  pipes-4.3.16/Setup.hs
-formatted       bc3b140ba83c  pipes-4.3.16/benchmarks/Common.hs
-formatted       e459e4d124d4  pipes-4.3.16/benchmarks/LiftBench.hs
-formatted       d100cca123ea  pipes-4.3.16/benchmarks/PreludeBench.hs
-formatted       651557525061  pipes-4.3.16/src/Pipes.hs
-formatted       332e8aaad352  pipes-4.3.16/src/Pipes/Core.hs
-formatted       e021398dbff3  pipes-4.3.16/src/Pipes/Internal.hs
-formatted       e3b36f0685b2  pipes-4.3.16/src/Pipes/Lift.hs
-formatted       82bba5f85292  pipes-4.3.16/src/Pipes/Prelude.hs
-formatted       436224de8a77  pipes-4.3.16/src/Pipes/Tutorial.hs
-formatted       2d58a81d02c8  pipes-4.3.16/tests/Main.hs
-formatted       56dca68e0a87  postgrest-9.0.1/Setup.hs
-formatted       772d4f353686  postgrest-9.0.1/main/Main.hs
-formatted       e24d5ee8932f  postgrest-9.0.1/src/PostgREST/App.hs
-formatted       f658b8d95628  postgrest-9.0.1/src/PostgREST/AppState.hs
-formatted       04688f64c4e1  postgrest-9.0.1/src/PostgREST/Auth.hs
-formatted       0abbe3feaa05  postgrest-9.0.1/src/PostgREST/CLI.hs
-formatted       1b3df3371712  postgrest-9.0.1/src/PostgREST/Config.hs
-formatted       26e0ccfa04f8  postgrest-9.0.1/src/PostgREST/Config/Database.hs
-formatted       9632241317fd  postgrest-9.0.1/src/PostgREST/Config/JSPath.hs
-formatted       b719e278251b  postgrest-9.0.1/src/PostgREST/Config/PgVersion.hs
-formatted       6c2ca99e2760  postgrest-9.0.1/src/PostgREST/Config/Proxy.hs
-formatted       65c66f863629  postgrest-9.0.1/src/PostgREST/ContentType.hs
-formatted       9200d4931d04  postgrest-9.0.1/src/PostgREST/Cors.hs
-formatted       738b5e18a7a6  postgrest-9.0.1/src/PostgREST/DbStructure.hs
-formatted       a0f5c884d319  postgrest-9.0.1/src/PostgREST/DbStructure/Identifiers.hs
-formatted       29d8af69557a  postgrest-9.0.1/src/PostgREST/DbStructure/Proc.hs
-formatted       8670bffe5d4a  postgrest-9.0.1/src/PostgREST/DbStructure/Relationship.hs
-formatted       66c6fb5fc0f5  postgrest-9.0.1/src/PostgREST/DbStructure/Table.hs
-formatted       c35d5cc3a41e  postgrest-9.0.1/src/PostgREST/Error.hs
-formatted       f1b82d17eed8  postgrest-9.0.1/src/PostgREST/GucHeader.hs
-formatted       2c6a7ae61af9  postgrest-9.0.1/src/PostgREST/Logger.hs
-formatted       1dacd910468e  postgrest-9.0.1/src/PostgREST/Middleware.hs
-formatted       17654b363841  postgrest-9.0.1/src/PostgREST/OpenAPI.hs
-formatted       e057b4b771ea  postgrest-9.0.1/src/PostgREST/Query/QueryBuilder.hs
-formatted       9ac8d5c64df2  postgrest-9.0.1/src/PostgREST/Query/SqlFragment.hs
-formatted       5f4cbf20b7f3  postgrest-9.0.1/src/PostgREST/Query/Statements.hs
-formatted       7d83276a4311  postgrest-9.0.1/src/PostgREST/RangeQuery.hs
-formatted       4cecd3055b78  postgrest-9.0.1/src/PostgREST/Request/ApiRequest.hs
-formatted       de23350d6744  postgrest-9.0.1/src/PostgREST/Request/DbRequestBuilder.hs
-formatted       fc3632173741  postgrest-9.0.1/src/PostgREST/Request/Parsers.hs
-formatted       8e710c5836da  postgrest-9.0.1/src/PostgREST/Request/Preferences.hs
-formatted       1353ba00b6c3  postgrest-9.0.1/src/PostgREST/Request/Types.hs
-formatted       0c839dec485e  postgrest-9.0.1/src/PostgREST/Unix.hs
-formatted       793800bb054f  postgrest-9.0.1/src/PostgREST/Version.hs
-formatted       900b9c705574  postgrest-9.0.1/src/PostgREST/Workers.hs
-formatted       c719f882d27c  postgrest-9.0.1/test/doc/Main.hs
-formatted       0aa4fe971d52  postgrest-9.0.1/test/spec/Feature/AndOrParamsSpec.hs
-formatted       000191b3349e  postgrest-9.0.1/test/spec/Feature/AsymmetricJwtSpec.hs
-formatted       5a86c6233052  postgrest-9.0.1/test/spec/Feature/AudienceJwtSecretSpec.hs
-formatted       acbe9362314e  postgrest-9.0.1/test/spec/Feature/AuthSpec.hs
-formatted       7cb71699f728  postgrest-9.0.1/test/spec/Feature/BinaryJwtSecretSpec.hs
-formatted       2fb433681c01  postgrest-9.0.1/test/spec/Feature/ConcurrentSpec.hs
-formatted       db553e991f45  postgrest-9.0.1/test/spec/Feature/CorsSpec.hs
-formatted       343d3e3a465e  postgrest-9.0.1/test/spec/Feature/DeleteSpec.hs
-formatted       112082d3da25  postgrest-9.0.1/test/spec/Feature/DisabledOpenApiSpec.hs
-formatted       ad7384965a9e  postgrest-9.0.1/test/spec/Feature/EmbedDisambiguationSpec.hs
-formatted       f7a7ea3d2a87  postgrest-9.0.1/test/spec/Feature/EmbedInnerJoinSpec.hs
-formatted       a3dddabdb704  postgrest-9.0.1/test/spec/Feature/ExtraSearchPathSpec.hs
-formatted       ff20687cb475  postgrest-9.0.1/test/spec/Feature/HtmlRawOutputSpec.hs
-formatted       2e6a9474e718  postgrest-9.0.1/test/spec/Feature/IgnorePrivOpenApiSpec.hs
-formatted       ea599ebfe99c  postgrest-9.0.1/test/spec/Feature/InsertSpec.hs
-formatted       6f6ff9c35189  postgrest-9.0.1/test/spec/Feature/JsonOperatorSpec.hs
-formatted       12271bc52ad6  postgrest-9.0.1/test/spec/Feature/LegacyGucsSpec.hs
-formatted       5228aaf9349c  postgrest-9.0.1/test/spec/Feature/MultipleSchemaSpec.hs
-formatted       3e8b6471e229  postgrest-9.0.1/test/spec/Feature/NoJwtSpec.hs
-formatted       a7144a84ab24  postgrest-9.0.1/test/spec/Feature/NonexistentSchemaSpec.hs
-formatted       d10bde3ba967  postgrest-9.0.1/test/spec/Feature/OpenApiSpec.hs
-formatted       1b9c2f6f5c75  postgrest-9.0.1/test/spec/Feature/OptionsSpec.hs
-formatted       89a1589ff0fe  postgrest-9.0.1/test/spec/Feature/ProxySpec.hs
-formatted       4e889783f9ba  postgrest-9.0.1/test/spec/Feature/QueryLimitedSpec.hs
-formatted       343a60a46b7c  postgrest-9.0.1/test/spec/Feature/QuerySpec.hs
-formatted       06632a6a8e0a  postgrest-9.0.1/test/spec/Feature/RangeSpec.hs
-formatted       7cb746560127  postgrest-9.0.1/test/spec/Feature/RawOutputTypesSpec.hs
-formatted       b4a3ab5a81a9  postgrest-9.0.1/test/spec/Feature/RollbackSpec.hs
-formatted       dc5321d79fb3  postgrest-9.0.1/test/spec/Feature/RootSpec.hs
-formatted       77a649eeb2e6  postgrest-9.0.1/test/spec/Feature/RpcPreRequestGucsSpec.hs
-formatted       79c99d7ebcf6  postgrest-9.0.1/test/spec/Feature/RpcSpec.hs
-formatted       73c0ab518a3d  postgrest-9.0.1/test/spec/Feature/SingularSpec.hs
-formatted       be03de84804f  postgrest-9.0.1/test/spec/Feature/UnicodeSpec.hs
-formatted       162dade8a566  postgrest-9.0.1/test/spec/Feature/UpdateSpec.hs
-formatted       eb3b5ebce8b4  postgrest-9.0.1/test/spec/Feature/UpsertSpec.hs
-formatted       7a9dd3383794  postgrest-9.0.1/test/spec/Main.hs
-formatted       f32b163f57d7  postgrest-9.0.1/test/spec/QueryCost.hs
-formatted       c8a3a9772eba  postgrest-9.0.1/test/spec/SpecHelper.hs
-formatted       c136e6235ce2  postgrest-9.0.1/test/spec/TestTypes.hs
-formatted       13abd8b59335  profunctors-5.6.3/src/Data/Profunctor.hs
-formatted       cd53a440a7f3  profunctors-5.6.3/src/Data/Profunctor/Adjunction.hs
-formatted       44ffb6d1bea1  profunctors-5.6.3/src/Data/Profunctor/Cayley.hs
-formatted       44e226489961  profunctors-5.6.3/src/Data/Profunctor/Choice.hs
-formatted       c367f5dff16e  profunctors-5.6.3/src/Data/Profunctor/Closed.hs
-formatted       160d1a664492  profunctors-5.6.3/src/Data/Profunctor/Composition.hs
-formatted       637e91df9ad9  profunctors-5.6.3/src/Data/Profunctor/Mapping.hs
-formatted       59b30aaa8b06  profunctors-5.6.3/src/Data/Profunctor/Monad.hs
-formatted       d783247e0329  profunctors-5.6.3/src/Data/Profunctor/Ran.hs
-formatted       1a03f7457399  profunctors-5.6.3/src/Data/Profunctor/Rep.hs
-formatted       a405de2f08b4  profunctors-5.6.3/src/Data/Profunctor/Sieve.hs
-formatted       40a5163c4f1d  profunctors-5.6.3/src/Data/Profunctor/Strong.hs
-formatted       c581748aad4e  profunctors-5.6.3/src/Data/Profunctor/Traversing.hs
-formatted       66e633834891  profunctors-5.6.3/src/Data/Profunctor/Types.hs
-formatted       6d4d49816f3c  profunctors-5.6.3/src/Data/Profunctor/Unsafe.hs
-formatted       d859bac5f783  profunctors-5.6.3/src/Data/Profunctor/Yoneda.hs
-formatted       f97b976f5a71  purescript-0.15.15/Setup.hs
-formatted       fc25cc9ab507  purescript-0.15.15/app/Command/Bundle.hs
-formatted       d0c2fd344d2b  purescript-0.15.15/app/Command/Compile.hs
-formatted       7219813f0a5c  purescript-0.15.15/app/Command/Docs.hs
-formatted       c06c3f05260e  purescript-0.15.15/app/Command/Docs/Html.hs
-formatted       037036ef66e1  purescript-0.15.15/app/Command/Docs/Markdown.hs
-formatted       60636f418bc5  purescript-0.15.15/app/Command/Graph.hs
-formatted       60131f690f8b  purescript-0.15.15/app/Command/Hierarchy.hs
-formatted       be7dd3becfad  purescript-0.15.15/app/Command/Ide.hs
-formatted       2c3998824b51  purescript-0.15.15/app/Command/Publish.hs
-formatted       a930f15c3b4e  purescript-0.15.15/app/Command/REPL.hs
-formatted       aa128423c4fb  purescript-0.15.15/app/Main.hs
-formatted       8c8cfed900b8  purescript-0.15.15/app/SharedCLI.hs
-formatted       18a85337fa6b  purescript-0.15.15/app/Version.hs
-formatted       e69aed05fabc  purescript-0.15.15/src/Control/Monad/Logger.hs
-formatted       f396208e56b6  purescript-0.15.15/src/Control/Monad/Supply.hs
-formatted       4199e8087c69  purescript-0.15.15/src/Control/Monad/Supply/Class.hs
-formatted       7a4d7979e1c9  purescript-0.15.15/src/Data/Text/PureScript.hs
-formatted       eef5dd037abf  purescript-0.15.15/src/Language/PureScript.hs
-formatted       64c0d4442190  purescript-0.15.15/src/Language/PureScript/AST.hs
-formatted       6857432ccb89  purescript-0.15.15/src/Language/PureScript/AST/Binders.hs
-formatted       31b3dc106302  purescript-0.15.15/src/Language/PureScript/AST/Declarations.hs
-formatted       0368132e2a7c  purescript-0.15.15/src/Language/PureScript/AST/Declarations/ChainId.hs
-formatted       fbdaa45efd39  purescript-0.15.15/src/Language/PureScript/AST/Exported.hs
-formatted       16c598490b8b  purescript-0.15.15/src/Language/PureScript/AST/Literals.hs
-formatted       6dde4019084f  purescript-0.15.15/src/Language/PureScript/AST/Operators.hs
-formatted       7cb50594d1de  purescript-0.15.15/src/Language/PureScript/AST/SourcePos.hs
-formatted       fd740ce393cd  purescript-0.15.15/src/Language/PureScript/AST/Traversals.hs
-formatted       b141c8c10db8  purescript-0.15.15/src/Language/PureScript/AST/Utils.hs
-formatted       174742a25d11  purescript-0.15.15/src/Language/PureScript/Bundle.hs
-formatted       665ede6abf17  purescript-0.15.15/src/Language/PureScript/CST.hs
-formatted       a5963c5438f8  purescript-0.15.15/src/Language/PureScript/CST/Convert.hs
-formatted       2143990c6781  purescript-0.15.15/src/Language/PureScript/CST/Errors.hs
-formatted       c81c2ecf7ebe  purescript-0.15.15/src/Language/PureScript/CST/Flatten.hs
-formatted       36fe1c70493a  purescript-0.15.15/src/Language/PureScript/CST/Layout.hs
-formatted       7ac157858a86  purescript-0.15.15/src/Language/PureScript/CST/Lexer.hs
-formatted       a08c36743aa3  purescript-0.15.15/src/Language/PureScript/CST/Monad.hs
-formatted       a696e86ab554  purescript-0.15.15/src/Language/PureScript/CST/Positions.hs
-formatted       2df3a82dec66  purescript-0.15.15/src/Language/PureScript/CST/Print.hs
-formatted       c741805ffed3  purescript-0.15.15/src/Language/PureScript/CST/Traversals.hs
-formatted       81c5d151f932  purescript-0.15.15/src/Language/PureScript/CST/Traversals/Type.hs
-formatted       46dd73253c21  purescript-0.15.15/src/Language/PureScript/CST/Types.hs
-formatted       36359ab27c15  purescript-0.15.15/src/Language/PureScript/CST/Utils.hs
-formatted       ebd74707d2df  purescript-0.15.15/src/Language/PureScript/CodeGen.hs
-formatted       9cf1b3de6d73  purescript-0.15.15/src/Language/PureScript/CodeGen/JS.hs
-formatted       f10bc54be3c8  purescript-0.15.15/src/Language/PureScript/CodeGen/JS/Common.hs
-formatted       f81f2f0671e9  purescript-0.15.15/src/Language/PureScript/CodeGen/JS/Printer.hs
-formatted       a69b28f801ea  purescript-0.15.15/src/Language/PureScript/Comments.hs
-formatted       7e1454fed47d  purescript-0.15.15/src/Language/PureScript/Constants/Libs.hs
-formatted       4e84deb1970c  purescript-0.15.15/src/Language/PureScript/Constants/Prim.hs
-formatted       08cf8657b87b  purescript-0.15.15/src/Language/PureScript/Constants/TH.hs
-formatted       0e372eb9e534  purescript-0.15.15/src/Language/PureScript/CoreFn.hs
-formatted       c133879c858f  purescript-0.15.15/src/Language/PureScript/CoreFn/Ann.hs
-formatted       2556afbb3bea  purescript-0.15.15/src/Language/PureScript/CoreFn/Binders.hs
-formatted       08f7f269d88a  purescript-0.15.15/src/Language/PureScript/CoreFn/CSE.hs
-formatted       3a083ba8ee7c  purescript-0.15.15/src/Language/PureScript/CoreFn/Desugar.hs
-formatted       2f90c3840d55  purescript-0.15.15/src/Language/PureScript/CoreFn/Expr.hs
-formatted       17eec7fac664  purescript-0.15.15/src/Language/PureScript/CoreFn/FromJSON.hs
-formatted       3a475fc18f00  purescript-0.15.15/src/Language/PureScript/CoreFn/Laziness.hs
-formatted       083a81cbf5bf  purescript-0.15.15/src/Language/PureScript/CoreFn/Meta.hs
-formatted       2b2d42f479f2  purescript-0.15.15/src/Language/PureScript/CoreFn/Module.hs
-formatted       26edb255fed7  purescript-0.15.15/src/Language/PureScript/CoreFn/Optimizer.hs
-formatted       a01b08124299  purescript-0.15.15/src/Language/PureScript/CoreFn/ToJSON.hs
-formatted       74e775f771b9  purescript-0.15.15/src/Language/PureScript/CoreFn/Traversals.hs
-formatted       63122a31d5b9  purescript-0.15.15/src/Language/PureScript/CoreImp.hs
-formatted       5545c5e53cd1  purescript-0.15.15/src/Language/PureScript/CoreImp/AST.hs
-formatted       07f8248f1a4c  purescript-0.15.15/src/Language/PureScript/CoreImp/Module.hs
-formatted       76a5683510a3  purescript-0.15.15/src/Language/PureScript/CoreImp/Optimizer.hs
-formatted       900e45f47ef2  purescript-0.15.15/src/Language/PureScript/CoreImp/Optimizer/Blocks.hs
-formatted       635c6dcfbee9  purescript-0.15.15/src/Language/PureScript/CoreImp/Optimizer/Common.hs
-formatted       1d936757f795  purescript-0.15.15/src/Language/PureScript/CoreImp/Optimizer/Inliner.hs
-formatted       cd70e24b2f0a  purescript-0.15.15/src/Language/PureScript/CoreImp/Optimizer/MagicDo.hs
-formatted       4a46787c4f53  purescript-0.15.15/src/Language/PureScript/CoreImp/Optimizer/TCO.hs
-formatted       c3bcb1230471  purescript-0.15.15/src/Language/PureScript/CoreImp/Optimizer/Unused.hs
-formatted       54228acabdeb  purescript-0.15.15/src/Language/PureScript/Crash.hs
-formatted       d38f4a6a3f33  purescript-0.15.15/src/Language/PureScript/Docs.hs
-formatted       bec4951fe3e0  purescript-0.15.15/src/Language/PureScript/Docs/AsHtml.hs
-formatted       b2652f6691cc  purescript-0.15.15/src/Language/PureScript/Docs/AsMarkdown.hs
-formatted       a02b1656aca1  purescript-0.15.15/src/Language/PureScript/Docs/Collect.hs
-formatted       4b0e409bc207  purescript-0.15.15/src/Language/PureScript/Docs/Convert.hs
-formatted       d0cd55c3280e  purescript-0.15.15/src/Language/PureScript/Docs/Convert/ReExports.hs
-formatted       9037caf6f0fd  purescript-0.15.15/src/Language/PureScript/Docs/Convert/Single.hs
-formatted       d97124c1ab6a  purescript-0.15.15/src/Language/PureScript/Docs/Css.hs
-formatted       f90d0d26dd2b  purescript-0.15.15/src/Language/PureScript/Docs/Prim.hs
-formatted       edaa27498ded  purescript-0.15.15/src/Language/PureScript/Docs/Render.hs
-formatted       4c98064ffe67  purescript-0.15.15/src/Language/PureScript/Docs/RenderedCode.hs
-formatted       2f9857670eb2  purescript-0.15.15/src/Language/PureScript/Docs/RenderedCode/RenderType.hs
-formatted       c20dd6b6a9df  purescript-0.15.15/src/Language/PureScript/Docs/RenderedCode/Types.hs
-formatted       876b5438b748  purescript-0.15.15/src/Language/PureScript/Docs/Tags.hs
-formatted       5872469a59f7  purescript-0.15.15/src/Language/PureScript/Docs/Types.hs
-formatted       bc381d509404  purescript-0.15.15/src/Language/PureScript/Docs/Utils/MonoidExtras.hs
-formatted       bb6ed1581fd8  purescript-0.15.15/src/Language/PureScript/Environment.hs
-formatted       833858141e1a  purescript-0.15.15/src/Language/PureScript/Errors.hs
-formatted       805b37c2988c  purescript-0.15.15/src/Language/PureScript/Errors/JSON.hs
-formatted       30d65d281400  purescript-0.15.15/src/Language/PureScript/Externs.hs
-formatted       20df6c4b2580  purescript-0.15.15/src/Language/PureScript/Glob.hs
-formatted       a91b6028a053  purescript-0.15.15/src/Language/PureScript/Graph.hs
-formatted       0af324e42f5f  purescript-0.15.15/src/Language/PureScript/Hierarchy.hs
-formatted       281c5e956097  purescript-0.15.15/src/Language/PureScript/Ide.hs
-formatted       4d15e4184a91  purescript-0.15.15/src/Language/PureScript/Ide/CaseSplit.hs
-formatted       206e9d6ee362  purescript-0.15.15/src/Language/PureScript/Ide/Command.hs
-formatted       9df2facac4b2  purescript-0.15.15/src/Language/PureScript/Ide/Completion.hs
-formatted       beb74c449b74  purescript-0.15.15/src/Language/PureScript/Ide/Error.hs
-formatted       ead51a8cf8b2  purescript-0.15.15/src/Language/PureScript/Ide/Externs.hs
-formatted       846996d62981  purescript-0.15.15/src/Language/PureScript/Ide/Filter.hs
-formatted       3576f2d7de05  purescript-0.15.15/src/Language/PureScript/Ide/Filter/Declaration.hs
-formatted       19c2f9d82289  purescript-0.15.15/src/Language/PureScript/Ide/Filter/Imports.hs
-formatted       d3bf1ba9ac6a  purescript-0.15.15/src/Language/PureScript/Ide/Imports.hs
-formatted       03a7f932c16a  purescript-0.15.15/src/Language/PureScript/Ide/Imports/Actions.hs
-formatted       dae869e09d51  purescript-0.15.15/src/Language/PureScript/Ide/Logging.hs
-formatted       6495efed1636  purescript-0.15.15/src/Language/PureScript/Ide/Matcher.hs
-formatted       fe69a6b2ed2c  purescript-0.15.15/src/Language/PureScript/Ide/Prim.hs
-formatted       ac973f1b2f5a  purescript-0.15.15/src/Language/PureScript/Ide/Rebuild.hs
-formatted       9390668ca723  purescript-0.15.15/src/Language/PureScript/Ide/Reexports.hs
-formatted       40ae0185eda5  purescript-0.15.15/src/Language/PureScript/Ide/SourceFile.hs
-formatted       4badb68aba43  purescript-0.15.15/src/Language/PureScript/Ide/State.hs
-formatted       97156b72015a  purescript-0.15.15/src/Language/PureScript/Ide/Types.hs
-formatted       a2547b22a5bd  purescript-0.15.15/src/Language/PureScript/Ide/Usage.hs
-formatted       c5c7f0134f7c  purescript-0.15.15/src/Language/PureScript/Ide/Util.hs
-formatted       a54bd99f9377  purescript-0.15.15/src/Language/PureScript/Interactive.hs
-formatted       ea47006e2013  purescript-0.15.15/src/Language/PureScript/Interactive/Completion.hs
-formatted       17488dfda517  purescript-0.15.15/src/Language/PureScript/Interactive/Directive.hs
-formatted       2ab1349ff2ec  purescript-0.15.15/src/Language/PureScript/Interactive/IO.hs
-formatted       f41f6e5826db  purescript-0.15.15/src/Language/PureScript/Interactive/Message.hs
-formatted       595ebf5e2141  purescript-0.15.15/src/Language/PureScript/Interactive/Module.hs
-formatted       4b81e9100134  purescript-0.15.15/src/Language/PureScript/Interactive/Parser.hs
-formatted       1addaeaf36e0  purescript-0.15.15/src/Language/PureScript/Interactive/Printer.hs
-formatted       2a5d0038271f  purescript-0.15.15/src/Language/PureScript/Interactive/Types.hs
-formatted       1c78dfc40930  purescript-0.15.15/src/Language/PureScript/Label.hs
-formatted       2d0f22fb5805  purescript-0.15.15/src/Language/PureScript/Linter.hs
-formatted       a4813ff2c614  purescript-0.15.15/src/Language/PureScript/Linter/Exhaustive.hs
-formatted       299f2c75ebc4  purescript-0.15.15/src/Language/PureScript/Linter/Imports.hs
-formatted       463c2330ffe1  purescript-0.15.15/src/Language/PureScript/Linter/Wildcards.hs
-formatted       1511cd74f131  purescript-0.15.15/src/Language/PureScript/Make.hs
-formatted       316ef33e238d  purescript-0.15.15/src/Language/PureScript/Make/Actions.hs
-formatted       103c1376e453  purescript-0.15.15/src/Language/PureScript/Make/BuildPlan.hs
-formatted       2ff6ea3e0439  purescript-0.15.15/src/Language/PureScript/Make/Cache.hs
-formatted       5a62260bbc36  purescript-0.15.15/src/Language/PureScript/Make/Monad.hs
-formatted       d32972a1d126  purescript-0.15.15/src/Language/PureScript/ModuleDependencies.hs
-formatted       55c6638b2d15  purescript-0.15.15/src/Language/PureScript/Names.hs
-formatted       0f9b1ea22f14  purescript-0.15.15/src/Language/PureScript/Options.hs
-formatted       2a2b99ef8171  purescript-0.15.15/src/Language/PureScript/PSString.hs
-formatted       2b26a96d8bcc  purescript-0.15.15/src/Language/PureScript/Pretty.hs
-formatted       c590bb7fdae4  purescript-0.15.15/src/Language/PureScript/Pretty/Common.hs
-formatted       c8ae94e56cbc  purescript-0.15.15/src/Language/PureScript/Pretty/Types.hs
-formatted       e154c175f83f  purescript-0.15.15/src/Language/PureScript/Pretty/Values.hs
-formatted       7afc9764bee9  purescript-0.15.15/src/Language/PureScript/Publish.hs
-formatted       79e26f16154a  purescript-0.15.15/src/Language/PureScript/Publish/BoxesHelpers.hs
-formatted       fd7373c25f32  purescript-0.15.15/src/Language/PureScript/Publish/ErrorsWarnings.hs
-formatted       a7eeb8da714c  purescript-0.15.15/src/Language/PureScript/Publish/Registry/Compat.hs
-formatted       fba7a9e201e6  purescript-0.15.15/src/Language/PureScript/Publish/Utils.hs
-formatted       c4b949fe0d09  purescript-0.15.15/src/Language/PureScript/Renamer.hs
-formatted       9e88be14067d  purescript-0.15.15/src/Language/PureScript/Roles.hs
-formatted       2530d5774295  purescript-0.15.15/src/Language/PureScript/Sugar.hs
-formatted       834b0e83e969  purescript-0.15.15/src/Language/PureScript/Sugar/AdoNotation.hs
-formatted       69ace5e25259  purescript-0.15.15/src/Language/PureScript/Sugar/BindingGroups.hs
-formatted       502cd635c402  purescript-0.15.15/src/Language/PureScript/Sugar/CaseDeclarations.hs
-formatted       7efb24168510  purescript-0.15.15/src/Language/PureScript/Sugar/DoNotation.hs
-formatted       b232946c3700  purescript-0.15.15/src/Language/PureScript/Sugar/LetPattern.hs
-formatted       ae52bb36f9ee  purescript-0.15.15/src/Language/PureScript/Sugar/Names.hs
-formatted       b2eab3efd8fe  purescript-0.15.15/src/Language/PureScript/Sugar/Names/Common.hs
-formatted       e317ca567acf  purescript-0.15.15/src/Language/PureScript/Sugar/Names/Env.hs
-formatted       f2e2506cd465  purescript-0.15.15/src/Language/PureScript/Sugar/Names/Exports.hs
-formatted       6955df9dd4c2  purescript-0.15.15/src/Language/PureScript/Sugar/Names/Imports.hs
-formatted       54d278b2a1af  purescript-0.15.15/src/Language/PureScript/Sugar/ObjectWildcards.hs
-formatted       1f8d111ee043  purescript-0.15.15/src/Language/PureScript/Sugar/Operators.hs
-formatted       9db73f9a40a9  purescript-0.15.15/src/Language/PureScript/Sugar/Operators/Binders.hs
-formatted       13722182a0e7  purescript-0.15.15/src/Language/PureScript/Sugar/Operators/Common.hs
-formatted       a5ab8188f154  purescript-0.15.15/src/Language/PureScript/Sugar/Operators/Expr.hs
-formatted       81c3efe7c9f9  purescript-0.15.15/src/Language/PureScript/Sugar/Operators/Types.hs
-formatted       fb9c5b98a9e5  purescript-0.15.15/src/Language/PureScript/Sugar/TypeClasses.hs
-formatted       7d9f317829e0  purescript-0.15.15/src/Language/PureScript/Sugar/TypeClasses/Deriving.hs
-formatted       ecea49da50c6  purescript-0.15.15/src/Language/PureScript/Sugar/TypeDeclarations.hs
-formatted       24e5df024499  purescript-0.15.15/src/Language/PureScript/Traversals.hs
-formatted       ca48c70748fe  purescript-0.15.15/src/Language/PureScript/TypeChecker.hs
-formatted       9b0b916deed1  purescript-0.15.15/src/Language/PureScript/TypeChecker/Deriving.hs
-formatted       6f3315a67e07  purescript-0.15.15/src/Language/PureScript/TypeChecker/Entailment.hs
-formatted       475dea9a3c17  purescript-0.15.15/src/Language/PureScript/TypeChecker/Entailment/Coercible.hs
-formatted       b504bbdc02b8  purescript-0.15.15/src/Language/PureScript/TypeChecker/Entailment/IntCompare.hs
-formatted       3fc4c00e183c  purescript-0.15.15/src/Language/PureScript/TypeChecker/Kinds.hs
-formatted       47e4f5ec9f12  purescript-0.15.15/src/Language/PureScript/TypeChecker/Monad.hs
-formatted       4c2777ae908a  purescript-0.15.15/src/Language/PureScript/TypeChecker/Roles.hs
-formatted       3d9eb14e5345  purescript-0.15.15/src/Language/PureScript/TypeChecker/Skolems.hs
-formatted       c8964442e6c6  purescript-0.15.15/src/Language/PureScript/TypeChecker/Subsumption.hs
-formatted       c5b309590b3d  purescript-0.15.15/src/Language/PureScript/TypeChecker/Synonyms.hs
-formatted       a0db4db50108  purescript-0.15.15/src/Language/PureScript/TypeChecker/TypeSearch.hs
-formatted       57b17dd90b2b  purescript-0.15.15/src/Language/PureScript/TypeChecker/Types.hs
-formatted       e88ff7e32a40  purescript-0.15.15/src/Language/PureScript/TypeChecker/Unify.hs
-formatted       2d148264f334  purescript-0.15.15/src/Language/PureScript/TypeClassDictionaries.hs
-formatted       ed3ce891a8d0  purescript-0.15.15/src/Language/PureScript/Types.hs
-formatted       50a45fbad08d  purescript-0.15.15/src/System/IO/UTF8.hs
-formatted       c599f7d8bf58  purescript-0.15.15/tests/Language/PureScript/Ide/CompletionSpec.hs
-formatted       099ba0badfd6  purescript-0.15.15/tests/Language/PureScript/Ide/FilterSpec.hs
-formatted       1033245eef97  purescript-0.15.15/tests/Language/PureScript/Ide/ImportsSpec.hs
-formatted       028f5c10dae7  purescript-0.15.15/tests/Language/PureScript/Ide/MatcherSpec.hs
-formatted       e7c92690fcf3  purescript-0.15.15/tests/Language/PureScript/Ide/RebuildSpec.hs
-formatted       7890facc486a  purescript-0.15.15/tests/Language/PureScript/Ide/ReexportsSpec.hs
-formatted       59d2a1d292e1  purescript-0.15.15/tests/Language/PureScript/Ide/SourceFileSpec.hs
-formatted       904535829fba  purescript-0.15.15/tests/Language/PureScript/Ide/StateSpec.hs
-formatted       9864a15e1927  purescript-0.15.15/tests/Language/PureScript/Ide/Test.hs
-formatted       67fe4d589cdb  purescript-0.15.15/tests/Language/PureScript/Ide/UsageSpec.hs
-formatted       0406ed28e812  purescript-0.15.15/tests/Main.hs
-formatted       ed333c67c3b1  purescript-0.15.15/tests/PscIdeSpec.hs
-formatted       a2b0f5e823b9  purescript-0.15.15/tests/TestAst.hs
-formatted       17d9c16f4ee1  purescript-0.15.15/tests/TestCompiler.hs
-formatted       c454ba7cc3dd  purescript-0.15.15/tests/TestCoreFn.hs
-formatted       5b562e2e0010  purescript-0.15.15/tests/TestCst.hs
-formatted       d9a9eb37749c  purescript-0.15.15/tests/TestDocs.hs
-formatted       e29c16f400a0  purescript-0.15.15/tests/TestGraph.hs
-formatted       7314022489fa  purescript-0.15.15/tests/TestHierarchy.hs
-formatted       0874e238b9c0  purescript-0.15.15/tests/TestIde.hs
-formatted       4e905fa525a9  purescript-0.15.15/tests/TestMake.hs
-formatted       e782a733be50  purescript-0.15.15/tests/TestPrimDocs.hs
-formatted       d2998d562480  purescript-0.15.15/tests/TestPscPublish.hs
-formatted       e47fc0f000ee  purescript-0.15.15/tests/TestPsci.hs
-formatted       557206f834dc  purescript-0.15.15/tests/TestPsci/CommandTest.hs
-formatted       a139fd3aa0c9  purescript-0.15.15/tests/TestPsci/CompletionTest.hs
-formatted       5fa6ca09e4c4  purescript-0.15.15/tests/TestPsci/EvalTest.hs
-formatted       52ef143912e6  purescript-0.15.15/tests/TestPsci/TestEnv.hs
-formatted       3aaf84c12b48  purescript-0.15.15/tests/TestSourceMaps.hs
-formatted       32a8b25e8a6d  purescript-0.15.15/tests/TestUtils.hs
-formatted       002d52c424b7  raaz-0.3.11/api/aead/Auth/Implementation.hsig
-formatted       4a86cd34c9e7  raaz-0.3.11/api/aead/Cipher/Implementation.hsig
-formatted       faee44cdbcec  raaz-0.3.11/api/aead/Interface.hs
-formatted       a346882029b3  raaz-0.3.11/api/auth/Implementation.hsig
-formatted       64f75c0371bc  raaz-0.3.11/api/auth/Interface.hs
-formatted       29b7f7e93ae5  raaz-0.3.11/api/digest/Implementation.hsig
-formatted       558beb703aff  raaz-0.3.11/api/digest/Interface.hs
-formatted       711ebf2e3620  raaz-0.3.11/api/encrypt/Implementation.hsig
-formatted       abdae110e56a  raaz-0.3.11/api/encrypt/Interface.hs
-formatted       10d5d9d622cd  raaz-0.3.11/api/random/Entropy.hsig
-formatted       83b376fec166  raaz-0.3.11/api/random/Implementation.hsig
-formatted       ffc859b186af  raaz-0.3.11/api/random/Internal.hs
-formatted       b649659b6718  raaz-0.3.11/api/random/PRGenerator.hs
-formatted       a9538ed599c8  raaz-0.3.11/benchmarks/Main.hs
-formatted       876b405577a3  raaz-0.3.11/benchmarks/internal/Benchmark/CSPRG.hs
-formatted       20cee45b7828  raaz-0.3.11/benchmarks/internal/Benchmark/Primitive.hs
-formatted       1e4c846b4064  raaz-0.3.11/benchmarks/internal/Benchmark/Types.hs
-formatted       9ec4c716a238  raaz-0.3.11/core/Raaz/Core.hs
-formatted       52634a64c590  raaz-0.3.11/core/Raaz/Core/ByteSource.hs
-formatted       a05146df1142  raaz-0.3.11/core/Raaz/Core/Constants.hs
-formatted       97564cea364d  raaz-0.3.11/core/Raaz/Core/CpuSupports.hs
-formatted       b89a1297556b  raaz-0.3.11/core/Raaz/Core/Encode.hs
-formatted       7d4d89c52f5c  raaz-0.3.11/core/Raaz/Core/Encode/Base16.hs
-formatted       1897172e3c60  raaz-0.3.11/core/Raaz/Core/Encode/Base64.hs
-formatted       f8721f54231f  raaz-0.3.11/core/Raaz/Core/Encode/Internal.hs
-formatted       47fe9c28f358  raaz-0.3.11/core/Raaz/Core/Memory.hs
-formatted       be5bdc9fc1ae  raaz-0.3.11/core/Raaz/Core/MonoidalAction.hs
-formatted       a44dbacd364d  raaz-0.3.11/core/Raaz/Core/Parse.hs
-formatted       514d08e6f301  raaz-0.3.11/core/Raaz/Core/Parse/Unsafe.hs
-formatted       3d4dcaf4509d  raaz-0.3.11/core/Raaz/Core/Prelude.hs
-formatted       642d73a32500  raaz-0.3.11/core/Raaz/Core/Primitive.hs
-formatted       f026c14b5cef  raaz-0.3.11/core/Raaz/Core/Transfer.hs
-formatted       437bb6bc524e  raaz-0.3.11/core/Raaz/Core/Transfer/Unsafe.hs
-formatted       03cf11da4658  raaz-0.3.11/core/Raaz/Core/Types.hs
-formatted       14f5c5822c66  raaz-0.3.11/core/Raaz/Core/Types/Copying.hs
-formatted       7a6d55f211a6  raaz-0.3.11/core/Raaz/Core/Types/Endian.hs
-formatted       91bdd7e8c019  raaz-0.3.11/core/Raaz/Core/Types/Equality.hs
-formatted       72aa730843b9  raaz-0.3.11/core/Raaz/Core/Types/Internal.hs
-formatted       096187c85663  raaz-0.3.11/core/Raaz/Core/Types/Pointer.hs
-formatted       f9be8525b0e9  raaz-0.3.11/core/Raaz/Core/Types/Tuple.hs
-formatted       d98d94a62e17  raaz-0.3.11/core/Raaz/Core/Util/ByteString.hs
-formatted       aadc37085673  raaz-0.3.11/core/Raaz/Primitive/AEAD/Internal.hs
-formatted       bdf59fdf9536  raaz-0.3.11/core/Raaz/Primitive/Blake2/Internal.hs
-formatted       26f42c9a3385  raaz-0.3.11/core/Raaz/Primitive/ChaCha20/Internal.hs
-formatted       933091143258  raaz-0.3.11/core/Raaz/Primitive/HashMemory.hs
-formatted       2e41cccfd947  raaz-0.3.11/core/Raaz/Primitive/Keyed/Internal.hs
-formatted       11f319d28f77  raaz-0.3.11/core/Raaz/Primitive/Poly1305/Internal.hs
-formatted       662036acbd84  raaz-0.3.11/core/Raaz/Primitive/Sha2/Internal.hs
-formatted       d321e6f120cc  raaz-0.3.11/implementation/Blake2b/CHandWritten.hs
-formatted       c7f7e16ff427  raaz-0.3.11/implementation/Blake2b/CPortable.hs
-formatted       380071ee384a  raaz-0.3.11/implementation/Blake2s/CHandWritten.hs
-formatted       d4911e2aba2f  raaz-0.3.11/implementation/ChaCha20/CHandWritten.hs
-formatted       fd7ed676bf40  raaz-0.3.11/implementation/ChaCha20/CPortable.hs
-formatted       2f7657c239d7  raaz-0.3.11/implementation/ChaCha20/Random/CPortable.hs
-formatted       e3deac8e5358  raaz-0.3.11/implementation/Poly1305/CPortable.hs
-formatted       340ec557db99  raaz-0.3.11/implementation/Poly1305/Memory.hs
-formatted       720f42375ee4  raaz-0.3.11/implementation/Sha256/CHandWritten.hs
-formatted       c064cc7a8421  raaz-0.3.11/implementation/Sha256/CPortable.hs
-formatted       a59c773526b4  raaz-0.3.11/implementation/Sha512/CHandWritten.hs
-formatted       53529d47a59f  raaz-0.3.11/implementation/Sha512/CPortable.hs
-formatted       e5d101450ea0  raaz-0.3.11/implementation/entropy/arc4random/Entropy.hs
-formatted       fe1af598e9b2  raaz-0.3.11/implementation/entropy/urandom/Entropy.hs
-formatted       0a7a863b87f6  raaz-0.3.11/indef/Implementation.hsig
-formatted       5b5f82999259  raaz-0.3.11/indef/Utils.hs
-formatted       524895081243  raaz-0.3.11/indef/buffer/Buffer.hs
-formatted       cd4684e81d95  raaz-0.3.11/indef/buffer/Context.hs
-formatted       d34b17eeb2fb  raaz-0.3.11/indef/buffer/Implementation.hsig
-formatted       a79a9dc1ec44  raaz-0.3.11/indef/chacha20/Implementation.hsig
-formatted       496eb8d3a6e9  raaz-0.3.11/indef/chacha20/XChaCha20/Implementation.hs
-formatted       a2c11b61575b  raaz-0.3.11/indef/keyed/hash/Implementation.hsig
-formatted       2d1ed3b79bf6  raaz-0.3.11/indef/keyed/hash/Mac/Implementation.hs
-formatted       fd3b4278ccc5  raaz-0.3.11/libverse/Raaz/Verse/Blake2b/C/Portable.hs
-formatted       44b600e76f74  raaz-0.3.11/libverse/Raaz/Verse/ChaCha20/C/Portable.hs
-formatted       221da1a1ba37  raaz-0.3.11/libverse/Raaz/Verse/Poly1305/C/Portable.hs
-formatted       7ccb752d8b1d  raaz-0.3.11/libverse/Raaz/Verse/Sha256/C/Portable.hs
-formatted       695112ac1280  raaz-0.3.11/libverse/Raaz/Verse/Sha512/C/Portable.hs
-formatted       2fbd14b119a4  raaz-0.3.11/monocypher/tests/Monocypher.hs
-formatted       1d0ec4de7195  raaz-0.3.11/monocypher/tests/Monocypher/Blake2bSpec.hs
-formatted       0c1244f02a18  raaz-0.3.11/monocypher/tests/Monocypher/ChaCha20Spec.hs
-formatted       e81070c8d0f4  raaz-0.3.11/monocypher/tests/Monocypher/Sha512Spec.hs
-formatted       309f4011c1b9  raaz-0.3.11/raaz/Raaz.hs
-formatted       d7e15e03f1d7  raaz-0.3.11/raaz/Raaz/Auth.hs
-formatted       44194680e191  raaz-0.3.11/raaz/Raaz/AuthEncrypt.hs
-formatted       6c7dee472711  raaz-0.3.11/raaz/Raaz/AuthEncrypt/Unsafe.hs
-formatted       1f2758b948a2  raaz-0.3.11/raaz/Raaz/Digest.hs
-formatted       b154ef8c060a  raaz-0.3.11/raaz/Raaz/Random.hs
-formatted       14ec81125123  raaz-0.3.11/raaz/Raaz/V1/Auth.hs
-formatted       54d933b4519f  raaz-0.3.11/raaz/Raaz/V1/AuthEncrypt.hs
-formatted       9c227de3e844  raaz-0.3.11/raaz/Raaz/V1/AuthEncrypt/Unsafe.hs
-formatted       b221e97b02a1  raaz-0.3.11/raaz/Raaz/V1/Digest.hs
-formatted       dfc72506b4ee  raaz-0.3.11/raaz/bin/Command/Checksum.hs
-formatted       6af965bca577  raaz-0.3.11/raaz/bin/Command/Info.hs
-formatted       8b84f490d89a  raaz-0.3.11/raaz/bin/Command/Rand.hs
-formatted       2bbae784706a  raaz-0.3.11/raaz/bin/Main.hs
-formatted       bb0aca2148f4  raaz-0.3.11/raaz/bin/Usage.hs
-formatted       8955f3f595d6  raaz-0.3.11/tests/Raaz/Cipher/ChaCha20Spec.hs
-formatted       66c20297d941  raaz-0.3.11/tests/Raaz/Cipher/XChaCha20Spec.hs
-formatted       f70ba0951ea5  raaz-0.3.11/tests/Raaz/Core/ByteSourceSpec.hs
-formatted       f50f5814ce13  raaz-0.3.11/tests/Raaz/Core/EncodeSpec.hs
-formatted       a5cc6d99aed2  raaz-0.3.11/tests/Raaz/Core/MemorySpec.hs
-formatted       11c7d4db7839  raaz-0.3.11/tests/Raaz/Core/Types/WordSpec.hs
-formatted       e27cf91514a1  raaz-0.3.11/tests/Raaz/Core/Util/ByteStringSpec.hs
-formatted       9d02caada1d9  raaz-0.3.11/tests/Raaz/Digest/Blake2Spec.hs
-formatted       4f62e035aa97  raaz-0.3.11/tests/Raaz/Digest/Sha256Spec.hs
-formatted       ab3342a1c1c3  raaz-0.3.11/tests/Raaz/Digest/Sha512Spec.hs
-formatted       57a10ec0221b  raaz-0.3.11/tests/Raaz/Mac/Poly1305Spec.hs
-formatted       6cdc5c00b3a8  raaz-0.3.11/tests/Raaz/RandomSpec.hs
-formatted       2fbd14b119a4  raaz-0.3.11/tests/Spec.hs
-formatted       b1a4cba13110  raaz-0.3.11/tests/auth/Implementation.hsig
-formatted       ae7499e9f1a2  raaz-0.3.11/tests/auth/Tests/Auth.hs
-formatted       146a3742af4d  raaz-0.3.11/tests/auth/implementation/Auth/Mac/Blake2b.hs
-formatted       1400f8497a4b  raaz-0.3.11/tests/auth/implementation/Auth/Mac/Blake2s.hs
-formatted       f25bf91a517e  raaz-0.3.11/tests/auth/implementation/Auth/Poly1305.hs
-formatted       7123559f7c81  raaz-0.3.11/tests/cipher/Tests/Cipher.hs
-formatted       0c05cee23c2f  raaz-0.3.11/tests/comparative/AuthEncrypt.hs
-formatted       97ef04d16217  raaz-0.3.11/tests/comparative/AuthEncrypt/ChaCha20Poly1305Spec.hs
-formatted       741dc859a7b4  raaz-0.3.11/tests/comparative/Compare.hs
-formatted       5a902c132987  raaz-0.3.11/tests/comparative/Digest.hs
-formatted       9b0b9e470964  raaz-0.3.11/tests/comparative/Digest/Blake2bSpec.hs
-formatted       5e40537778de  raaz-0.3.11/tests/comparative/Digest/Sha256Spec.hs
-formatted       1d23a17f155b  raaz-0.3.11/tests/comparative/Digest/Sha512Spec.hs
-formatted       a5fa5869f401  raaz-0.3.11/tests/comparative/Encrypt.hs
-formatted       43a4a9f511ea  raaz-0.3.11/tests/comparative/Encrypt/ChaCha20Spec.hs
-formatted       2fbd14b119a4  raaz-0.3.11/tests/comparative/Main.hs
-formatted       9a4da070ca55  raaz-0.3.11/tests/core/Tests/Core.hs
-formatted       2249765a4b51  raaz-0.3.11/tests/core/Tests/Core/Imports.hs
-formatted       c746b6855fd8  raaz-0.3.11/tests/core/Tests/Core/Instances.hs
-formatted       62f66214a824  raaz-0.3.11/tests/core/Tests/Core/Utils.hs
-formatted       bcc780e22f03  raaz-0.3.11/tests/message-digest/Implementation.hsig
-formatted       2bb252395b85  raaz-0.3.11/tests/message-digest/Tests/Digest.hs
-formatted       4a8ac51676df  random-1.3.1/Setup.hs
-formatted       f81df0c89774  random-1.3.1/bench-legacy/BinSearch.hs
-formatted       ec53458f4d57  random-1.3.1/bench-legacy/SimpleRNGBench.hs
-formatted       0584292cc54f  random-1.3.1/bench/Main.hs
-formatted       3d4520480456  random-1.3.1/src/System/Random.hs
-formatted       0719577a75c1  random-1.3.1/src/System/Random/Array.hs
-formatted       0648347f5df7  random-1.3.1/src/System/Random/GFinite.hs
-formatted       6f29e302367d  random-1.3.1/src/System/Random/Internal.hs
-formatted       43cf9948fc9c  random-1.3.1/src/System/Random/Seed.hs
-formatted       2b2590d1c67b  random-1.3.1/src/System/Random/Stateful.hs
-formatted       0d72e1db2b6d  random-1.3.1/test-inspection/Spec.hs
-formatted       c6f769b56ab6  random-1.3.1/test-inspection/Spec/Inspection.hs
-formatted       ed91342d3f30  random-1.3.1/test-legacy/Legacy.hs
-formatted       0160098f7cc5  random-1.3.1/test-legacy/Random1283.hs
-formatted       ad6c39289552  random-1.3.1/test-legacy/RangeTest.hs
-formatted       4c1669996d8d  random-1.3.1/test-legacy/T7936.hs
-formatted       398febcc8a6f  random-1.3.1/test-legacy/TestRandomIOs.hs
-formatted       3ef25c06bdfc  random-1.3.1/test-legacy/TestRandomRs.hs
-formatted       170817d6d661  random-1.3.1/test/Spec.hs
-formatted       a65d68fad80b  random-1.3.1/test/Spec/Range.hs
-formatted       e0e7306312ea  random-1.3.1/test/Spec/Run.hs
-formatted       b3fd15d83ccf  random-1.3.1/test/Spec/Seed.hs
-formatted       53b268e9c80a  random-1.3.1/test/Spec/Stateful.hs
-formatted       4ac47a361dee  recursion-schemes-5.2.3/examples/Expr.hs
-formatted       37b2a0b086b3  recursion-schemes-5.2.3/src/Data/Functor/Base.hs
-formatted       3ca7a5ae5fb0  recursion-schemes-5.2.3/src/Data/Functor/Foldable.hs
-formatted       169a5fcd71cf  recursion-schemes-5.2.3/src/Data/Functor/Foldable/TH.hs
-formatted       1581398eb1b5  resourcet-1.3.0/Control/Monad/Trans/Resource.hs
-formatted       5aec92d93345  resourcet-1.3.0/Control/Monad/Trans/Resource/Internal.hs
-formatted       22ba33396e6e  resourcet-1.3.0/Data/Acquire.hs
-formatted       4a9defd159ee  resourcet-1.3.0/Data/Acquire/Internal.hs
-formatted       27565132aa25  resourcet-1.3.0/UnliftIO/Resource.hs
-formatted       1434a2ae8bde  resourcet-1.3.0/test/main.hs
-formatted       e865ae48f11b  retry-0.9.3.1/Setup.hs
-formatted       f3e4dea1008c  retry-0.9.3.1/src/Control/Retry.hs
-formatted       cce7cb264472  retry-0.9.3.1/src/UnliftIO/Retry.hs
-formatted       94b4a78445b3  retry-0.9.3.1/test/Main.hs
-formatted       08af947c789a  retry-0.9.3.1/test/Tests/Control/Retry.hs
-formatted       0b770fc83ef2  retry-0.9.3.1/test/Tests/UnliftIO/Retry.hs
-formatted       e865ae48f11b  safe-exceptions-0.1.7.4/Setup.hs
-formatted       9dd8a8e1a75f  safe-exceptions-0.1.7.4/src/Control/Exception/Safe.hs
-formatted       d65c0e991a57  safe-exceptions-0.1.7.4/test/Control/Exception/SafeSpec.hs
-formatted       2fbd14b119a4  safe-exceptions-0.1.7.4/test/Spec.hs
-formatted       e865ae48f11b  scientific-0.3.8.1/Setup.hs
-formatted       6a2de24bbe1d  scientific-0.3.8.1/bench/bench.hs
-formatted       b51f688e4f66  scientific-0.3.8.1/src/Data/ByteString/Builder/Scientific.hs
-formatted       a00104fdca94  scientific-0.3.8.1/src/Data/Scientific.hs
-formatted       5837fdbf8485  scientific-0.3.8.1/src/Data/Text/Lazy/Builder/Scientific.hs
-formatted       8e2c4142aa7f  scientific-0.3.8.1/src/GHC/Integer/Compat.hs
-formatted       70da6923c6d5  scientific-0.3.8.1/src/Utils.hs
-formatted       511632de8f71  scientific-0.3.8.1/test/test.hs
-formatted       e865ae48f11b  scotty-0.30/Setup.hs
-formatted       b4007b5fca90  scotty-0.30/Web/Scotty.hs
-formatted       cc7d56854e51  scotty-0.30/Web/Scotty/Action.hs
-formatted       61431d95ef5b  scotty-0.30/Web/Scotty/Body.hs
-formatted       210215898ba8  scotty-0.30/Web/Scotty/Cookie.hs
-formatted       7fbb2c4c4db1  scotty-0.30/Web/Scotty/Internal/Types.hs
-formatted       ccdc72ea4dc8  scotty-0.30/Web/Scotty/Route.hs
-formatted       220c453f0fd9  scotty-0.30/Web/Scotty/Session.hs
-formatted       a91e432e5783  scotty-0.30/Web/Scotty/Trans.hs
-formatted       e2036cbfa7c2  scotty-0.30/Web/Scotty/Trans/Lazy.hs
-formatted       2645fdc50126  scotty-0.30/Web/Scotty/Trans/Strict.hs
-formatted       6bad8484016a  scotty-0.30/Web/Scotty/Util.hs
-formatted       19a63b08e8cc  scotty-0.30/bench/Main.hs
-formatted       ff18ebd00d97  scotty-0.30/doctest/Main.hs
-formatted       bfcc28288099  scotty-0.30/examples/basic.hs
-formatted       128fcbdca77d  scotty-0.30/examples/bodyecho.hs
-formatted       0bfdeec9e9d5  scotty-0.30/examples/cookies.hs
-formatted       e68dfe58dd88  scotty-0.30/examples/exceptions.hs
-formatted       3417d0bd8a35  scotty-0.30/examples/globalstate.hs
-formatted       5d812024dc2a  scotty-0.30/examples/gzip.hs
-formatted       14f88a75023e  scotty-0.30/examples/json_mode.hs
-formatted       d96b13ea35d6  scotty-0.30/examples/middleware.hs
-formatted       dd5796ac98ac  scotty-0.30/examples/nested.hs
-formatted       f424d2128b4a  scotty-0.30/examples/options.hs
-formatted       8b1e46c9aeb7  scotty-0.30/examples/reader.hs
-formatted       6750528250e9  scotty-0.30/examples/session.hs
-formatted       d40e0a8e64ea  scotty-0.30/examples/upload.hs
-formatted       94f10fda97e5  scotty-0.30/examples/urlshortener.hs
-formatted       2fbd14b119a4  scotty-0.30/test/Spec.hs
-formatted       dd9baecda733  scotty-0.30/test/Test/Hspec/Wai/Extra.hs
-formatted       3c4b654d7ca6  scotty-0.30/test/Web/ScottySpec.hs
-formatted       091ccbfea22a  semigroupoids-6.0.2/src/Data/Bifunctor/Apply.hs
-formatted       b1a286f75dd3  semigroupoids-6.0.2/src/Data/Functor/Alt.hs
-formatted       b091ae1639ae  semigroupoids-6.0.2/src/Data/Functor/Apply.hs
-formatted       4322a16f4eaf  semigroupoids-6.0.2/src/Data/Functor/Bind.hs
-declined        -             semigroupoids-6.0.2/src/Data/Functor/Bind/Class.hs
-formatted       82dabf65525e  semigroupoids-6.0.2/src/Data/Functor/Bind/Trans.hs
-formatted       dbcbf10c5fed  semigroupoids-6.0.2/src/Data/Functor/Contravariant/Conclude.hs
-formatted       8142965bbfe5  semigroupoids-6.0.2/src/Data/Functor/Contravariant/Decide.hs
-formatted       5477d9d67b6c  semigroupoids-6.0.2/src/Data/Functor/Contravariant/Divise.hs
-formatted       5daccdc424d0  semigroupoids-6.0.2/src/Data/Functor/Extend.hs
-formatted       da9d284cb9bb  semigroupoids-6.0.2/src/Data/Functor/Plus.hs
-formatted       2c9e2b95e1c6  semigroupoids-6.0.2/src/Data/Groupoid.hs
-formatted       ada45a392805  semigroupoids-6.0.2/src/Data/Isomorphism.hs
-formatted       045d35e85b6e  semigroupoids-6.0.2/src/Data/Semigroup/Bifoldable.hs
-formatted       3b69bf2b2c98  semigroupoids-6.0.2/src/Data/Semigroup/Bitraversable.hs
-formatted       bc14896823af  semigroupoids-6.0.2/src/Data/Semigroup/Foldable.hs
-formatted       15d51636f77f  semigroupoids-6.0.2/src/Data/Semigroup/Foldable/Class.hs
-formatted       e46135ea634e  semigroupoids-6.0.2/src/Data/Semigroup/Traversable.hs
-formatted       5db895bd9aed  semigroupoids-6.0.2/src/Data/Semigroup/Traversable/Class.hs
-formatted       217e2cc62925  semigroupoids-6.0.2/src/Data/Semigroupoid.hs
-formatted       b3380ca605a0  semigroupoids-6.0.2/src/Data/Semigroupoid/Categorical.hs
-formatted       dd586be40bf0  semigroupoids-6.0.2/src/Data/Semigroupoid/Dual.hs
-formatted       f1c21cb8613d  semigroupoids-6.0.2/src/Data/Semigroupoid/Ob.hs
-formatted       6c569b65cb14  semigroupoids-6.0.2/src/Data/Semigroupoid/Static.hs
-formatted       9945f77c9069  semigroupoids-6.0.2/src/Data/Traversable/Instances.hs
-formatted       4f91affffbe0  semigroupoids-6.0.2/src/Semigroupoids/Do.hs
-formatted       689e1e042e62  semigroupoids-6.0.2/src/Semigroupoids/Internal.hs
-formatted       e865ae48f11b  servant-0.20.3.0/Setup.hs
-formatted       9153c9da89d5  servant-0.20.3.0/src/Servant/API.hs
-formatted       6ca32413e226  servant-0.20.3.0/src/Servant/API/Alternative.hs
-formatted       c265b91e3c97  servant-0.20.3.0/src/Servant/API/BasicAuth.hs
-formatted       a2c409071755  servant-0.20.3.0/src/Servant/API/Capture.hs
-formatted       a15886878620  servant-0.20.3.0/src/Servant/API/ContentTypes.hs
-formatted       ae6eeb995066  servant-0.20.3.0/src/Servant/API/Description.hs
-formatted       3529480c44cb  servant-0.20.3.0/src/Servant/API/Empty.hs
-formatted       ca9f880fe9c3  servant-0.20.3.0/src/Servant/API/Experimental/Auth.hs
-formatted       1cb7b7979a37  servant-0.20.3.0/src/Servant/API/Fragment.hs
-formatted       0b0271e38424  servant-0.20.3.0/src/Servant/API/Generic.hs
-formatted       6ace49e9ee6c  servant-0.20.3.0/src/Servant/API/Header.hs
-formatted       a4120f74a189  servant-0.20.3.0/src/Servant/API/Host.hs
-formatted       9add62e890f1  servant-0.20.3.0/src/Servant/API/HttpVersion.hs
-formatted       efd092f09057  servant-0.20.3.0/src/Servant/API/IsSecure.hs
-formatted       714c99b4ea0e  servant-0.20.3.0/src/Servant/API/Modifiers.hs
-formatted       684bc7886ecb  servant-0.20.3.0/src/Servant/API/MultiVerb.hs
-formatted       56acb7471063  servant-0.20.3.0/src/Servant/API/NamedRoutes.hs
-formatted       2a67c6814cd7  servant-0.20.3.0/src/Servant/API/QueryParam.hs
-formatted       c9e33c06dd4d  servant-0.20.3.0/src/Servant/API/QueryString.hs
-formatted       a2969f7ec694  servant-0.20.3.0/src/Servant/API/Range.hs
-formatted       54177faefb7f  servant-0.20.3.0/src/Servant/API/Raw.hs
-formatted       0d8ceb92e030  servant-0.20.3.0/src/Servant/API/RemoteHost.hs
-formatted       fa0f8d364af9  servant-0.20.3.0/src/Servant/API/ReqBody.hs
-formatted       8acf042b8234  servant-0.20.3.0/src/Servant/API/ResponseHeaders.hs
-formatted       c67668bb6c05  servant-0.20.3.0/src/Servant/API/ServerSentEvents.hs
-formatted       d944ce6b72bb  servant-0.20.3.0/src/Servant/API/Status.hs
-formatted       80b82bca3c39  servant-0.20.3.0/src/Servant/API/Stream.hs
-formatted       edf5b4aed88d  servant-0.20.3.0/src/Servant/API/Sub.hs
-formatted       ff144efc7edd  servant-0.20.3.0/src/Servant/API/TypeErrors.hs
-formatted       29ad4adf0dc7  servant-0.20.3.0/src/Servant/API/TypeLevel.hs
-formatted       c0878f59a227  servant-0.20.3.0/src/Servant/API/TypeLevel/List.hs
-formatted       9be4a4b0a678  servant-0.20.3.0/src/Servant/API/UVerb.hs
-formatted       46da2eb7f65a  servant-0.20.3.0/src/Servant/API/UVerb/Union.hs
-formatted       635eed50f570  servant-0.20.3.0/src/Servant/API/Vault.hs
-formatted       2dc0c94ac83c  servant-0.20.3.0/src/Servant/API/Verbs.hs
-formatted       5dcaa0e3d262  servant-0.20.3.0/src/Servant/API/WithNamedContext.hs
-formatted       c8d1802909fc  servant-0.20.3.0/src/Servant/API/WithResource.hs
-formatted       2602ed01f24b  servant-0.20.3.0/src/Servant/Links.hs
-formatted       4a79910df177  servant-0.20.3.0/src/Servant/Test/ComprehensiveAPI.hs
-formatted       72397d3bb59f  servant-0.20.3.0/src/Servant/Types/Internal/Response.hs
-formatted       e57b2e66d9d5  servant-0.20.3.0/src/Servant/Types/SourceT.hs
-formatted       3860893630fe  servant-0.20.3.0/test/Servant/API/ContentTypesSpec.hs
-formatted       8d914b5e174f  servant-0.20.3.0/test/Servant/API/ResponseHeadersSpec.hs
-formatted       19481f24edd2  servant-0.20.3.0/test/Servant/API/StreamSpec.hs
-formatted       df544597bb5e  servant-0.20.3.0/test/Servant/LinksSpec.hs
-formatted       2fbd14b119a4  servant-0.20.3.0/test/Spec.hs
-formatted       e865ae48f11b  servant-server-0.20.3.0/Setup.hs
-formatted       39ab7e0143c5  servant-server-0.20.3.0/example/greet.hs
-formatted       a401126eeff8  servant-server-0.20.3.0/src/Servant.hs
-formatted       9ef459de1886  servant-server-0.20.3.0/src/Servant/Server.hs
-formatted       1f26409f3f2c  servant-server-0.20.3.0/src/Servant/Server/Experimental/Auth.hs
-formatted       6fc6eff93d47  servant-server-0.20.3.0/src/Servant/Server/Generic.hs
-formatted       9112ce5387cd  servant-server-0.20.3.0/src/Servant/Server/Internal.hs
-formatted       66fc41e0b8e8  servant-server-0.20.3.0/src/Servant/Server/Internal/BasicAuth.hs
-formatted       840da824ddc2  servant-server-0.20.3.0/src/Servant/Server/Internal/Context.hs
-formatted       a67e949e616a  servant-server-0.20.3.0/src/Servant/Server/Internal/Delayed.hs
-formatted       4dc42f38bf12  servant-server-0.20.3.0/src/Servant/Server/Internal/DelayedIO.hs
-formatted       fc8d0ef307e4  servant-server-0.20.3.0/src/Servant/Server/Internal/ErrorFormatter.hs
-formatted       23333f0006a5  servant-server-0.20.3.0/src/Servant/Server/Internal/Handler.hs
-formatted       e759d749c842  servant-server-0.20.3.0/src/Servant/Server/Internal/ResponseRender.hs
-formatted       7ae1b546f492  servant-server-0.20.3.0/src/Servant/Server/Internal/RouteResult.hs
-formatted       d53e83414912  servant-server-0.20.3.0/src/Servant/Server/Internal/Router.hs
-formatted       09cdf39e03b6  servant-server-0.20.3.0/src/Servant/Server/Internal/RoutingApplication.hs
-formatted       271cc35e3822  servant-server-0.20.3.0/src/Servant/Server/Internal/ServerError.hs
-formatted       4be302b8cfbe  servant-server-0.20.3.0/src/Servant/Server/StaticFiles.hs
-formatted       7a929eb5f6c6  servant-server-0.20.3.0/src/Servant/Server/UVerb.hs
-formatted       d43150f68994  servant-server-0.20.3.0/src/Servant/Utils/StaticFiles.hs
-formatted       d08527a9decc  servant-server-0.20.3.0/test/Servant/ArbitraryMonadServerSpec.hs
-formatted       a92186c8737e  servant-server-0.20.3.0/test/Servant/HoistSpec.hs
-formatted       fa49a610ed55  servant-server-0.20.3.0/test/Servant/Server/ErrorSpec.hs
-formatted       6f993e850de5  servant-server-0.20.3.0/test/Servant/Server/Internal/ContextSpec.hs
-formatted       6979f09da111  servant-server-0.20.3.0/test/Servant/Server/Internal/RoutingApplicationSpec.hs
-formatted       ebf15aace7c8  servant-server-0.20.3.0/test/Servant/Server/RouterSpec.hs
-formatted       ca1d8b69c2d4  servant-server-0.20.3.0/test/Servant/Server/StaticFilesSpec.hs
-formatted       e9a7ef4fbb57  servant-server-0.20.3.0/test/Servant/Server/StreamingSpec.hs
-formatted       6bd03c4fd0e6  servant-server-0.20.3.0/test/Servant/Server/UsingContextSpec.hs
-formatted       c68eea536d8f  servant-server-0.20.3.0/test/Servant/Server/UsingContextSpec/TestCombinators.hs
-formatted       55524e1b35a6  servant-server-0.20.3.0/test/Servant/ServerSpec.hs
-formatted       2fbd14b119a4  servant-server-0.20.3.0/test/Spec.hs
-formatted       e865ae48f11b  shake-0.19.9/Setup.hs
-formatted       1115d98036fa  shake-0.19.9/docs/manual/Shakefile.hs
-formatted       eb4bec818511  shake-0.19.9/src/Development/Ninja/All.hs
-formatted       3104f3ca6fe0  shake-0.19.9/src/Development/Ninja/Env.hs
-formatted       7cb2becdc041  shake-0.19.9/src/Development/Ninja/Lexer.hs
-formatted       11197fb7bfd8  shake-0.19.9/src/Development/Ninja/Parse.hs
-formatted       c0a33fcdb116  shake-0.19.9/src/Development/Ninja/Type.hs
-formatted       1e091717f0e4  shake-0.19.9/src/Development/Shake.hs
-formatted       5a0ba406abd6  shake-0.19.9/src/Development/Shake/Classes.hs
-formatted       1b85b46443d1  shake-0.19.9/src/Development/Shake/Command.hs
-formatted       5959e8996e24  shake-0.19.9/src/Development/Shake/Config.hs
-formatted       2ffbbbe7ea76  shake-0.19.9/src/Development/Shake/Database.hs
-formatted       6a9f5286dbbd  shake-0.19.9/src/Development/Shake/FilePath.hs
-formatted       1f7279048342  shake-0.19.9/src/Development/Shake/Forward.hs
-formatted       0f161b15d908  shake-0.19.9/src/Development/Shake/Internal/Args.hs
-formatted       176c017dbbd9  shake-0.19.9/src/Development/Shake/Internal/CmdOption.hs
-formatted       89cf4b51fe66  shake-0.19.9/src/Development/Shake/Internal/CompactUI.hs
-formatted       741e862bf58e  shake-0.19.9/src/Development/Shake/Internal/Core/Action.hs
-formatted       a94401153b61  shake-0.19.9/src/Development/Shake/Internal/Core/Build.hs
-formatted       c03d9bf624a4  shake-0.19.9/src/Development/Shake/Internal/Core/Database.hs
-formatted       3e4afc55b835  shake-0.19.9/src/Development/Shake/Internal/Core/Monad.hs
-formatted       15dda4610803  shake-0.19.9/src/Development/Shake/Internal/Core/Pool.hs
-formatted       72387b89230e  shake-0.19.9/src/Development/Shake/Internal/Core/Rules.hs
-formatted       2a67f8266b95  shake-0.19.9/src/Development/Shake/Internal/Core/Run.hs
-formatted       83f034dbe974  shake-0.19.9/src/Development/Shake/Internal/Core/Storage.hs
-formatted       d26cd540a39c  shake-0.19.9/src/Development/Shake/Internal/Core/Types.hs
-formatted       46848a2a03e2  shake-0.19.9/src/Development/Shake/Internal/Demo.hs
-formatted       1afe6f5f82c8  shake-0.19.9/src/Development/Shake/Internal/Derived.hs
-formatted       419e421f13a6  shake-0.19.9/src/Development/Shake/Internal/Errors.hs
-declined        -             shake-0.19.9/src/Development/Shake/Internal/FileInfo.hs
-formatted       759fa2b54278  shake-0.19.9/src/Development/Shake/Internal/FileName.hs
-formatted       fe798a191c19  shake-0.19.9/src/Development/Shake/Internal/FilePattern.hs
-formatted       1e054a94085b  shake-0.19.9/src/Development/Shake/Internal/History/Bloom.hs
-formatted       01551ed3cbf4  shake-0.19.9/src/Development/Shake/Internal/History/Cloud.hs
-formatted       249ed8efaa13  shake-0.19.9/src/Development/Shake/Internal/History/Network.hs
-formatted       628e137c3362  shake-0.19.9/src/Development/Shake/Internal/History/Serialise.hs
-formatted       14a6f9c117dc  shake-0.19.9/src/Development/Shake/Internal/History/Server.hs
-formatted       d90d4f71cadd  shake-0.19.9/src/Development/Shake/Internal/History/Shared.hs
-declined        -             shake-0.19.9/src/Development/Shake/Internal/History/Symlink.hs
-formatted       765062af5b1e  shake-0.19.9/src/Development/Shake/Internal/History/Types.hs
-formatted       1667cc1258cb  shake-0.19.9/src/Development/Shake/Internal/Options.hs
-formatted       c8651e83c45c  shake-0.19.9/src/Development/Shake/Internal/Paths.hs
-formatted       cd695d3ce28f  shake-0.19.9/src/Development/Shake/Internal/Profile.hs
-declined        -             shake-0.19.9/src/Development/Shake/Internal/Progress.hs
-formatted       342442931569  shake-0.19.9/src/Development/Shake/Internal/Resource.hs
-formatted       5733144919c3  shake-0.19.9/src/Development/Shake/Internal/Rules/Default.hs
-formatted       49bcf9520df0  shake-0.19.9/src/Development/Shake/Internal/Rules/Directory.hs
-formatted       8355467730f0  shake-0.19.9/src/Development/Shake/Internal/Rules/File.hs
-formatted       e7921ae8b2dd  shake-0.19.9/src/Development/Shake/Internal/Rules/Files.hs
-formatted       18637b215cdb  shake-0.19.9/src/Development/Shake/Internal/Rules/Oracle.hs
-formatted       b0d13ac0a3a9  shake-0.19.9/src/Development/Shake/Internal/Rules/OrderOnly.hs
-formatted       c9bb8c405fe0  shake-0.19.9/src/Development/Shake/Internal/Rules/Rerun.hs
-formatted       b6e1d27ae046  shake-0.19.9/src/Development/Shake/Internal/Value.hs
-formatted       4f57cc655ba3  shake-0.19.9/src/Development/Shake/Rule.hs
-formatted       72f09acd1481  shake-0.19.9/src/Development/Shake/Util.hs
-formatted       796b5a76fb8c  shake-0.19.9/src/General/Bilist.hs
-formatted       a2e9bfc4e206  shake-0.19.9/src/General/Binary.hs
-formatted       bbd9c27b5570  shake-0.19.9/src/General/Chunks.hs
-formatted       432dccc3b19c  shake-0.19.9/src/General/Cleanup.hs
-declined        -             shake-0.19.9/src/General/EscCodes.hs
-formatted       7652f69a9c07  shake-0.19.9/src/General/Extra.hs
-formatted       6ac31a44af53  shake-0.19.9/src/General/Fence.hs
-declined        -             shake-0.19.9/src/General/FileLock.hs
-formatted       55352d28b4a5  shake-0.19.9/src/General/GetOpt.hs
-formatted       c704d012d9ae  shake-0.19.9/src/General/Ids.hs
-formatted       9126ed0fbd34  shake-0.19.9/src/General/Intern.hs
-formatted       fdae30466e09  shake-0.19.9/src/General/ListBuilder.hs
-formatted       54fa4898327b  shake-0.19.9/src/General/Makefile.hs
-formatted       863c987dd9d2  shake-0.19.9/src/General/Pool.hs
-formatted       300d27247ce2  shake-0.19.9/src/General/Process.hs
-formatted       0d39543216b1  shake-0.19.9/src/General/Template.hs
-formatted       20e74944695a  shake-0.19.9/src/General/Thread.hs
-formatted       b9b9368bdf92  shake-0.19.9/src/General/Timing.hs
-formatted       f1cfb5928cdc  shake-0.19.9/src/General/TypeMap.hs
-formatted       8d69ed0989cc  shake-0.19.9/src/General/Wait.hs
-formatted       4743f12ee1b5  shake-0.19.9/src/Paths.hs
-formatted       6ee887146e25  shake-0.19.9/src/Run.hs
-formatted       e59791013e00  shake-0.19.9/src/Test.hs
-formatted       8559d6daa99e  shake-0.19.9/src/Test/Basic.hs
-formatted       93ef4d632053  shake-0.19.9/src/Test/Batch.hs
-formatted       9817e09728fc  shake-0.19.9/src/Test/Benchmark.hs
-formatted       72e8b4ab4dea  shake-0.19.9/src/Test/Builtin.hs
-formatted       48ec6eca2417  shake-0.19.9/src/Test/BuiltinOverride.hs
-formatted       10efc06e6c7b  shake-0.19.9/src/Test/C.hs
-formatted       53e433c2fd6d  shake-0.19.9/src/Test/Cache.hs
-formatted       2d7ccbb45ced  shake-0.19.9/src/Test/Cleanup.hs
-formatted       448b76c4e03f  shake-0.19.9/src/Test/CloseFileHandles.hs
-formatted       52e8e06b790c  shake-0.19.9/src/Test/Command.hs
-formatted       5ea96ce5a74d  shake-0.19.9/src/Test/Config.hs
-formatted       1f3180d02ce5  shake-0.19.9/src/Test/Database.hs
-formatted       e8ca948ce33e  shake-0.19.9/src/Test/Digest.hs
-formatted       9b70158e614d  shake-0.19.9/src/Test/Directory.hs
-formatted       6bbe2ff03da5  shake-0.19.9/src/Test/Docs.hs
-formatted       7425a9004035  shake-0.19.9/src/Test/Errors.hs
-formatted       b698eeb22c5b  shake-0.19.9/src/Test/Existence.hs
-formatted       33dfd1039065  shake-0.19.9/src/Test/FileLock.hs
-formatted       62fa7f2a0865  shake-0.19.9/src/Test/FilePath.hs
-formatted       d53dce7544e1  shake-0.19.9/src/Test/FilePattern.hs
-formatted       7f088d1e23e6  shake-0.19.9/src/Test/Files.hs
-formatted       f46b5feb3e77  shake-0.19.9/src/Test/Forward.hs
-formatted       07a41b0c82df  shake-0.19.9/src/Test/History.hs
-formatted       a6278c0f744f  shake-0.19.9/src/Test/Journal.hs
-formatted       441f831d7e39  shake-0.19.9/src/Test/Lint.hs
-formatted       abb6b38a5148  shake-0.19.9/src/Test/Live.hs
-formatted       b1f4f9102098  shake-0.19.9/src/Test/Manual.hs
-formatted       0ea86eab061d  shake-0.19.9/src/Test/Match.hs
-formatted       3358afb343e9  shake-0.19.9/src/Test/Monad.hs
-formatted       30eaa5d85dba  shake-0.19.9/src/Test/Ninja.hs
-formatted       78f51e13afdb  shake-0.19.9/src/Test/Oracle.hs
-formatted       3a29cbe0f415  shake-0.19.9/src/Test/OrderOnly.hs
-formatted       11c7d4112a98  shake-0.19.9/src/Test/Parallel.hs
-formatted       af1e17f9eab1  shake-0.19.9/src/Test/Pool.hs
-formatted       d7b6e41656b0  shake-0.19.9/src/Test/Progress.hs
-formatted       8f84d993fd5b  shake-0.19.9/src/Test/Random.hs
-formatted       2cbfb37c7d59  shake-0.19.9/src/Test/Rebuild.hs
-formatted       685ecba8ab37  shake-0.19.9/src/Test/Reschedule.hs
-formatted       a4beab4d5e04  shake-0.19.9/src/Test/Resources.hs
-formatted       721fa3aeb323  shake-0.19.9/src/Test/Self.hs
-formatted       f64db4b85e97  shake-0.19.9/src/Test/SelfMake.hs
-formatted       ce7a14c40a6c  shake-0.19.9/src/Test/Tar.hs
-formatted       010efc5cef7a  shake-0.19.9/src/Test/Targets.hs
-formatted       2ada3fd9cfe5  shake-0.19.9/src/Test/Thread.hs
-formatted       54ac2eb76326  shake-0.19.9/src/Test/Tup.hs
-formatted       d61d4ca26661  shake-0.19.9/src/Test/Type.hs
-formatted       068337f03a57  shake-0.19.9/src/Test/Unicode.hs
-formatted       312e45ba1b16  shake-0.19.9/src/Test/Util.hs
-formatted       6649fd7b7e4a  shake-0.19.9/src/Test/Verbosity.hs
-formatted       f32aa5af75ac  shake-0.19.9/src/Test/Version.hs
-formatted       a7151db2ed5c  split-0.2.5/src/Data/List/Split.hs
-formatted       81873df3b2c6  split-0.2.5/src/Data/List/Split/Internals.hs
-formatted       0476e48b031e  split-0.2.5/test/Properties.hs
-formatted       e865ae48f11b  stack-9.9.9/Setup.hs
-formatted       e865ae48f11b  stack-9.9.9/new-template/Setup.hs
-formatted       76b6ff5a6856  stack-9.9.9/new-template/app/Main.hs
-formatted       b206a21d3b3c  stack-9.9.9/new-template/src/Lib.hs
-formatted       ef8d1c0c14bd  stack-9.9.9/new-template/test/Spec.hs
-formatted       b50eee5c8227  stack-9.9.9/src/Control/Concurrent/Execute.hs
-formatted       de0bbff44bba  stack-9.9.9/src/Data/Aeson/Extended.hs
-formatted       45b24cbb6885  stack-9.9.9/src/Data/Attoparsec/Args.hs
-formatted       6be772a6002d  stack-9.9.9/src/Data/Attoparsec/Combinators.hs
-formatted       e4f1165dc10b  stack-9.9.9/src/Data/Binary/VersionTagged.hs
-formatted       b0799314dce2  stack-9.9.9/src/Data/Maybe/Extra.hs
-formatted       8740a5fcb2ef  stack-9.9.9/src/Data/Set/Monad.hs
-formatted       c08aaa172c8a  stack-9.9.9/src/Network/HTTP/Download.hs
-formatted       f77d8fc87761  stack-9.9.9/src/Network/HTTP/Download/Verified.hs
-formatted       d7a0d294e3c7  stack-9.9.9/src/Options/Applicative/Args.hs
-formatted       0116483c0e39  stack-9.9.9/src/Options/Applicative/Builder/Extra.hs
-formatted       35d5981b158d  stack-9.9.9/src/Path/Find.hs
-formatted       eafb883091d5  stack-9.9.9/src/Path/IO.hs
-formatted       2df07688f5ed  stack-9.9.9/src/Stack/Build.hs
-formatted       bdc4f36f2c62  stack-9.9.9/src/Stack/Build/Cache.hs
-formatted       3efe83cb7bab  stack-9.9.9/src/Stack/Build/ConstructPlan.hs
-formatted       eba7881519c6  stack-9.9.9/src/Stack/Build/Execute.hs
-formatted       696682f442ac  stack-9.9.9/src/Stack/Build/Haddock.hs
-formatted       e0977d49109c  stack-9.9.9/src/Stack/Build/Installed.hs
-formatted       8f851999c795  stack-9.9.9/src/Stack/Build/Source.hs
-formatted       4d0e41188711  stack-9.9.9/src/Stack/Build/Types.hs
-formatted       eafdaba2b6f6  stack-9.9.9/src/Stack/BuildPlan.hs
-formatted       8a25795f0c0a  stack-9.9.9/src/Stack/Config.hs
-formatted       db186c830bf3  stack-9.9.9/src/Stack/Constants.hs
-formatted       7683bf498978  stack-9.9.9/src/Stack/Docker.hs
-formatted       107229bac31d  stack-9.9.9/src/Stack/Docker/GlobalDB.hs
-formatted       7d15eaae39ff  stack-9.9.9/src/Stack/Dot.hs
-formatted       e3fe02818737  stack-9.9.9/src/Stack/Exec.hs
-formatted       49a25d808c68  stack-9.9.9/src/Stack/Fetch.hs
-formatted       967c0ee2eef6  stack-9.9.9/src/Stack/GhcPkg.hs
-formatted       cea7894d840c  stack-9.9.9/src/Stack/Init.hs
-formatted       9f228f8da7ce  stack-9.9.9/src/Stack/New.hs
-formatted       a4120f7039a7  stack-9.9.9/src/Stack/Package.hs
-formatted       439e5a338ecf  stack-9.9.9/src/Stack/PackageDump.hs
-formatted       131f4c58d4cc  stack-9.9.9/src/Stack/PackageIndex.hs
-formatted       2814387b2b76  stack-9.9.9/src/Stack/Repl.hs
-formatted       766a71919c27  stack-9.9.9/src/Stack/Setup.hs
-formatted       68c48310e4ce  stack-9.9.9/src/Stack/Solver.hs
-formatted       ebbf896669e4  stack-9.9.9/src/Stack/Types.hs
-formatted       6a77fad930d5  stack-9.9.9/src/Stack/Types/BuildPlan.hs
-formatted       a6b384b7378c  stack-9.9.9/src/Stack/Types/Config.hs
-formatted       69401069957e  stack-9.9.9/src/Stack/Types/Docker.hs
-formatted       cd2bb0d685de  stack-9.9.9/src/Stack/Types/FlagName.hs
-formatted       d8f8b074a086  stack-9.9.9/src/Stack/Types/GhcPkgId.hs
-formatted       bd4be7dcc823  stack-9.9.9/src/Stack/Types/Internal.hs
-formatted       6f80f79fae7e  stack-9.9.9/src/Stack/Types/PackageIdentifier.hs
-formatted       88a4f8bd73e5  stack-9.9.9/src/Stack/Types/PackageName.hs
-formatted       cf90354db024  stack-9.9.9/src/Stack/Types/StackT.hs
-formatted       c698b30fdbaf  stack-9.9.9/src/Stack/Types/Version.hs
-formatted       2f4855580908  stack-9.9.9/src/Stack/Upgrade.hs
-formatted       3d5a37bb3efe  stack-9.9.9/src/Stack/Upload.hs
-formatted       85d5e680f53b  stack-9.9.9/src/System/Process/Log.hs
-formatted       015e3efd2d86  stack-9.9.9/src/System/Process/PagerEditor.hs
-formatted       bc60fdf030d4  stack-9.9.9/src/System/Process/Read.hs
-formatted       c40dad9ce8ee  stack-9.9.9/src/System/Process/Run.hs
-formatted       91427a9b532d  stack-9.9.9/src/main/Main.hs
-formatted       4eec70869c80  stack-9.9.9/src/main/Plugins.hs
-formatted       50b246d28182  stack-9.9.9/src/main/Plugins/Commands.hs
-formatted       65c8c298f7aa  stack-9.9.9/src/test/Spec.hs
-formatted       bbf9464a53ee  stack-9.9.9/src/test/Stack/ArgsSpec.hs
-formatted       41ea23b8880f  stack-9.9.9/src/test/Stack/Build/ExecuteSpec.hs
-formatted       6c14531834d3  stack-9.9.9/src/test/Stack/BuildPlanSpec.hs
-formatted       24a9e21c3c15  stack-9.9.9/src/test/Stack/ConfigSpec.hs
-formatted       2d4cbcc98b0c  stack-9.9.9/src/test/Stack/PackageDumpSpec.hs
-formatted       fd075df62297  stack-9.9.9/src/test/Test.hs
-formatted       53953d153dfa  stack-9.9.9/test/integration/Spec.hs
-formatted       56e4e5258116  statistics-0.16.5.0/Statistics/Autocorrelation.hs
-formatted       bda03074d5aa  statistics-0.16.5.0/Statistics/ConfidenceInt.hs
-formatted       069d7156f594  statistics-0.16.5.0/Statistics/Correlation.hs
-formatted       9ba74f547b39  statistics-0.16.5.0/Statistics/Correlation/Kendall.hs
-formatted       bbd4e3259f36  statistics-0.16.5.0/Statistics/Distribution.hs
-formatted       ae8ad80251ff  statistics-0.16.5.0/Statistics/Distribution/Beta.hs
-formatted       7b32fc5b6cfc  statistics-0.16.5.0/Statistics/Distribution/Binomial.hs
-formatted       23f140cdf9bc  statistics-0.16.5.0/Statistics/Distribution/CauchyLorentz.hs
-formatted       dc30bfda499d  statistics-0.16.5.0/Statistics/Distribution/ChiSquared.hs
-formatted       f4734696df71  statistics-0.16.5.0/Statistics/Distribution/DiscreteUniform.hs
-formatted       cc3d61a22aa0  statistics-0.16.5.0/Statistics/Distribution/Exponential.hs
-formatted       5d35b356cb29  statistics-0.16.5.0/Statistics/Distribution/FDistribution.hs
-formatted       1258f180d7c0  statistics-0.16.5.0/Statistics/Distribution/Gamma.hs
-formatted       97a9584986c7  statistics-0.16.5.0/Statistics/Distribution/Geometric.hs
-formatted       e05ef1359929  statistics-0.16.5.0/Statistics/Distribution/Hypergeometric.hs
-formatted       ca93eabbbf15  statistics-0.16.5.0/Statistics/Distribution/Laplace.hs
-formatted       1e363f04365e  statistics-0.16.5.0/Statistics/Distribution/Lognormal.hs
-formatted       f5cce916fd78  statistics-0.16.5.0/Statistics/Distribution/NegativeBinomial.hs
-formatted       fb17da6ed19d  statistics-0.16.5.0/Statistics/Distribution/Normal.hs
-formatted       1bbb63345a51  statistics-0.16.5.0/Statistics/Distribution/Poisson.hs
-formatted       fb54f6de83df  statistics-0.16.5.0/Statistics/Distribution/Poisson/Internal.hs
-formatted       7c5e046a9045  statistics-0.16.5.0/Statistics/Distribution/StudentT.hs
-formatted       06505b01e90a  statistics-0.16.5.0/Statistics/Distribution/Transform.hs
-formatted       ead3df94c4d5  statistics-0.16.5.0/Statistics/Distribution/Uniform.hs
-formatted       bd8bb4f92c76  statistics-0.16.5.0/Statistics/Distribution/Weibull.hs
-formatted       1a6eda2dc778  statistics-0.16.5.0/Statistics/Function.hs
-formatted       4ce5ca3ee348  statistics-0.16.5.0/Statistics/Internal.hs
-formatted       86e8d1a0a535  statistics-0.16.5.0/Statistics/Quantile.hs
-formatted       4eb8961889ae  statistics-0.16.5.0/Statistics/Regression.hs
-formatted       535c5c96b342  statistics-0.16.5.0/Statistics/Resampling.hs
-formatted       76d271403a9e  statistics-0.16.5.0/Statistics/Resampling/Bootstrap.hs
-formatted       cc05168e10be  statistics-0.16.5.0/Statistics/Sample.hs
-formatted       24ce2ba6d88a  statistics-0.16.5.0/Statistics/Sample/Histogram.hs
-formatted       cab9e68a7e21  statistics-0.16.5.0/Statistics/Sample/Internal.hs
-formatted       7333b62fa746  statistics-0.16.5.0/Statistics/Sample/KernelDensity.hs
-formatted       57cb926959b9  statistics-0.16.5.0/Statistics/Sample/KernelDensity/Simple.hs
-formatted       e7d037eb7906  statistics-0.16.5.0/Statistics/Sample/Normalize.hs
-formatted       1242733971ab  statistics-0.16.5.0/Statistics/Sample/Powers.hs
-formatted       5530b1f597e3  statistics-0.16.5.0/Statistics/Test/Bartlett.hs
-formatted       da8b73ff5c88  statistics-0.16.5.0/Statistics/Test/ChiSquared.hs
-formatted       4990518d53f6  statistics-0.16.5.0/Statistics/Test/Internal.hs
-formatted       e5d5a7822558  statistics-0.16.5.0/Statistics/Test/KolmogorovSmirnov.hs
-formatted       68068b68b9a0  statistics-0.16.5.0/Statistics/Test/KruskalWallis.hs
-formatted       6e9db487a147  statistics-0.16.5.0/Statistics/Test/Levene.hs
-formatted       a4c13293539e  statistics-0.16.5.0/Statistics/Test/MannWhitneyU.hs
-formatted       63ad198bde51  statistics-0.16.5.0/Statistics/Test/StudentT.hs
-formatted       8222073f1e45  statistics-0.16.5.0/Statistics/Test/Types.hs
-formatted       f3c789b5cb44  statistics-0.16.5.0/Statistics/Test/WilcoxonT.hs
-formatted       4dc98e7c6347  statistics-0.16.5.0/Statistics/Transform.hs
-formatted       f4cfb5a2aebb  statistics-0.16.5.0/Statistics/Types.hs
-formatted       f071cb4c4814  statistics-0.16.5.0/Statistics/Types/Internal.hs
-formatted       b5402a2dc355  statistics-0.16.5.0/bench-papi/Bench.hs
-formatted       3963835f0889  statistics-0.16.5.0/bench-time/Bench.hs
-formatted       61d4105d3456  statistics-0.16.5.0/benchmark/Main.hs
-formatted       d80f7bf6f96d  statistics-0.16.5.0/examples/kde/KDE.hs
-formatted       dcea40eeb511  statistics-0.16.5.0/tests/Tests/ApproxEq.hs
-formatted       2ae25961f71d  statistics-0.16.5.0/tests/Tests/Correlation.hs
-formatted       b0317e3f9b24  statistics-0.16.5.0/tests/Tests/Distribution.hs
-formatted       3d4db70bc7ca  statistics-0.16.5.0/tests/Tests/ExactDistribution.hs
-formatted       299f43f28485  statistics-0.16.5.0/tests/Tests/Function.hs
-formatted       9c5a618f3bf1  statistics-0.16.5.0/tests/Tests/Helpers.hs
-formatted       fec77bb7c2ff  statistics-0.16.5.0/tests/Tests/KDE.hs
-formatted       cf822ef362eb  statistics-0.16.5.0/tests/Tests/Matrix.hs
-formatted       27d419347379  statistics-0.16.5.0/tests/Tests/Matrix/Types.hs
-formatted       ea56dc62a57a  statistics-0.16.5.0/tests/Tests/NonParametric.hs
-formatted       4d0172724882  statistics-0.16.5.0/tests/Tests/NonParametric/Table.hs
-formatted       65adfee8e313  statistics-0.16.5.0/tests/Tests/Orphanage.hs
-formatted       bc01b981cd07  statistics-0.16.5.0/tests/Tests/Parametric.hs
-formatted       d94da0d75fed  statistics-0.16.5.0/tests/Tests/Quantile.hs
-formatted       4e08d3c82170  statistics-0.16.5.0/tests/Tests/Serialization.hs
-formatted       d60faa0d5f6c  statistics-0.16.5.0/tests/Tests/Transform.hs
-formatted       55f699624c9d  statistics-0.16.5.0/tests/doctest.hs
-formatted       f0e3d45c9159  statistics-0.16.5.0/tests/tests.hs
-formatted       2c4811cee336  stm-2.5.3.1/Control/Concurrent/STM.hs
-formatted       fd81deb0a4a0  stm-2.5.3.1/Control/Concurrent/STM/TArray.hs
-formatted       9e9c5d20cb7c  stm-2.5.3.1/Control/Concurrent/STM/TBQueue.hs
-formatted       643c4c4304ca  stm-2.5.3.1/Control/Concurrent/STM/TChan.hs
-formatted       5de1c73d983a  stm-2.5.3.1/Control/Concurrent/STM/TMVar.hs
-formatted       4fabec7ab606  stm-2.5.3.1/Control/Concurrent/STM/TQueue.hs
-formatted       0167cfd0c06a  stm-2.5.3.1/Control/Concurrent/STM/TSem.hs
-formatted       6a0ece958ded  stm-2.5.3.1/Control/Concurrent/STM/TVar.hs
-partly-checked  6aa0575474c4  stm-2.5.3.1/Control/Monad/STM.hs
-formatted       6aecb29a12ab  stm-2.5.3.1/Control/Sequential/STM.hs
-formatted       7474b7e1d4f5  stm-2.5.3.1/Setup.hs
-formatted       e290291970ca  stm-2.5.3.1/testsuite/src/Issue17.hs
-formatted       c3343c4d48cb  stm-2.5.3.1/testsuite/src/Issue9.hs
-formatted       9159857aaf7c  stm-2.5.3.1/testsuite/src/Main.hs
-formatted       5a7bdca5eb2f  stm-2.5.3.1/testsuite/src/Stm052.hs
-formatted       9b30ce222d29  stm-2.5.3.1/testsuite/src/Stm064.hs
-formatted       0f86f9b94d82  stm-2.5.3.1/testsuite/src/Stm065.hs
-formatted       0872066614e0  swagger2-2.9.1/Setup.hs
-formatted       e61f805d8652  swagger2-2.9.1/examples/hackage.hs
-formatted       a3ed3c0b3b85  swagger2-2.9.1/src/Data/HashMap/Strict/InsOrd/Compat.hs
-formatted       d71d272f220f  swagger2-2.9.1/src/Data/Swagger.hs
-formatted       f496ee0d4d0c  swagger2-2.9.1/src/Data/Swagger/Declare.hs
-formatted       5302fa19a1a8  swagger2-2.9.1/src/Data/Swagger/Internal.hs
-formatted       7dfa5b7b4803  swagger2-2.9.1/src/Data/Swagger/Internal/AesonUtils.hs
-formatted       be2b0df4ab34  swagger2-2.9.1/src/Data/Swagger/Internal/ParamSchema.hs
-formatted       e4da8109511e  swagger2-2.9.1/src/Data/Swagger/Internal/Schema.hs
-formatted       15b94738c187  swagger2-2.9.1/src/Data/Swagger/Internal/Schema/Validation.hs
-formatted       185e997df260  swagger2-2.9.1/src/Data/Swagger/Internal/TypeShape.hs
-formatted       abc8c961e8d8  swagger2-2.9.1/src/Data/Swagger/Internal/Utils.hs
-formatted       fac02daa06aa  swagger2-2.9.1/src/Data/Swagger/Lens.hs
-formatted       69c86ada5be4  swagger2-2.9.1/src/Data/Swagger/Operation.hs
-formatted       385ee16b2de5  swagger2-2.9.1/src/Data/Swagger/Optics.hs
-formatted       b74d3f8d9ea4  swagger2-2.9.1/src/Data/Swagger/ParamSchema.hs
-formatted       19a9a7c3a0de  swagger2-2.9.1/src/Data/Swagger/Schema.hs
-formatted       59f835605e15  swagger2-2.9.1/src/Data/Swagger/Schema/Generator.hs
-formatted       7770e1fe2353  swagger2-2.9.1/src/Data/Swagger/Schema/Validation.hs
-formatted       2fd313eb8746  swagger2-2.9.1/src/Data/Swagger/SchemaOptions.hs
-formatted       92d24f16cf77  swagger2-2.9.1/test/Data/Swagger/CommonTestTypes.hs
-formatted       88ae3e07f1d6  swagger2-2.9.1/test/Data/Swagger/ParamSchemaSpec.hs
-formatted       ba8d29dd4929  swagger2-2.9.1/test/Data/Swagger/Schema/GeneratorSpec.hs
-formatted       272a0817c6aa  swagger2-2.9.1/test/Data/Swagger/Schema/ValidationSpec.hs
-formatted       bc07fee39679  swagger2-2.9.1/test/Data/Swagger/SchemaSpec.hs
-formatted       b59e746b8895  swagger2-2.9.1/test/Data/SwaggerSpec.hs
-formatted       2fbd14b119a4  swagger2-2.9.1/test/Spec.hs
-formatted       1534dc51af48  swagger2-2.9.1/test/SpecCommon.hs
-formatted       cc17d35cb01d  swagger2-2.9.1/test/doctests.hs
-formatted       2620b9109dd2  tasty-1.5.4/Control/Concurrent/Async.hs
-formatted       e865ae48f11b  tasty-1.5.4/Setup.hs
-formatted       02df8ffe2eb3  tasty-1.5.4/Test/Tasty.hs
-formatted       da0dd4a5f265  tasty-1.5.4/Test/Tasty/CmdLine.hs
-formatted       3a5fcf3042c0  tasty-1.5.4/Test/Tasty/Core.hs
-formatted       dd00b52edeb7  tasty-1.5.4/Test/Tasty/Ingredients.hs
-formatted       9e13d30f1aac  tasty-1.5.4/Test/Tasty/Ingredients/Basic.hs
-formatted       0e632c2a7445  tasty-1.5.4/Test/Tasty/Ingredients/ConsoleReporter.hs
-formatted       8c6cf8ae3d46  tasty-1.5.4/Test/Tasty/Ingredients/IncludingOptions.hs
-formatted       095b09b1c146  tasty-1.5.4/Test/Tasty/Ingredients/ListTests.hs
-formatted       1d78b5b7b6d6  tasty-1.5.4/Test/Tasty/Options.hs
-formatted       3423011ddd29  tasty-1.5.4/Test/Tasty/Options/Core.hs
-formatted       d9fbf61e13b4  tasty-1.5.4/Test/Tasty/Options/Env.hs
-formatted       bc3c7e134e5c  tasty-1.5.4/Test/Tasty/Parallel.hs
-formatted       d8b2acdcc674  tasty-1.5.4/Test/Tasty/Patterns.hs
-formatted       0d97fca4d8c9  tasty-1.5.4/Test/Tasty/Patterns/Eval.hs
-formatted       4d5e43449879  tasty-1.5.4/Test/Tasty/Patterns/Expr.hs
-formatted       29b2bd9b3c0c  tasty-1.5.4/Test/Tasty/Patterns/Parser.hs
-formatted       3b88b836a8da  tasty-1.5.4/Test/Tasty/Patterns/Printer.hs
-formatted       76352e15e8e6  tasty-1.5.4/Test/Tasty/Patterns/Types.hs
-formatted       b2ce3b3d2ba6  tasty-1.5.4/Test/Tasty/Providers.hs
-formatted       1e9dd494aa0d  tasty-1.5.4/Test/Tasty/Providers/ConsoleFormat.hs
-formatted       b0fac1f874dc  tasty-1.5.4/Test/Tasty/Run.hs
-formatted       cb5862c8ea8c  tasty-1.5.4/Test/Tasty/Runners.hs
-formatted       a02b4c543c75  tasty-1.5.4/Test/Tasty/Runners/Reducers.hs
-formatted       b1a27c0f0bde  tasty-1.5.4/Test/Tasty/Runners/Utils.hs
-formatted       e865ae48f11b  tensorflow-0.2.0.1/Setup.hs
-formatted       fc583182d149  tensorflow-0.2.0.1/src/TensorFlow/Build.hs
-formatted       6a8867b44ef1  tensorflow-0.2.0.1/src/TensorFlow/BuildOp.hs
-formatted       77489c8b8f87  tensorflow-0.2.0.1/src/TensorFlow/ControlFlow.hs
-formatted       4cc5cc869f78  tensorflow-0.2.0.1/src/TensorFlow/Core.hs
-formatted       76a2093eefd8  tensorflow-0.2.0.1/src/TensorFlow/Internal/FFI.hs
-formatted       62d7a0995301  tensorflow-0.2.0.1/src/TensorFlow/Internal/VarInt.hs
-formatted       33a0218dc730  tensorflow-0.2.0.1/src/TensorFlow/Nodes.hs
-formatted       6079d89faf44  tensorflow-0.2.0.1/src/TensorFlow/Output.hs
-formatted       43470d2fc559  tensorflow-0.2.0.1/src/TensorFlow/Session.hs
-formatted       da3a7653404f  tensorflow-0.2.0.1/src/TensorFlow/Tensor.hs
-formatted       7e1723a7554a  tensorflow-0.2.0.1/src/TensorFlow/Types.hs
-formatted       7786d8f90a48  tensorflow-0.2.0.1/tests/FFITest.hs
-formatted       0f5db84dd77b  tensorflow-0.2.0.1/tests/VarIntTest.hs
-formatted       8ae0364c5862  text-2.1.4/benchmarks/haskell/Benchmarks.hs
-formatted       ffe091bc4536  text-2.1.4/benchmarks/haskell/Benchmarks/Builder.hs
-formatted       46dcd64eb8e5  text-2.1.4/benchmarks/haskell/Benchmarks/Concat.hs
-formatted       1e546a146930  text-2.1.4/benchmarks/haskell/Benchmarks/DecodeUtf8.hs
-formatted       41909e2de312  text-2.1.4/benchmarks/haskell/Benchmarks/EncodeUtf8.hs
-formatted       919f36b12c57  text-2.1.4/benchmarks/haskell/Benchmarks/Equality.hs
-formatted       a5d1f5795b29  text-2.1.4/benchmarks/haskell/Benchmarks/FileRead.hs
-formatted       09b54ec2d23a  text-2.1.4/benchmarks/haskell/Benchmarks/FileWrite.hs
-formatted       ad27e899bf04  text-2.1.4/benchmarks/haskell/Benchmarks/FoldLines.hs
-formatted       983d6f9117cd  text-2.1.4/benchmarks/haskell/Benchmarks/Micro.hs
-formatted       78b2688949ff  text-2.1.4/benchmarks/haskell/Benchmarks/Multilang.hs
-formatted       6ee308d7049c  text-2.1.4/benchmarks/haskell/Benchmarks/Programs/BigTable.hs
-formatted       b1d195224e1a  text-2.1.4/benchmarks/haskell/Benchmarks/Programs/Cut.hs
-formatted       2814a67c6d1b  text-2.1.4/benchmarks/haskell/Benchmarks/Programs/Fold.hs
-formatted       2cebf4fe82ba  text-2.1.4/benchmarks/haskell/Benchmarks/Programs/Sort.hs
-formatted       d9f35273ed3a  text-2.1.4/benchmarks/haskell/Benchmarks/Programs/StripTags.hs
-formatted       760d861cf866  text-2.1.4/benchmarks/haskell/Benchmarks/Programs/Throughput.hs
-formatted       021d8145a2fe  text-2.1.4/benchmarks/haskell/Benchmarks/Pure.hs
-formatted       e54e95cc30f1  text-2.1.4/benchmarks/haskell/Benchmarks/ReadNumbers.hs
-formatted       bf7477bd4934  text-2.1.4/benchmarks/haskell/Benchmarks/Replace.hs
-formatted       36cf43ee1086  text-2.1.4/benchmarks/haskell/Benchmarks/Search.hs
-formatted       6630a0ba2adf  text-2.1.4/benchmarks/haskell/Benchmarks/Stream.hs
-formatted       582c824b5ff5  text-2.1.4/benchmarks/haskell/Benchmarks/WordFrequencies.hs
-formatted       352931675b25  text-2.1.4/scripts/ApiCompare.hs
-formatted       227860122661  text-2.1.4/scripts/Arsec.hs
-formatted       eb1cc9cf331c  text-2.1.4/scripts/CaseFolding.hs
-formatted       a0bdad468ca4  text-2.1.4/scripts/CaseMapping.hs
-formatted       57e97be5ba61  text-2.1.4/scripts/SpecialCasing.hs
-formatted       d775bb623580  text-2.1.4/scripts/UnicodeData.hs
-partly-checked  08b3c96288dc  text-2.1.4/src/Data/Text.hs
-formatted       5b72823ffe98  text-2.1.4/src/Data/Text/Array.hs
-formatted       4970b89f4e7e  text-2.1.4/src/Data/Text/Encoding.hs
-formatted       d6231f7ebe99  text-2.1.4/src/Data/Text/Encoding/Error.hs
-formatted       7580816061c0  text-2.1.4/src/Data/Text/Foreign.hs
-formatted       d26ae280631c  text-2.1.4/src/Data/Text/IO.hs
-formatted       8c24fec0de81  text-2.1.4/src/Data/Text/IO/Utf8.hs
-formatted       8c62dc2df371  text-2.1.4/src/Data/Text/Internal.hs
-formatted       48c631518261  text-2.1.4/src/Data/Text/Internal/ArrayUtils.hs
-formatted       e5f93165747b  text-2.1.4/src/Data/Text/Internal/Builder.hs
-formatted       3a05c951a914  text-2.1.4/src/Data/Text/Internal/Builder/Functions.hs
-formatted       f5f871c975a4  text-2.1.4/src/Data/Text/Internal/Builder/Int/Digits.hs
-formatted       ab51e88834e1  text-2.1.4/src/Data/Text/Internal/Builder/RealFloat/Functions.hs
-formatted       7fa192160c9b  text-2.1.4/src/Data/Text/Internal/ByteStringCompat.hs
-formatted       370cd9150da5  text-2.1.4/src/Data/Text/Internal/Encoding.hs
-formatted       43a1a670b3db  text-2.1.4/src/Data/Text/Internal/Encoding/Fusion.hs
-formatted       07ceae987c37  text-2.1.4/src/Data/Text/Internal/Encoding/Fusion/Common.hs
-formatted       875961737225  text-2.1.4/src/Data/Text/Internal/Encoding/Utf16.hs
-formatted       48ea4745d7e8  text-2.1.4/src/Data/Text/Internal/Encoding/Utf32.hs
-formatted       999f28ae046f  text-2.1.4/src/Data/Text/Internal/Encoding/Utf8.hs
-formatted       9b74d0d7d95a  text-2.1.4/src/Data/Text/Internal/Fusion.hs
-formatted       9ae139203b50  text-2.1.4/src/Data/Text/Internal/Fusion/CaseMapping.hs
-formatted       0858f0992142  text-2.1.4/src/Data/Text/Internal/Fusion/Common.hs
-formatted       eb26e26b5392  text-2.1.4/src/Data/Text/Internal/Fusion/Size.hs
-formatted       a8149e253de6  text-2.1.4/src/Data/Text/Internal/Fusion/Types.hs
-formatted       32b50634031b  text-2.1.4/src/Data/Text/Internal/IO.hs
-formatted       e2bb47936e11  text-2.1.4/src/Data/Text/Internal/IsAscii.hs
-formatted       538632ba614a  text-2.1.4/src/Data/Text/Internal/Lazy.hs
-formatted       513ae58ba231  text-2.1.4/src/Data/Text/Internal/Lazy/Encoding/Fusion.hs
-formatted       c627413119e8  text-2.1.4/src/Data/Text/Internal/Lazy/Fusion.hs
-formatted       a3c76abdf09c  text-2.1.4/src/Data/Text/Internal/Lazy/Search.hs
-formatted       7eee07692410  text-2.1.4/src/Data/Text/Internal/Measure.hs
-formatted       7635d57189ea  text-2.1.4/src/Data/Text/Internal/PrimCompat.hs
-formatted       634f3b2cbbde  text-2.1.4/src/Data/Text/Internal/Private.hs
-formatted       a41bd3d7edab  text-2.1.4/src/Data/Text/Internal/Read.hs
-formatted       ec56c867ca01  text-2.1.4/src/Data/Text/Internal/Reverse.hs
-formatted       eff6a5ffb928  text-2.1.4/src/Data/Text/Internal/Search.hs
-formatted       67bf06cca611  text-2.1.4/src/Data/Text/Internal/StrictBuilder.hs
-formatted       a739bca575a2  text-2.1.4/src/Data/Text/Internal/Transformation.hs
-formatted       18ae86a38924  text-2.1.4/src/Data/Text/Internal/Unsafe.hs
-formatted       d3b144e675ef  text-2.1.4/src/Data/Text/Internal/Unsafe/Char.hs
-formatted       66e47e950ff0  text-2.1.4/src/Data/Text/Internal/Validate.hs
-formatted       3597c6a4f1b6  text-2.1.4/src/Data/Text/Internal/Validate/Native.hs
-formatted       530d639cfd22  text-2.1.4/src/Data/Text/Internal/Validate/Simd.hs
-formatted       6d4a57a9277a  text-2.1.4/src/Data/Text/Lazy.hs
-formatted       38ff2d7cb674  text-2.1.4/src/Data/Text/Lazy/Builder.hs
-formatted       38666af96d86  text-2.1.4/src/Data/Text/Lazy/Builder/Int.hs
-formatted       29e65f5a5a13  text-2.1.4/src/Data/Text/Lazy/Builder/RealFloat.hs
-formatted       a19c3620d230  text-2.1.4/src/Data/Text/Lazy/Encoding.hs
-formatted       ac210eeb3b0e  text-2.1.4/src/Data/Text/Lazy/IO.hs
-formatted       737ca3b98c79  text-2.1.4/src/Data/Text/Lazy/Internal.hs
-formatted       4053796b9111  text-2.1.4/src/Data/Text/Lazy/Read.hs
-formatted       95185ba2e9b4  text-2.1.4/src/Data/Text/Read.hs
-formatted       1140737c74af  text-2.1.4/src/Data/Text/Show.hs
-formatted       5aa1e6b706a4  text-2.1.4/src/Data/Text/Unsafe.hs
-formatted       8c35444bb7ce  text-2.1.4/tests/LiteralRuleTest.hs
-formatted       6c129d5c79c5  text-2.1.4/tests/Tests.hs
-formatted       8c9ba4deec7f  text-2.1.4/tests/Tests/Lift.hs
-formatted       eea1f5be128d  text-2.1.4/tests/Tests/Properties.hs
-formatted       a1795fe9db0d  text-2.1.4/tests/Tests/Properties/Basics.hs
-formatted       4095b24da789  text-2.1.4/tests/Tests/Properties/Builder.hs
-formatted       0da554ece794  text-2.1.4/tests/Tests/Properties/CornerCases.hs
-formatted       966d6896eccc  text-2.1.4/tests/Tests/Properties/Folds.hs
-formatted       05ba3e128127  text-2.1.4/tests/Tests/Properties/Instances.hs
-formatted       85722c4277cd  text-2.1.4/tests/Tests/Properties/LowLevel.hs
-formatted       73ce8ac597c8  text-2.1.4/tests/Tests/Properties/Read.hs
-formatted       3429b9447ca6  text-2.1.4/tests/Tests/Properties/Substrings.hs
-formatted       bc4a76ea99f3  text-2.1.4/tests/Tests/Properties/Text.hs
-formatted       826bd37a7ee9  text-2.1.4/tests/Tests/Properties/Transcoding.hs
-formatted       cd2ce6693a46  text-2.1.4/tests/Tests/Properties/Validate.hs
-formatted       9ebdcbc8f461  text-2.1.4/tests/Tests/QuickCheckUtils.hs
-formatted       c6e25a3408e0  text-2.1.4/tests/Tests/RebindableSyntaxTest.hs
-formatted       939e997260ba  text-2.1.4/tests/Tests/Regressions.hs
-formatted       b7037d3f07cc  text-2.1.4/tests/Tests/ShareEmpty.hs
-formatted       f4e9f36f6be9  text-2.1.4/tests/Tests/SlowFunctions.hs
-formatted       375091fbe743  text-2.1.4/tests/Tests/Utils.hs
-formatted       e865ae48f11b  th-abstraction-0.7.2.0/Setup.hs
-formatted       57bdc5001ee0  th-abstraction-0.7.2.0/src/Language/Haskell/TH/Datatype.hs
-formatted       b67b7b9c968e  th-abstraction-0.7.2.0/src/Language/Haskell/TH/Datatype/Internal.hs
-formatted       505471744185  th-abstraction-0.7.2.0/src/Language/Haskell/TH/Datatype/TyVarBndr.hs
-formatted       5179ef6dc11e  th-abstraction-0.7.2.0/test/Harness.hs
-partly-checked  69d549cce6e9  th-abstraction-0.7.2.0/test/Main.hs
-formatted       cc537447a0e2  th-abstraction-0.7.2.0/test/Types.hs
-formatted       fd2ff7ad97e3  time-1.16.0.1/Setup.hs
-formatted       125260959da8  time-1.16.0.1/benchmark/Main.hs
-formatted       67b30ed4204b  time-1.16.0.1/lib/Data/Format.hs
-formatted       138e9cb35e13  time-1.16.0.1/lib/Data/Time.hs
-formatted       d808f69809c2  time-1.16.0.1/lib/Data/Time/Calendar.hs
-formatted       0f617301ba5b  time-1.16.0.1/lib/Data/Time/Calendar/CalendarDiffDays.hs
-formatted       e210a7d3456b  time-1.16.0.1/lib/Data/Time/Calendar/Days.hs
-formatted       03412f0b8356  time-1.16.0.1/lib/Data/Time/Calendar/Easter.hs
-formatted       f8d4d6f009e4  time-1.16.0.1/lib/Data/Time/Calendar/Gregorian.hs
-formatted       be538512fc07  time-1.16.0.1/lib/Data/Time/Calendar/Julian.hs
-formatted       625e7b428153  time-1.16.0.1/lib/Data/Time/Calendar/JulianYearDay.hs
-formatted       9ba18c758e02  time-1.16.0.1/lib/Data/Time/Calendar/Month.hs
-formatted       eee4b0761e17  time-1.16.0.1/lib/Data/Time/Calendar/MonthDay.hs
-formatted       fe021b5bb8e1  time-1.16.0.1/lib/Data/Time/Calendar/OrdinalDate.hs
-formatted       025bb4e6307c  time-1.16.0.1/lib/Data/Time/Calendar/Private.hs
-formatted       7d5d5b51baca  time-1.16.0.1/lib/Data/Time/Calendar/Quarter.hs
-formatted       61e7261c13da  time-1.16.0.1/lib/Data/Time/Calendar/Types.hs
-formatted       55892c430b7b  time-1.16.0.1/lib/Data/Time/Calendar/Week.hs
-formatted       8d6d0ff3c8ec  time-1.16.0.1/lib/Data/Time/Calendar/WeekDate.hs
-formatted       c2de888ee84b  time-1.16.0.1/lib/Data/Time/Clock.hs
-formatted       0b01b660df99  time-1.16.0.1/lib/Data/Time/Clock/Internal/AbsoluteTime.hs
-declined        -             time-1.16.0.1/lib/Data/Time/Clock/Internal/CTimeval.hs
-formatted       fde88246f337  time-1.16.0.1/lib/Data/Time/Clock/Internal/DiffTime.hs
-formatted       130201256efa  time-1.16.0.1/lib/Data/Time/Clock/Internal/NominalDiffTime.hs
-formatted       8ef6afa040bc  time-1.16.0.1/lib/Data/Time/Clock/Internal/POSIXTime.hs
-formatted       e9a83d4e7327  time-1.16.0.1/lib/Data/Time/Clock/Internal/SystemTime.hs
-formatted       310750655010  time-1.16.0.1/lib/Data/Time/Clock/Internal/UTCDiff.hs
-formatted       a58732cd7eb8  time-1.16.0.1/lib/Data/Time/Clock/Internal/UTCTime.hs
-formatted       acaedfdab698  time-1.16.0.1/lib/Data/Time/Clock/Internal/UniversalTime.hs
-formatted       cf441f809fdf  time-1.16.0.1/lib/Data/Time/Clock/POSIX.hs
-formatted       6dd6034d73b4  time-1.16.0.1/lib/Data/Time/Clock/System.hs
-formatted       7cdd69049dcf  time-1.16.0.1/lib/Data/Time/Clock/TAI.hs
-formatted       b600a5b5c744  time-1.16.0.1/lib/Data/Time/Format.hs
-formatted       6c005f66f0be  time-1.16.0.1/lib/Data/Time/Format/Format/Class.hs
-formatted       47f1688c0787  time-1.16.0.1/lib/Data/Time/Format/Format/Instances.hs
-formatted       3764319de19b  time-1.16.0.1/lib/Data/Time/Format/ISO8601.hs
-formatted       76aa49c9292b  time-1.16.0.1/lib/Data/Time/Format/Internal.hs
-formatted       b7ae7592bcb6  time-1.16.0.1/lib/Data/Time/Format/Locale.hs
-formatted       2cd514758801  time-1.16.0.1/lib/Data/Time/Format/Parse.hs
-formatted       05a7f0bf5554  time-1.16.0.1/lib/Data/Time/Format/Parse/Class.hs
-formatted       cb2ccd8c40fd  time-1.16.0.1/lib/Data/Time/Format/Parse/Instances.hs
-formatted       4489a4cdab49  time-1.16.0.1/lib/Data/Time/LocalTime.hs
-formatted       93986a8450d1  time-1.16.0.1/lib/Data/Time/LocalTime/Internal/CalendarDiffTime.hs
-formatted       94f381fe1ad1  time-1.16.0.1/lib/Data/Time/LocalTime/Internal/Foreign.hs
-formatted       ca98c37fb34c  time-1.16.0.1/lib/Data/Time/LocalTime/Internal/LocalTime.hs
-formatted       9200ebaf067a  time-1.16.0.1/lib/Data/Time/LocalTime/Internal/TimeOfDay.hs
-formatted       74496e557585  time-1.16.0.1/lib/Data/Time/LocalTime/Internal/TimeZone.hs
-formatted       343d16749a70  time-1.16.0.1/lib/Data/Time/LocalTime/Internal/ZonedTime.hs
-formatted       c365d1aa63cd  time-1.16.0.1/test/ForeignCalls.hs
-formatted       fc8234c946fb  time-1.16.0.1/test/ShowDefaultTZAbbreviations.hs
-formatted       b51274826033  time-1.16.0.1/test/ShowTime.hs
-formatted       921506ceef7c  time-1.16.0.1/test/main/Main.hs
-formatted       4db8ebf798ab  time-1.16.0.1/test/main/Test/AddDiff.hs
-formatted       0ff201c42388  time-1.16.0.1/test/main/Test/Arbitrary.hs
-formatted       a31b50175d67  time-1.16.0.1/test/main/Test/Calendar/AddDays.hs
-formatted       5b09874748fc  time-1.16.0.1/test/main/Test/Calendar/AddDaysRef.hs
-formatted       1f2ab37cb077  time-1.16.0.1/test/main/Test/Calendar/CalendarProps.hs
-formatted       fe6ab3f07aa9  time-1.16.0.1/test/main/Test/Calendar/Calendars.hs
-formatted       ba59184d394c  time-1.16.0.1/test/main/Test/Calendar/CalendarsRef.hs
-formatted       e4ef550ce506  time-1.16.0.1/test/main/Test/Calendar/ClipDates.hs
-formatted       f707c1ddaec1  time-1.16.0.1/test/main/Test/Calendar/ClipDatesRef.hs
-formatted       d031fd80c27f  time-1.16.0.1/test/main/Test/Calendar/ConvertBack.hs
-formatted       168e9526852a  time-1.16.0.1/test/main/Test/Calendar/DayPeriod.hs
-formatted       2b4c5c903e40  time-1.16.0.1/test/main/Test/Calendar/Duration.hs
-formatted       56b1c2b8beea  time-1.16.0.1/test/main/Test/Calendar/Easter.hs
-formatted       3f35f96f7337  time-1.16.0.1/test/main/Test/Calendar/LongWeekYears.hs
-formatted       bdfb9e546ba3  time-1.16.0.1/test/main/Test/Calendar/LongWeekYearsRef.hs
-formatted       b5181d1d6218  time-1.16.0.1/test/main/Test/Calendar/MonthDay.hs
-formatted       c01cb667a9a8  time-1.16.0.1/test/main/Test/Calendar/MonthDayRef.hs
-formatted       fc8caea8866a  time-1.16.0.1/test/main/Test/Calendar/MonthOfYear.hs
-formatted       70ffc80a9b91  time-1.16.0.1/test/main/Test/Calendar/Valid.hs
-formatted       516d424dfa89  time-1.16.0.1/test/main/Test/Calendar/Week.hs
-formatted       96f42a259e5f  time-1.16.0.1/test/main/Test/Calendar/Year.hs
-formatted       868a03b5a657  time-1.16.0.1/test/main/Test/Clock/Conversion.hs
-formatted       5c09197a3ec5  time-1.16.0.1/test/main/Test/Clock/Pattern.hs
-formatted       449c0cf9b9bd  time-1.16.0.1/test/main/Test/Clock/Resolution.hs
-formatted       e5afef596413  time-1.16.0.1/test/main/Test/Clock/TAI.hs
-formatted       56759726b4b9  time-1.16.0.1/test/main/Test/Format/Compile.hs
-formatted       9a5ff5f775a0  time-1.16.0.1/test/main/Test/Format/Format.hs
-formatted       458676174a43  time-1.16.0.1/test/main/Test/Format/ISO8601.hs
-formatted       b9a6b11b9e1e  time-1.16.0.1/test/main/Test/Format/ParseTime.hs
-formatted       87d53b9f2df8  time-1.16.0.1/test/main/Test/LocalTime/CalendarDiffTime.hs
-formatted       3c6fcbef621e  time-1.16.0.1/test/main/Test/LocalTime/Time.hs
-formatted       4c37e59c357b  time-1.16.0.1/test/main/Test/LocalTime/TimeOfDay.hs
-formatted       db61298fae47  time-1.16.0.1/test/main/Test/LocalTime/TimeRef.hs
-formatted       274e9173e128  time-1.16.0.1/test/main/Test/TestUtil.hs
-formatted       41cfd788db10  time-1.16.0.1/test/main/Test/Types.hs
-formatted       2e8ad72db81a  time-1.16.0.1/test/template/Main.hs
-formatted       29972ed619e0  time-1.16.0.1/test/template/Test/TastyWrapper.hs
-formatted       ea580c874e6f  time-1.16.0.1/test/unix/Main.hs
-formatted       9d938426697b  time-1.16.0.1/test/unix/Test/Format/Format.hs
-formatted       21b333187684  time-1.16.0.1/test/unix/Test/LocalTime/TimeZone.hs
-formatted       f627f436f233  time-1.16.0.1/test/unix/Test/TestUtil.hs
-formatted       7917eb9d1f66  tls-2.4.3/Benchmarks/Benchmarks.hs
-formatted       489534a90c4b  tls-2.4.3/Network/TLS.hs
-formatted       7ce1364dcb4a  tls-2.4.3/Network/TLS/Backend.hs
-formatted       f9d4f25241e6  tls-2.4.3/Network/TLS/Cipher.hs
-formatted       a0fa75894b05  tls-2.4.3/Network/TLS/Compression.hs
-formatted       1228f4f8033d  tls-2.4.3/Network/TLS/Context.hs
-formatted       04740f1040b6  tls-2.4.3/Network/TLS/Context/Internal.hs
-formatted       8a2288d2bc96  tls-2.4.3/Network/TLS/Core.hs
-formatted       e1443ef58aff  tls-2.4.3/Network/TLS/Credentials.hs
-formatted       b6cc61acbea0  tls-2.4.3/Network/TLS/Crypto.hs
-formatted       a8fca7835f0d  tls-2.4.3/Network/TLS/Crypto/DH.hs
-formatted       446c8c8a07ed  tls-2.4.3/Network/TLS/Crypto/IES.hs
-formatted       b7e6a0d5aaac  tls-2.4.3/Network/TLS/Crypto/Types.hs
-formatted       025f72c75341  tls-2.4.3/Network/TLS/ErrT.hs
-formatted       427d32e6cdf8  tls-2.4.3/Network/TLS/Error.hs
-formatted       25c2c4064c31  tls-2.4.3/Network/TLS/Extension.hs
-formatted       2be304b6f83e  tls-2.4.3/Network/TLS/Extension.hs-boot
-formatted       49db661a445a  tls-2.4.3/Network/TLS/Extra.hs
-formatted       62633b825876  tls-2.4.3/Network/TLS/Extra/Cipher.hs
-formatted       0ee5bebb0e07  tls-2.4.3/Network/TLS/Extra/CipherCBC.hs
-formatted       5d51d07ab286  tls-2.4.3/Network/TLS/Extra/FFDHE.hs
-formatted       0003b888622d  tls-2.4.3/Network/TLS/Handshake.hs
-formatted       34fa3d5f9250  tls-2.4.3/Network/TLS/Handshake/Certificate.hs
-formatted       e0f2a684c93c  tls-2.4.3/Network/TLS/Handshake/Client.hs
-formatted       9c57a50d7cfc  tls-2.4.3/Network/TLS/Handshake/Client/ClientHello.hs
-formatted       fd3b33b247f9  tls-2.4.3/Network/TLS/Handshake/Client/Common.hs
-formatted       020fe94afa85  tls-2.4.3/Network/TLS/Handshake/Client/ServerHello.hs
-formatted       3f13588f75b3  tls-2.4.3/Network/TLS/Handshake/Client/TLS12.hs
-formatted       5c1bcf1c14e2  tls-2.4.3/Network/TLS/Handshake/Client/TLS13.hs
-formatted       a90b777adf6d  tls-2.4.3/Network/TLS/Handshake/Common.hs
-formatted       c5440404a04f  tls-2.4.3/Network/TLS/Handshake/Common13.hs
-formatted       02f97ef7593d  tls-2.4.3/Network/TLS/Handshake/Control.hs
-formatted       2c0676398aca  tls-2.4.3/Network/TLS/Handshake/Key.hs
-formatted       9dc05a147d3b  tls-2.4.3/Network/TLS/Handshake/Random.hs
-formatted       718a7715d422  tls-2.4.3/Network/TLS/Handshake/Server.hs
-formatted       b75e8a299fbb  tls-2.4.3/Network/TLS/Handshake/Server/ClientHello.hs
-formatted       17ae63748aa2  tls-2.4.3/Network/TLS/Handshake/Server/ClientHello12.hs
-formatted       d664c259f6af  tls-2.4.3/Network/TLS/Handshake/Server/ClientHello13.hs
-formatted       a2f2d3470f0f  tls-2.4.3/Network/TLS/Handshake/Server/Common.hs
-formatted       5c07986ccbf1  tls-2.4.3/Network/TLS/Handshake/Server/ServerHello12.hs
-formatted       d3df4765699c  tls-2.4.3/Network/TLS/Handshake/Server/ServerHello13.hs
-formatted       b29b9f3d0ef7  tls-2.4.3/Network/TLS/Handshake/Server/TLS12.hs
-formatted       dacd920cbf42  tls-2.4.3/Network/TLS/Handshake/Server/TLS13.hs
-formatted       6a8388c49af7  tls-2.4.3/Network/TLS/Handshake/Signature.hs
-formatted       4d5c61b9dc3d  tls-2.4.3/Network/TLS/Handshake/State.hs
-formatted       f55d027db091  tls-2.4.3/Network/TLS/Handshake/State13.hs
-formatted       f907190b60ed  tls-2.4.3/Network/TLS/Handshake/TranscriptHash.hs
-formatted       5e1320c4c161  tls-2.4.3/Network/TLS/HashAndSignature.hs
-formatted       7be5df148925  tls-2.4.3/Network/TLS/Hooks.hs
-formatted       b606b0451a2f  tls-2.4.3/Network/TLS/IO.hs
-formatted       4288557274dd  tls-2.4.3/Network/TLS/IO/Decode.hs
-formatted       a9013006f398  tls-2.4.3/Network/TLS/IO/Encode.hs
-formatted       6c20cf748535  tls-2.4.3/Network/TLS/Imports.hs
-formatted       21e9ce7c3507  tls-2.4.3/Network/TLS/Internal.hs
-formatted       92999e90c6b3  tls-2.4.3/Network/TLS/KeySchedule.hs
-formatted       febba7334e9e  tls-2.4.3/Network/TLS/MAC.hs
-formatted       9955ee0bd505  tls-2.4.3/Network/TLS/Measurement.hs
-formatted       426e8a75af01  tls-2.4.3/Network/TLS/Packet.hs
-formatted       41cbbbe9b09e  tls-2.4.3/Network/TLS/Packet13.hs
-formatted       a14ea5098afd  tls-2.4.3/Network/TLS/Parameters.hs
-formatted       29784d509f48  tls-2.4.3/Network/TLS/PostHandshake.hs
-formatted       8edf9e30c18b  tls-2.4.3/Network/TLS/QUIC.hs
-formatted       360a52dcf151  tls-2.4.3/Network/TLS/RNG.hs
-formatted       805eb6800681  tls-2.4.3/Network/TLS/Record.hs
-formatted       e0fdd96fb4fc  tls-2.4.3/Network/TLS/Record/Decrypt.hs
-formatted       58ae652319fd  tls-2.4.3/Network/TLS/Record/Encrypt.hs
-formatted       3d9c53507eaa  tls-2.4.3/Network/TLS/Record/Layer.hs
-formatted       a66c641fa8a1  tls-2.4.3/Network/TLS/Record/Recv.hs
-formatted       9fa588833e07  tls-2.4.3/Network/TLS/Record/Send.hs
-formatted       500b4c31d912  tls-2.4.3/Network/TLS/Record/State.hs
-formatted       932e2e5f3887  tls-2.4.3/Network/TLS/Record/Types.hs
-formatted       42bed44c3eaa  tls-2.4.3/Network/TLS/Session.hs
-formatted       04bdb49074e5  tls-2.4.3/Network/TLS/State.hs
-formatted       aedfbc85cbbc  tls-2.4.3/Network/TLS/Struct.hs
-formatted       4c783b0d9e9d  tls-2.4.3/Network/TLS/Struct13.hs
-formatted       ea0d39cd9f70  tls-2.4.3/Network/TLS/Types.hs
-formatted       253e29d81f4e  tls-2.4.3/Network/TLS/Types/Cipher.hs
-formatted       e6e9255220bb  tls-2.4.3/Network/TLS/Types/Secret.hs
-formatted       35bf4ee60be8  tls-2.4.3/Network/TLS/Types/Session.hs
-formatted       741cb1c84257  tls-2.4.3/Network/TLS/Types/Version.hs
-formatted       be921f75cb0a  tls-2.4.3/Network/TLS/Util.hs
-formatted       1d021bd7e9a7  tls-2.4.3/Network/TLS/Util/ASN1.hs
-formatted       9d70166f446f  tls-2.4.3/Network/TLS/Util/Serialization.hs
-formatted       32a205e8e871  tls-2.4.3/Network/TLS/Wire.hs
-formatted       5c85b406dea3  tls-2.4.3/Network/TLS/X509.hs
-formatted       e865ae48f11b  tls-2.4.3/Setup.hs
-formatted       45a83b6cde24  tls-2.4.3/test/API.hs
-formatted       0d25f1866c79  tls-2.4.3/test/Arbitrary.hs
-formatted       ba1557ab2831  tls-2.4.3/test/Certificate.hs
-formatted       37c216e39fd1  tls-2.4.3/test/CiphersSpec.hs
-formatted       ae18040b3401  tls-2.4.3/test/ECHSpec.hs
-formatted       a99d04d129f7  tls-2.4.3/test/EncodeSpec.hs
-formatted       a99713b7b244  tls-2.4.3/test/HandshakeSpec.hs
-formatted       23c51f587e8d  tls-2.4.3/test/PipeChan.hs
-formatted       338dcd8056de  tls-2.4.3/test/PubKey.hs
-formatted       9621232ed432  tls-2.4.3/test/Run.hs
-formatted       f2f3550cb17a  tls-2.4.3/test/Session.hs
-formatted       2fbd14b119a4  tls-2.4.3/test/Spec.hs
-formatted       9034972735e8  tls-2.4.3/test/ThreadSpec.hs
-formatted       199e7d71bfb6  tls-2.4.3/util/Client.hs
-formatted       c555911ae465  tls-2.4.3/util/Common.hs
-formatted       7dd3b5f2e44a  tls-2.4.3/util/Imports.hs
-formatted       6e9aa070c533  tls-2.4.3/util/Server.hs
-formatted       fa42557a0faa  tls-2.4.3/util/tls-client.hs
-formatted       0b4839d81970  tls-2.4.3/util/tls-server.hs
-partly-checked  36a6d2f6abb4  transformers-0.6.3.0/Control/Applicative/Backwards.hs
-partly-checked  1e0b5cb5f0b3  transformers-0.6.3.0/Control/Applicative/Lift.hs
-formatted       578b0e3c1682  transformers-0.6.3.0/Control/Monad/Signatures.hs
-partly-checked  903d26036ddf  transformers-0.6.3.0/Control/Monad/Trans/Accum.hs
-formatted       dc84c86bb82a  transformers-0.6.3.0/Control/Monad/Trans/Class.hs
-formatted       f620249e716e  transformers-0.6.3.0/Control/Monad/Trans/Cont.hs
-partly-checked  2f38844a0b53  transformers-0.6.3.0/Control/Monad/Trans/Except.hs
-partly-checked  6d8a76ff4396  transformers-0.6.3.0/Control/Monad/Trans/Identity.hs
-partly-checked  992296f3d968  transformers-0.6.3.0/Control/Monad/Trans/Maybe.hs
-formatted       6f7326668607  transformers-0.6.3.0/Control/Monad/Trans/RWS.hs
-formatted       74ae178e7877  transformers-0.6.3.0/Control/Monad/Trans/RWS/CPS.hs
-partly-checked  bbbde7e4b2ce  transformers-0.6.3.0/Control/Monad/Trans/RWS/Lazy.hs
-partly-checked  99cf9d466187  transformers-0.6.3.0/Control/Monad/Trans/RWS/Strict.hs
-partly-checked  b0dea6ec7a78  transformers-0.6.3.0/Control/Monad/Trans/Reader.hs
-formatted       b58555f08340  transformers-0.6.3.0/Control/Monad/Trans/Select.hs
-formatted       dc729d1936a2  transformers-0.6.3.0/Control/Monad/Trans/State.hs
-partly-checked  79758bb0ea7c  transformers-0.6.3.0/Control/Monad/Trans/State/Lazy.hs
-partly-checked  fa45dc7389ec  transformers-0.6.3.0/Control/Monad/Trans/State/Strict.hs
-formatted       6a9857bbd181  transformers-0.6.3.0/Control/Monad/Trans/Writer.hs
-formatted       63f9ddfce19f  transformers-0.6.3.0/Control/Monad/Trans/Writer/CPS.hs
-partly-checked  4c4d740d0f11  transformers-0.6.3.0/Control/Monad/Trans/Writer/Lazy.hs
-partly-checked  d70a600a810a  transformers-0.6.3.0/Control/Monad/Trans/Writer/Strict.hs
-declined        -             transformers-0.6.3.0/Data/Functor/Constant.hs
-partly-checked  d6d1f203de5b  transformers-0.6.3.0/Data/Functor/Reverse.hs
-formatted       e865ae48f11b  transformers-0.6.3.0/Setup.hs
-declined        -             transformers-0.6.3.0/legacy/pre709/Data/Functor/Identity.hs
-formatted       ee4ba7098a5c  transformers-0.6.3.0/legacy/pre711/Control/Monad/IO/Class.hs
-formatted       7d9fab9a0caf  transformers-0.6.3.0/legacy/pre711/Data/Functor/Classes.hs
-formatted       effc0109229f  transformers-0.6.3.0/legacy/pre711/Data/Functor/Compose.hs
-partly-checked  e96184ffa2ec  transformers-0.6.3.0/legacy/pre711/Data/Functor/Product.hs
-formatted       87f324f0c768  transformers-0.6.3.0/legacy/pre711/Data/Functor/Sum.hs
-formatted       e865ae48f11b  typed-process-0.2.13.0/Setup.hs
-formatted       5962b1150c46  typed-process-0.2.13.0/src/System/Process/Typed.hs
-formatted       25b5330661d4  typed-process-0.2.13.0/src/System/Process/Typed/Internal.hs
-formatted       2fbd14b119a4  typed-process-0.2.13.0/test/Spec.hs
-formatted       4eb03857d270  typed-process-0.2.13.0/test/System/Process/TypedSpec.hs
-formatted       e865ae48f11b  unliftio-0.2.25.1/Setup.hs
-formatted       86399961b28a  unliftio-0.2.25.1/bench/ConcBench.hs
-formatted       737706872ccf  unliftio-0.2.25.1/src/UnliftIO.hs
-formatted       713d1458fd8d  unliftio-0.2.25.1/src/UnliftIO/Async.hs
-formatted       5463e06f3adf  unliftio-0.2.25.1/src/UnliftIO/Chan.hs
-formatted       189c6c89bb81  unliftio-0.2.25.1/src/UnliftIO/Concurrent.hs
-partly-checked  c708a2f3ee0e  unliftio-0.2.25.1/src/UnliftIO/Directory.hs
-formatted       402fb486b3cf  unliftio-0.2.25.1/src/UnliftIO/Environment.hs
-formatted       c9305d3c9be9  unliftio-0.2.25.1/src/UnliftIO/Exception.hs
-formatted       e5401695da5a  unliftio-0.2.25.1/src/UnliftIO/Exception/Lens.hs
-formatted       ff1234d6ddbd  unliftio-0.2.25.1/src/UnliftIO/Foreign.hs
-formatted       a64a8ea6c117  unliftio-0.2.25.1/src/UnliftIO/IO.hs
-formatted       c940b0ac5eb1  unliftio-0.2.25.1/src/UnliftIO/IO/File.hs
-formatted       dad3d51a66aa  unliftio-0.2.25.1/src/UnliftIO/IO/File/Posix.hs
-formatted       2688f4b976d8  unliftio-0.2.25.1/src/UnliftIO/IORef.hs
-formatted       1738f330bd77  unliftio-0.2.25.1/src/UnliftIO/Internals/Async.hs
-formatted       2e37ab380c8b  unliftio-0.2.25.1/src/UnliftIO/MVar.hs
-formatted       25ab39f4a7d1  unliftio-0.2.25.1/src/UnliftIO/Memoize.hs
-formatted       5803964631a0  unliftio-0.2.25.1/src/UnliftIO/Process.hs
-formatted       f17d64d4c913  unliftio-0.2.25.1/src/UnliftIO/QSem.hs
-formatted       6e50df49a6ba  unliftio-0.2.25.1/src/UnliftIO/QSemN.hs
-formatted       ee3bf4d22673  unliftio-0.2.25.1/src/UnliftIO/STM.hs
-formatted       809c4f4424bb  unliftio-0.2.25.1/src/UnliftIO/Temporary.hs
-formatted       0f5f7167bc7b  unliftio-0.2.25.1/src/UnliftIO/Timeout.hs
-formatted       2fbd14b119a4  unliftio-0.2.25.1/test/Spec.hs
-formatted       3118f2133668  unliftio-0.2.25.1/test/UnliftIO/AsyncSpec.hs
-formatted       dda4d2f1b5ef  unliftio-0.2.25.1/test/UnliftIO/DirectorySpec.hs
-formatted       500e291fb7a1  unliftio-0.2.25.1/test/UnliftIO/ExceptionSpec.hs
-formatted       a899c691b2e6  unliftio-0.2.25.1/test/UnliftIO/IO/FileSpec.hs
-formatted       258e4c04879b  unliftio-0.2.25.1/test/UnliftIO/IOSpec.hs
-formatted       68c4411ed8f4  unliftio-0.2.25.1/test/UnliftIO/MemoizeSpec.hs
-formatted       f878ce9da222  unliftio-0.2.25.1/test/UnliftIO/PooledAsyncSpec.hs
-formatted       2651e43d4614  unordered-containers-0.2.21/Data/HashMap/Internal.hs
-declined        -             unordered-containers-0.2.21/Data/HashMap/Internal/Array.hs
-formatted       7be08d5816ff  unordered-containers-0.2.21/Data/HashMap/Internal/Debug.hs
-formatted       25f94316b17e  unordered-containers-0.2.21/Data/HashMap/Internal/List.hs
-formatted       08e073c2c7dd  unordered-containers-0.2.21/Data/HashMap/Internal/Strict.hs
-formatted       a4d22b20936f  unordered-containers-0.2.21/Data/HashMap/Lazy.hs
-formatted       b51d84ac0257  unordered-containers-0.2.21/Data/HashMap/Strict.hs
-formatted       d88b52d5dce2  unordered-containers-0.2.21/Data/HashSet.hs
-formatted       a238b77b05ef  unordered-containers-0.2.21/Data/HashSet/Internal.hs
-formatted       e865ae48f11b  unordered-containers-0.2.21/Setup.hs
-formatted       3375b823bad1  unordered-containers-0.2.21/benchmarks/Benchmarks.hs
-formatted       0ed2a6102dba  unordered-containers-0.2.21/benchmarks/FineGrained.hs
-formatted       b1cc4b50fa0e  unordered-containers-0.2.21/benchmarks/Key/Bytes.hs
-formatted       de9c7b30da36  unordered-containers-0.2.21/benchmarks/Util/ByteString.hs
-formatted       284694c5798b  unordered-containers-0.2.21/benchmarks/Util/Int.hs
-formatted       771e81db1b05  unordered-containers-0.2.21/benchmarks/Util/String.hs
-formatted       2b26017dfa9e  unordered-containers-0.2.21/tests/Main.hs
-formatted       27005a00112e  unordered-containers-0.2.21/tests/Properties.hs
-formatted       feff92267a82  unordered-containers-0.2.21/tests/Properties/HashMapLazy.hs
-formatted       f2a904c3a89a  unordered-containers-0.2.21/tests/Properties/HashMapStrict.hs
-formatted       a612762e1b58  unordered-containers-0.2.21/tests/Properties/HashSet.hs
-formatted       3584a01b2cdd  unordered-containers-0.2.21/tests/Properties/List.hs
-formatted       0a148c15ca33  unordered-containers-0.2.21/tests/Regressions.hs
-formatted       d094f07710f5  unordered-containers-0.2.21/tests/Strictness.hs
-formatted       00cf0a5ee0ea  unordered-containers-0.2.21/tests/Util/Key.hs
-formatted       e865ae48f11b  unpacked-containers-0/Setup.hs
-formatted       8523e9d3c669  unpacked-containers-0/example/Int.hs
-formatted       ba3a254765ca  unpacked-containers-0/example/Main.hs
-formatted       941a76a7e532  unpacked-containers-0/src/Key.hsig
-formatted       0ab7b95772b1  unpacked-containers-0/src/Map.hs
-formatted       85c3c57292d8  unpacked-containers-0/src/Map/Internal.hs
-formatted       412fdc3e3871  unpacked-containers-0/src/Map/Internal/Debug.hs
-formatted       88e3acab50fe  unpacked-containers-0/src/Map/Lazy.hs
-formatted       d160eb88e766  unpacked-containers-0/src/Map/Merge/Lazy.hs
-formatted       3401a14fe602  unpacked-containers-0/src/Map/Merge/Strict.hs
-formatted       1da0e231433b  unpacked-containers-0/src/Map/Strict.hs
-formatted       9b01f9961f71  unpacked-containers-0/src/Map/Strict/Internal.hs
-formatted       bb6c9398369f  unpacked-containers-0/src/Set.hs
-formatted       7f0b0b9590ea  unpacked-containers-0/src/Set/Internal.hs
-formatted       867c9afd504a  unpacked-containers-0/utils/Internal/BitQueue.hs
-formatted       7c96e08090d5  unpacked-containers-0/utils/Internal/BitUtil.hs
-formatted       a1134be4230d  unpacked-containers-0/utils/Internal/PtrEquality.hs
-formatted       534c12741bb9  unpacked-containers-0/utils/Internal/State.hs
-formatted       ed12f1faf0ed  unpacked-containers-0/utils/Internal/StrictFold.hs
-formatted       621944df674c  unpacked-containers-0/utils/Internal/StrictMaybe.hs
-formatted       b7a091ef4c77  unpacked-containers-0/utils/Internal/StrictPair.hs
-formatted       4a8ac51676df  uuid-types-1.0.6.1/Setup.hs
-formatted       e97eca400518  uuid-types-1.0.6.1/src/Data/UUID/Types.hs
-formatted       2dc18f83b9c9  uuid-types-1.0.6.1/src/Data/UUID/Types/Internal.hs
-formatted       d63508f44841  uuid-types-1.0.6.1/src/Data/UUID/Types/Internal/Builder.hs
-formatted       14a92dc8286f  uuid-types-1.0.6.1/tests/TestUUID.hs
-formatted       e865ae48f11b  vector-0.13.2.0/Setup.hs
-formatted       cb65eb293bd5  vector-0.13.2.0/benchlib/Bench/Vector/Algo/AwShCC.hs
-formatted       8a7c35b680c0  vector-0.13.2.0/benchlib/Bench/Vector/Algo/FindIndexR.hs
-formatted       7536358d3c8c  vector-0.13.2.0/benchlib/Bench/Vector/Algo/HybCC.hs
-formatted       31caf6daa18c  vector-0.13.2.0/benchlib/Bench/Vector/Algo/Leaffix.hs
-formatted       c647f14c61cb  vector-0.13.2.0/benchlib/Bench/Vector/Algo/ListRank.hs
-formatted       bbc9ffdd439f  vector-0.13.2.0/benchlib/Bench/Vector/Algo/MutableSet.hs
-formatted       49998369707c  vector-0.13.2.0/benchlib/Bench/Vector/Algo/NextPermutation.hs
-formatted       a1d4d3d489b4  vector-0.13.2.0/benchlib/Bench/Vector/Algo/Quickhull.hs
-formatted       cff7efe83577  vector-0.13.2.0/benchlib/Bench/Vector/Algo/Rootfix.hs
-formatted       bc96aa2b8cdf  vector-0.13.2.0/benchlib/Bench/Vector/Algo/Spectral.hs
-formatted       438dab6789ad  vector-0.13.2.0/benchlib/Bench/Vector/Algo/Tridiag.hs
-formatted       ec97bfaffec3  vector-0.13.2.0/benchlib/Bench/Vector/Tasty.hs
-formatted       368deb66d310  vector-0.13.2.0/benchlib/Bench/Vector/TestData/Graph.hs
-formatted       476c4f42945a  vector-0.13.2.0/benchlib/Bench/Vector/TestData/ParenTree.hs
-formatted       6b1b4aea2361  vector-0.13.2.0/benchmarks/Main.hs
-formatted       77ce7d3b1eda  vector-0.13.2.0/internal/GenUnboxTuple.hs
-formatted       7e257cfd7468  vector-0.13.2.0/src/Data/Vector.hs
-formatted       5524402837b5  vector-0.13.2.0/src/Data/Vector/Fusion/Bundle.hs
-formatted       6724b27a5182  vector-0.13.2.0/src/Data/Vector/Fusion/Bundle/Monadic.hs
-formatted       281a320dd1fd  vector-0.13.2.0/src/Data/Vector/Fusion/Bundle/Size.hs
-formatted       8b09b3b8c680  vector-0.13.2.0/src/Data/Vector/Fusion/Stream/Monadic.hs
-formatted       b52b6135f86c  vector-0.13.2.0/src/Data/Vector/Fusion/Util.hs
-formatted       a981b8dada8f  vector-0.13.2.0/src/Data/Vector/Generic.hs
-formatted       24e087932bf9  vector-0.13.2.0/src/Data/Vector/Generic/Base.hs
-formatted       6c34f319e085  vector-0.13.2.0/src/Data/Vector/Generic/Mutable.hs
-formatted       14ab0fea35a5  vector-0.13.2.0/src/Data/Vector/Generic/Mutable/Base.hs
-formatted       31ef8684e6a5  vector-0.13.2.0/src/Data/Vector/Generic/New.hs
-formatted       1842a6e1d83f  vector-0.13.2.0/src/Data/Vector/Internal/Check.hs
-formatted       3a331752a108  vector-0.13.2.0/src/Data/Vector/Mutable.hs
-formatted       c77c6d8b48f1  vector-0.13.2.0/src/Data/Vector/Primitive.hs
-formatted       7790a579fd85  vector-0.13.2.0/src/Data/Vector/Primitive/Mutable.hs
-formatted       d63a299a6982  vector-0.13.2.0/src/Data/Vector/Storable.hs
-formatted       f3208fa21c31  vector-0.13.2.0/src/Data/Vector/Storable/Internal.hs
-formatted       a312fe3ca55a  vector-0.13.2.0/src/Data/Vector/Storable/Mutable.hs
-formatted       ca6c3919dbe4  vector-0.13.2.0/src/Data/Vector/Strict.hs
-formatted       3bc69095cb4d  vector-0.13.2.0/src/Data/Vector/Strict/Mutable.hs
-formatted       5a349caedbaf  vector-0.13.2.0/src/Data/Vector/Unboxed.hs
-formatted       fa9e19a0d58d  vector-0.13.2.0/src/Data/Vector/Unboxed/Base.hs
-formatted       58ff39d532e3  vector-0.13.2.0/src/Data/Vector/Unboxed/Mutable.hs
-formatted       f4e17f002657  vector-0.13.2.0/tests-inspect/Inspect.hs
-formatted       992258e8ec96  vector-0.13.2.0/tests-inspect/Inspect/DerivingVia.hs
-formatted       005977089309  vector-0.13.2.0/tests-inspect/Inspect/DerivingVia/OtherFoo.hs
-formatted       c86daf6b0506  vector-0.13.2.0/tests-inspect/main.hs
-formatted       b27a545b7df5  vector-0.13.2.0/tests/Boilerplater.hs
-formatted       9d758ab214f1  vector-0.13.2.0/tests/Main.hs
-formatted       8061fe09f977  vector-0.13.2.0/tests/Tests/Bundle.hs
-formatted       1525be7e0a46  vector-0.13.2.0/tests/Tests/Move.hs
-formatted       43dd4c8d5a9c  vector-0.13.2.0/tests/Tests/Vector/Boxed.hs
-formatted       54a741f726e9  vector-0.13.2.0/tests/Tests/Vector/Primitive.hs
-formatted       3ef89840b582  vector-0.13.2.0/tests/Tests/Vector/Property.hs
-formatted       89d6f5f286c7  vector-0.13.2.0/tests/Tests/Vector/Storable.hs
-formatted       cc9e0bc6f8e0  vector-0.13.2.0/tests/Tests/Vector/Strict.hs
-formatted       891ffe33c45c  vector-0.13.2.0/tests/Tests/Vector/Unboxed.hs
-formatted       9a90ef543177  vector-0.13.2.0/tests/Tests/Vector/UnitTests.hs
-formatted       9c35c5c38daf  vector-0.13.2.0/tests/Utilities.hs
-formatted       88ed51490944  vector-0.13.2.0/tests/doctests.hs
-formatted       5561dc5bc4a0  vector-algorithms-0.9.1.0/bench/simple/Blocks.hs
-formatted       8f4b8b5057e3  vector-algorithms-0.9.1.0/bench/simple/Main.hs
-formatted       518a902d3c59  vector-algorithms-0.9.1.0/src/Data/Vector/Algorithms.hs
-formatted       553211019f78  vector-algorithms-0.9.1.0/src/Data/Vector/Algorithms/AmericanFlag.hs
-formatted       5bc324a60b4f  vector-algorithms-0.9.1.0/src/Data/Vector/Algorithms/Common.hs
-formatted       a7c93d247f1d  vector-algorithms-0.9.1.0/src/Data/Vector/Algorithms/Heap.hs
-formatted       385f1aecc6ac  vector-algorithms-0.9.1.0/src/Data/Vector/Algorithms/Insertion.hs
-formatted       eaaf49335045  vector-algorithms-0.9.1.0/src/Data/Vector/Algorithms/Intro.hs
-formatted       4a50f751547a  vector-algorithms-0.9.1.0/src/Data/Vector/Algorithms/Merge.hs
-formatted       9a4c2dc71a47  vector-algorithms-0.9.1.0/src/Data/Vector/Algorithms/Optimal.hs
-formatted       b7b0f718deb2  vector-algorithms-0.9.1.0/src/Data/Vector/Algorithms/Radix.hs
-formatted       47f1d28b6145  vector-algorithms-0.9.1.0/src/Data/Vector/Algorithms/Search.hs
-formatted       0a376532e9cb  vector-algorithms-0.9.1.0/src/Data/Vector/Algorithms/Tim.hs
-formatted       a9ac57f13756  vector-algorithms-0.9.1.0/tests/properties/Optimal.hs
-formatted       b19d49d0db4b  vector-algorithms-0.9.1.0/tests/properties/Properties.hs
-formatted       9afd19dd61b7  vector-algorithms-0.9.1.0/tests/properties/Tests.hs
-formatted       68c72976d14e  vector-algorithms-0.9.1.0/tests/properties/Util.hs
-formatted       a090ecfca870  wai-3.2.5/Network/Wai.hs
-formatted       eebfbcd85364  wai-3.2.5/Network/Wai/Internal.hs
-formatted       76fdb58b6d05  wai-3.2.5/test/Network/WaiSpec.hs
-formatted       2fbd14b119a4  wai-3.2.5/test/Spec.hs
-formatted       c11484118aae  warp-3.4.15/Network/Wai/Handler/Warp.hs
-formatted       009ccfac9d51  warp-3.4.15/Network/Wai/Handler/Warp/Buffer.hs
-formatted       f910265f50d3  warp-3.4.15/Network/Wai/Handler/Warp/Conduit.hs
-formatted       c978e6eb627c  warp-3.4.15/Network/Wai/Handler/Warp/Counter.hs
-formatted       26b005936471  warp-3.4.15/Network/Wai/Handler/Warp/Date.hs
-formatted       f0898462d96f  warp-3.4.15/Network/Wai/Handler/Warp/FdCache.hs
-formatted       5c8ff344b068  warp-3.4.15/Network/Wai/Handler/Warp/File.hs
-formatted       e56514093065  warp-3.4.15/Network/Wai/Handler/Warp/FileInfoCache.hs
-formatted       73ea52fed850  warp-3.4.15/Network/Wai/Handler/Warp/HTTP1.hs
-formatted       fd0b552aaa71  warp-3.4.15/Network/Wai/Handler/Warp/HTTP2.hs
-formatted       a7debda99dd6  warp-3.4.15/Network/Wai/Handler/Warp/HTTP2/File.hs
-formatted       cd7ebbac04db  warp-3.4.15/Network/Wai/Handler/Warp/HTTP2/PushPromise.hs
-formatted       40821f53b1d9  warp-3.4.15/Network/Wai/Handler/Warp/HTTP2/Request.hs
-formatted       831c4440cde7  warp-3.4.15/Network/Wai/Handler/Warp/HTTP2/Response.hs
-formatted       40e59aa92ecc  warp-3.4.15/Network/Wai/Handler/Warp/HTTP2/Types.hs
-formatted       69c55babd99e  warp-3.4.15/Network/Wai/Handler/Warp/HashMap.hs
-formatted       8abbc71d629a  warp-3.4.15/Network/Wai/Handler/Warp/Header.hs
-formatted       a036771b5a25  warp-3.4.15/Network/Wai/Handler/Warp/IO.hs
-formatted       d92af26eb2ec  warp-3.4.15/Network/Wai/Handler/Warp/Imports.hs
-formatted       98f2e1cfdade  warp-3.4.15/Network/Wai/Handler/Warp/Internal.hs
-formatted       e8583e08a2e4  warp-3.4.15/Network/Wai/Handler/Warp/MultiMap.hs
-formatted       ed16ebc20147  warp-3.4.15/Network/Wai/Handler/Warp/PackInt.hs
-formatted       22e5a5d6d3c9  warp-3.4.15/Network/Wai/Handler/Warp/ReadInt.hs
-formatted       e29d1517c375  warp-3.4.15/Network/Wai/Handler/Warp/Request.hs
-formatted       c7905b72682b  warp-3.4.15/Network/Wai/Handler/Warp/RequestHeader.hs
-formatted       9b74f110bcea  warp-3.4.15/Network/Wai/Handler/Warp/Response.hs
-formatted       27cae25ae83a  warp-3.4.15/Network/Wai/Handler/Warp/ResponseHeader.hs
-formatted       de4ca27b8a08  warp-3.4.15/Network/Wai/Handler/Warp/Run.hs
-formatted       47a04a642ad1  warp-3.4.15/Network/Wai/Handler/Warp/SendFile.hs
-formatted       bad8f2d42358  warp-3.4.15/Network/Wai/Handler/Warp/Settings.hs
-formatted       bc4925a06045  warp-3.4.15/Network/Wai/Handler/Warp/ShuttingDown.hs
-formatted       d916df760bae  warp-3.4.15/Network/Wai/Handler/Warp/Types.hs
-formatted       f1ff20ab87da  warp-3.4.15/Network/Wai/Handler/Warp/Windows.hs
-formatted       2bef9620132e  warp-3.4.15/Network/Wai/Handler/Warp/WithApplication.hs
-formatted       f3a2c7ee7659  warp-3.4.15/bench/Parser.hs
-formatted       8f739e595518  warp-3.4.15/test/BufferSpec.hs
-formatted       6d25fc643699  warp-3.4.15/test/ConduitSpec.hs
-formatted       103842d1ec84  warp-3.4.15/test/ConnectionSpec.hs
-formatted       3f7b8c3f5246  warp-3.4.15/test/EarlyHintsSpec.hs
-formatted       04c0408bb90a  warp-3.4.15/test/ExceptionSpec.hs
-formatted       6da076d7c2ae  warp-3.4.15/test/FdCacheSpec.hs
-formatted       f91844cc6a8f  warp-3.4.15/test/FileSpec.hs
-formatted       0ba618e41ab1  warp-3.4.15/test/GracefulShutdownSpec.hs
-formatted       4d81d4cdb7c7  warp-3.4.15/test/HTTP.hs
-formatted       70bab0349402  warp-3.4.15/test/PackIntSpec.hs
-formatted       c0ed531ac6d7  warp-3.4.15/test/ReadIntSpec.hs
-formatted       203ea20f13bf  warp-3.4.15/test/RequestSpec.hs
-formatted       4ef55f7e523c  warp-3.4.15/test/ResponseHeaderSpec.hs
-formatted       ac591a85b19f  warp-3.4.15/test/ResponseSpec.hs
-formatted       190ad2e064b1  warp-3.4.15/test/RunSpec.hs
-formatted       12d7c8bf7283  warp-3.4.15/test/SendFileSpec.hs
-formatted       56bf11ebdf68  warp-3.4.15/test/ServerStateSpec.hs
-formatted       2fbd14b119a4  warp-3.4.15/test/Spec.hs
-formatted       6239c41d8ad7  warp-3.4.15/test/WithApplicationSpec.hs
-formatted       c61ebeab72e9  warp-3.4.15/test/doctests.hs
-formatted       c3a0978b358e  xmonad-0.18.1/Main.hs
-formatted       407f3f6f01b9  xmonad-0.18.1/man/xmonad.hs
-formatted       1b9e38e5ffc2  xmonad-0.18.1/src/XMonad.hs
-formatted       6205e2286818  xmonad-0.18.1/src/XMonad/Config.hs
-formatted       51d04a4033c8  xmonad-0.18.1/src/XMonad/Core.hs
-formatted       003622fa6869  xmonad-0.18.1/src/XMonad/Layout.hs
-formatted       a8d1e71aa531  xmonad-0.18.1/src/XMonad/Main.hs
-formatted       fececd53a9f5  xmonad-0.18.1/src/XMonad/ManageHook.hs
-formatted       e11a33d9123d  xmonad-0.18.1/src/XMonad/Operations.hs
-formatted       92d9b2f9aecb  xmonad-0.18.1/src/XMonad/StackSet.hs
-formatted       710ec0764541  xmonad-0.18.1/tests/Instances.hs
-formatted       150f94b8a646  xmonad-0.18.1/tests/Properties.hs
-formatted       b9cbebbac632  xmonad-0.18.1/tests/Properties/Delete.hs
-formatted       2b2b85b4c7fe  xmonad-0.18.1/tests/Properties/Failure.hs
-formatted       2825306e83f9  xmonad-0.18.1/tests/Properties/Floating.hs
-formatted       ae9be34908bc  xmonad-0.18.1/tests/Properties/Focus.hs
-formatted       1418915d6ac8  xmonad-0.18.1/tests/Properties/GreedyView.hs
-formatted       ff83b882ad73  xmonad-0.18.1/tests/Properties/Insert.hs
-formatted       2d0f361b70f7  xmonad-0.18.1/tests/Properties/Layout/Full.hs
-formatted       d216f32ba806  xmonad-0.18.1/tests/Properties/Layout/Tall.hs
-formatted       65709ceae761  xmonad-0.18.1/tests/Properties/Screen.hs
-formatted       13ed9089c892  xmonad-0.18.1/tests/Properties/Shift.hs
-formatted       879d6f9db8a2  xmonad-0.18.1/tests/Properties/Stack.hs
-formatted       7384642a8941  xmonad-0.18.1/tests/Properties/StackSet.hs
-formatted       e48be0e8732d  xmonad-0.18.1/tests/Properties/Swap.hs
-formatted       f6f63b59cfb0  xmonad-0.18.1/tests/Properties/View.hs
-formatted       cd8d73c03759  xmonad-0.18.1/tests/Properties/Workspace.hs
-formatted       4e65334f7f2a  xmonad-0.18.1/tests/Utils.hs
-formatted       d8adcc5e8871  yesod-core-1.7.0.0/bench/widget.hs
-formatted       810a9b2932db  yesod-core-1.7.0.0/src/Yesod/Core.hs
-formatted       76a91abab9c7  yesod-core-1.7.0.0/src/Yesod/Core/Class/Breadcrumbs.hs
-formatted       d94322757109  yesod-core-1.7.0.0/src/Yesod/Core/Class/Dispatch.hs
-formatted       4e0e4c27884b  yesod-core-1.7.0.0/src/Yesod/Core/Class/Dispatch/ToParentRoute.hs
-formatted       f5e77d45ac7f  yesod-core-1.7.0.0/src/Yesod/Core/Class/Handler.hs
-formatted       55ca7aed8601  yesod-core-1.7.0.0/src/Yesod/Core/Class/Yesod.hs
-formatted       7b7185683c72  yesod-core-1.7.0.0/src/Yesod/Core/Content.hs
-formatted       8f8e6e5fb762  yesod-core-1.7.0.0/src/Yesod/Core/Dispatch.hs
-formatted       74c7648af879  yesod-core-1.7.0.0/src/Yesod/Core/Handler.hs
-formatted       88d4d8c2323a  yesod-core-1.7.0.0/src/Yesod/Core/Internal.hs
-formatted       212235b50682  yesod-core-1.7.0.0/src/Yesod/Core/Internal/LiteApp.hs
-formatted       b02eb40e75c3  yesod-core-1.7.0.0/src/Yesod/Core/Internal/Request.hs
-formatted       bbb065ca69ff  yesod-core-1.7.0.0/src/Yesod/Core/Internal/Response.hs
-formatted       356a82e11c3e  yesod-core-1.7.0.0/src/Yesod/Core/Internal/Run.hs
-formatted       da5ec533b3d0  yesod-core-1.7.0.0/src/Yesod/Core/Internal/Session.hs
-formatted       7d85bdcde5ef  yesod-core-1.7.0.0/src/Yesod/Core/Internal/TH.hs
-formatted       a4d70c77b953  yesod-core-1.7.0.0/src/Yesod/Core/Internal/Util.hs
-formatted       3c6023c01f8d  yesod-core-1.7.0.0/src/Yesod/Core/Json.hs
-formatted       3d3ea6cd2254  yesod-core-1.7.0.0/src/Yesod/Core/TypeCache.hs
-formatted       69979bd29865  yesod-core-1.7.0.0/src/Yesod/Core/Types.hs
-formatted       38102a09e32a  yesod-core-1.7.0.0/src/Yesod/Core/Types/Content.hs
-formatted       49991219fbf5  yesod-core-1.7.0.0/src/Yesod/Core/Types/ErrorResponse.hs
-formatted       2f42d728713c  yesod-core-1.7.0.0/src/Yesod/Core/Types/HandlerContents.hs
-formatted       eea90c376092  yesod-core-1.7.0.0/src/Yesod/Core/Types/TypedContent.hs
-formatted       abfe32d3eadd  yesod-core-1.7.0.0/src/Yesod/Core/Unsafe.hs
-formatted       1620502b047c  yesod-core-1.7.0.0/src/Yesod/Core/Widget.hs
-formatted       b35c9ac0daff  yesod-core-1.7.0.0/src/Yesod/Routes/Class.hs
-formatted       230bf54c2b5c  yesod-core-1.7.0.0/src/Yesod/Routes/Overlap.hs
-formatted       ca6f61d82ac7  yesod-core-1.7.0.0/src/Yesod/Routes/Parse.hs
-formatted       7bcf63c3b7e5  yesod-core-1.7.0.0/src/Yesod/Routes/TH.hs
-formatted       d14da8f68696  yesod-core-1.7.0.0/src/Yesod/Routes/TH/Dispatch.hs
-formatted       ecd2aee91940  yesod-core-1.7.0.0/src/Yesod/Routes/TH/Internal.hs
-formatted       28cf4bff1605  yesod-core-1.7.0.0/src/Yesod/Routes/TH/ParseRoute.hs
-formatted       fd3fd980369e  yesod-core-1.7.0.0/src/Yesod/Routes/TH/RenderRoute.hs
-formatted       f162f96e2b36  yesod-core-1.7.0.0/src/Yesod/Routes/TH/RouteAttrs.hs
-formatted       d689ca250357  yesod-core-1.7.0.0/src/Yesod/Routes/TH/Types.hs
-formatted       4cf83d0b0f07  yesod-core-1.7.0.0/test/Hierarchy.hs
-formatted       acf61854d2ec  yesod-core-1.7.0.0/test/Hierarchy/Admin.hs
-formatted       38126f8a1ed6  yesod-core-1.7.0.0/test/Hierarchy/Nest.hs
-formatted       a739150f03f1  yesod-core-1.7.0.0/test/Hierarchy/Nest2.hs
-formatted       1998d7e7b6f0  yesod-core-1.7.0.0/test/Hierarchy/Nest2/NestInner.hs
-formatted       6e683051218c  yesod-core-1.7.0.0/test/Hierarchy/Nest3.hs
-formatted       8f1d12dc181e  yesod-core-1.7.0.0/test/Hierarchy/ResourceTree.hs
-formatted       f70ab72cd608  yesod-core-1.7.0.0/test/Route/DeepAritySpec.hs
-formatted       1a22181a9cf2  yesod-core-1.7.0.0/test/Route/DeepArityTypes.hs
-formatted       6cf89c893af0  yesod-core-1.7.0.0/test/Route/DiscoveryModeSpec.hs
-formatted       8742e593c3d0  yesod-core-1.7.0.0/test/Route/FallthroughSpec.hs
-formatted       83547078da44  yesod-core-1.7.0.0/test/Route/FocusLeafConsSpec.hs
-formatted       b96279c392b7  yesod-core-1.7.0.0/test/Route/InlineParseClausesSpec.hs
-formatted       d8f6752d05e7  yesod-core-1.7.0.0/test/Route/InstanceProbeSpec.hs
-formatted       5f762e160869  yesod-core-1.7.0.0/test/Route/InstanceProbeTypes.hs
-formatted       66f474c75dbf  yesod-core-1.7.0.0/test/Route/MissingFocusTargetSpec.hs
-formatted       4ca53b8c21db  yesod-core-1.7.0.0/test/Route/MissingFocusTargetTypes.hs
-formatted       c4733044c565  yesod-core-1.7.0.0/test/Route/NestedParseClausesSpec.hs
-formatted       96c9db79de94  yesod-core-1.7.0.0/test/Route/PureQ.hs
-formatted       1084d2ca990f  yesod-core-1.7.0.0/test/Route/RenderRouteSpec.hs
-formatted       5cf00838dae7  yesod-core-1.7.0.0/test/Route/RouteAttrSpec.hs
-formatted       9303c7a203b3  yesod-core-1.7.0.0/test/Route/SubDispatchAritySpec.hs
-formatted       141148a01530  yesod-core-1.7.0.0/test/RouteSpec.hs
-formatted       456251f78b44  yesod-core-1.7.0.0/test/YesodCoreTest.hs
-formatted       f0034c742a78  yesod-core-1.7.0.0/test/YesodCoreTest/Auth.hs
-formatted       3a700bfeb45e  yesod-core-1.7.0.0/test/YesodCoreTest/BangSeparatorRuntime.hs
-formatted       e22fa3279a0b  yesod-core-1.7.0.0/test/YesodCoreTest/Breadcrumb.hs
-formatted       3380dd13fc46  yesod-core-1.7.0.0/test/YesodCoreTest/Cache.hs
-formatted       5731b7743f4b  yesod-core-1.7.0.0/test/YesodCoreTest/CleanPath.hs
-formatted       36a004c6a4e3  yesod-core-1.7.0.0/test/YesodCoreTest/Content.hs
-formatted       25b4b6405959  yesod-core-1.7.0.0/test/YesodCoreTest/Csrf.hs
-formatted       b5d6ec2cfe62  yesod-core-1.7.0.0/test/YesodCoreTest/ErrorHandling.hs
-formatted       d369eb73b47a  yesod-core-1.7.0.0/test/YesodCoreTest/ErrorHandling/CustomApp.hs
-formatted       59bcbb168336  yesod-core-1.7.0.0/test/YesodCoreTest/Exceptions.hs
-formatted       82e178e31f61  yesod-core-1.7.0.0/test/YesodCoreTest/FallthroughDispatch/Resources.hs
-formatted       e4f8f0ea3e72  yesod-core-1.7.0.0/test/YesodCoreTest/FallthroughDispatch/Runtime.hs
-formatted       4d5c1d9a3551  yesod-core-1.7.0.0/test/YesodCoreTest/FallthroughMatrix/FirstFoo.hs
-formatted       bd497866625d  yesod-core-1.7.0.0/test/YesodCoreTest/FallthroughMatrix/Resources.hs
-formatted       8c70739a50e7  yesod-core-1.7.0.0/test/YesodCoreTest/FallthroughMatrix/Runtime.hs
-formatted       69eb694028b1  yesod-core-1.7.0.0/test/YesodCoreTest/Header.hs
-formatted       58f029383018  yesod-core-1.7.0.0/test/YesodCoreTest/InternalRequest.hs
-formatted       f7afe29ae117  yesod-core-1.7.0.0/test/YesodCoreTest/JsAttributes.hs
-formatted       84646813873d  yesod-core-1.7.0.0/test/YesodCoreTest/JsLoader.hs
-formatted       f8cdd188f370  yesod-core-1.7.0.0/test/YesodCoreTest/JsLoaderSites/Bottom.hs
-formatted       bda9b1f5f2d2  yesod-core-1.7.0.0/test/YesodCoreTest/Json.hs
-formatted       23181a127cee  yesod-core-1.7.0.0/test/YesodCoreTest/Links.hs
-formatted       ab54e89c96fb  yesod-core-1.7.0.0/test/YesodCoreTest/LiteApp.hs
-formatted       418e263ba672  yesod-core-1.7.0.0/test/YesodCoreTest/Media.hs
-formatted       0078c3a7e79d  yesod-core-1.7.0.0/test/YesodCoreTest/MediaData.hs
-formatted       46b0e2d1153d  yesod-core-1.7.0.0/test/YesodCoreTest/Meta.hs
-formatted       d8beeb52123f  yesod-core-1.7.0.0/test/YesodCoreTest/MultiPieceNestedRuntime.hs
-formatted       fb29902bb9c5  yesod-core-1.7.0.0/test/YesodCoreTest/NestedDispatch/InnerR.hs
-formatted       4c9ceb4fb663  yesod-core-1.7.0.0/test/YesodCoreTest/NestedDispatch/NestR.hs
-formatted       4aed48f429ab  yesod-core-1.7.0.0/test/YesodCoreTest/NestedDispatch/Parent0R.hs
-formatted       0f8ca6cd8fe6  yesod-core-1.7.0.0/test/YesodCoreTest/NestedDispatch/Parent0R/Child0R.hs
-formatted       762195ad3d8f  yesod-core-1.7.0.0/test/YesodCoreTest/NestedDispatch/ParentR.hs
-formatted       7587ed701299  yesod-core-1.7.0.0/test/YesodCoreTest/NestedDispatch/Resources.hs
-formatted       a5347308f9b0  yesod-core-1.7.0.0/test/YesodCoreTest/NestedDispatch/Runtime.hs
-formatted       2c72e04ebbc2  yesod-core-1.7.0.0/test/YesodCoreTest/NoOverloadedStrings.hs
-formatted       320b6668f0c5  yesod-core-1.7.0.0/test/YesodCoreTest/NoOverloadedStringsSub.hs
-formatted       ab80a9a09e84  yesod-core-1.7.0.0/test/YesodCoreTest/ParamDefaultSplit/Data.hs
-formatted       a8472a7588f7  yesod-core-1.7.0.0/test/YesodCoreTest/ParamDefaultSplit/Runtime.hs
-formatted       3b1830a98315  yesod-core-1.7.0.0/test/YesodCoreTest/ParamFallthroughRuntime.hs
-formatted       9191317f2178  yesod-core-1.7.0.0/test/YesodCoreTest/ParamFocusSplit/Resources.hs
-formatted       0d171db106f1  yesod-core-1.7.0.0/test/YesodCoreTest/ParamFocusSplit/Runtime.hs
-formatted       6f7510d0b57c  yesod-core-1.7.0.0/test/YesodCoreTest/ParamFocusSplit/SubR.hs
-formatted       46dbd15fa23d  yesod-core-1.7.0.0/test/YesodCoreTest/ParamNestedNoFallthroughRuntime.hs
-formatted       32c5372b9148  yesod-core-1.7.0.0/test/YesodCoreTest/ParamNoExplicitArgs.hs
-formatted       30470908614f  yesod-core-1.7.0.0/test/YesodCoreTest/ParamNoFallthroughRuntime.hs
-formatted       cf6ee78ba4ee  yesod-core-1.7.0.0/test/YesodCoreTest/ParamSubsite/Data.hs
-formatted       e0dfb958d109  yesod-core-1.7.0.0/test/YesodCoreTest/ParamSubsite/InstanceRuntime.hs
-formatted       020a44aa16b1  yesod-core-1.7.0.0/test/YesodCoreTest/ParamSubsite/SplitNested.hs
-formatted       f8d1220c3bf2  yesod-core-1.7.0.0/test/YesodCoreTest/ParamSubsite/SplitRuntime.hs
-formatted       1981b86c26db  yesod-core-1.7.0.0/test/YesodCoreTest/ParamTopLevelRuntime.hs
-formatted       f991cd7adeb7  yesod-core-1.7.0.0/test/YesodCoreTest/ParameterizedSite.hs
-formatted       0476a7be2abf  yesod-core-1.7.0.0/test/YesodCoreTest/ParameterizedSite/Compat.hs
-formatted       b2b143cf4a47  yesod-core-1.7.0.0/test/YesodCoreTest/ParameterizedSite/PolyAny.hs
-formatted       eb56902b1432  yesod-core-1.7.0.0/test/YesodCoreTest/ParameterizedSite/PolyShow.hs
-formatted       acaebbfebc7a  yesod-core-1.7.0.0/test/YesodCoreTest/ParameterizedSite/SubRoute.hs
-formatted       48e797fc7ef7  yesod-core-1.7.0.0/test/YesodCoreTest/ParameterizedSubData.hs
-formatted       18a74bf9331c  yesod-core-1.7.0.0/test/YesodCoreTest/ParameterizedSubDispatch.hs
-formatted       eb2ad79d2f60  yesod-core-1.7.0.0/test/YesodCoreTest/ParameterizedSubDispatch/Data.hs
-formatted       c0c9e30ebea8  yesod-core-1.7.0.0/test/YesodCoreTest/ParameterizedSubDispatchRuntime.hs
-formatted       09c5b840c977  yesod-core-1.7.0.0/test/YesodCoreTest/ParameterizedSubDispatchRuntime/Data.hs
-formatted       4555e2245690  yesod-core-1.7.0.0/test/YesodCoreTest/RawResponse.hs
-formatted       03a668e5cea8  yesod-core-1.7.0.0/test/YesodCoreTest/Redirect.hs
-formatted       ddda63d607db  yesod-core-1.7.0.0/test/YesodCoreTest/RenderRouteSpec.hs
-formatted       139e78486aea  yesod-core-1.7.0.0/test/YesodCoreTest/RenderRouteSpec/TH.hs
-formatted       1db9d98dbf8c  yesod-core-1.7.0.0/test/YesodCoreTest/Reps.hs
-formatted       e18610f848a2  yesod-core-1.7.0.0/test/YesodCoreTest/RequestBodySize.hs
-formatted       bf72ad1f5d18  yesod-core-1.7.0.0/test/YesodCoreTest/RuntimeHarness.hs
-formatted       e78bf62c9259  yesod-core-1.7.0.0/test/YesodCoreTest/SplitSubsite/Data.hs
-formatted       d553ab39b43f  yesod-core-1.7.0.0/test/YesodCoreTest/SplitSubsite/NestedR.hs
-formatted       a55ad04cebf6  yesod-core-1.7.0.0/test/YesodCoreTest/SplitSubsite/Runtime.hs
-formatted       a05df238a9e5  yesod-core-1.7.0.0/test/YesodCoreTest/Ssl.hs
-formatted       203d5f3df4f0  yesod-core-1.7.0.0/test/YesodCoreTest/Streaming.hs
-formatted       4a163efbc574  yesod-core-1.7.0.0/test/YesodCoreTest/StubLaxSameSite.hs
-formatted       5831f923349c  yesod-core-1.7.0.0/test/YesodCoreTest/StubSslOnly.hs
-formatted       6510112ce4b4  yesod-core-1.7.0.0/test/YesodCoreTest/StubStrictSameSite.hs
-formatted       9cb2274c1880  yesod-core-1.7.0.0/test/YesodCoreTest/StubUnsecured.hs
-formatted       7b7f0025954e  yesod-core-1.7.0.0/test/YesodCoreTest/SubSub.hs
-formatted       b9e29405eb1b  yesod-core-1.7.0.0/test/YesodCoreTest/SubSubData.hs
-formatted       dbed829ecef5  yesod-core-1.7.0.0/test/YesodCoreTest/SubsiteFallthrough/Data.hs
-formatted       6ef87c226f01  yesod-core-1.7.0.0/test/YesodCoreTest/SubsiteFallthrough/Nested.hs
+formatted       75d05e127240  Agda-2.8.0/src/full/Agda/Compiler/Backend.hs
+formatted       98789e7a7f39  Agda-2.8.0/src/full/Agda/Compiler/Backend/Base.hs
+formatted       b8be5cf3b8d8  Agda-2.8.0/src/full/Agda/Compiler/Builtin.hs
+formatted       ef45f44548b6  Agda-2.8.0/src/full/Agda/Compiler/CallCompiler.hs
+formatted       bd5e60f6485f  Agda-2.8.0/src/full/Agda/Compiler/Common.hs
+formatted       208bfb85e2b8  Agda-2.8.0/src/full/Agda/Compiler/JS/Compiler.hs
+formatted       778777e97e31  Agda-2.8.0/src/full/Agda/Compiler/JS/Pretty.hs
+formatted       f3ee347549c0  Agda-2.8.0/src/full/Agda/Compiler/JS/Substitution.hs
+formatted       716643be2984  Agda-2.8.0/src/full/Agda/Compiler/JS/Syntax.hs
+formatted       aa25bd2f6330  Agda-2.8.0/src/full/Agda/Compiler/MAlonzo/Coerce.hs
+formatted       6fd2cae24e11  Agda-2.8.0/src/full/Agda/Compiler/MAlonzo/Compiler.hs
+formatted       a5e37499e9c4  Agda-2.8.0/src/full/Agda/Compiler/MAlonzo/Encode.hs
+formatted       be07bfaffa2e  Agda-2.8.0/src/full/Agda/Compiler/MAlonzo/HaskellTypes.hs
+formatted       aa62f795f1b2  Agda-2.8.0/src/full/Agda/Compiler/MAlonzo/Misc.hs
+formatted       70bbea601ddf  Agda-2.8.0/src/full/Agda/Compiler/MAlonzo/Pragmas.hs
+formatted       76490fc3bd40  Agda-2.8.0/src/full/Agda/Compiler/MAlonzo/Pretty.hs
+formatted       92ef6a29a48a  Agda-2.8.0/src/full/Agda/Compiler/MAlonzo/Primitives.hs
+formatted       cd156da2fa25  Agda-2.8.0/src/full/Agda/Compiler/MAlonzo/Strict.hs
+formatted       c378a2b833ad  Agda-2.8.0/src/full/Agda/Compiler/ToTreeless.hs
+formatted       0abe92b8f16f  Agda-2.8.0/src/full/Agda/Compiler/Treeless/AsPatterns.hs
+formatted       1ef5a4fa98a1  Agda-2.8.0/src/full/Agda/Compiler/Treeless/Builtin.hs
+formatted       ce128b9cab5e  Agda-2.8.0/src/full/Agda/Compiler/Treeless/Compare.hs
+formatted       3f7ef773d4c9  Agda-2.8.0/src/full/Agda/Compiler/Treeless/EliminateDefaults.hs
+formatted       33e35d69d40c  Agda-2.8.0/src/full/Agda/Compiler/Treeless/EliminateLiteralPatterns.hs
+formatted       1ef7b3a1de25  Agda-2.8.0/src/full/Agda/Compiler/Treeless/Erase.hs
+formatted       4bf71aa72967  Agda-2.8.0/src/full/Agda/Compiler/Treeless/Erase.hs-boot
+formatted       6cefe9037318  Agda-2.8.0/src/full/Agda/Compiler/Treeless/GuardsToPrims.hs
+formatted       8722e737dadc  Agda-2.8.0/src/full/Agda/Compiler/Treeless/Identity.hs
+formatted       f933510f2058  Agda-2.8.0/src/full/Agda/Compiler/Treeless/NormalizeNames.hs
+formatted       43adb2681389  Agda-2.8.0/src/full/Agda/Compiler/Treeless/Pretty.hs
+formatted       9e9ffec9fb88  Agda-2.8.0/src/full/Agda/Compiler/Treeless/Pretty.hs-boot
+formatted       4795b9a43709  Agda-2.8.0/src/full/Agda/Compiler/Treeless/Simplify.hs
+formatted       80fddf5d858f  Agda-2.8.0/src/full/Agda/Compiler/Treeless/Subst.hs
+formatted       83543a8ec338  Agda-2.8.0/src/full/Agda/Compiler/Treeless/Uncase.hs
+formatted       24aeb7ff3365  Agda-2.8.0/src/full/Agda/Compiler/Treeless/Unused.hs
+formatted       3985ec175c5f  Agda-2.8.0/src/full/Agda/ImpossibleTest.hs
+formatted       4bfae407a40f  Agda-2.8.0/src/full/Agda/Interaction/AgdaTop.hs
+formatted       f35eb355b24e  Agda-2.8.0/src/full/Agda/Interaction/Base.hs
+formatted       aa368d2e3109  Agda-2.8.0/src/full/Agda/Interaction/BasicOps.hs
+formatted       816c519a07e6  Agda-2.8.0/src/full/Agda/Interaction/BuildLibrary.hs
+formatted       eb4048782016  Agda-2.8.0/src/full/Agda/Interaction/Command.hs
+formatted       e4f2d0d2088e  Agda-2.8.0/src/full/Agda/Interaction/CommandLine.hs
+formatted       f2285f3b69f7  Agda-2.8.0/src/full/Agda/Interaction/EmacsCommand.hs
+formatted       555155a56d86  Agda-2.8.0/src/full/Agda/Interaction/EmacsTop.hs
+formatted       720e5305288c  Agda-2.8.0/src/full/Agda/Interaction/ExitCode.hs
+formatted       e06156bc2afa  Agda-2.8.0/src/full/Agda/Interaction/FindFile.hs
+formatted       3170eb1921b4  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/Common.hs
+formatted       1fb0462a1b45  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/Dot.hs
+formatted       712b081948e2  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/Dot/Backend.hs
+formatted       c6bb09f6d106  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/Dot/Base.hs
+formatted       773365a6b3e4  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/Emacs.hs
+formatted       4f4d736f1b38  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/FromAbstract.hs
+formatted       5731f6a6b8ee  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/Generate.hs
+formatted       8bc140b18e62  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/Generate.hs-boot
+formatted       9a3fde618f2b  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/HTML.hs
+formatted       3838841067f3  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/HTML/Backend.hs
+formatted       b81dd0529773  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/HTML/Base.hs
+formatted       d36037cbeadf  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/JSON.hs
+formatted       b5bb035e43f1  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/LaTeX.hs
+formatted       66192a19e174  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/LaTeX/Backend.hs
+formatted       3a2b726078ee  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/LaTeX/Base.hs
+formatted       a58ba6711ffc  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/Precise.hs
+formatted       c9f5864c0103  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/Range.hs
+formatted       0054edf8b9e6  Agda-2.8.0/src/full/Agda/Interaction/Highlighting/Vim.hs
+formatted       8d662a022f04  Agda-2.8.0/src/full/Agda/Interaction/Imports.hs
+formatted       65e8798f3384  Agda-2.8.0/src/full/Agda/Interaction/Imports.hs-boot
+formatted       5fb45c984979  Agda-2.8.0/src/full/Agda/Interaction/InteractionTop.hs
+formatted       ab70c667f336  Agda-2.8.0/src/full/Agda/Interaction/JSON.hs
+formatted       7b100611f331  Agda-2.8.0/src/full/Agda/Interaction/JSONTop.hs
+formatted       3f98c0496647  Agda-2.8.0/src/full/Agda/Interaction/Library.hs
+formatted       c3133651352b  Agda-2.8.0/src/full/Agda/Interaction/Library/Base.hs
+formatted       485f6f0b6ae7  Agda-2.8.0/src/full/Agda/Interaction/Library/Parse.hs
+formatted       0406dc3c1480  Agda-2.8.0/src/full/Agda/Interaction/MakeCase.hs
+formatted       dccaf3f6ab13  Agda-2.8.0/src/full/Agda/Interaction/Monad.hs
+formatted       c831a742f557  Agda-2.8.0/src/full/Agda/Interaction/Options.hs
+formatted       f6cdf934d690  Agda-2.8.0/src/full/Agda/Interaction/Options/Base.hs
+formatted       4b4c5936e1ee  Agda-2.8.0/src/full/Agda/Interaction/Options/Errors.hs
+formatted       e44ed789f5f9  Agda-2.8.0/src/full/Agda/Interaction/Options/HasOptions.hs
+formatted       434d46226886  Agda-2.8.0/src/full/Agda/Interaction/Options/Help.hs
+formatted       6232bdb1c435  Agda-2.8.0/src/full/Agda/Interaction/Options/Lenses.hs
+formatted       707b648ee12c  Agda-2.8.0/src/full/Agda/Interaction/Options/Types.hs
+formatted       d2262440b729  Agda-2.8.0/src/full/Agda/Interaction/Options/Warnings.hs
+formatted       60c929f054dc  Agda-2.8.0/src/full/Agda/Interaction/Output.hs
+formatted       c31d0076c1f8  Agda-2.8.0/src/full/Agda/Interaction/Response.hs
+formatted       cfbad8bc01b8  Agda-2.8.0/src/full/Agda/Interaction/Response/Base.hs
+formatted       150002ef2df6  Agda-2.8.0/src/full/Agda/Interaction/SearchAbout.hs
+partly-checked  d0ed5f54b1c0  Agda-2.8.0/src/full/Agda/Main.hs
+formatted       af91d1da1775  Agda-2.8.0/src/full/Agda/Mimer/Mimer.hs
+formatted       43b9c484bd7b  Agda-2.8.0/src/full/Agda/Mimer/Options.hs
+formatted       f2a33cd8871c  Agda-2.8.0/src/full/Agda/Syntax/Abstract.hs
+formatted       8d168f823b1f  Agda-2.8.0/src/full/Agda/Syntax/Abstract/Name.hs
+formatted       dd887ede87e8  Agda-2.8.0/src/full/Agda/Syntax/Abstract/Pattern.hs
+formatted       8f9f098701be  Agda-2.8.0/src/full/Agda/Syntax/Abstract/PatternSynonyms.hs
+formatted       3f1f9a03363a  Agda-2.8.0/src/full/Agda/Syntax/Abstract/Pretty.hs
+formatted       965e3c3c1a0e  Agda-2.8.0/src/full/Agda/Syntax/Abstract/UsedNames.hs
+formatted       0153c0e39ee1  Agda-2.8.0/src/full/Agda/Syntax/Abstract/Views.hs
+formatted       854c09aa8868  Agda-2.8.0/src/full/Agda/Syntax/Builtin.hs
+formatted       838765fe3265  Agda-2.8.0/src/full/Agda/Syntax/Common.hs
+formatted       067fd4d97790  Agda-2.8.0/src/full/Agda/Syntax/Common/Aspect.hs
+formatted       24ed1641ef0b  Agda-2.8.0/src/full/Agda/Syntax/Common/KeywordRange.hs
+formatted       6d4e6b605a89  Agda-2.8.0/src/full/Agda/Syntax/Common/Pretty.hs
+formatted       0b01caf3aafb  Agda-2.8.0/src/full/Agda/Syntax/Common/Pretty/ANSI.hs
+formatted       2ede9edea241  Agda-2.8.0/src/full/Agda/Syntax/Concrete.hs
+formatted       cf0c0006689d  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Attribute.hs
+formatted       8a621f4f4558  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Definitions.hs
+formatted       e399ad1f7e1d  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Definitions/Errors.hs
+formatted       c538200bb820  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Definitions/Monad.hs
+formatted       7b8c167c0685  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Definitions/Types.hs
+formatted       961ee2376643  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Fixity.hs
+formatted       d906da5f87a7  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Generic.hs
+formatted       6a2db093db8c  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Glyph.hs
+formatted       485e43824ae2  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Name.hs
+formatted       f59e5588b7f1  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Operators.hs
+formatted       82dd5e1542ef  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Operators/Parser.hs
+formatted       d052bdb98637  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Operators/Parser/Monad.hs
+formatted       a3120d3e7051  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Pattern.hs
+formatted       34a7cccaef81  Agda-2.8.0/src/full/Agda/Syntax/Concrete/Pretty.hs
+formatted       db8fd8405ab1  Agda-2.8.0/src/full/Agda/Syntax/DoNotation.hs
+formatted       0fa4ef8ac984  Agda-2.8.0/src/full/Agda/Syntax/Fixity.hs
+formatted       f53d6a38a8a5  Agda-2.8.0/src/full/Agda/Syntax/IdiomBrackets.hs
+formatted       da4470987e03  Agda-2.8.0/src/full/Agda/Syntax/Info.hs
+formatted       1bb665a03c97  Agda-2.8.0/src/full/Agda/Syntax/Internal.hs
+formatted       30fb29552f53  Agda-2.8.0/src/full/Agda/Syntax/Internal/Blockers.hs
+formatted       0c3da8bec4ce  Agda-2.8.0/src/full/Agda/Syntax/Internal/Defs.hs
+formatted       6e15d2b4f3c4  Agda-2.8.0/src/full/Agda/Syntax/Internal/Elim.hs
+formatted       59acbea17d71  Agda-2.8.0/src/full/Agda/Syntax/Internal/Generic.hs
+formatted       ff9aafebc54f  Agda-2.8.0/src/full/Agda/Syntax/Internal/MetaVars.hs
+formatted       0da6abb2c898  Agda-2.8.0/src/full/Agda/Syntax/Internal/Names.hs
+formatted       70a2a49f93c0  Agda-2.8.0/src/full/Agda/Syntax/Internal/Pattern.hs
+formatted       4f0688215ae9  Agda-2.8.0/src/full/Agda/Syntax/Internal/SanityCheck.hs
+formatted       60dbf2e32cdd  Agda-2.8.0/src/full/Agda/Syntax/Internal/Univ.hs
+formatted       e3342124f921  Agda-2.8.0/src/full/Agda/Syntax/Literal.hs
+formatted       1f5db6f08b8e  Agda-2.8.0/src/full/Agda/Syntax/Notation.hs
+formatted       5441d15e6659  Agda-2.8.0/src/full/Agda/Syntax/Parser.hs
+formatted       38e524b350d0  Agda-2.8.0/src/full/Agda/Syntax/Parser/Alex.hs
+formatted       b58b3e60f482  Agda-2.8.0/src/full/Agda/Syntax/Parser/Comments.hs
+formatted       7fe22339886b  Agda-2.8.0/src/full/Agda/Syntax/Parser/Helpers.hs
+formatted       0131f3ce9187  Agda-2.8.0/src/full/Agda/Syntax/Parser/Layout.hs
+formatted       700549be6fd6  Agda-2.8.0/src/full/Agda/Syntax/Parser/Layout.hs-boot
+formatted       2e1b70194e94  Agda-2.8.0/src/full/Agda/Syntax/Parser/LexActions.hs
+formatted       a5d57cb1b6b9  Agda-2.8.0/src/full/Agda/Syntax/Parser/LexActions.hs-boot
+formatted       cf610e4bbf57  Agda-2.8.0/src/full/Agda/Syntax/Parser/Literate.hs
+formatted       7eb92ce94825  Agda-2.8.0/src/full/Agda/Syntax/Parser/LookAhead.hs
+formatted       dd8c9bc90890  Agda-2.8.0/src/full/Agda/Syntax/Parser/Monad.hs
+formatted       6b041886ce39  Agda-2.8.0/src/full/Agda/Syntax/Parser/StringLiterals.hs
+formatted       d018d2c7e144  Agda-2.8.0/src/full/Agda/Syntax/Parser/Tokens.hs
+formatted       a0ef5d8e9313  Agda-2.8.0/src/full/Agda/Syntax/Position.hs
+formatted       d16539c2a462  Agda-2.8.0/src/full/Agda/Syntax/Position.hs-boot
+formatted       b1dd8bfd3111  Agda-2.8.0/src/full/Agda/Syntax/Reflected.hs
+formatted       cddc9daac015  Agda-2.8.0/src/full/Agda/Syntax/Scope/Base.hs
+formatted       6916a745cef4  Agda-2.8.0/src/full/Agda/Syntax/Scope/Flat.hs
+formatted       73b6757a8957  Agda-2.8.0/src/full/Agda/Syntax/Scope/Monad.hs
+formatted       d3a3db0834c5  Agda-2.8.0/src/full/Agda/Syntax/TopLevelModuleName.hs
+formatted       f40939e29708  Agda-2.8.0/src/full/Agda/Syntax/TopLevelModuleName/Boot.hs
+formatted       5f0097e8b8e9  Agda-2.8.0/src/full/Agda/Syntax/Translation/AbstractToConcrete.hs
+formatted       6d2218e4d2e4  Agda-2.8.0/src/full/Agda/Syntax/Translation/ConcreteToAbstract.hs
+formatted       43297193ba42  Agda-2.8.0/src/full/Agda/Syntax/Translation/InternalToAbstract.hs
+formatted       8c2de5355091  Agda-2.8.0/src/full/Agda/Syntax/Translation/ReflectedToAbstract.hs
+formatted       9b8f52d7ab07  Agda-2.8.0/src/full/Agda/Syntax/Treeless.hs
+formatted       4a91d7b905d8  Agda-2.8.0/src/full/Agda/Termination/CallGraph.hs
+formatted       77f2933710d7  Agda-2.8.0/src/full/Agda/Termination/CallMatrix.hs
+formatted       ebc4ce14c917  Agda-2.8.0/src/full/Agda/Termination/CutOff.hs
+formatted       acff803c8b23  Agda-2.8.0/src/full/Agda/Termination/Monad.hs
+formatted       64b40e96a86a  Agda-2.8.0/src/full/Agda/Termination/Order.hs
+formatted       3d6943fd6805  Agda-2.8.0/src/full/Agda/Termination/RecCheck.hs
+formatted       5d2396bcde51  Agda-2.8.0/src/full/Agda/Termination/Semiring.hs
+formatted       3e1e5a066751  Agda-2.8.0/src/full/Agda/Termination/SparseMatrix.hs
+formatted       109612b2572f  Agda-2.8.0/src/full/Agda/Termination/TermCheck.hs
+formatted       ed0ea780ef94  Agda-2.8.0/src/full/Agda/Termination/Termination.hs
+formatted       9ce4d907acfa  Agda-2.8.0/src/full/Agda/TheTypeChecker.hs
+formatted       522c2e92c2f2  Agda-2.8.0/src/full/Agda/TypeChecking/Abstract.hs
+formatted       e757073d2d4e  Agda-2.8.0/src/full/Agda/TypeChecking/CheckInternal.hs
+formatted       2d6bbce1312f  Agda-2.8.0/src/full/Agda/TypeChecking/CheckInternal.hs-boot
+formatted       32a35663e792  Agda-2.8.0/src/full/Agda/TypeChecking/CompiledClause.hs
+formatted       06edf6d2d765  Agda-2.8.0/src/full/Agda/TypeChecking/CompiledClause/Compile.hs
+formatted       6b8cf4277b16  Agda-2.8.0/src/full/Agda/TypeChecking/CompiledClause/Compile.hs-boot
+formatted       a141f28ffb17  Agda-2.8.0/src/full/Agda/TypeChecking/CompiledClause/Match.hs
+formatted       3142e5d8c639  Agda-2.8.0/src/full/Agda/TypeChecking/CompiledClause/Match.hs-boot
+formatted       8daa667ddddd  Agda-2.8.0/src/full/Agda/TypeChecking/Constraints.hs
+formatted       47ac61419563  Agda-2.8.0/src/full/Agda/TypeChecking/Constraints.hs-boot
+formatted       f5ba1ae3a7b9  Agda-2.8.0/src/full/Agda/TypeChecking/Conversion.hs
+formatted       cc3a6f5cf005  Agda-2.8.0/src/full/Agda/TypeChecking/Conversion.hs-boot
+formatted       8bb452c258d1  Agda-2.8.0/src/full/Agda/TypeChecking/Conversion/Pure.hs
+formatted       867428e9a9a1  Agda-2.8.0/src/full/Agda/TypeChecking/Coverage.hs
+formatted       5d7955ebba8b  Agda-2.8.0/src/full/Agda/TypeChecking/Coverage/Cubical.hs
+formatted       c9a4679ec19e  Agda-2.8.0/src/full/Agda/TypeChecking/Coverage/Match.hs
+formatted       833e9295f84f  Agda-2.8.0/src/full/Agda/TypeChecking/Coverage/SplitClause.hs
+formatted       50e4c607d3c4  Agda-2.8.0/src/full/Agda/TypeChecking/Coverage/SplitTree.hs
+formatted       de7edd5dabfe  Agda-2.8.0/src/full/Agda/TypeChecking/Datatypes.hs
+formatted       bf771aa7c583  Agda-2.8.0/src/full/Agda/TypeChecking/Datatypes.hs-boot
+formatted       70b7181d282e  Agda-2.8.0/src/full/Agda/TypeChecking/DeadCode.hs
+formatted       59bd9e3da33e  Agda-2.8.0/src/full/Agda/TypeChecking/DiscrimTree.hs
+formatted       c17cb27af1b5  Agda-2.8.0/src/full/Agda/TypeChecking/DiscrimTree/Types.hs
+formatted       ee105b08c0e0  Agda-2.8.0/src/full/Agda/TypeChecking/DisplayForm.hs
+formatted       fa3908c1bf4b  Agda-2.8.0/src/full/Agda/TypeChecking/DropArgs.hs
+formatted       c4bcc3ec3efc  Agda-2.8.0/src/full/Agda/TypeChecking/Empty.hs
+formatted       546e2690c8bd  Agda-2.8.0/src/full/Agda/TypeChecking/Empty.hs-boot
+formatted       d796fe01f1e9  Agda-2.8.0/src/full/Agda/TypeChecking/Errors.hs
+formatted       4d637dbd29d8  Agda-2.8.0/src/full/Agda/TypeChecking/Errors.hs-boot
+formatted       aaf8e5a6f74a  Agda-2.8.0/src/full/Agda/TypeChecking/Errors/Names.hs
+formatted       fa9468d1b394  Agda-2.8.0/src/full/Agda/TypeChecking/EtaContract.hs
+formatted       6d6bab698a5f  Agda-2.8.0/src/full/Agda/TypeChecking/Forcing.hs
+formatted       aeb088bda6b4  Agda-2.8.0/src/full/Agda/TypeChecking/Free.hs
+formatted       57cc39115f0c  Agda-2.8.0/src/full/Agda/TypeChecking/Free/Lazy.hs
+formatted       e10225542a24  Agda-2.8.0/src/full/Agda/TypeChecking/Free/Precompute.hs
+formatted       ed93d677a9dd  Agda-2.8.0/src/full/Agda/TypeChecking/Free/Reduce.hs
+formatted       dda08728d05b  Agda-2.8.0/src/full/Agda/TypeChecking/Functions.hs
+formatted       9fc3cf57b64a  Agda-2.8.0/src/full/Agda/TypeChecking/Generalize.hs
+formatted       e7eb98a27abe  Agda-2.8.0/src/full/Agda/TypeChecking/IApplyConfluence.hs
+formatted       87b0399276b5  Agda-2.8.0/src/full/Agda/TypeChecking/Implicit.hs
+formatted       d835876f5a10  Agda-2.8.0/src/full/Agda/TypeChecking/Injectivity.hs
+formatted       32f96c636db2  Agda-2.8.0/src/full/Agda/TypeChecking/Inlining.hs
+formatted       38effe4219d6  Agda-2.8.0/src/full/Agda/TypeChecking/InstanceArguments.hs
+formatted       daede539773d  Agda-2.8.0/src/full/Agda/TypeChecking/InstanceArguments.hs-boot
+formatted       e3ca55cde230  Agda-2.8.0/src/full/Agda/TypeChecking/Irrelevance.hs
+formatted       f5e2359204d8  Agda-2.8.0/src/full/Agda/TypeChecking/Irrelevance.hs-boot
+formatted       d83d2056a267  Agda-2.8.0/src/full/Agda/TypeChecking/Level.hs
+formatted       4df75f041db4  Agda-2.8.0/src/full/Agda/TypeChecking/Level.hs-boot
+formatted       443b56fdd0d7  Agda-2.8.0/src/full/Agda/TypeChecking/Level/Solve.hs
+formatted       ae0893a4561e  Agda-2.8.0/src/full/Agda/TypeChecking/LevelConstraints.hs
+formatted       07c423dfa0e3  Agda-2.8.0/src/full/Agda/TypeChecking/Lock.hs
+formatted       00b8f5e75aa7  Agda-2.8.0/src/full/Agda/TypeChecking/Lock.hs-boot
+formatted       97862a8dea84  Agda-2.8.0/src/full/Agda/TypeChecking/MetaVars.hs
+formatted       52101179c5b2  Agda-2.8.0/src/full/Agda/TypeChecking/MetaVars.hs-boot
+formatted       e1fc76d1f4fb  Agda-2.8.0/src/full/Agda/TypeChecking/MetaVars/Mention.hs
+formatted       9825c48e7a9c  Agda-2.8.0/src/full/Agda/TypeChecking/MetaVars/Occurs.hs
+formatted       d47e8c206217  Agda-2.8.0/src/full/Agda/TypeChecking/Modalities.hs
+formatted       1fd16a038ff2  Agda-2.8.0/src/full/Agda/TypeChecking/Monad.hs
+formatted       4d33b706cb4f  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Base.hs
+formatted       9ab4cf397957  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Base/Types.hs
+formatted       7860b2253820  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Base/Warning.hs
+formatted       56ab8bfd7ea3  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Benchmark.hs
+formatted       a0072b209daf  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Builtin.hs
+formatted       6b2e93e4eef0  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Builtin.hs-boot
+formatted       d3627bb3ef79  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Caching.hs
+formatted       ceeedfc93ba5  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Closure.hs
+formatted       c94a9adc6e79  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Constraints.hs
+formatted       965403e8d54c  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Context.hs
+formatted       aa421afb353b  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Context.hs-boot
+formatted       93f76be51b99  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Debug.hs
+formatted       07c8440dbd10  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Debug.hs-boot
+formatted       2b0eabe8c79e  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Env.hs
+formatted       46512cb4f780  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Imports.hs
+formatted       a4bdd532cdc1  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/MetaVars.hs
+formatted       894d39f81e58  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/MetaVars.hs-boot
+formatted       a46ae335e8c2  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Modality.hs
+formatted       bbf8f13a117e  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Mutual.hs
+formatted       75455d5fea54  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Open.hs
+formatted       dbde98a0370f  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Options.hs
+formatted       2b144a9f6ada  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Options.hs-boot
+formatted       a266ccade893  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Pure.hs
+formatted       f549f9160d1c  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Pure.hs-boot
+formatted       77c9a4fc8fbb  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Signature.hs
+formatted       691ffa6dc30c  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Signature.hs-boot
+formatted       93624d713c05  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/SizedTypes.hs
+formatted       ede0f3649b77  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/State.hs
+formatted       63e1167a5c2e  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Statistics.hs
+formatted       49a778fb5b1f  Agda-2.8.0/src/full/Agda/TypeChecking/Monad/Trace.hs
+formatted       38ca9a4b989f  Agda-2.8.0/src/full/Agda/TypeChecking/Names.hs
+formatted       5519525e6548  Agda-2.8.0/src/full/Agda/TypeChecking/Opacity.hs
+formatted       d26ddecf1923  Agda-2.8.0/src/full/Agda/TypeChecking/Opacity.hs-boot
+formatted       ec77f6d2c4ee  Agda-2.8.0/src/full/Agda/TypeChecking/Patterns/Abstract.hs
+formatted       0f6e0c168a7c  Agda-2.8.0/src/full/Agda/TypeChecking/Patterns/Internal.hs
+formatted       3bed5c67293b  Agda-2.8.0/src/full/Agda/TypeChecking/Patterns/Match.hs
+formatted       5ee7033010bf  Agda-2.8.0/src/full/Agda/TypeChecking/Patterns/Match.hs-boot
+formatted       469500f3dcdc  Agda-2.8.0/src/full/Agda/TypeChecking/Polarity.hs
+formatted       2f5659c12840  Agda-2.8.0/src/full/Agda/TypeChecking/Polarity.hs-boot
+formatted       2901072a89fa  Agda-2.8.0/src/full/Agda/TypeChecking/Positivity.hs
+formatted       5626959a260d  Agda-2.8.0/src/full/Agda/TypeChecking/Positivity/Occurrence.hs
+formatted       37a92ee30da4  Agda-2.8.0/src/full/Agda/TypeChecking/Pretty.hs
+formatted       7c15c0f77e82  Agda-2.8.0/src/full/Agda/TypeChecking/Pretty.hs-boot
+formatted       9a154e2294df  Agda-2.8.0/src/full/Agda/TypeChecking/Pretty/Call.hs
+formatted       f5434869778b  Agda-2.8.0/src/full/Agda/TypeChecking/Pretty/Call.hs-boot
+formatted       544fac378a4f  Agda-2.8.0/src/full/Agda/TypeChecking/Pretty/Constraint.hs
+formatted       4c2edd49d675  Agda-2.8.0/src/full/Agda/TypeChecking/Pretty/Constraint.hs-boot
+formatted       73740eefae14  Agda-2.8.0/src/full/Agda/TypeChecking/Pretty/Warning.hs
+formatted       bf4e737ce041  Agda-2.8.0/src/full/Agda/TypeChecking/Pretty/Warning.hs-boot
+formatted       3d893370c964  Agda-2.8.0/src/full/Agda/TypeChecking/Primitive.hs
+formatted       3c8fe98419dd  Agda-2.8.0/src/full/Agda/TypeChecking/Primitive.hs-boot
+formatted       8ed22976b92a  Agda-2.8.0/src/full/Agda/TypeChecking/Primitive/Base.hs
+formatted       449b06119ca8  Agda-2.8.0/src/full/Agda/TypeChecking/Primitive/Cubical.hs
+formatted       2ea530f280a4  Agda-2.8.0/src/full/Agda/TypeChecking/Primitive/Cubical/Base.hs
+formatted       34da472277ef  Agda-2.8.0/src/full/Agda/TypeChecking/Primitive/Cubical/Base.hs-boot
+formatted       caff936ed890  Agda-2.8.0/src/full/Agda/TypeChecking/Primitive/Cubical/Glue.hs
+formatted       3a30d149c7d5  Agda-2.8.0/src/full/Agda/TypeChecking/Primitive/Cubical/HCompU.hs
+formatted       b94623fcbae3  Agda-2.8.0/src/full/Agda/TypeChecking/ProjectionLike.hs
+formatted       21d019305ce5  Agda-2.8.0/src/full/Agda/TypeChecking/ProjectionLike.hs-boot
+formatted       2505bf50d757  Agda-2.8.0/src/full/Agda/TypeChecking/Quote.hs
+formatted       134651a3168e  Agda-2.8.0/src/full/Agda/TypeChecking/ReconstructParameters.hs
+formatted       2d7e0d93add3  Agda-2.8.0/src/full/Agda/TypeChecking/RecordPatterns.hs
+formatted       2ea1183d053a  Agda-2.8.0/src/full/Agda/TypeChecking/Records.hs
+formatted       65b1d93597cd  Agda-2.8.0/src/full/Agda/TypeChecking/Records.hs-boot
+formatted       d796d469ac77  Agda-2.8.0/src/full/Agda/TypeChecking/Reduce.hs
+formatted       82cb10489996  Agda-2.8.0/src/full/Agda/TypeChecking/Reduce.hs-boot
+formatted       902d61b8794a  Agda-2.8.0/src/full/Agda/TypeChecking/Reduce/Fast.hs
+formatted       2158647025d5  Agda-2.8.0/src/full/Agda/TypeChecking/Reduce/Fast.hs-boot
+formatted       8290b6f13ee3  Agda-2.8.0/src/full/Agda/TypeChecking/Reduce/Monad.hs
+formatted       4138b13a5df5  Agda-2.8.0/src/full/Agda/TypeChecking/Rewriting.hs
+formatted       0158a552c77f  Agda-2.8.0/src/full/Agda/TypeChecking/Rewriting.hs-boot
+formatted       a5b5675ddb35  Agda-2.8.0/src/full/Agda/TypeChecking/Rewriting/Clause.hs
+formatted       e53d93353f66  Agda-2.8.0/src/full/Agda/TypeChecking/Rewriting/Confluence.hs
+formatted       ffa8c612942d  Agda-2.8.0/src/full/Agda/TypeChecking/Rewriting/NonLinMatch.hs
+formatted       cf2803dfe738  Agda-2.8.0/src/full/Agda/TypeChecking/Rewriting/NonLinPattern.hs
+formatted       7683fca856bf  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Application.hs
+formatted       8094c6b9ca8d  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Application.hs-boot
+formatted       4853a993b081  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Builtin.hs
+formatted       bb96b8d55347  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Builtin/Coinduction.hs
+formatted       48f627566132  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Builtin/Coinduction.hs-boot
+formatted       228af35d2d09  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Data.hs
+formatted       89ea7a6db701  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Data.hs-boot
+formatted       ff0e9314023a  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Decl.hs
+formatted       c3dda6e649e5  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Decl.hs-boot
+formatted       c8f646cea7d3  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Def.hs
+formatted       aa2e722e924d  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Def.hs-boot
+formatted       fed954351c6b  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Display.hs
+formatted       5291aa3ee0df  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/LHS.hs
+formatted       6773a3880c72  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/LHS/Implicit.hs
+formatted       da382d16a0bc  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/LHS/Problem.hs
+formatted       faf2b455193b  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/LHS/ProblemRest.hs
+formatted       6a42cd7f2ae2  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/LHS/Unify.hs
+formatted       d3a352c1c4d9  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/LHS/Unify/LeftInverse.hs
+formatted       dea533ec809b  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/LHS/Unify/Types.hs
+formatted       2fe7b7e43894  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Record.hs
+formatted       31facbc5e0fe  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Term.hs
+formatted       ccd5b1bd7f62  Agda-2.8.0/src/full/Agda/TypeChecking/Rules/Term.hs-boot
+formatted       49e329be866f  Agda-2.8.0/src/full/Agda/TypeChecking/Serialise.hs
+formatted       3c2ae59cbddd  Agda-2.8.0/src/full/Agda/TypeChecking/Serialise/Base.hs
+formatted       0b03fe8ecc8f  Agda-2.8.0/src/full/Agda/TypeChecking/Serialise/Instances.hs
+formatted       6c20bf188f6d  Agda-2.8.0/src/full/Agda/TypeChecking/Serialise/Instances/Abstract.hs
+formatted       36d52dce312e  Agda-2.8.0/src/full/Agda/TypeChecking/Serialise/Instances/Common.hs
+formatted       d11e2e781bb4  Agda-2.8.0/src/full/Agda/TypeChecking/Serialise/Instances/Compilers.hs
+formatted       2eef55954bfb  Agda-2.8.0/src/full/Agda/TypeChecking/Serialise/Instances/Errors.hs
+formatted       abbb853d7207  Agda-2.8.0/src/full/Agda/TypeChecking/Serialise/Instances/Highlighting.hs
+formatted       ca74c3e9270b  Agda-2.8.0/src/full/Agda/TypeChecking/Serialise/Instances/Internal.hs
+formatted       205f6ec21316  Agda-2.8.0/src/full/Agda/TypeChecking/SizedTypes.hs
+formatted       b681d54f057a  Agda-2.8.0/src/full/Agda/TypeChecking/SizedTypes/Pretty.hs
+formatted       ba347b83ea94  Agda-2.8.0/src/full/Agda/TypeChecking/SizedTypes/Solve.hs
+formatted       322db41fd343  Agda-2.8.0/src/full/Agda/TypeChecking/SizedTypes/Syntax.hs
+formatted       904a4e241e74  Agda-2.8.0/src/full/Agda/TypeChecking/SizedTypes/Utils.hs
+formatted       0be08dcf3e01  Agda-2.8.0/src/full/Agda/TypeChecking/SizedTypes/WarshallSolver.hs
+formatted       dace03972057  Agda-2.8.0/src/full/Agda/TypeChecking/Sort.hs
+formatted       23e9f5a4dd33  Agda-2.8.0/src/full/Agda/TypeChecking/Substitute.hs
+formatted       5c1090094604  Agda-2.8.0/src/full/Agda/TypeChecking/Substitute/Class.hs
+formatted       2656f0d28fba  Agda-2.8.0/src/full/Agda/TypeChecking/Substitute/DeBruijn.hs
+formatted       bdddf47208eb  Agda-2.8.0/src/full/Agda/TypeChecking/SyntacticEquality.hs
+formatted       9403f483b826  Agda-2.8.0/src/full/Agda/TypeChecking/Telescope.hs
+formatted       d94c0d202dfc  Agda-2.8.0/src/full/Agda/TypeChecking/Telescope.hs-boot
+formatted       a311599b882a  Agda-2.8.0/src/full/Agda/TypeChecking/Telescope/Path.hs
+formatted       065cd440ceef  Agda-2.8.0/src/full/Agda/TypeChecking/Unquote.hs
+formatted       9b905968b1f4  Agda-2.8.0/src/full/Agda/TypeChecking/Warnings.hs
+formatted       49c35730acfc  Agda-2.8.0/src/full/Agda/TypeChecking/With.hs
+formatted       b02f16e6d20a  Agda-2.8.0/src/full/Agda/Utils/AffineHole.hs
+formatted       ae5ced9ae20f  Agda-2.8.0/src/full/Agda/Utils/Applicative.hs
+formatted       7fe48d6127fe  Agda-2.8.0/src/full/Agda/Utils/AssocList.hs
+formatted       0f294429e9ba  Agda-2.8.0/src/full/Agda/Utils/Bag.hs
+formatted       3856d320f4f2  Agda-2.8.0/src/full/Agda/Utils/Benchmark.hs
+formatted       19e137bd74e4  Agda-2.8.0/src/full/Agda/Utils/BiMap.hs
+formatted       09925de009a1  Agda-2.8.0/src/full/Agda/Utils/BoolSet.hs
+formatted       66c20e52ae54  Agda-2.8.0/src/full/Agda/Utils/Boolean.hs
+formatted       880aa8847616  Agda-2.8.0/src/full/Agda/Utils/CallStack.hs
+formatted       c39e106918fe  Agda-2.8.0/src/full/Agda/Utils/CallStack/Base.hs
+formatted       dfecf0fc01d4  Agda-2.8.0/src/full/Agda/Utils/CallStack/Pretty.hs
+formatted       eeedf1a4e3da  Agda-2.8.0/src/full/Agda/Utils/Char.hs
+formatted       2b8eb290abc6  Agda-2.8.0/src/full/Agda/Utils/Cluster.hs
+formatted       b2757fa5ae2f  Agda-2.8.0/src/full/Agda/Utils/Either.hs
+formatted       5c0f9924f59f  Agda-2.8.0/src/full/Agda/Utils/Empty.hs
+formatted       284145f1db7f  Agda-2.8.0/src/full/Agda/Utils/Environment.hs
+formatted       e2b0e8db2604  Agda-2.8.0/src/full/Agda/Utils/Fail.hs
+formatted       7ba92e89857d  Agda-2.8.0/src/full/Agda/Utils/Favorites.hs
+formatted       73363066a6a3  Agda-2.8.0/src/full/Agda/Utils/FileId.hs
+formatted       fe8be2258052  Agda-2.8.0/src/full/Agda/Utils/FileName.hs
+formatted       e5f5fbd21c99  Agda-2.8.0/src/full/Agda/Utils/Float.hs
+formatted       671c1e2678b7  Agda-2.8.0/src/full/Agda/Utils/Function.hs
+formatted       6c4961888023  Agda-2.8.0/src/full/Agda/Utils/Functor.hs
+formatted       026b04b8661e  Agda-2.8.0/src/full/Agda/Utils/GetOpt.hs
+formatted       873df66a7304  Agda-2.8.0/src/full/Agda/Utils/Graph/AdjacencyMap/Unidirectional.hs
+formatted       989ea83c378b  Agda-2.8.0/src/full/Agda/Utils/Graph/TopSort.hs
+formatted       db38367e7a17  Agda-2.8.0/src/full/Agda/Utils/Hash.hs
+formatted       43284ef7124c  Agda-2.8.0/src/full/Agda/Utils/HashTable.hs
+formatted       019e9637b9b0  Agda-2.8.0/src/full/Agda/Utils/Haskell/Syntax.hs
+formatted       e861d8cbd7ce  Agda-2.8.0/src/full/Agda/Utils/IArray.hs
+formatted       8d53e1639c43  Agda-2.8.0/src/full/Agda/Utils/IO.hs
+formatted       ddd200e851ab  Agda-2.8.0/src/full/Agda/Utils/IO/Binary.hs
+formatted       c62ffb044eae  Agda-2.8.0/src/full/Agda/Utils/IO/Directory.hs
+formatted       44ca6943bebd  Agda-2.8.0/src/full/Agda/Utils/IO/TempFile.hs
+formatted       51a9c4ed68e8  Agda-2.8.0/src/full/Agda/Utils/IO/UTF8.hs
+formatted       d938f94198a6  Agda-2.8.0/src/full/Agda/Utils/IORef.hs
+formatted       695329a3bad9  Agda-2.8.0/src/full/Agda/Utils/Impossible.hs
+formatted       e5520ad27268  Agda-2.8.0/src/full/Agda/Utils/IndexedList.hs
+formatted       89c592a4472e  Agda-2.8.0/src/full/Agda/Utils/IntSet/Infinite.hs
+formatted       37f9f2b34f7d  Agda-2.8.0/src/full/Agda/Utils/Lens.hs
+formatted       89e41b43691d  Agda-2.8.0/src/full/Agda/Utils/Lens/Examples.hs
+formatted       1b92693f68b2  Agda-2.8.0/src/full/Agda/Utils/List.hs
+formatted       45ca9f9f3bb8  Agda-2.8.0/src/full/Agda/Utils/List1.hs
+formatted       3bd635eb52aa  Agda-2.8.0/src/full/Agda/Utils/List1.hs-boot
+formatted       3514de48df05  Agda-2.8.0/src/full/Agda/Utils/List2.hs
+formatted       7c751813fa31  Agda-2.8.0/src/full/Agda/Utils/ListT.hs
+formatted       169903934617  Agda-2.8.0/src/full/Agda/Utils/Map.hs
+formatted       8c9045bc776a  Agda-2.8.0/src/full/Agda/Utils/Map1.hs
+formatted       6e06ef12a477  Agda-2.8.0/src/full/Agda/Utils/Maybe.hs
+formatted       f52b8f698d5f  Agda-2.8.0/src/full/Agda/Utils/Maybe/Strict.hs
+formatted       fde8defcff6d  Agda-2.8.0/src/full/Agda/Utils/Memo.hs
+formatted       ae784faa4e52  Agda-2.8.0/src/full/Agda/Utils/Monad.hs
+formatted       4f8109a5fa85  Agda-2.8.0/src/full/Agda/Utils/Monoid.hs
+formatted       92bb2192c3b2  Agda-2.8.0/src/full/Agda/Utils/Null.hs
+formatted       4fd8ca5748d3  Agda-2.8.0/src/full/Agda/Utils/POMonoid.hs
+formatted       bb186d0604db  Agda-2.8.0/src/full/Agda/Utils/Parser/MemoisedCPS.hs
+formatted       c2d2ccfc3558  Agda-2.8.0/src/full/Agda/Utils/PartialOrd.hs
+formatted       e9d2279e6e65  Agda-2.8.0/src/full/Agda/Utils/Permutation.hs
+formatted       fda572184491  Agda-2.8.0/src/full/Agda/Utils/ProfileOptions.hs
+formatted       49a18a2c6aec  Agda-2.8.0/src/full/Agda/Utils/RangeMap.hs
+formatted       5039e6e9abfe  Agda-2.8.0/src/full/Agda/Utils/SemiRing.hs
+formatted       9aa281a4615c  Agda-2.8.0/src/full/Agda/Utils/Semigroup.hs
+formatted       fdb04073ce98  Agda-2.8.0/src/full/Agda/Utils/Set1.hs
+formatted       f45ad8f08443  Agda-2.8.0/src/full/Agda/Utils/Singleton.hs
+formatted       18c4a0bbe326  Agda-2.8.0/src/full/Agda/Utils/Size.hs
+formatted       f8b306deacdf  Agda-2.8.0/src/full/Agda/Utils/SmallSet.hs
+formatted       21babb4b50a9  Agda-2.8.0/src/full/Agda/Utils/String.hs
+formatted       57a8a5b9fa29  Agda-2.8.0/src/full/Agda/Utils/Suffix.hs
+formatted       736b26cda8bc  Agda-2.8.0/src/full/Agda/Utils/Three.hs
+formatted       ebc104ac11d6  Agda-2.8.0/src/full/Agda/Utils/Time.hs
+formatted       28100c97a54a  Agda-2.8.0/src/full/Agda/Utils/Trie.hs
+formatted       1711e06969b5  Agda-2.8.0/src/full/Agda/Utils/Tuple.hs
+formatted       db9dcb1b8f66  Agda-2.8.0/src/full/Agda/Utils/TypeLevel.hs
+formatted       c8c672126225  Agda-2.8.0/src/full/Agda/Utils/TypeLits.hs
+formatted       8d8d3b50eebc  Agda-2.8.0/src/full/Agda/Utils/Unsafe.hs
+formatted       67386f8634f6  Agda-2.8.0/src/full/Agda/Utils/Update.hs
+formatted       383866b27bb0  Agda-2.8.0/src/full/Agda/Utils/VarSet.hs
+formatted       ef7d967b9bdc  Agda-2.8.0/src/full/Agda/Utils/WithDefault.hs
+formatted       fe0ca6de293d  Agda-2.8.0/src/full/Agda/Utils/Zipper.hs
+formatted       86e923a357db  Agda-2.8.0/src/main/Main.hs
+formatted       61f76fd386b5  Agda-2.8.0/src/setup/Agda/Setup.hs
+formatted       4fdcc92be0f4  Agda-2.8.0/src/setup/Agda/Setup/DataFiles.hs
+formatted       7a631dd4456c  Agda-2.8.0/src/setup/Agda/Setup/EmacsMode.hs
+formatted       acb74e0db7a5  Agda-2.8.0/src/setup/Agda/Version.hs
+formatted       5164a4006c26  Agda-2.8.0/src/setup/Agda/VersionCommit.hs
+formatted       90cd663d9426  HUnit-1.6.2.0/examples/Example.hs
+formatted       9b1cac4b6c09  HUnit-1.6.2.0/src/Test/HUnit.hs
+formatted       0971b82d0690  HUnit-1.6.2.0/src/Test/HUnit/Base.hs
+formatted       259f46f80849  HUnit-1.6.2.0/src/Test/HUnit/Lang.hs
+formatted       f9959d10adae  HUnit-1.6.2.0/src/Test/HUnit/Terminal.hs
+formatted       c1c1d4fdc273  HUnit-1.6.2.0/src/Test/HUnit/Text.hs
+formatted       358e8e211fe4  HUnit-1.6.2.0/tests/HUnitTestExtended.hs
+formatted       2277de61adab  HUnit-1.6.2.0/tests/HUnitTests.hs
+formatted       6f374a392385  HUnit-1.6.2.0/tests/TerminalTest.hs
+formatted       72a2225868af  QuickCheck-2.18.0.0/examples/Heap.hs
+formatted       dc35ff44492c  QuickCheck-2.18.0.0/examples/Heap_Program.hs
+formatted       0abcf73779e5  QuickCheck-2.18.0.0/examples/Heap_ProgramAlgebraic.hs
+formatted       07c41d7ee959  QuickCheck-2.18.0.0/examples/Lambda.hs
+formatted       ac5fe5532ade  QuickCheck-2.18.0.0/examples/Merge.hs
+formatted       75a2f3be476e  QuickCheck-2.18.0.0/examples/Set.hs
+formatted       598740b3d57c  QuickCheck-2.18.0.0/examples/Simple.hs
+partly-checked  9da7c6c96a36  QuickCheck-2.18.0.0/src/Test/QuickCheck.hs
+formatted       02ad02d885d3  QuickCheck-2.18.0.0/src/Test/QuickCheck/All.hs
+partly-checked  beeaa8cce68d  QuickCheck-2.18.0.0/src/Test/QuickCheck/Arbitrary.hs
+formatted       b394fbd4debb  QuickCheck-2.18.0.0/src/Test/QuickCheck/Compat.hs
+partly-checked  06fafd04e06a  QuickCheck-2.18.0.0/src/Test/QuickCheck/Exception.hs
+formatted       24dc2fbcd085  QuickCheck-2.18.0.0/src/Test/QuickCheck/Features.hs
+partly-checked  a3b6ef716829  QuickCheck-2.18.0.0/src/Test/QuickCheck/Function.hs
+formatted       41b71e19969f  QuickCheck-2.18.0.0/src/Test/QuickCheck/Gen.hs
+formatted       0488daa21096  QuickCheck-2.18.0.0/src/Test/QuickCheck/Gen/Unsafe.hs
+formatted       27b454ea364e  QuickCheck-2.18.0.0/src/Test/QuickCheck/Modifiers.hs
+formatted       09230f4d022f  QuickCheck-2.18.0.0/src/Test/QuickCheck/Monadic.hs
+formatted       a94b9d13da2f  QuickCheck-2.18.0.0/src/Test/QuickCheck/Monoids.hs
+formatted       0c4f8c706edf  QuickCheck-2.18.0.0/src/Test/QuickCheck/Poly.hs
+formatted       7ad2b4286dd4  QuickCheck-2.18.0.0/src/Test/QuickCheck/Property.hs
+formatted       d248979763fb  QuickCheck-2.18.0.0/src/Test/QuickCheck/Random.hs
+formatted       67a6c49f2d76  QuickCheck-2.18.0.0/src/Test/QuickCheck/State.hs
+formatted       d6690aaf2529  QuickCheck-2.18.0.0/src/Test/QuickCheck/Test.hs
+formatted       a4f1f65a7f1e  QuickCheck-2.18.0.0/src/Test/QuickCheck/Text.hs
+formatted       19879ee226c1  QuickCheck-2.18.0.0/tests/CollectDataTypes.hs
+formatted       da3fb75adccf  QuickCheck-2.18.0.0/tests/DiscardRatio.hs
+formatted       5408e5e13bd3  QuickCheck-2.18.0.0/tests/GCoArbitraryExample.hs
+formatted       8dd012261272  QuickCheck-2.18.0.0/tests/GShrinkExample.hs
+formatted       3f82e6fd307d  QuickCheck-2.18.0.0/tests/Generators.hs
+formatted       057887c409bc  QuickCheck-2.18.0.0/tests/Misc.hs
+formatted       414efdc48918  QuickCheck-2.18.0.0/tests/MonadFix.hs
+formatted       85ad2d1decbe  QuickCheck-2.18.0.0/tests/Monoids.hs
+formatted       eae30fa51b1b  QuickCheck-2.18.0.0/tests/RunCollectDataTypes.hs
+formatted       6cff09f61b57  QuickCheck-2.18.0.0/tests/Split.hs
+formatted       da1fe583377c  QuickCheck-2.18.0.0/tests/Strictness.hs
+formatted       224bf6e7655c  QuickCheck-2.18.0.0/tests/Terminal.hs
+formatted       398a0f17171d  QuickCheck-2.18.0.0/tests/WithProgress.hs
+formatted       5bd7a41e0fb6  ShellCheck-0.11.0/shellcheck.hs
+formatted       e1956a0e51a1  ShellCheck-0.11.0/src/ShellCheck/AST.hs
+formatted       c37d63683cf0  ShellCheck-0.11.0/src/ShellCheck/ASTLib.hs
+formatted       24b51a720cfe  ShellCheck-0.11.0/src/ShellCheck/Analytics.hs
+formatted       a37e7d6ad771  ShellCheck-0.11.0/src/ShellCheck/Analyzer.hs
+formatted       0df96a3d2318  ShellCheck-0.11.0/src/ShellCheck/AnalyzerLib.hs
+formatted       3308afd69855  ShellCheck-0.11.0/src/ShellCheck/CFG.hs
+formatted       82bc11b18b11  ShellCheck-0.11.0/src/ShellCheck/CFGAnalysis.hs
+formatted       b5fd9efb82ac  ShellCheck-0.11.0/src/ShellCheck/Checker.hs
+formatted       8b1eac1d2cfc  ShellCheck-0.11.0/src/ShellCheck/Checks/Commands.hs
+formatted       4499e00fdc51  ShellCheck-0.11.0/src/ShellCheck/Checks/ControlFlow.hs
+formatted       0cbfece4e54b  ShellCheck-0.11.0/src/ShellCheck/Checks/Custom.hs
+formatted       91595d726c47  ShellCheck-0.11.0/src/ShellCheck/Checks/ShellSupport.hs
+formatted       360f25cce88b  ShellCheck-0.11.0/src/ShellCheck/Data.hs
+formatted       49275e17f1a3  ShellCheck-0.11.0/src/ShellCheck/Debug.hs
+formatted       31071ad483d6  ShellCheck-0.11.0/src/ShellCheck/Fixer.hs
+formatted       1c5c142bbc8c  ShellCheck-0.11.0/src/ShellCheck/Formatter/CheckStyle.hs
+formatted       13b3c15a19bc  ShellCheck-0.11.0/src/ShellCheck/Formatter/Diff.hs
+formatted       78112453fad7  ShellCheck-0.11.0/src/ShellCheck/Formatter/Format.hs
+formatted       d90b451f113e  ShellCheck-0.11.0/src/ShellCheck/Formatter/GCC.hs
+formatted       b5dba8eeaa1e  ShellCheck-0.11.0/src/ShellCheck/Formatter/JSON.hs
+formatted       fb9c03a6a335  ShellCheck-0.11.0/src/ShellCheck/Formatter/JSON1.hs
+formatted       a381122da904  ShellCheck-0.11.0/src/ShellCheck/Formatter/Quiet.hs
+formatted       ede5712d5ab7  ShellCheck-0.11.0/src/ShellCheck/Formatter/TTY.hs
+formatted       a601aea10041  ShellCheck-0.11.0/src/ShellCheck/Interface.hs
+formatted       fd032d879733  ShellCheck-0.11.0/src/ShellCheck/Parser.hs
+formatted       41e45f4ec82e  ShellCheck-0.11.0/src/ShellCheck/Prelude.hs
+formatted       0b6a2ca650ea  ShellCheck-0.11.0/src/ShellCheck/Regex.hs
+formatted       d7f66e7f3a00  ShellCheck-0.11.0/test/shellcheck.hs
+formatted       f11704872a0d  adjunctions-4.4.4/HLint.hs
+formatted       b76eebd88dde  adjunctions-4.4.4/src/Control/Comonad/Representable/Store.hs
+formatted       de45dcce87b3  adjunctions-4.4.4/src/Control/Comonad/Trans/Adjoint.hs
+formatted       6acf5c42f6f3  adjunctions-4.4.4/src/Control/Monad/Representable/Reader.hs
+formatted       a638921f9e27  adjunctions-4.4.4/src/Control/Monad/Representable/State.hs
+formatted       090896034199  adjunctions-4.4.4/src/Control/Monad/Trans/Adjoint.hs
+formatted       e1817af58b0a  adjunctions-4.4.4/src/Control/Monad/Trans/Contravariant/Adjoint.hs
+formatted       e1065b4a8220  adjunctions-4.4.4/src/Control/Monad/Trans/Conts.hs
+formatted       a9be4a7e726b  adjunctions-4.4.4/src/Data/Functor/Adjunction.hs
+formatted       191e78a8f894  adjunctions-4.4.4/src/Data/Functor/Contravariant/Adjunction.hs
+formatted       573a1fcd59fd  adjunctions-4.4.4/src/Data/Functor/Contravariant/Rep.hs
+formatted       28caf428004b  adjunctions-4.4.4/src/Data/Functor/Rep.hs
+formatted       690f4e02bf11  adjunctions-4.4.4/tests/GenericsSpec.hs
+formatted       2fbd14b119a4  adjunctions-4.4.4/tests/Spec.hs
+formatted       5f27aba9dda7  aeson-2.3.1.0/src/Data/Aeson.hs
+formatted       e884d6813fc6  aeson-2.3.1.0/src/Data/Aeson/Decoding.hs
+formatted       93bdee10e02a  aeson-2.3.1.0/src/Data/Aeson/Decoding/ByteString.hs
+formatted       635321399aa4  aeson-2.3.1.0/src/Data/Aeson/Decoding/ByteString/Lazy.hs
+formatted       1d3a54288c25  aeson-2.3.1.0/src/Data/Aeson/Decoding/Conversion.hs
+formatted       f1f142fef403  aeson-2.3.1.0/src/Data/Aeson/Decoding/Internal.hs
+formatted       e972ebea468c  aeson-2.3.1.0/src/Data/Aeson/Decoding/Text.hs
+formatted       709b71ada144  aeson-2.3.1.0/src/Data/Aeson/Decoding/Tokens.hs
+formatted       c6cf8dff7aea  aeson-2.3.1.0/src/Data/Aeson/Encoding.hs
+formatted       96d4e6121b81  aeson-2.3.1.0/src/Data/Aeson/Encoding/Builder.hs
+formatted       15f5cf01a7d9  aeson-2.3.1.0/src/Data/Aeson/Encoding/Internal.hs
+formatted       750b37e9d1fa  aeson-2.3.1.0/src/Data/Aeson/Internal/ByteString.hs
+formatted       7ff60392d6c3  aeson-2.3.1.0/src/Data/Aeson/Internal/Functions.hs
+formatted       e048ffa25767  aeson-2.3.1.0/src/Data/Aeson/Internal/Prelude.hs
+formatted       57e28222c296  aeson-2.3.1.0/src/Data/Aeson/Internal/Scientific.hs
+formatted       6bb6b5229c29  aeson-2.3.1.0/src/Data/Aeson/Internal/TH.hs
+formatted       b61b87ef28b1  aeson-2.3.1.0/src/Data/Aeson/Internal/Text.hs
+formatted       e83337edc6e6  aeson-2.3.1.0/src/Data/Aeson/Internal/Unescape.hs
+formatted       20257ed727b2  aeson-2.3.1.0/src/Data/Aeson/Internal/UnescapeFromText.hs
+formatted       1052e9d7d311  aeson-2.3.1.0/src/Data/Aeson/Key.hs
+formatted       399d3cc81f76  aeson-2.3.1.0/src/Data/Aeson/KeyMap.hs
+formatted       a8f98f92bb33  aeson-2.3.1.0/src/Data/Aeson/Parser/Time.hs
+formatted       34673c7e3119  aeson-2.3.1.0/src/Data/Aeson/QQ/Simple.hs
+formatted       8c47510bfe90  aeson-2.3.1.0/src/Data/Aeson/RFC8785.hs
+formatted       8e47a331bfb8  aeson-2.3.1.0/src/Data/Aeson/TH.hs
+formatted       12a0132d4a2c  aeson-2.3.1.0/src/Data/Aeson/Text.hs
+formatted       d929af4e0687  aeson-2.3.1.0/src/Data/Aeson/Types.hs
+formatted       e11d9a90b593  aeson-2.3.1.0/src/Data/Aeson/Types/Class.hs
+formatted       fc043ebfc291  aeson-2.3.1.0/src/Data/Aeson/Types/FromJSON.hs
+formatted       af543197c845  aeson-2.3.1.0/src/Data/Aeson/Types/Generic.hs
+formatted       a7b6903cad74  aeson-2.3.1.0/src/Data/Aeson/Types/Internal.hs
+formatted       e372019c3433  aeson-2.3.1.0/src/Data/Aeson/Types/ToJSON.hs
+formatted       1916009e9352  aeson-2.3.1.0/tests/CastFloat.hs
+formatted       bad3a5065737  aeson-2.3.1.0/tests/DataFamilies/Encoders.hs
+formatted       0d864147e795  aeson-2.3.1.0/tests/DataFamilies/Instances.hs
+formatted       91fe7aa4d3dc  aeson-2.3.1.0/tests/DataFamilies/Properties.hs
+formatted       4d002c77704c  aeson-2.3.1.0/tests/DataFamilies/Types.hs
+formatted       07fde92bf8d1  aeson-2.3.1.0/tests/DoubleToScientific.hs
+formatted       659a9357b588  aeson-2.3.1.0/tests/Encoders.hs
+formatted       30150da5a855  aeson-2.3.1.0/tests/ErrorMessages.hs
+formatted       72fb423455c1  aeson-2.3.1.0/tests/Functions.hs
+formatted       45b065b98a94  aeson-2.3.1.0/tests/Instances.hs
+formatted       38b7096d53c4  aeson-2.3.1.0/tests/JSONTestSuite.hs
+formatted       82f27586e194  aeson-2.3.1.0/tests/Options.hs
+formatted       269fd896fd74  aeson-2.3.1.0/tests/PropUtils.hs
+formatted       5c7e1bcf3dd6  aeson-2.3.1.0/tests/Properties.hs
+formatted       7d368ad15e82  aeson-2.3.1.0/tests/PropertyGeneric.hs
+formatted       109d7fb52b5b  aeson-2.3.1.0/tests/PropertyKeys.hs
+formatted       0d9df9d04cba  aeson-2.3.1.0/tests/PropertyQC.hs
+formatted       a2e378d49eb8  aeson-2.3.1.0/tests/PropertyRTFunctors.hs
+formatted       d54279308532  aeson-2.3.1.0/tests/PropertyRoundTrip.hs
+formatted       5c1372b7a444  aeson-2.3.1.0/tests/PropertyTH.hs
+formatted       816e57772780  aeson-2.3.1.0/tests/RFC8785.hs
+formatted       378b97660503  aeson-2.3.1.0/tests/Regression/Issue1138.hs
+formatted       1cfcacdcaf11  aeson-2.3.1.0/tests/Regression/Issue351.hs
+formatted       f000e9c51f1a  aeson-2.3.1.0/tests/Regression/Issue571.hs
+formatted       650ac09bee0a  aeson-2.3.1.0/tests/Regression/Issue687.hs
+formatted       e5c541d1465a  aeson-2.3.1.0/tests/Regression/Issue967.hs
+formatted       f696f5d31388  aeson-2.3.1.0/tests/SerializationFormatSpec.hs
+formatted       8eaa36c16021  aeson-2.3.1.0/tests/Tests.hs
+formatted       c88e88732cfd  aeson-2.3.1.0/tests/Types.hs
+formatted       7731424b43b3  aeson-2.3.1.0/tests/UnitTests.hs
+formatted       f18689008d86  aeson-2.3.1.0/tests/UnitTests/FromJSONKey.hs
+formatted       8fa12a214cda  aeson-2.3.1.0/tests/UnitTests/Hashable.hs
+formatted       2e6e13a2b307  aeson-2.3.1.0/tests/UnitTests/KeyMapInsertWith.hs
+formatted       fc462ed61e50  aeson-2.3.1.0/tests/UnitTests/MonadFix.hs
+formatted       657449faeb93  aeson-2.3.1.0/tests/UnitTests/NoThunks.hs
+formatted       31a111ec64d8  aeson-2.3.1.0/tests/UnitTests/NullaryConstructors.hs
+formatted       91f9a9590048  aeson-2.3.1.0/tests/UnitTests/OmitNothingFieldsNote.hs
+formatted       11d14533f820  aeson-2.3.1.0/tests/UnitTests/OptionalFields.hs
+formatted       699f022c0cb2  aeson-2.3.1.0/tests/UnitTests/OptionalFields/Common.hs
+formatted       d8f208687b90  aeson-2.3.1.0/tests/UnitTests/OptionalFields/Generics.hs
+formatted       0bea65848d96  aeson-2.3.1.0/tests/UnitTests/OptionalFields/Manual.hs
+formatted       4a6ecc95787f  aeson-2.3.1.0/tests/UnitTests/OptionalFields/TH.hs
+formatted       e93203961852  aeson-2.3.1.0/tests/UnitTests/UTCTime.hs
+formatted       e865ae48f11b  ansi-terminal-1.1.5/Setup.hs
+formatted       075adef817c3  ansi-terminal-1.1.5/app/Example.hs
+formatted       5cffc9cf8231  ansi-terminal-1.1.5/src/System/Console/ANSI.hs
+formatted       46d19416edeb  ansi-terminal-1.1.5/unix/System/Console/ANSI/Internal.hs
+formatted       1cc713a3f254  ansi-terminal-1.1.5/win/System/Console/ANSI/Internal.hs
+formatted       1aaa3e2316a9  ansi-terminal-1.1.5/win/System/Console/ANSI/Windows/Foreign.hs
+formatted       e763680dce5b  ansi-terminal-1.1.5/win/System/Console/ANSI/Windows/Win32/Types.hs
+formatted       9e25d9947df5  async-2.2.6/Control/Concurrent/Async.hs
+partly-checked  652d49b16c08  async-2.2.6/Control/Concurrent/Async/Internal.hs
+formatted       68777666410b  async-2.2.6/Control/Concurrent/Async/Warden.hs
+formatted       a0f5a7bd29cb  async-2.2.6/Control/Concurrent/Stream.hs
+formatted       e865ae48f11b  async-2.2.6/Setup.hs
+formatted       7f1489b412a3  async-2.2.6/bench/concasync.hs
+formatted       947eb9e17a7c  async-2.2.6/bench/conccancel.hs
+formatted       6fd907018c80  async-2.2.6/bench/race.hs
+formatted       4db35c37a9a6  async-2.2.6/test/test-async.hs
+formatted       9f3238148609  attoparsec-0.14.4/Data/Attoparsec.hs
+formatted       7d88b33f4399  attoparsec-0.14.4/Data/Attoparsec/ByteString.hs
+formatted       4ba03080e749  attoparsec-0.14.4/Data/Attoparsec/ByteString/Char8.hs
+formatted       0e47afce0362  attoparsec-0.14.4/Data/Attoparsec/ByteString/Internal.hs
+formatted       fcc23ffbbc3d  attoparsec-0.14.4/Data/Attoparsec/ByteString/Lazy.hs
+formatted       220f76f3ce4e  attoparsec-0.14.4/Data/Attoparsec/Char8.hs
+formatted       90be588fbc3a  attoparsec-0.14.4/Data/Attoparsec/Combinator.hs
+formatted       4b9154d41c2a  attoparsec-0.14.4/Data/Attoparsec/Internal.hs
+formatted       dbeb97f732d5  attoparsec-0.14.4/Data/Attoparsec/Internal/Types.hs
+formatted       ea3b710a875e  attoparsec-0.14.4/Data/Attoparsec/Lazy.hs
+formatted       3d8057d5d688  attoparsec-0.14.4/Data/Attoparsec/Number.hs
+formatted       45050bdb0a87  attoparsec-0.14.4/Data/Attoparsec/Text.hs
+formatted       8419b057d5a4  attoparsec-0.14.4/Data/Attoparsec/Text/Internal.hs
+formatted       b1c4021729a8  attoparsec-0.14.4/Data/Attoparsec/Text/Lazy.hs
+formatted       63d322215a87  attoparsec-0.14.4/Data/Attoparsec/Types.hs
+formatted       8ab300fd67b0  attoparsec-0.14.4/Data/Attoparsec/Zepto.hs
+formatted       ce9c3d80e326  attoparsec-0.14.4/benchmarks/Aeson.hs
+formatted       ea48685480e2  attoparsec-0.14.4/benchmarks/Benchmarks.hs
+formatted       c1f15fa8aa6e  attoparsec-0.14.4/benchmarks/Common.hs
+formatted       baa4df75c7d8  attoparsec-0.14.4/benchmarks/Genome.hs
+formatted       3f8483fc03da  attoparsec-0.14.4/benchmarks/HeadersByteString.hs
+formatted       bb42606c4a8a  attoparsec-0.14.4/benchmarks/HeadersByteString/Atto.hs
+formatted       5a57c6aaa740  attoparsec-0.14.4/benchmarks/HeadersText.hs
+formatted       8fa6e462f95f  attoparsec-0.14.4/benchmarks/Links.hs
+formatted       f582abe3e244  attoparsec-0.14.4/benchmarks/Numbers.hs
+formatted       696be472825c  attoparsec-0.14.4/benchmarks/Sets.hs
+formatted       0d64d700acb4  attoparsec-0.14.4/benchmarks/TextFastSet.hs
+formatted       2b16e18cd8c0  attoparsec-0.14.4/benchmarks/Warp.hs
+formatted       0328e73e6175  attoparsec-0.14.4/benchmarks/warp-3.0.1.1/Network/Wai/Handler/Warp/ReadInt.hs
+formatted       1f7d3a417fb5  attoparsec-0.14.4/benchmarks/warp-3.0.1.1/Network/Wai/Handler/Warp/RequestHeader.hs
+formatted       0d3565bef090  attoparsec-0.14.4/examples/Atto_RFC2616.hs
+formatted       b6861e7aadf8  attoparsec-0.14.4/examples/Parsec_RFC2616.hs
+formatted       8cdf131b10ce  attoparsec-0.14.4/examples/RFC2616.hs
+formatted       ef93830525fb  attoparsec-0.14.4/internal/Data/Attoparsec/ByteString/Buffer.hs
+formatted       f351843a1420  attoparsec-0.14.4/internal/Data/Attoparsec/ByteString/FastSet.hs
+formatted       f21e47830b1f  attoparsec-0.14.4/internal/Data/Attoparsec/Internal/Compat.hs
+formatted       4498fcbfa61f  attoparsec-0.14.4/internal/Data/Attoparsec/Internal/Fhthagn.hs
+formatted       bc12b2ada3b5  attoparsec-0.14.4/internal/Data/Attoparsec/Text/Buffer.hs
+formatted       b2e14e3c02d3  attoparsec-0.14.4/internal/Data/Attoparsec/Text/FastSet.hs
+formatted       ccaeb87485db  attoparsec-0.14.4/tests/QC.hs
+formatted       c4481214d6c0  attoparsec-0.14.4/tests/QC/Buffer.hs
+formatted       ae7fa7b38a4b  attoparsec-0.14.4/tests/QC/ByteString.hs
+formatted       455e4866502a  attoparsec-0.14.4/tests/QC/Combinator.hs
+formatted       2bd326ae7162  attoparsec-0.14.4/tests/QC/Common.hs
+formatted       7558d60104bb  attoparsec-0.14.4/tests/QC/IPv6/Internal.hs
+formatted       0692feda416d  attoparsec-0.14.4/tests/QC/IPv6/Types.hs
+formatted       08452f3d9508  attoparsec-0.14.4/tests/QC/Rechunked.hs
+formatted       0bab40e54197  attoparsec-0.14.4/tests/QC/Simple.hs
+formatted       f610227583f7  attoparsec-0.14.4/tests/QC/Text.hs
+formatted       930b366b3b68  attoparsec-0.14.4/tests/QC/Text/FastSet.hs
+formatted       ed6a9f21b67c  attoparsec-0.14.4/tests/QC/Text/Regressions.hs
+formatted       e1ef503cd64b  aws-0.25.3/Aws.hs
+formatted       a3a163b31c63  aws-0.25.3/Aws/Aws.hs
+formatted       316b8d029dee  aws-0.25.3/Aws/Core.hs
+formatted       526f7494fea1  aws-0.25.3/Aws/DynamoDb.hs
+formatted       11c5a36e6111  aws-0.25.3/Aws/DynamoDb/Commands.hs
+formatted       fdedda6a01bc  aws-0.25.3/Aws/DynamoDb/Commands/BatchGetItem.hs
+formatted       284a9d6d25fa  aws-0.25.3/Aws/DynamoDb/Commands/BatchWriteItem.hs
+formatted       37d0f09919b9  aws-0.25.3/Aws/DynamoDb/Commands/DeleteItem.hs
+formatted       6e48f7806e5d  aws-0.25.3/Aws/DynamoDb/Commands/GetItem.hs
+formatted       413574967b43  aws-0.25.3/Aws/DynamoDb/Commands/PutItem.hs
+formatted       706f861f1b54  aws-0.25.3/Aws/DynamoDb/Commands/Query.hs
+formatted       76d3cbe6ea1b  aws-0.25.3/Aws/DynamoDb/Commands/Scan.hs
+formatted       c6547f406402  aws-0.25.3/Aws/DynamoDb/Commands/Table.hs
+formatted       1159130413aa  aws-0.25.3/Aws/DynamoDb/Commands/UpdateItem.hs
+formatted       5527efbba0d1  aws-0.25.3/Aws/DynamoDb/Core.hs
+formatted       7da30757579d  aws-0.25.3/Aws/Ec2/InstanceMetadata.hs
+formatted       64524ea72e53  aws-0.25.3/Aws/Iam.hs
+formatted       749eee8b56a6  aws-0.25.3/Aws/Iam/Commands.hs
+formatted       ad79f5d57197  aws-0.25.3/Aws/Iam/Commands/AddUserToGroup.hs
+formatted       915fd6e3db63  aws-0.25.3/Aws/Iam/Commands/CreateAccessKey.hs
+formatted       bde533108084  aws-0.25.3/Aws/Iam/Commands/CreateGroup.hs
+formatted       71878d688298  aws-0.25.3/Aws/Iam/Commands/CreateUser.hs
+formatted       9e5113cbceb2  aws-0.25.3/Aws/Iam/Commands/DeleteAccessKey.hs
+formatted       69f808dacd5c  aws-0.25.3/Aws/Iam/Commands/DeleteGroup.hs
+formatted       8e3043dbd167  aws-0.25.3/Aws/Iam/Commands/DeleteGroupPolicy.hs
+formatted       7214274b0a75  aws-0.25.3/Aws/Iam/Commands/DeleteUser.hs
+formatted       f49416222f95  aws-0.25.3/Aws/Iam/Commands/DeleteUserPolicy.hs
+formatted       1b4517924917  aws-0.25.3/Aws/Iam/Commands/GetGroupPolicy.hs
+formatted       512be8c8f03d  aws-0.25.3/Aws/Iam/Commands/GetUser.hs
+formatted       52a399c24ce2  aws-0.25.3/Aws/Iam/Commands/GetUserPolicy.hs
+formatted       76b52f1c10e6  aws-0.25.3/Aws/Iam/Commands/ListAccessKeys.hs
+formatted       f147cb58a827  aws-0.25.3/Aws/Iam/Commands/ListGroupPolicies.hs
+formatted       9055a8593cb5  aws-0.25.3/Aws/Iam/Commands/ListGroups.hs
+formatted       d4d566b0d162  aws-0.25.3/Aws/Iam/Commands/ListMfaDevices.hs
+formatted       c2765a268c08  aws-0.25.3/Aws/Iam/Commands/ListUserPolicies.hs
+formatted       81792beec6f5  aws-0.25.3/Aws/Iam/Commands/ListUsers.hs
+formatted       12e4d06eee79  aws-0.25.3/Aws/Iam/Commands/PutGroupPolicy.hs
+formatted       f35205957f88  aws-0.25.3/Aws/Iam/Commands/PutUserPolicy.hs
+formatted       73390f7341bb  aws-0.25.3/Aws/Iam/Commands/RemoveUserFromGroup.hs
+formatted       6471d441fd65  aws-0.25.3/Aws/Iam/Commands/UpdateAccessKey.hs
+formatted       1df52130a26f  aws-0.25.3/Aws/Iam/Commands/UpdateGroup.hs
+formatted       9d554d7c5663  aws-0.25.3/Aws/Iam/Commands/UpdateUser.hs
+formatted       7f6159798a1d  aws-0.25.3/Aws/Iam/Core.hs
+formatted       feab396b426b  aws-0.25.3/Aws/Iam/Internal.hs
+formatted       48b677d290e9  aws-0.25.3/Aws/Network.hs
+formatted       ce77812a32a4  aws-0.25.3/Aws/S3.hs
+formatted       468614525265  aws-0.25.3/Aws/S3/Commands.hs
+formatted       2646f70fe9fa  aws-0.25.3/Aws/S3/Commands/CopyObject.hs
+formatted       5a1be9e435de  aws-0.25.3/Aws/S3/Commands/DeleteBucket.hs
+formatted       b0b859edf946  aws-0.25.3/Aws/S3/Commands/DeleteObject.hs
+formatted       f56508db7ae5  aws-0.25.3/Aws/S3/Commands/DeleteObjectVersion.hs
+formatted       cac44242e0ef  aws-0.25.3/Aws/S3/Commands/DeleteObjects.hs
+formatted       10f682f1d630  aws-0.25.3/Aws/S3/Commands/GetBucket.hs
+formatted       fd9ef9806007  aws-0.25.3/Aws/S3/Commands/GetBucketLocation.hs
+formatted       de0c93616abe  aws-0.25.3/Aws/S3/Commands/GetBucketObjectVersions.hs
+formatted       77560acf62f4  aws-0.25.3/Aws/S3/Commands/GetBucketVersioning.hs
+formatted       09bf54b50d8a  aws-0.25.3/Aws/S3/Commands/GetObject.hs
+formatted       b2f36afa32e0  aws-0.25.3/Aws/S3/Commands/GetService.hs
+formatted       d6ff6d8b8056  aws-0.25.3/Aws/S3/Commands/HeadObject.hs
+formatted       bc19177d1d47  aws-0.25.3/Aws/S3/Commands/Multipart.hs
+formatted       311a84a6ddb3  aws-0.25.3/Aws/S3/Commands/PutBucket.hs
+formatted       2428bf962e66  aws-0.25.3/Aws/S3/Commands/PutBucketVersioning.hs
+formatted       046379db06b2  aws-0.25.3/Aws/S3/Commands/PutObject.hs
+formatted       bc50203fa9d6  aws-0.25.3/Aws/S3/Commands/RestoreObject.hs
+formatted       691e7d45ad83  aws-0.25.3/Aws/S3/Core.hs
+formatted       e59133632c71  aws-0.25.3/Aws/Ses.hs
+formatted       98906d812790  aws-0.25.3/Aws/Ses/Commands.hs
+formatted       d82f6af0c772  aws-0.25.3/Aws/Ses/Commands/DeleteIdentity.hs
+formatted       81e7c8056065  aws-0.25.3/Aws/Ses/Commands/GetIdentityDkimAttributes.hs
+formatted       ea5078ceaf94  aws-0.25.3/Aws/Ses/Commands/GetIdentityNotificationAttributes.hs
+formatted       d96fd6a7f13d  aws-0.25.3/Aws/Ses/Commands/GetIdentityVerificationAttributes.hs
+formatted       3b484cb8347e  aws-0.25.3/Aws/Ses/Commands/ListIdentities.hs
+formatted       147fb92b671d  aws-0.25.3/Aws/Ses/Commands/SendRawEmail.hs
+formatted       c04b0e5d6ba3  aws-0.25.3/Aws/Ses/Commands/SetIdentityDkimEnabled.hs
+formatted       a32e25c2dc37  aws-0.25.3/Aws/Ses/Commands/SetIdentityFeedbackForwardingEnabled.hs
+formatted       b262146aced4  aws-0.25.3/Aws/Ses/Commands/SetIdentityNotificationTopic.hs
+formatted       2ef608635aeb  aws-0.25.3/Aws/Ses/Commands/VerifyDomainDkim.hs
+formatted       ffb19c08b235  aws-0.25.3/Aws/Ses/Commands/VerifyDomainIdentity.hs
+formatted       de43062d4755  aws-0.25.3/Aws/Ses/Commands/VerifyEmailIdentity.hs
+formatted       a8b78f720f02  aws-0.25.3/Aws/Ses/Core.hs
+formatted       4115c76b6f3d  aws-0.25.3/Aws/SimpleDb.hs
+formatted       0b6040677d6d  aws-0.25.3/Aws/SimpleDb/Commands.hs
+formatted       30e4762ca046  aws-0.25.3/Aws/SimpleDb/Commands/Attributes.hs
+formatted       66e68309ec36  aws-0.25.3/Aws/SimpleDb/Commands/Domain.hs
+formatted       d6accda5efc3  aws-0.25.3/Aws/SimpleDb/Commands/Select.hs
+formatted       75d5726cf334  aws-0.25.3/Aws/SimpleDb/Core.hs
+formatted       412e7ea774c8  aws-0.25.3/Aws/Sqs.hs
+formatted       346f822a2760  aws-0.25.3/Aws/Sqs/Commands.hs
+formatted       a5744e9dccb8  aws-0.25.3/Aws/Sqs/Commands/Message.hs
+formatted       cf945609c0a3  aws-0.25.3/Aws/Sqs/Commands/Permission.hs
+formatted       a63871aa35df  aws-0.25.3/Aws/Sqs/Commands/Queue.hs
+formatted       6fbdfbc403cf  aws-0.25.3/Aws/Sqs/Commands/QueueAttributes.hs
+formatted       ffc8850066c4  aws-0.25.3/Aws/Sqs/Core.hs
+formatted       edf61ab9d90d  aws-0.25.3/Examples/DynamoDb.hs
+formatted       aa1fdefebee6  aws-0.25.3/Examples/GetObject.hs
+formatted       6a4e3eea6653  aws-0.25.3/Examples/GetObjectGoogle.hs
+formatted       94c0a4242cce  aws-0.25.3/Examples/GetObjectV4.hs
+formatted       5762e0f1fddf  aws-0.25.3/Examples/MultipartTransfer.hs
+formatted       c09c03a39390  aws-0.25.3/Examples/MultipartUpload.hs
+formatted       f8163e1e4473  aws-0.25.3/Examples/NukeBucket.hs
+formatted       34698069cedb  aws-0.25.3/Examples/PutBucketNearLine.hs
+formatted       9ad36fcdaae7  aws-0.25.3/Examples/SimpleDb.hs
+formatted       c31e8b7adbf5  aws-0.25.3/Examples/Sqs.hs
+formatted       e865ae48f11b  aws-0.25.3/Setup.hs
+formatted       354bb309a68c  aws-0.25.3/tests/DynamoDb/Main.hs
+formatted       75daea597c6a  aws-0.25.3/tests/DynamoDb/Utils.hs
+formatted       5886bbdd46c9  aws-0.25.3/tests/S3/Main.hs
+formatted       44336eea1e26  aws-0.25.3/tests/Sqs/Main.hs
+formatted       001f1d1eb163  aws-0.25.3/tests/Utils.hs
+formatted       b1dc0288cc34  base64-bytestring-1.2.1.0/Data/ByteString/Base64.hs
+formatted       8d1de483b9c4  base64-bytestring-1.2.1.0/Data/ByteString/Base64/Internal.hs
+formatted       dae9abac8bd0  base64-bytestring-1.2.1.0/Data/ByteString/Base64/Lazy.hs
+formatted       3a5cbd3642e2  base64-bytestring-1.2.1.0/Data/ByteString/Base64/URL.hs
+formatted       0d8bf6b77f56  base64-bytestring-1.2.1.0/Data/ByteString/Base64/URL/Lazy.hs
+formatted       e865ae48f11b  base64-bytestring-1.2.1.0/Setup.hs
+formatted       0328dc0c3c7c  base64-bytestring-1.2.1.0/benchmarks/BM.hs
+formatted       e856b328c01f  base64-bytestring-1.2.1.0/tests/Tests.hs
+formatted       d41a83550f57  base64-bytestring-1.2.1.0/utils/Transcode.hs
+formatted       f732441f45ac  bifunctors-5.6.3/src/Data/Biapplicative.hs
+formatted       463448893cde  bifunctors-5.6.3/src/Data/Bifunctor/Biap.hs
+formatted       9705f6a45db6  bifunctors-5.6.3/src/Data/Bifunctor/Biff.hs
+formatted       738f47d063bd  bifunctors-5.6.3/src/Data/Bifunctor/Clown.hs
+formatted       6d43dacbcc13  bifunctors-5.6.3/src/Data/Bifunctor/Fix.hs
+formatted       a1ca106ac715  bifunctors-5.6.3/src/Data/Bifunctor/Flip.hs
+formatted       3ac44f1c96ed  bifunctors-5.6.3/src/Data/Bifunctor/Functor.hs
+formatted       33b8fe550adc  bifunctors-5.6.3/src/Data/Bifunctor/Join.hs
+formatted       bc37198ad9bd  bifunctors-5.6.3/src/Data/Bifunctor/Joker.hs
+formatted       d60de274f1df  bifunctors-5.6.3/src/Data/Bifunctor/Product.hs
+formatted       a4989781f0a5  bifunctors-5.6.3/src/Data/Bifunctor/Sum.hs
+formatted       8ecbbdb05494  bifunctors-5.6.3/src/Data/Bifunctor/TH.hs
+formatted       8a200a94a208  bifunctors-5.6.3/src/Data/Bifunctor/TH/Internal.hs
+formatted       4a12830ba36a  bifunctors-5.6.3/src/Data/Bifunctor/Tannen.hs
+formatted       34520394097f  bifunctors-5.6.3/src/Data/Bifunctor/Wrapped.hs
+formatted       de9492bff0dd  bifunctors-5.6.3/tests/BifunctorSpec.hs
+formatted       2fbd14b119a4  bifunctors-5.6.3/tests/Spec.hs
+formatted       6fd640c12d5f  bifunctors-5.6.3/tests/T89Spec.hs
+formatted       e865ae48f11b  blaze-html-0.9.2.0/Setup.hs
+formatted       59b1e28dc18c  blaze-html-0.9.2.0/src/Text/Blaze/Html.hs
+formatted       1ceaed7998ed  blaze-html-0.9.2.0/src/Text/Blaze/Html/Renderer/Pretty.hs
+formatted       a5a8080ce8a3  blaze-html-0.9.2.0/src/Text/Blaze/Html/Renderer/String.hs
+formatted       850270b61be0  blaze-html-0.9.2.0/src/Text/Blaze/Html/Renderer/Text.hs
+formatted       4dbd824fb533  blaze-html-0.9.2.0/src/Text/Blaze/Html/Renderer/Utf8.hs
+formatted       5e258befef8e  blaze-html-0.9.2.0/src/Text/Blaze/Html4/FrameSet.hs
+formatted       5ab115425aed  blaze-html-0.9.2.0/src/Text/Blaze/Html4/FrameSet/Attributes.hs
+formatted       7517c4bbb05f  blaze-html-0.9.2.0/src/Text/Blaze/Html4/Strict.hs
+formatted       9a73c54deacd  blaze-html-0.9.2.0/src/Text/Blaze/Html4/Strict/Attributes.hs
+formatted       9721ce554a4c  blaze-html-0.9.2.0/src/Text/Blaze/Html4/Transitional.hs
+formatted       75be709205b0  blaze-html-0.9.2.0/src/Text/Blaze/Html4/Transitional/Attributes.hs
+formatted       b2f0979466af  blaze-html-0.9.2.0/src/Text/Blaze/Html5.hs
+formatted       3420ac527327  blaze-html-0.9.2.0/src/Text/Blaze/Html5/Attributes.hs
+formatted       d9f56c685af9  blaze-html-0.9.2.0/src/Text/Blaze/XHtml1/FrameSet.hs
+formatted       09a6f96a1be3  blaze-html-0.9.2.0/src/Text/Blaze/XHtml1/FrameSet/Attributes.hs
+formatted       c7c2fa81d430  blaze-html-0.9.2.0/src/Text/Blaze/XHtml1/Strict.hs
+formatted       086efaea2971  blaze-html-0.9.2.0/src/Text/Blaze/XHtml1/Strict/Attributes.hs
+formatted       2946441f3f2e  blaze-html-0.9.2.0/src/Text/Blaze/XHtml1/Transitional.hs
+formatted       b29187a6e8d9  blaze-html-0.9.2.0/src/Text/Blaze/XHtml1/Transitional/Attributes.hs
+formatted       962f60fb6c39  blaze-html-0.9.2.0/src/Text/Blaze/XHtml5.hs
+formatted       27afcac28ac7  blaze-html-0.9.2.0/src/Text/Blaze/XHtml5/Attributes.hs
+formatted       6a3eeb3e9d8b  blaze-html-0.9.2.0/src/Util/GenerateHtmlCombinators.hs
+formatted       c350d72adcf6  blaze-html-0.9.2.0/src/Util/Sanitize.hs
+formatted       3b0e5b5fbcb0  blaze-html-0.9.2.0/tests/TestSuite.hs
+formatted       e2943235e42d  blaze-html-0.9.2.0/tests/Text/Blaze/Html/Tests.hs
+formatted       9dae0554f33d  blaze-html-0.9.2.0/tests/Text/Blaze/Html/Tests/Util.hs
+formatted       c858d7e158e9  blaze-html-0.9.2.0/tests/Util/Tests.hs
+formatted       e865ae48f11b  blaze-markup-0.8.3.0/Setup.hs
+formatted       ed41f6214fd8  blaze-markup-0.8.3.0/src/Text/Blaze.hs
+formatted       441c6539f94e  blaze-markup-0.8.3.0/src/Text/Blaze/Internal.hs
+formatted       4846f41adc9e  blaze-markup-0.8.3.0/src/Text/Blaze/Renderer/Pretty.hs
+formatted       2e54745ce84a  blaze-markup-0.8.3.0/src/Text/Blaze/Renderer/String.hs
+formatted       8bb5a6b40341  blaze-markup-0.8.3.0/src/Text/Blaze/Renderer/Text.hs
+formatted       0098c6011b82  blaze-markup-0.8.3.0/src/Text/Blaze/Renderer/Utf8.hs
+formatted       c7292f26d075  blaze-markup-0.8.3.0/tests/TestSuite.hs
+formatted       efa997a477e9  blaze-markup-0.8.3.0/tests/Text/Blaze/Tests.hs
+formatted       e6ac9555645c  blaze-markup-0.8.3.0/tests/Text/Blaze/Tests/Util.hs
+formatted       e865ae48f11b  brick-2.13/Setup.hs
+formatted       2eb9ed1b5eff  brick-2.13/programs/AnimationDemo.hs
+formatted       5d807c6bfef9  brick-2.13/programs/AttrDemo.hs
+formatted       efff9829e309  brick-2.13/programs/BorderDemo.hs
+formatted       aef958fe74cd  brick-2.13/programs/CacheDemo.hs
+formatted       095e55ce36f6  brick-2.13/programs/CroppingDemo.hs
+formatted       2bd41626b7f1  brick-2.13/programs/CustomEventDemo.hs
+formatted       74968af52af2  brick-2.13/programs/CustomKeybindingDemo.hs
+formatted       8438ad4ac269  brick-2.13/programs/DialogDemo.hs
+formatted       70a751a6fa70  brick-2.13/programs/DynamicBorderDemo.hs
+formatted       464ea19b0d91  brick-2.13/programs/EditDemo.hs
+formatted       4cce67dc7675  brick-2.13/programs/EditorLineNumbersDemo.hs
+formatted       cb441c25368f  brick-2.13/programs/FileBrowserDemo.hs
+formatted       f42c468e824d  brick-2.13/programs/FillDemo.hs
+formatted       c4c35fd7ec81  brick-2.13/programs/FormDemo.hs
+formatted       ccec85b0d210  brick-2.13/programs/HelloWorldDemo.hs
+formatted       df3c26970095  brick-2.13/programs/LayerDemo.hs
+formatted       f010e64931de  brick-2.13/programs/ListDemo.hs
+formatted       72b3c637e7a9  brick-2.13/programs/ListViDemo.hs
+formatted       79a27a0bcb66  brick-2.13/programs/MouseDemo.hs
+formatted       07bae652c697  brick-2.13/programs/PaddingDemo.hs
+formatted       004a2e91363a  brick-2.13/programs/ProgressBarDemo.hs
+formatted       663c2424c9c5  brick-2.13/programs/ReadmeDemo.hs
+formatted       ae2bca4be4b6  brick-2.13/programs/SuspendAndResumeDemo.hs
+formatted       da922e788566  brick-2.13/programs/TableDemo.hs
+formatted       4475181f29de  brick-2.13/programs/TabularListDemo.hs
+formatted       b7e39f0a8d19  brick-2.13/programs/TailDemo.hs
+formatted       3b76b7057152  brick-2.13/programs/TextWrapDemo.hs
+formatted       4539be6276d5  brick-2.13/programs/ThemeDemo.hs
+formatted       2c64cf0649ba  brick-2.13/programs/ViewportScrollDemo.hs
+formatted       c72281d04a63  brick-2.13/programs/ViewportScrollbarsDemo.hs
+formatted       e2bd645f4c8a  brick-2.13/programs/VisibilityDemo.hs
+formatted       0abc07286e47  brick-2.13/src/Brick.hs
+formatted       4fa9b0a82833  brick-2.13/src/Brick/Animation.hs
+formatted       deb1866c9333  brick-2.13/src/Brick/Animation/Clock.hs
+formatted       91b158ee4b8a  brick-2.13/src/Brick/AttrMap.hs
+formatted       13c109f25eb8  brick-2.13/src/Brick/BChan.hs
+formatted       571007a8c984  brick-2.13/src/Brick/BorderMap.hs
+formatted       7aa4818185b3  brick-2.13/src/Brick/Focus.hs
+formatted       625bef2068d0  brick-2.13/src/Brick/Forms.hs
+formatted       d6c2a2e1b0a0  brick-2.13/src/Brick/Keybindings.hs
+formatted       f2e06c7c9f62  brick-2.13/src/Brick/Keybindings/KeyConfig.hs
+formatted       0d7739277f36  brick-2.13/src/Brick/Keybindings/KeyDispatcher.hs
+formatted       10682f468a33  brick-2.13/src/Brick/Keybindings/KeyEvents.hs
+formatted       20d38a2fef1c  brick-2.13/src/Brick/Keybindings/Normalize.hs
+formatted       422ce68b006b  brick-2.13/src/Brick/Keybindings/Parse.hs
+formatted       500582ecf6a0  brick-2.13/src/Brick/Keybindings/Pretty.hs
+formatted       03d2579eec1e  brick-2.13/src/Brick/Main.hs
+formatted       74d114b85be0  brick-2.13/src/Brick/Themes.hs
+formatted       af2489bd5835  brick-2.13/src/Brick/Types.hs
+formatted       e45b8d9f62c9  brick-2.13/src/Brick/Types/Common.hs
+formatted       6c4a2a56a02a  brick-2.13/src/Brick/Types/EventM.hs
+formatted       680c7fc4c12b  brick-2.13/src/Brick/Types/Internal.hs
+formatted       81c674829568  brick-2.13/src/Brick/Types/TH.hs
+formatted       02b0e53f451c  brick-2.13/src/Brick/Util.hs
+formatted       cba7b18b8f68  brick-2.13/src/Brick/Widgets/Border.hs
+formatted       89894b08f498  brick-2.13/src/Brick/Widgets/Border/Style.hs
+formatted       e3b47970aba1  brick-2.13/src/Brick/Widgets/Center.hs
+formatted       d864d6f5529c  brick-2.13/src/Brick/Widgets/Core.hs
+formatted       2da08c79b932  brick-2.13/src/Brick/Widgets/Dialog.hs
+formatted       c71ef0bf6ec5  brick-2.13/src/Brick/Widgets/Edit.hs
+formatted       b718a3a76032  brick-2.13/src/Brick/Widgets/FileBrowser.hs
+formatted       d879be7d89bd  brick-2.13/src/Brick/Widgets/Internal.hs
+formatted       f35028306876  brick-2.13/src/Brick/Widgets/List.hs
+formatted       45273510047b  brick-2.13/src/Brick/Widgets/ProgressBar.hs
+formatted       891b88a55449  brick-2.13/src/Brick/Widgets/Table.hs
+formatted       4c3f2bfed619  brick-2.13/src/Data/IMap.hs
+formatted       15733bb95234  brick-2.13/tests/List.hs
+formatted       2e6ed8d0e976  brick-2.13/tests/Main.hs
+formatted       073f01c2462e  brick-2.13/tests/Render.hs
+formatted       e0fa5e2b222c  brittany-0.14.0.2/data/Test1.hs
+formatted       a7fed1125f29  brittany-0.14.0.2/data/Test10.hs
+formatted       dd2db552d155  brittany-0.14.0.2/data/Test100.hs
+formatted       3ebccae4d2bf  brittany-0.14.0.2/data/Test101.hs
+formatted       000b618097d0  brittany-0.14.0.2/data/Test102.hs
+formatted       26845ab84f6a  brittany-0.14.0.2/data/Test103.hs
+formatted       25cf4c76ed6b  brittany-0.14.0.2/data/Test104.hs
+formatted       bac120fe0092  brittany-0.14.0.2/data/Test105.hs
+formatted       e29d7ffca93f  brittany-0.14.0.2/data/Test106.hs
+formatted       0b6e06bf2c23  brittany-0.14.0.2/data/Test107.hs
+formatted       eda42fe4d65b  brittany-0.14.0.2/data/Test108.hs
+formatted       9ce1b7bc7832  brittany-0.14.0.2/data/Test109.hs
+formatted       c7d09069af77  brittany-0.14.0.2/data/Test11.hs
+formatted       61661f795457  brittany-0.14.0.2/data/Test110.hs
+formatted       37d78f5961ec  brittany-0.14.0.2/data/Test111.hs
+formatted       1e4bb8275bfb  brittany-0.14.0.2/data/Test112.hs
+formatted       8cda89e87702  brittany-0.14.0.2/data/Test113.hs
+formatted       751bfd56bc69  brittany-0.14.0.2/data/Test114.hs
+formatted       5078888fc5d2  brittany-0.14.0.2/data/Test115.hs
+formatted       3fdf3b074d25  brittany-0.14.0.2/data/Test116.hs
+formatted       15ad0c63e705  brittany-0.14.0.2/data/Test117.hs
+formatted       77f7ec9848cd  brittany-0.14.0.2/data/Test118.hs
+formatted       2a994aca8970  brittany-0.14.0.2/data/Test119.hs
+formatted       624becd3f674  brittany-0.14.0.2/data/Test12.hs
+formatted       5bbfe94a03d4  brittany-0.14.0.2/data/Test120.hs
+formatted       01ac88bcab1a  brittany-0.14.0.2/data/Test121.hs
+formatted       057f0ce3ffb0  brittany-0.14.0.2/data/Test122.hs
+formatted       661f6da49632  brittany-0.14.0.2/data/Test123.hs
+formatted       fb20151cec71  brittany-0.14.0.2/data/Test124.hs
+formatted       dd6fcdfeb27c  brittany-0.14.0.2/data/Test125.hs
+formatted       1b2ef1cfadaa  brittany-0.14.0.2/data/Test126.hs
+formatted       ba626fdd4fa3  brittany-0.14.0.2/data/Test127.hs
+formatted       bec0f8aa554d  brittany-0.14.0.2/data/Test128.hs
+formatted       f712d9c961eb  brittany-0.14.0.2/data/Test129.hs
+formatted       79735ec00a3d  brittany-0.14.0.2/data/Test13.hs
+formatted       f808d5477ba7  brittany-0.14.0.2/data/Test130.hs
+formatted       2372bf2e1670  brittany-0.14.0.2/data/Test131.hs
+formatted       c6526aabb3c3  brittany-0.14.0.2/data/Test132.hs
+formatted       5287afc100b5  brittany-0.14.0.2/data/Test133.hs
+formatted       cbf28cc3de46  brittany-0.14.0.2/data/Test134.hs
+formatted       e9f15a2df4fd  brittany-0.14.0.2/data/Test135.hs
+formatted       d40ccadec39d  brittany-0.14.0.2/data/Test136.hs
+formatted       e8b4564e3bfa  brittany-0.14.0.2/data/Test137.hs
+formatted       ddbd7b880898  brittany-0.14.0.2/data/Test138.hs
+formatted       4ce9b0b36ac2  brittany-0.14.0.2/data/Test139.hs
+formatted       bb31ea72e15c  brittany-0.14.0.2/data/Test14.hs
+formatted       f04daeaa79e9  brittany-0.14.0.2/data/Test140.hs
+formatted       3f2c0367c6f9  brittany-0.14.0.2/data/Test141.hs
+formatted       edb875329172  brittany-0.14.0.2/data/Test142.hs
+formatted       fa53ce7f455d  brittany-0.14.0.2/data/Test143.hs
+formatted       1c5e166b5b3c  brittany-0.14.0.2/data/Test144.hs
+formatted       412dc562e63e  brittany-0.14.0.2/data/Test145.hs
+formatted       6594ac0ac89d  brittany-0.14.0.2/data/Test146.hs
+formatted       0132945dc887  brittany-0.14.0.2/data/Test147.hs
+formatted       0277bb5ca795  brittany-0.14.0.2/data/Test148.hs
+formatted       cbbb9e8ddafa  brittany-0.14.0.2/data/Test149.hs
+formatted       9db344b52a25  brittany-0.14.0.2/data/Test15.hs
+formatted       d29a46b01b30  brittany-0.14.0.2/data/Test150.hs
+formatted       d4d803460298  brittany-0.14.0.2/data/Test151.hs
+formatted       a36d7b2912f5  brittany-0.14.0.2/data/Test152.hs
+formatted       ea0b611491be  brittany-0.14.0.2/data/Test153.hs
+formatted       6607ab7d8924  brittany-0.14.0.2/data/Test154.hs
+formatted       66cbd556135d  brittany-0.14.0.2/data/Test155.hs
+formatted       129e56afdeb6  brittany-0.14.0.2/data/Test156.hs
+formatted       57f3fe7514c4  brittany-0.14.0.2/data/Test157.hs
+formatted       46b61e3c8952  brittany-0.14.0.2/data/Test158.hs
+formatted       d8fde995e15b  brittany-0.14.0.2/data/Test159.hs
+formatted       b65a3702395c  brittany-0.14.0.2/data/Test16.hs
+formatted       424434aeac60  brittany-0.14.0.2/data/Test160.hs
+formatted       756b8d709d75  brittany-0.14.0.2/data/Test161.hs
+formatted       fb931ccfd1e4  brittany-0.14.0.2/data/Test162.hs
+formatted       85db961eab6d  brittany-0.14.0.2/data/Test163.hs
+formatted       7c1bca51eb76  brittany-0.14.0.2/data/Test164.hs
+formatted       1d7b340799de  brittany-0.14.0.2/data/Test165.hs
+formatted       660e2a8d17c4  brittany-0.14.0.2/data/Test166.hs
+formatted       9034e094d375  brittany-0.14.0.2/data/Test167.hs
+formatted       d8056c8b2928  brittany-0.14.0.2/data/Test168.hs
+formatted       cd8fce2bda23  brittany-0.14.0.2/data/Test169.hs
+formatted       bce8e4d3c9ba  brittany-0.14.0.2/data/Test17.hs
+formatted       b9c1ba677274  brittany-0.14.0.2/data/Test170.hs
+formatted       0e3393c84d9e  brittany-0.14.0.2/data/Test171.hs
+formatted       afe61a6d3b7e  brittany-0.14.0.2/data/Test172.hs
+formatted       c651a0d78d61  brittany-0.14.0.2/data/Test173.hs
+formatted       893e9047ccc9  brittany-0.14.0.2/data/Test174.hs
+formatted       44a807f3c420  brittany-0.14.0.2/data/Test175.hs
+formatted       ceb23c285e78  brittany-0.14.0.2/data/Test176.hs
+formatted       2cc15cb26130  brittany-0.14.0.2/data/Test177.hs
+formatted       47771349ee44  brittany-0.14.0.2/data/Test178.hs
+formatted       fe3c3245408d  brittany-0.14.0.2/data/Test179.hs
+formatted       674dab4fdbcb  brittany-0.14.0.2/data/Test18.hs
+formatted       c68cfb31f575  brittany-0.14.0.2/data/Test180.hs
+formatted       e6325e11af38  brittany-0.14.0.2/data/Test181.hs
+formatted       42d9bc7fc2ce  brittany-0.14.0.2/data/Test182.hs
+formatted       a1e86d78ee32  brittany-0.14.0.2/data/Test183.hs
+formatted       88ddfc17a44e  brittany-0.14.0.2/data/Test184.hs
+formatted       f6c7f8ad0585  brittany-0.14.0.2/data/Test185.hs
+formatted       5016aa65eeae  brittany-0.14.0.2/data/Test186.hs
+formatted       1f6812c3d99f  brittany-0.14.0.2/data/Test187.hs
+formatted       a063a95ec0b5  brittany-0.14.0.2/data/Test188.hs
+formatted       67c40f7b42e6  brittany-0.14.0.2/data/Test189.hs
+formatted       1b68494e9013  brittany-0.14.0.2/data/Test19.hs
+formatted       96f1ef06a2f4  brittany-0.14.0.2/data/Test190.hs
+formatted       a063a95ec0b5  brittany-0.14.0.2/data/Test191.hs
+formatted       dc32174d8f9d  brittany-0.14.0.2/data/Test192.hs
+formatted       b35395abfd05  brittany-0.14.0.2/data/Test193.hs
+formatted       4d5ddfd8aaab  brittany-0.14.0.2/data/Test194.hs
+formatted       8bb98e83f59e  brittany-0.14.0.2/data/Test195.hs
+formatted       45232601b2c3  brittany-0.14.0.2/data/Test196.hs
+formatted       bdc233fea9ba  brittany-0.14.0.2/data/Test197.hs
+formatted       9ce65738e093  brittany-0.14.0.2/data/Test198.hs
+formatted       eec0cab9f980  brittany-0.14.0.2/data/Test199.hs
+formatted       31b2046f8a67  brittany-0.14.0.2/data/Test2.hs
+formatted       a7a0e1c03060  brittany-0.14.0.2/data/Test20.hs
+formatted       d2a7653b9ba4  brittany-0.14.0.2/data/Test200.hs
+formatted       585cd696f310  brittany-0.14.0.2/data/Test201.hs
+formatted       8bba3630cd88  brittany-0.14.0.2/data/Test202.hs
+formatted       bad4c6d83d4f  brittany-0.14.0.2/data/Test203.hs
+formatted       4ce40055a31c  brittany-0.14.0.2/data/Test204.hs
+formatted       be6b7a8883f5  brittany-0.14.0.2/data/Test205.hs
+formatted       8e7d7929e338  brittany-0.14.0.2/data/Test206.hs
+formatted       3e6a91618060  brittany-0.14.0.2/data/Test207.hs
+formatted       59f9efb3349d  brittany-0.14.0.2/data/Test208.hs
+formatted       79081f0fe37d  brittany-0.14.0.2/data/Test209.hs
+formatted       b383b15d82f0  brittany-0.14.0.2/data/Test21.hs
+formatted       4f8c82f9b51b  brittany-0.14.0.2/data/Test210.hs
+formatted       210d2b918c18  brittany-0.14.0.2/data/Test211.hs
+formatted       d8fb0486ae8c  brittany-0.14.0.2/data/Test212.hs
+formatted       e75e1dd08970  brittany-0.14.0.2/data/Test213.hs
+formatted       43a86c48e3e0  brittany-0.14.0.2/data/Test214.hs
+formatted       ccd8170ddd1c  brittany-0.14.0.2/data/Test215.hs
+formatted       d9d08f97d6ce  brittany-0.14.0.2/data/Test216.hs
+formatted       ee242f311cec  brittany-0.14.0.2/data/Test217.hs
+formatted       2c1a4f8388c7  brittany-0.14.0.2/data/Test218.hs
+formatted       77521cf0255b  brittany-0.14.0.2/data/Test219.hs
+formatted       df6920225c3e  brittany-0.14.0.2/data/Test22.hs
+formatted       6912b515f3d4  brittany-0.14.0.2/data/Test220.hs
+formatted       7e87f164cb90  brittany-0.14.0.2/data/Test221.hs
+formatted       d7e0783e5c83  brittany-0.14.0.2/data/Test222.hs
+formatted       ac59786a0059  brittany-0.14.0.2/data/Test223.hs
+formatted       f4b2c131b776  brittany-0.14.0.2/data/Test224.hs
+formatted       fc2a39383602  brittany-0.14.0.2/data/Test225.hs
+formatted       0a2523228f93  brittany-0.14.0.2/data/Test226.hs
+formatted       228fee2942c2  brittany-0.14.0.2/data/Test227.hs
+formatted       911d30954d07  brittany-0.14.0.2/data/Test228.hs
+formatted       2f660f4ac662  brittany-0.14.0.2/data/Test229.hs
+formatted       fbc349a18ac2  brittany-0.14.0.2/data/Test23.hs
+formatted       a7a3d4cdb042  brittany-0.14.0.2/data/Test230.hs
+formatted       8213e25c0010  brittany-0.14.0.2/data/Test231.hs
+formatted       cf2c7ac7b851  brittany-0.14.0.2/data/Test232.hs
+formatted       60e66feea926  brittany-0.14.0.2/data/Test233.hs
+formatted       b6113299b5da  brittany-0.14.0.2/data/Test234.hs
+formatted       661c1fe894fb  brittany-0.14.0.2/data/Test235.hs
+formatted       57f09569ac82  brittany-0.14.0.2/data/Test236.hs
+formatted       0dfd55915ad3  brittany-0.14.0.2/data/Test237.hs
+formatted       4bc18bfc8664  brittany-0.14.0.2/data/Test238.hs
+formatted       f1066c5f9396  brittany-0.14.0.2/data/Test239.hs
+formatted       d0c0b62e11ea  brittany-0.14.0.2/data/Test24.hs
+formatted       a51ff778ca0c  brittany-0.14.0.2/data/Test240.hs
+formatted       6f66ff6e7884  brittany-0.14.0.2/data/Test241.hs
+formatted       7526d4749124  brittany-0.14.0.2/data/Test242.hs
+formatted       d600bfded86f  brittany-0.14.0.2/data/Test243.hs
+formatted       19618fd51fab  brittany-0.14.0.2/data/Test244.hs
+formatted       03cd50abedcb  brittany-0.14.0.2/data/Test245.hs
+formatted       676a58886eb0  brittany-0.14.0.2/data/Test246.hs
+formatted       86d72bb559bc  brittany-0.14.0.2/data/Test247.hs
+formatted       15d8e562989b  brittany-0.14.0.2/data/Test248.hs
+formatted       95a821921e97  brittany-0.14.0.2/data/Test249.hs
+formatted       372e384be5d9  brittany-0.14.0.2/data/Test25.hs
+formatted       c8b79c319e1b  brittany-0.14.0.2/data/Test250.hs
+formatted       9e983a1c88d0  brittany-0.14.0.2/data/Test251.hs
+formatted       e25fa77a311d  brittany-0.14.0.2/data/Test252.hs
+formatted       2abc462210d7  brittany-0.14.0.2/data/Test253.hs
+formatted       3dab93bb6c11  brittany-0.14.0.2/data/Test254.hs
+formatted       ded4f913ac25  brittany-0.14.0.2/data/Test255.hs
+formatted       7072c13a95c7  brittany-0.14.0.2/data/Test256.hs
+formatted       f79f249e0890  brittany-0.14.0.2/data/Test257.hs
+formatted       a9cbb8a905a0  brittany-0.14.0.2/data/Test258.hs
+formatted       7c0c18756066  brittany-0.14.0.2/data/Test259.hs
+formatted       a9993e322f84  brittany-0.14.0.2/data/Test26.hs
+formatted       bd4ad74e5ad1  brittany-0.14.0.2/data/Test260.hs
+formatted       40147eb0ec0f  brittany-0.14.0.2/data/Test261.hs
+formatted       3821b5d35161  brittany-0.14.0.2/data/Test262.hs
+formatted       fd9a1453387e  brittany-0.14.0.2/data/Test263.hs
+formatted       b7281c5fb795  brittany-0.14.0.2/data/Test264.hs
+formatted       d815db72d171  brittany-0.14.0.2/data/Test265.hs
+formatted       e1e74708d396  brittany-0.14.0.2/data/Test266.hs
+formatted       7a35a02bb934  brittany-0.14.0.2/data/Test267.hs
+formatted       0ca543b36b5d  brittany-0.14.0.2/data/Test268.hs
+formatted       93850bc1adc9  brittany-0.14.0.2/data/Test269.hs
+formatted       b82004f9b520  brittany-0.14.0.2/data/Test27.hs
+formatted       0465690dd788  brittany-0.14.0.2/data/Test270.hs
+formatted       8da0ed8508b1  brittany-0.14.0.2/data/Test271.hs
+formatted       059cb60e3ffb  brittany-0.14.0.2/data/Test272.hs
+formatted       ce7c5a9f7346  brittany-0.14.0.2/data/Test273.hs
+formatted       cf3d3b9f17a4  brittany-0.14.0.2/data/Test274.hs
+formatted       af0ca8a4b396  brittany-0.14.0.2/data/Test275.hs
+formatted       f54d68eb932d  brittany-0.14.0.2/data/Test276.hs
+formatted       5280a70aa08d  brittany-0.14.0.2/data/Test277.hs
+formatted       42b39ee183e6  brittany-0.14.0.2/data/Test278.hs
+formatted       9a6ca39add52  brittany-0.14.0.2/data/Test279.hs
+formatted       35c64cf444f0  brittany-0.14.0.2/data/Test28.hs
+formatted       2c62cf845c15  brittany-0.14.0.2/data/Test280.hs
+formatted       6582acde6803  brittany-0.14.0.2/data/Test281.hs
+formatted       d69c5a291173  brittany-0.14.0.2/data/Test282.hs
+formatted       dad1fa89cc7b  brittany-0.14.0.2/data/Test283.hs
+formatted       61ba8c0a1014  brittany-0.14.0.2/data/Test284.hs
+formatted       dc5e12a45407  brittany-0.14.0.2/data/Test285.hs
+formatted       dc5e12a45407  brittany-0.14.0.2/data/Test286.hs
+formatted       e73001f7bfd5  brittany-0.14.0.2/data/Test287.hs
+formatted       3fdaf4d18a7c  brittany-0.14.0.2/data/Test288.hs
+formatted       8472b4d5d119  brittany-0.14.0.2/data/Test289.hs
+formatted       4b4297a0f4c5  brittany-0.14.0.2/data/Test29.hs
+formatted       af881940fba6  brittany-0.14.0.2/data/Test290.hs
+formatted       6b8b53cb8029  brittany-0.14.0.2/data/Test291.hs
+formatted       afd400f5f5ca  brittany-0.14.0.2/data/Test292.hs
+formatted       dbd53f969525  brittany-0.14.0.2/data/Test293.hs
+formatted       8e4e40c43066  brittany-0.14.0.2/data/Test294.hs
+formatted       5378d8225be8  brittany-0.14.0.2/data/Test295.hs
+formatted       efa089fba7ce  brittany-0.14.0.2/data/Test296.hs
+formatted       f2528253489c  brittany-0.14.0.2/data/Test297.hs
+formatted       a71313de7a74  brittany-0.14.0.2/data/Test298.hs
+formatted       9c7a3513d329  brittany-0.14.0.2/data/Test299.hs
+formatted       e430aa9e3dac  brittany-0.14.0.2/data/Test3.hs
+formatted       b786e0a045c4  brittany-0.14.0.2/data/Test30.hs
+formatted       82411c11ab17  brittany-0.14.0.2/data/Test300.hs
+formatted       6578a96b238b  brittany-0.14.0.2/data/Test301.hs
+formatted       8cee95f91f47  brittany-0.14.0.2/data/Test302.hs
+formatted       01d16f13bc99  brittany-0.14.0.2/data/Test303.hs
+formatted       2f37bef49ce1  brittany-0.14.0.2/data/Test304.hs
+formatted       9d3e8b7bf639  brittany-0.14.0.2/data/Test305.hs
+formatted       20c63b9ecba6  brittany-0.14.0.2/data/Test306.hs
+formatted       348106878578  brittany-0.14.0.2/data/Test307.hs
+formatted       017f020a856d  brittany-0.14.0.2/data/Test308.hs
+formatted       980708cbb4c4  brittany-0.14.0.2/data/Test309.hs
+formatted       b7f73c7d2a34  brittany-0.14.0.2/data/Test31.hs
+formatted       3c2cc10d169b  brittany-0.14.0.2/data/Test310.hs
+formatted       66fcc75686ea  brittany-0.14.0.2/data/Test311.hs
+formatted       611a32da9261  brittany-0.14.0.2/data/Test312.hs
+formatted       e63f0b07266f  brittany-0.14.0.2/data/Test313.hs
+formatted       1801f39045ac  brittany-0.14.0.2/data/Test314.hs
+formatted       3e5aa0cbbf8d  brittany-0.14.0.2/data/Test315.hs
+formatted       77220193f4fd  brittany-0.14.0.2/data/Test316.hs
+formatted       681c70c26bdd  brittany-0.14.0.2/data/Test317.hs
+formatted       c9b19f55338f  brittany-0.14.0.2/data/Test318.hs
+formatted       fa83330d01a6  brittany-0.14.0.2/data/Test319.hs
+formatted       310b7bac3014  brittany-0.14.0.2/data/Test32.hs
+formatted       d911bbdfeb7f  brittany-0.14.0.2/data/Test320.hs
+formatted       1275e28eeb82  brittany-0.14.0.2/data/Test321.hs
+formatted       d51414b5c108  brittany-0.14.0.2/data/Test322.hs
+formatted       e318ac8aa564  brittany-0.14.0.2/data/Test323.hs
+formatted       f018e148e8d5  brittany-0.14.0.2/data/Test324.hs
+formatted       1d0af944da7b  brittany-0.14.0.2/data/Test325.hs
+formatted       5798a680c21f  brittany-0.14.0.2/data/Test326.hs
+formatted       023057e5ea2c  brittany-0.14.0.2/data/Test327.hs
+formatted       2341d88441d5  brittany-0.14.0.2/data/Test328.hs
+formatted       947d63282515  brittany-0.14.0.2/data/Test329.hs
+formatted       786cf111bdad  brittany-0.14.0.2/data/Test33.hs
+formatted       9dd64349f3ea  brittany-0.14.0.2/data/Test330.hs
+formatted       15292e5353c7  brittany-0.14.0.2/data/Test331.hs
+formatted       909ea0b219f8  brittany-0.14.0.2/data/Test332.hs
+formatted       2ad0ebe6ebb0  brittany-0.14.0.2/data/Test333.hs
+formatted       9b7204f946d7  brittany-0.14.0.2/data/Test334.hs
+formatted       10c6d64e6811  brittany-0.14.0.2/data/Test335.hs
+formatted       b2addef5d712  brittany-0.14.0.2/data/Test336.hs
+formatted       571c3cac2376  brittany-0.14.0.2/data/Test337.hs
+formatted       7ab714dc2fd3  brittany-0.14.0.2/data/Test338.hs
+formatted       0b6993151fe2  brittany-0.14.0.2/data/Test339.hs
+formatted       7056ebf6bcea  brittany-0.14.0.2/data/Test34.hs
+formatted       aed8c9d9f03b  brittany-0.14.0.2/data/Test340.hs
+formatted       c93ad9724528  brittany-0.14.0.2/data/Test341.hs
+formatted       1a162378043c  brittany-0.14.0.2/data/Test342.hs
+formatted       237c79a35514  brittany-0.14.0.2/data/Test343.hs
+formatted       5af677fa0a9b  brittany-0.14.0.2/data/Test344.hs
+formatted       abe1b659b346  brittany-0.14.0.2/data/Test345.hs
+formatted       3c1f80fba7f5  brittany-0.14.0.2/data/Test346.hs
+formatted       7f12720f2600  brittany-0.14.0.2/data/Test347.hs
+formatted       264cc0e7cf96  brittany-0.14.0.2/data/Test348.hs
+formatted       03a3efa0a75e  brittany-0.14.0.2/data/Test349.hs
+formatted       b7f73c7d2a34  brittany-0.14.0.2/data/Test35.hs
+formatted       726069a13358  brittany-0.14.0.2/data/Test350.hs
+formatted       a50f8646bfb1  brittany-0.14.0.2/data/Test351.hs
+formatted       849dab5ec39d  brittany-0.14.0.2/data/Test352.hs
+formatted       baedf91b8ccd  brittany-0.14.0.2/data/Test353.hs
+formatted       fcae903dc453  brittany-0.14.0.2/data/Test354.hs
+formatted       2637fe2659d5  brittany-0.14.0.2/data/Test355.hs
+formatted       65798192c40d  brittany-0.14.0.2/data/Test356.hs
+formatted       2cdb94cbf551  brittany-0.14.0.2/data/Test357.hs
+formatted       501e5f69073e  brittany-0.14.0.2/data/Test358.hs
+formatted       86bec0344083  brittany-0.14.0.2/data/Test359.hs
+formatted       987603d032ac  brittany-0.14.0.2/data/Test36.hs
+formatted       15308dc2dd01  brittany-0.14.0.2/data/Test360.hs
+formatted       0b2ad491920b  brittany-0.14.0.2/data/Test361.hs
+formatted       d9da88c7cdef  brittany-0.14.0.2/data/Test362.hs
+formatted       d9831cd6816b  brittany-0.14.0.2/data/Test363.hs
+formatted       1ae4a98bcc4a  brittany-0.14.0.2/data/Test364.hs
+formatted       ce4109a16e55  brittany-0.14.0.2/data/Test365.hs
+formatted       d16eae4aad20  brittany-0.14.0.2/data/Test366.hs
+formatted       b07954dfc9bf  brittany-0.14.0.2/data/Test367.hs
+formatted       45eeef287ee4  brittany-0.14.0.2/data/Test368.hs
+formatted       e61e587a6843  brittany-0.14.0.2/data/Test369.hs
+formatted       f500b3d5f559  brittany-0.14.0.2/data/Test37.hs
+formatted       08718fefbaf6  brittany-0.14.0.2/data/Test370.hs
+formatted       2fc71603e098  brittany-0.14.0.2/data/Test371.hs
+formatted       34177b9d84e3  brittany-0.14.0.2/data/Test372.hs
+formatted       5fa71c232724  brittany-0.14.0.2/data/Test373.hs
+formatted       f5fca966196b  brittany-0.14.0.2/data/Test374.hs
+formatted       a4d64bf7587b  brittany-0.14.0.2/data/Test375.hs
+formatted       14e2ed1f0f63  brittany-0.14.0.2/data/Test376.hs
+formatted       f5a4e0c1e34f  brittany-0.14.0.2/data/Test377.hs
+formatted       bddefc49765b  brittany-0.14.0.2/data/Test378.hs
+formatted       ea19c516bcbf  brittany-0.14.0.2/data/Test379.hs
+formatted       7335e7ca5bd3  brittany-0.14.0.2/data/Test38.hs
+formatted       d2ee555751f5  brittany-0.14.0.2/data/Test380.hs
+formatted       3823e3c2d919  brittany-0.14.0.2/data/Test381.hs
+formatted       80271da1e835  brittany-0.14.0.2/data/Test382.hs
+formatted       ed5f4e8c4709  brittany-0.14.0.2/data/Test383.hs
+formatted       d4963535df46  brittany-0.14.0.2/data/Test384.hs
+formatted       6ced47de66db  brittany-0.14.0.2/data/Test385.hs
+formatted       1570d72029b7  brittany-0.14.0.2/data/Test386.hs
+formatted       1416aa178cdb  brittany-0.14.0.2/data/Test387.hs
+formatted       edfafa8fb3e5  brittany-0.14.0.2/data/Test388.hs
+formatted       4e122b4b2697  brittany-0.14.0.2/data/Test389.hs
+formatted       6c58063d3fab  brittany-0.14.0.2/data/Test39.hs
+formatted       fac1b1c7f0c1  brittany-0.14.0.2/data/Test390.hs
+formatted       edfafa8fb3e5  brittany-0.14.0.2/data/Test391.hs
+formatted       b0d3ee7240ad  brittany-0.14.0.2/data/Test392.hs
+formatted       3742d5df31d3  brittany-0.14.0.2/data/Test393.hs
+formatted       28dd7a32aa13  brittany-0.14.0.2/data/Test394.hs
+formatted       91de5c22d799  brittany-0.14.0.2/data/Test395.hs
+formatted       15521d568177  brittany-0.14.0.2/data/Test396.hs
+formatted       bc632756e066  brittany-0.14.0.2/data/Test397.hs
+formatted       fc2de0dfca48  brittany-0.14.0.2/data/Test398.hs
+formatted       8294327ebf8b  brittany-0.14.0.2/data/Test399.hs
+formatted       c3cdd2cbcecc  brittany-0.14.0.2/data/Test4.hs
+formatted       c8a00284c5f4  brittany-0.14.0.2/data/Test40.hs
+formatted       e55074dcd689  brittany-0.14.0.2/data/Test400.hs
+formatted       4da9e5870180  brittany-0.14.0.2/data/Test401.hs
+formatted       74396290a673  brittany-0.14.0.2/data/Test402.hs
+formatted       d2fafd899e89  brittany-0.14.0.2/data/Test403.hs
+formatted       dede30d772d6  brittany-0.14.0.2/data/Test404.hs
+formatted       899e8af490d3  brittany-0.14.0.2/data/Test405.hs
+formatted       6a318c357310  brittany-0.14.0.2/data/Test406.hs
+formatted       183f062112e1  brittany-0.14.0.2/data/Test407.hs
+formatted       55c58dc8cf59  brittany-0.14.0.2/data/Test408.hs
+formatted       a04dc9525882  brittany-0.14.0.2/data/Test409.hs
+formatted       cdc2db1c8449  brittany-0.14.0.2/data/Test41.hs
+formatted       a59bda637fa1  brittany-0.14.0.2/data/Test410.hs
+formatted       c65e5f1f3ba5  brittany-0.14.0.2/data/Test411.hs
+formatted       462efbd02872  brittany-0.14.0.2/data/Test412.hs
+formatted       4fc4ab30dcc3  brittany-0.14.0.2/data/Test413.hs
+formatted       d9eab58246aa  brittany-0.14.0.2/data/Test414.hs
+formatted       3d11263d426e  brittany-0.14.0.2/data/Test415.hs
+formatted       dbbe7b5f2b24  brittany-0.14.0.2/data/Test416.hs
+formatted       099959230be5  brittany-0.14.0.2/data/Test417.hs
+formatted       056c3c85e1ce  brittany-0.14.0.2/data/Test418.hs
+formatted       bd3660de0717  brittany-0.14.0.2/data/Test419.hs
+formatted       e3f087db5440  brittany-0.14.0.2/data/Test42.hs
+formatted       821fd8910ac5  brittany-0.14.0.2/data/Test420.hs
+formatted       d9b47c23fec6  brittany-0.14.0.2/data/Test421.hs
+formatted       15fe8b3f5a9e  brittany-0.14.0.2/data/Test422.hs
+formatted       cafda87f90a6  brittany-0.14.0.2/data/Test423.hs
+formatted       7fa298da41f9  brittany-0.14.0.2/data/Test424.hs
+formatted       acddf7b49624  brittany-0.14.0.2/data/Test425.hs
+formatted       84cfb756f2f4  brittany-0.14.0.2/data/Test426.hs
+formatted       33c641a7a072  brittany-0.14.0.2/data/Test427.hs
+formatted       19772ef1090c  brittany-0.14.0.2/data/Test428.hs
+formatted       07a30e1c142f  brittany-0.14.0.2/data/Test429.hs
+formatted       6aa1c5a0086b  brittany-0.14.0.2/data/Test43.hs
+formatted       f5d76f5634f5  brittany-0.14.0.2/data/Test430.hs
+formatted       9aae587a1706  brittany-0.14.0.2/data/Test431.hs
+formatted       cab5eb48ea87  brittany-0.14.0.2/data/Test432.hs
+formatted       035c19e15e23  brittany-0.14.0.2/data/Test433.hs
+formatted       54c8c833912d  brittany-0.14.0.2/data/Test434.hs
+formatted       4b85517ecc64  brittany-0.14.0.2/data/Test435.hs
+formatted       ab4c449d67c6  brittany-0.14.0.2/data/Test436.hs
+formatted       9e0a9c4de4a7  brittany-0.14.0.2/data/Test437.hs
+formatted       22f3bbfaab9e  brittany-0.14.0.2/data/Test438.hs
+formatted       27ee3c3a9f1d  brittany-0.14.0.2/data/Test439.hs
+formatted       2369814e00a3  brittany-0.14.0.2/data/Test44.hs
+formatted       f114f80afa88  brittany-0.14.0.2/data/Test440.hs
+formatted       91959f72bf42  brittany-0.14.0.2/data/Test441.hs
+formatted       e100c133e0a6  brittany-0.14.0.2/data/Test442.hs
+formatted       a447fa310286  brittany-0.14.0.2/data/Test443.hs
+formatted       afb74691ba25  brittany-0.14.0.2/data/Test444.hs
+formatted       b04dcb13770d  brittany-0.14.0.2/data/Test445.hs
+formatted       005984004c81  brittany-0.14.0.2/data/Test446.hs
+formatted       519cfd48a90e  brittany-0.14.0.2/data/Test447.hs
+formatted       245fb4545054  brittany-0.14.0.2/data/Test448.hs
+formatted       036f126597a1  brittany-0.14.0.2/data/Test449.hs
+formatted       914e8892ce9f  brittany-0.14.0.2/data/Test45.hs
+formatted       dfae62440755  brittany-0.14.0.2/data/Test450.hs
+formatted       3d8e022d4ea8  brittany-0.14.0.2/data/Test451.hs
+formatted       204a8f956d01  brittany-0.14.0.2/data/Test452.hs
+formatted       3ae152eef9f8  brittany-0.14.0.2/data/Test453.hs
+formatted       dd5c2ba000d9  brittany-0.14.0.2/data/Test454.hs
+formatted       255bf40fcf81  brittany-0.14.0.2/data/Test455.hs
+formatted       186aedf45b55  brittany-0.14.0.2/data/Test456.hs
+formatted       00342a85f4ce  brittany-0.14.0.2/data/Test457.hs
+formatted       4d9ccb4d6155  brittany-0.14.0.2/data/Test458.hs
+formatted       33f453ac627f  brittany-0.14.0.2/data/Test459.hs
+formatted       65a9efd49258  brittany-0.14.0.2/data/Test46.hs
+formatted       dbfa4f771264  brittany-0.14.0.2/data/Test460.hs
+formatted       75bf53838e5c  brittany-0.14.0.2/data/Test461.hs
+formatted       5fde28db6063  brittany-0.14.0.2/data/Test462.hs
+formatted       ff5bcd3737f2  brittany-0.14.0.2/data/Test463.hs
+formatted       e30c0ff394dd  brittany-0.14.0.2/data/Test464.hs
+formatted       82f7c7fb716e  brittany-0.14.0.2/data/Test465.hs
+formatted       f59579bd97ca  brittany-0.14.0.2/data/Test466.hs
+formatted       5909971846f9  brittany-0.14.0.2/data/Test467.hs
+formatted       fe8bf0d3f053  brittany-0.14.0.2/data/Test468.hs
+formatted       79dd70b7320f  brittany-0.14.0.2/data/Test469.hs
+formatted       1983a10a25f3  brittany-0.14.0.2/data/Test47.hs
+formatted       271132ce279b  brittany-0.14.0.2/data/Test470.hs
+formatted       14a056182567  brittany-0.14.0.2/data/Test471.hs
+formatted       cbe652ef0cbb  brittany-0.14.0.2/data/Test472.hs
+formatted       3bf39beb5bf7  brittany-0.14.0.2/data/Test473.hs
+formatted       ac6e5e3c9b28  brittany-0.14.0.2/data/Test474.hs
+formatted       7752938de9c6  brittany-0.14.0.2/data/Test475.hs
+formatted       31b24587972c  brittany-0.14.0.2/data/Test476.hs
+formatted       a87acb3bdeb3  brittany-0.14.0.2/data/Test477.hs
+formatted       d489d082ed14  brittany-0.14.0.2/data/Test478.hs
+formatted       c97e29860d3d  brittany-0.14.0.2/data/Test479.hs
+formatted       00909af2b184  brittany-0.14.0.2/data/Test48.hs
+formatted       0150b83ded52  brittany-0.14.0.2/data/Test480.hs
+formatted       9fd1038ae87c  brittany-0.14.0.2/data/Test481.hs
+formatted       99e73c09fd8f  brittany-0.14.0.2/data/Test482.hs
+formatted       b6e0c157ec82  brittany-0.14.0.2/data/Test483.hs
+formatted       5308cabef2dd  brittany-0.14.0.2/data/Test484.hs
+formatted       3b0850dd8d8d  brittany-0.14.0.2/data/Test485.hs
+formatted       81a1be9769d4  brittany-0.14.0.2/data/Test486.hs
+formatted       e28b3f6dc92a  brittany-0.14.0.2/data/Test487.hs
+formatted       96c5f577a246  brittany-0.14.0.2/data/Test488.hs
+formatted       3455b362a4d8  brittany-0.14.0.2/data/Test489.hs
+formatted       379cdfc91569  brittany-0.14.0.2/data/Test49.hs
+formatted       d2c2b5b45546  brittany-0.14.0.2/data/Test490.hs
+formatted       964f39f9fdd1  brittany-0.14.0.2/data/Test491.hs
+formatted       d469e1b3965b  brittany-0.14.0.2/data/Test492.hs
+formatted       d469e1b3965b  brittany-0.14.0.2/data/Test493.hs
+formatted       1eddc3503b32  brittany-0.14.0.2/data/Test494.hs
+formatted       196d9b015a57  brittany-0.14.0.2/data/Test495.hs
+formatted       00e8a8e9cc86  brittany-0.14.0.2/data/Test496.hs
+formatted       cbeb80fac007  brittany-0.14.0.2/data/Test497.hs
+formatted       326e5653c262  brittany-0.14.0.2/data/Test498.hs
+formatted       46d0f48bc543  brittany-0.14.0.2/data/Test499.hs
+formatted       3bb5ad04d6c9  brittany-0.14.0.2/data/Test5.hs
+formatted       30d139cbecdf  brittany-0.14.0.2/data/Test50.hs
+formatted       bb1de50ba61a  brittany-0.14.0.2/data/Test500.hs
+formatted       46987cddeeb1  brittany-0.14.0.2/data/Test501.hs
+formatted       a26bb5e5e289  brittany-0.14.0.2/data/Test502.hs
+formatted       608441a45ea2  brittany-0.14.0.2/data/Test503.hs
+formatted       2140e03bd530  brittany-0.14.0.2/data/Test504.hs
+formatted       b8d19bd75331  brittany-0.14.0.2/data/Test505.hs
+formatted       7aafe7248e10  brittany-0.14.0.2/data/Test506.hs
+formatted       283db15defde  brittany-0.14.0.2/data/Test507.hs
+formatted       a017d7235dda  brittany-0.14.0.2/data/Test508.hs
+formatted       525ac73a7645  brittany-0.14.0.2/data/Test509.hs
+formatted       bdb9309b69ef  brittany-0.14.0.2/data/Test51.hs
+formatted       be3e1e21b3e7  brittany-0.14.0.2/data/Test510.hs
+formatted       386680696e97  brittany-0.14.0.2/data/Test511.hs
+formatted       c74bbb4b17cf  brittany-0.14.0.2/data/Test512.hs
+formatted       bb9ffbc270ba  brittany-0.14.0.2/data/Test513.hs
+formatted       4babc1db968e  brittany-0.14.0.2/data/Test514.hs
+formatted       4babc1db968e  brittany-0.14.0.2/data/Test515.hs
+formatted       4ded8e9531d5  brittany-0.14.0.2/data/Test516.hs
+formatted       9cdba405b7be  brittany-0.14.0.2/data/Test517.hs
+formatted       6192bf9c4318  brittany-0.14.0.2/data/Test518.hs
+formatted       438975b07785  brittany-0.14.0.2/data/Test519.hs
+formatted       3e9fb57fe53f  brittany-0.14.0.2/data/Test52.hs
+formatted       e0922f030820  brittany-0.14.0.2/data/Test520.hs
+formatted       7a6eceaa78bc  brittany-0.14.0.2/data/Test521.hs
+formatted       cd889668f531  brittany-0.14.0.2/data/Test522.hs
+formatted       5eae819cfab2  brittany-0.14.0.2/data/Test523.hs
+formatted       cdd55a113657  brittany-0.14.0.2/data/Test524.hs
+formatted       948aab2f7cf9  brittany-0.14.0.2/data/Test525.hs
+formatted       74dd57f3e6b2  brittany-0.14.0.2/data/Test526.hs
+formatted       ebc6624271d5  brittany-0.14.0.2/data/Test527.hs
+formatted       6d566659bc06  brittany-0.14.0.2/data/Test528.hs
+formatted       86bb82b0ae12  brittany-0.14.0.2/data/Test529.hs
+formatted       113cb843c235  brittany-0.14.0.2/data/Test53.hs
+formatted       c77ad7418bdb  brittany-0.14.0.2/data/Test530.hs
+formatted       e82e4a69ecaf  brittany-0.14.0.2/data/Test531.hs
+formatted       98d38ba919b8  brittany-0.14.0.2/data/Test532.hs
+formatted       93f0725e6f33  brittany-0.14.0.2/data/Test533.hs
+formatted       2f3eea919721  brittany-0.14.0.2/data/Test534.hs
+formatted       4dfe442efa9f  brittany-0.14.0.2/data/Test535.hs
+formatted       083e49e545b1  brittany-0.14.0.2/data/Test536.hs
+formatted       a93167132f4b  brittany-0.14.0.2/data/Test537.hs
+formatted       76a9d8390ac0  brittany-0.14.0.2/data/Test538.hs
+formatted       cb52a4163a3d  brittany-0.14.0.2/data/Test539.hs
+formatted       3206388ca862  brittany-0.14.0.2/data/Test54.hs
+formatted       32bac85b1c99  brittany-0.14.0.2/data/Test540.hs
+formatted       c1076b4718f2  brittany-0.14.0.2/data/Test55.hs
+formatted       5b5da4a27041  brittany-0.14.0.2/data/Test56.hs
+formatted       7d48cd742ee9  brittany-0.14.0.2/data/Test57.hs
+formatted       09a9442047e7  brittany-0.14.0.2/data/Test58.hs
+formatted       007b3f5499fb  brittany-0.14.0.2/data/Test59.hs
+formatted       d9ed4ebe21ed  brittany-0.14.0.2/data/Test6.hs
+formatted       87e8860858b2  brittany-0.14.0.2/data/Test60.hs
+formatted       7bba808f3304  brittany-0.14.0.2/data/Test61.hs
+formatted       7e7c53e8f5f9  brittany-0.14.0.2/data/Test62.hs
+formatted       38957227fb18  brittany-0.14.0.2/data/Test63.hs
+formatted       d1d477cbcd19  brittany-0.14.0.2/data/Test64.hs
+formatted       abec5eceeaf7  brittany-0.14.0.2/data/Test65.hs
+formatted       7e83cb328466  brittany-0.14.0.2/data/Test66.hs
+formatted       08c924dc75db  brittany-0.14.0.2/data/Test67.hs
+formatted       cb0434807247  brittany-0.14.0.2/data/Test68.hs
+formatted       0edc4bf88879  brittany-0.14.0.2/data/Test69.hs
+formatted       6e4a80a16587  brittany-0.14.0.2/data/Test7.hs
+formatted       c26c8d4af0d4  brittany-0.14.0.2/data/Test70.hs
+formatted       7f9b2bb1df69  brittany-0.14.0.2/data/Test71.hs
+formatted       9d549df4742d  brittany-0.14.0.2/data/Test72.hs
+formatted       05ed72d9e760  brittany-0.14.0.2/data/Test73.hs
+formatted       a54128f146c1  brittany-0.14.0.2/data/Test74.hs
+formatted       29302a244e5c  brittany-0.14.0.2/data/Test75.hs
+formatted       89a2a63deffe  brittany-0.14.0.2/data/Test76.hs
+formatted       7a3ad7569e3d  brittany-0.14.0.2/data/Test77.hs
+formatted       286a50a0eb22  brittany-0.14.0.2/data/Test78.hs
+formatted       bc99bdbbbb1e  brittany-0.14.0.2/data/Test79.hs
+formatted       0a8cec799b2a  brittany-0.14.0.2/data/Test8.hs
+formatted       2f2e96416d6d  brittany-0.14.0.2/data/Test80.hs
+formatted       d1d172867e08  brittany-0.14.0.2/data/Test81.hs
+formatted       f66f9b2381e3  brittany-0.14.0.2/data/Test82.hs
+formatted       4fe035cf193a  brittany-0.14.0.2/data/Test83.hs
+formatted       43e925441c75  brittany-0.14.0.2/data/Test84.hs
+formatted       dddcd81d8e89  brittany-0.14.0.2/data/Test85.hs
+formatted       b34676f3162a  brittany-0.14.0.2/data/Test86.hs
+formatted       847e26a48a11  brittany-0.14.0.2/data/Test87.hs
+formatted       d37afb2bca9c  brittany-0.14.0.2/data/Test88.hs
+formatted       870cc6003dc1  brittany-0.14.0.2/data/Test89.hs
+formatted       cd000b5a236a  brittany-0.14.0.2/data/Test9.hs
+formatted       14a1a4f54ceb  brittany-0.14.0.2/data/Test90.hs
+formatted       583f169ace4c  brittany-0.14.0.2/data/Test91.hs
+formatted       1d30d5458df2  brittany-0.14.0.2/data/Test92.hs
+formatted       21ca73bf65e9  brittany-0.14.0.2/data/Test93.hs
+formatted       2640ff7299cc  brittany-0.14.0.2/data/Test94.hs
+formatted       139f17bd37c8  brittany-0.14.0.2/data/Test95.hs
+formatted       3f35ed17b5d4  brittany-0.14.0.2/data/Test96.hs
+formatted       54dbf9915298  brittany-0.14.0.2/data/Test97.hs
+formatted       25178db879d4  brittany-0.14.0.2/data/Test98.hs
+formatted       52caf5793d73  brittany-0.14.0.2/data/Test99.hs
+formatted       7a5d0ee67b99  brittany-0.14.0.2/source/executable/Main.hs
+formatted       f006bb65ddb6  brittany-0.14.0.2/source/library/Language/Haskell/Brittany.hs
+formatted       effc7ab14a00  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal.hs
+formatted       62f91f308c2e  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Backend.hs
+formatted       b114e1735e96  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/BackendUtils.hs
+formatted       4db6008c162f  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Config.hs
+formatted       b3a115fdcb04  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Config/Types.hs
+formatted       3479d640d39c  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Config/Types/Instances.hs
+formatted       3a7e4e0507b6  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/ExactPrintUtils.hs
+formatted       5d4339023e83  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/LayouterBasics.hs
+formatted       e6236562836a  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Layouters/DataDecl.hs
+formatted       ee47e6ccde82  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Layouters/Decl.hs
+formatted       85310fee66ef  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Layouters/Expr.hs
+formatted       63ac93aa854f  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Layouters/Expr.hs-boot
+formatted       f730e71a6728  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Layouters/IE.hs
+formatted       4647ea64ed39  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Layouters/Import.hs
+formatted       455e49f342e4  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Layouters/Module.hs
+formatted       1f83e29fdd09  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Layouters/Pattern.hs
+formatted       d46ed5a9675b  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Layouters/Stmt.hs
+formatted       08c3e5d27dd4  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Layouters/Stmt.hs-boot
+formatted       757402eae174  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Layouters/Type.hs
+formatted       8d7327e29615  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Obfuscation.hs
+formatted       0dc2352f4480  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/ParseModule.hs
+formatted       069a6d78e89a  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Prelude.hs
+formatted       1a8db66fd521  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/PreludeUtils.hs
+formatted       a12759ae906d  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Transformations/Alt.hs
+formatted       c6217dd1471b  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Transformations/Columns.hs
+formatted       f558625f25b7  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Transformations/Floating.hs
+formatted       7d95cc82a77f  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Transformations/Indent.hs
+formatted       f6a84d0ce013  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Transformations/Par.hs
+formatted       9bb018400ea8  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Types.hs
+formatted       203fcf60dae6  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Internal/Utils.hs
+formatted       20badc0ca0c8  brittany-0.14.0.2/source/library/Language/Haskell/Brittany/Main.hs
+formatted       e425ebfb8e97  brittany-0.14.0.2/source/test-suite/Main.hs
+formatted       e865ae48f11b  capability-0.5.0.1/Setup.hs
+formatted       6772160dec0c  capability-0.5.0.1/examples/CountLog.hs
+formatted       2eb939764385  capability-0.5.0.1/examples/Error.hs
+formatted       c878dfd98c1c  capability-0.5.0.1/examples/Reader.hs
+formatted       cf7788db327f  capability-0.5.0.1/examples/Reflection.hs
+formatted       4ca78b40a428  capability-0.5.0.1/examples/Sink.hs
+formatted       4bd9f1f5ce20  capability-0.5.0.1/examples/State.hs
+formatted       de729285889f  capability-0.5.0.1/examples/Test.hs
+formatted       bc483d61ffa2  capability-0.5.0.1/examples/Test/Common.hs
+formatted       7e4f90ed485c  capability-0.5.0.1/examples/WordCount.hs
+formatted       9a2c6692cf10  capability-0.5.0.1/examples/Writer.hs
+formatted       c7634b7f4e60  capability-0.5.0.1/src/Capability.hs
+formatted       83447b7b7ea5  capability-0.5.0.1/src/Capability/Accessors.hs
+formatted       8d8d36f3f008  capability-0.5.0.1/src/Capability/Constraints.hs
+formatted       f8fc4a2aaee2  capability-0.5.0.1/src/Capability/Derive.hs
+formatted       c41bd87a6a29  capability-0.5.0.1/src/Capability/Error.hs
+formatted       97515747424b  capability-0.5.0.1/src/Capability/Reader.hs
+formatted       89877e765220  capability-0.5.0.1/src/Capability/Reader/Internal/Class.hs
+formatted       d887d9bea232  capability-0.5.0.1/src/Capability/Reader/Internal/Strategies.hs
+formatted       cdf1d99e626f  capability-0.5.0.1/src/Capability/Reflection.hs
+formatted       42f2a624abd3  capability-0.5.0.1/src/Capability/Sink.hs
+formatted       8e57397c62e4  capability-0.5.0.1/src/Capability/Sink/Internal/Class.hs
+formatted       410464877d57  capability-0.5.0.1/src/Capability/Sink/Internal/Strategies.hs
+formatted       d6a811b81394  capability-0.5.0.1/src/Capability/Source.hs
+formatted       b2d52c4c15ca  capability-0.5.0.1/src/Capability/Source/Internal/Class.hs
+formatted       b718392f90a6  capability-0.5.0.1/src/Capability/Source/Internal/Strategies.hs
+formatted       e288db1d616d  capability-0.5.0.1/src/Capability/State.hs
+formatted       9d0280d2e19e  capability-0.5.0.1/src/Capability/State/Internal/Class.hs
+formatted       33420ab9b880  capability-0.5.0.1/src/Capability/State/Internal/Strategies.hs
+formatted       e0fc7f2c44f9  capability-0.5.0.1/src/Capability/State/Internal/Strategies/Common.hs
+formatted       dca34ed58cfd  capability-0.5.0.1/src/Capability/Stream.hs
+formatted       6cd51b2d63f1  capability-0.5.0.1/src/Capability/TypeOf.hs
+formatted       9a266b123a93  capability-0.5.0.1/src/Capability/Writer.hs
+formatted       e865ae48f11b  cassava-0.5.5.0/Setup.hs
+formatted       f8de97e1c58a  cassava-0.5.5.0/examples/IncrementalIndexedBasedDecode.hs
+formatted       b9e7e3d9a0fb  cassava-0.5.5.0/examples/IncrementalNamedBasedEncode.hs
+formatted       a004028b7dc3  cassava-0.5.5.0/examples/IndexBasedDecode.hs
+formatted       03830830ed9e  cassava-0.5.5.0/examples/IndexBasedGeneric.hs
+formatted       f4fb7ce7564b  cassava-0.5.5.0/examples/NamedBasedDecode.hs
+formatted       ecf9a4c54a67  cassava-0.5.5.0/examples/NamedBasedExplicitDecode.hs
+formatted       d51604b7e89f  cassava-0.5.5.0/examples/NamedBasedGeneric.hs
+formatted       9612391bd37b  cassava-0.5.5.0/examples/StreamingIndexBasedDecode.hs
+formatted       efc1fe9896ec  cassava-0.5.5.0/src/Data/Csv.hs
+formatted       817b8cca8d06  cassava-0.5.5.0/src/Data/Csv/Builder.hs
+formatted       38c7c4badf0a  cassava-0.5.5.0/src/Data/Csv/Conversion.hs
+formatted       a4c56813cba7  cassava-0.5.5.0/src/Data/Csv/Conversion/Internal.hs
+formatted       8ec14fcb620f  cassava-0.5.5.0/src/Data/Csv/Encoding.hs
+formatted       8318c12528ce  cassava-0.5.5.0/src/Data/Csv/Incremental.hs
+formatted       be1c60df3b34  cassava-0.5.5.0/src/Data/Csv/Parser.hs
+formatted       014bb9b262b9  cassava-0.5.5.0/src/Data/Csv/Streaming.hs
+formatted       20f42a736b97  cassava-0.5.5.0/src/Data/Csv/Types.hs
+formatted       4a5a0e1a51c9  cassava-0.5.5.0/src/Data/Csv/Util.hs
+formatted       61c26773c418  cassava-0.5.5.0/tests/UnitTests.hs
+formatted       b77256b69093  comonad-5.0.10/examples/History.hs
+formatted       092ab7243a03  comonad-5.0.10/src/Control/Comonad.hs
+formatted       d084cf5c7fa7  comonad-5.0.10/src/Control/Comonad/Env.hs
+formatted       3b8ec012a04c  comonad-5.0.10/src/Control/Comonad/Env/Class.hs
+formatted       0dcf633542eb  comonad-5.0.10/src/Control/Comonad/Hoist/Class.hs
+formatted       4bfafba3ce3b  comonad-5.0.10/src/Control/Comonad/Identity.hs
+formatted       49b438747b63  comonad-5.0.10/src/Control/Comonad/Store.hs
+formatted       cf408da422ba  comonad-5.0.10/src/Control/Comonad/Store/Class.hs
+formatted       2c72a397c339  comonad-5.0.10/src/Control/Comonad/Traced.hs
+formatted       da617308f9a3  comonad-5.0.10/src/Control/Comonad/Traced/Class.hs
+formatted       adbd6d7e0f72  comonad-5.0.10/src/Control/Comonad/Trans/Class.hs
+formatted       26ee25936027  comonad-5.0.10/src/Control/Comonad/Trans/Env.hs
+formatted       c405a550608b  comonad-5.0.10/src/Control/Comonad/Trans/Identity.hs
+formatted       6b990e80a8eb  comonad-5.0.10/src/Control/Comonad/Trans/Store.hs
+formatted       b5fa41e7a2f8  comonad-5.0.10/src/Control/Comonad/Trans/Traced.hs
+formatted       34f425eff98b  comonad-5.0.10/src/Data/Functor/Composition.hs
+formatted       bb9810473d80  conduit-1.3.6.1/benchmarks/optimize-201408.hs
+formatted       f70f6155e62a  conduit-1.3.6.1/benchmarks/unfused.hs
+formatted       20fad0c5aecd  conduit-1.3.6.1/src/Conduit.hs
+formatted       bf88ceabad43  conduit-1.3.6.1/src/Data/Conduit.hs
+formatted       1a953cd53139  conduit-1.3.6.1/src/Data/Conduit/Combinators.hs
+formatted       f520242138c3  conduit-1.3.6.1/src/Data/Conduit/Combinators/Stream.hs
+formatted       ba13516336bd  conduit-1.3.6.1/src/Data/Conduit/Combinators/Unqualified.hs
+formatted       8e861a915c2f  conduit-1.3.6.1/src/Data/Conduit/Internal.hs
+formatted       c35f5a66accc  conduit-1.3.6.1/src/Data/Conduit/Internal/Conduit.hs
+formatted       bbfd28e5b98b  conduit-1.3.6.1/src/Data/Conduit/Internal/Fusion.hs
+formatted       54120af8edce  conduit-1.3.6.1/src/Data/Conduit/Internal/List/Stream.hs
+formatted       bf0df637e814  conduit-1.3.6.1/src/Data/Conduit/Internal/Pipe.hs
+formatted       4a4c14b72249  conduit-1.3.6.1/src/Data/Conduit/Lift.hs
+formatted       e698a877d8f0  conduit-1.3.6.1/src/Data/Conduit/List.hs
+formatted       98630a5362e8  conduit-1.3.6.1/src/Data/Streaming/FileRead.hs
+formatted       9860da5f427f  conduit-1.3.6.1/src/Data/Streaming/Filesystem.hs
+formatted       d9e8dbaa2534  conduit-1.3.6.1/test/Data/Conduit/Extra/ZipConduitSpec.hs
+formatted       3df81ded6599  conduit-1.3.6.1/test/Data/Conduit/StreamSpec.hs
+formatted       ba362e46e616  conduit-1.3.6.1/test/Spec.hs
+formatted       382af08e83eb  conduit-1.3.6.1/test/StreamSpec.hs
+formatted       db2295b8113a  conduit-1.3.6.1/test/doctests.hs
+formatted       915aac4ba0bb  conduit-1.3.6.1/test/main.hs
+formatted       a4a0156cbfff  contravariant-1.5.6/old-src/Data/Functor/Contravariant.hs
+formatted       4ddb460640d4  contravariant-1.5.6/src/Data/Functor/Contravariant/Compose.hs
+formatted       aceb756fa0e3  contravariant-1.5.6/src/Data/Functor/Contravariant/Divisible.hs
+formatted       98e227191284  contravariant-1.5.6/src/Data/Functor/Contravariant/Generic.hs
+formatted       2841bd16822b  criterion-1.6.5.0/Criterion.hs
+formatted       417b9eafad2d  criterion-1.6.5.0/Criterion/Analysis.hs
+formatted       c039ba5918a9  criterion-1.6.5.0/Criterion/EmbeddedData.hs
+formatted       f07714df2d3d  criterion-1.6.5.0/Criterion/IO.hs
+formatted       9cbbe0381e04  criterion-1.6.5.0/Criterion/IO/Printf.hs
+formatted       7f06470ac8f8  criterion-1.6.5.0/Criterion/Internal.hs
+formatted       61563e5b80e1  criterion-1.6.5.0/Criterion/Main.hs
+formatted       a7ae79817c1c  criterion-1.6.5.0/Criterion/Main/Options.hs
+formatted       aab23b74a86d  criterion-1.6.5.0/Criterion/Monad.hs
+formatted       344969265c26  criterion-1.6.5.0/Criterion/Monad/Internal.hs
+formatted       0b58a8342a2c  criterion-1.6.5.0/Criterion/Report.hs
+formatted       ef0e89d5813d  criterion-1.6.5.0/Criterion/Types.hs
+formatted       fb8e29343d89  criterion-1.6.5.0/app/Options.hs
+formatted       1c316429bc18  criterion-1.6.5.0/app/Report.hs
+formatted       2c78e540a92b  criterion-1.6.5.0/examples/BadReadFile.hs
+formatted       bfb4844251ca  criterion-1.6.5.0/examples/Comparison.hs
+formatted       f54fba36e069  criterion-1.6.5.0/examples/ConduitVsPipes.hs
+formatted       a4f8cda29d3c  criterion-1.6.5.0/examples/ExtensibleCLI.hs
+formatted       8f4df570ff4e  criterion-1.6.5.0/examples/Fibber.hs
+formatted       741778047cc1  criterion-1.6.5.0/examples/GoodReadFile.hs
+formatted       e85b2e0c3354  criterion-1.6.5.0/examples/Judy.hs
+formatted       7d1ede331f1f  criterion-1.6.5.0/examples/Maps.hs
+formatted       f396bcf9c829  criterion-1.6.5.0/examples/Overhead.hs
+formatted       3a50edf5477c  criterion-1.6.5.0/examples/Quotes.hs
+formatted       e88811d40513  criterion-1.6.5.0/tests/Cleanup.hs
+formatted       78253dc00e1a  criterion-1.6.5.0/tests/Properties.hs
+formatted       a99e4edb542c  criterion-1.6.5.0/tests/Sanity.hs
+formatted       f8a8d8f2c4ae  criterion-1.6.5.0/tests/Tests.hs
+formatted       1638196fb215  cryptonite-0.30/Crypto/Cipher/AES.hs
+formatted       2240267dad51  cryptonite-0.30/Crypto/Cipher/AES/Primitive.hs
+formatted       5694da9617bf  cryptonite-0.30/Crypto/Cipher/AESGCMSIV.hs
+formatted       17a919edeac4  cryptonite-0.30/Crypto/Cipher/Blowfish.hs
+formatted       98e1845904ad  cryptonite-0.30/Crypto/Cipher/Blowfish/Box.hs
+formatted       23c195272bfd  cryptonite-0.30/Crypto/Cipher/Blowfish/Primitive.hs
+formatted       7ece5bd42232  cryptonite-0.30/Crypto/Cipher/CAST5.hs
+formatted       d0210ba9a96f  cryptonite-0.30/Crypto/Cipher/CAST5/Primitive.hs
+formatted       c818f5ccfd4a  cryptonite-0.30/Crypto/Cipher/Camellia.hs
+formatted       6b6c104480e2  cryptonite-0.30/Crypto/Cipher/Camellia/Primitive.hs
+formatted       dbd216d2f0aa  cryptonite-0.30/Crypto/Cipher/ChaCha.hs
+formatted       bcadafa03089  cryptonite-0.30/Crypto/Cipher/ChaChaPoly1305.hs
+formatted       092e6bcae818  cryptonite-0.30/Crypto/Cipher/DES.hs
+formatted       caebf4013844  cryptonite-0.30/Crypto/Cipher/DES/Primitive.hs
+formatted       f0c4f647a470  cryptonite-0.30/Crypto/Cipher/RC4.hs
+formatted       d59fa1e97895  cryptonite-0.30/Crypto/Cipher/Salsa.hs
+formatted       58b5729d32db  cryptonite-0.30/Crypto/Cipher/TripleDES.hs
+formatted       8aafca6b830e  cryptonite-0.30/Crypto/Cipher/Twofish.hs
+formatted       6b6428c6bd37  cryptonite-0.30/Crypto/Cipher/Twofish/Primitive.hs
+formatted       4e71a359f37d  cryptonite-0.30/Crypto/Cipher/Types.hs
+formatted       9872fb82a680  cryptonite-0.30/Crypto/Cipher/Types/AEAD.hs
+formatted       ea04a762895f  cryptonite-0.30/Crypto/Cipher/Types/Base.hs
+formatted       edc073cff2df  cryptonite-0.30/Crypto/Cipher/Types/Block.hs
+formatted       7c2782316618  cryptonite-0.30/Crypto/Cipher/Types/GF.hs
+formatted       17ceaf6e3360  cryptonite-0.30/Crypto/Cipher/Types/Stream.hs
+formatted       6cdb1c7bd28d  cryptonite-0.30/Crypto/Cipher/Types/Utils.hs
+formatted       f1893d3edfa7  cryptonite-0.30/Crypto/Cipher/Utils.hs
+formatted       20107f92349f  cryptonite-0.30/Crypto/Cipher/XSalsa.hs
+formatted       ae8cf8663bda  cryptonite-0.30/Crypto/ConstructHash/MiyaguchiPreneel.hs
+formatted       4f15b3874982  cryptonite-0.30/Crypto/Data/AFIS.hs
+formatted       37c60fc95ef2  cryptonite-0.30/Crypto/Data/Padding.hs
+formatted       2ba3cd2f51b9  cryptonite-0.30/Crypto/ECC.hs
+formatted       951ccc172449  cryptonite-0.30/Crypto/ECC/Edwards25519.hs
+formatted       26c0fcc08733  cryptonite-0.30/Crypto/ECC/Simple/Prim.hs
+formatted       64fc04cd74ae  cryptonite-0.30/Crypto/ECC/Simple/Types.hs
+formatted       3560b9821c3b  cryptonite-0.30/Crypto/Error.hs
+formatted       10ee398867c8  cryptonite-0.30/Crypto/Error/Types.hs
+formatted       bcc2e2a5ecac  cryptonite-0.30/Crypto/Hash.hs
+formatted       514502d73233  cryptonite-0.30/Crypto/Hash/Algorithms.hs
+formatted       a83eee5ae7b0  cryptonite-0.30/Crypto/Hash/Blake2.hs
+formatted       f99040e35232  cryptonite-0.30/Crypto/Hash/Blake2b.hs
+formatted       9fc6dd4195c9  cryptonite-0.30/Crypto/Hash/Blake2bp.hs
+formatted       aa6fb8816478  cryptonite-0.30/Crypto/Hash/Blake2s.hs
+formatted       5987b76d2285  cryptonite-0.30/Crypto/Hash/Blake2sp.hs
+formatted       36d330a27ffe  cryptonite-0.30/Crypto/Hash/IO.hs
+formatted       527ac917164f  cryptonite-0.30/Crypto/Hash/Keccak.hs
+formatted       988960beff03  cryptonite-0.30/Crypto/Hash/MD2.hs
+formatted       643fd2f5f7f2  cryptonite-0.30/Crypto/Hash/MD4.hs
+formatted       0176320f82f4  cryptonite-0.30/Crypto/Hash/MD5.hs
+formatted       54c369b13f00  cryptonite-0.30/Crypto/Hash/RIPEMD160.hs
+formatted       0cf990ecd2cd  cryptonite-0.30/Crypto/Hash/SHA1.hs
+formatted       6b15758ab087  cryptonite-0.30/Crypto/Hash/SHA224.hs
+formatted       a5a52f418404  cryptonite-0.30/Crypto/Hash/SHA256.hs
+formatted       05629720d732  cryptonite-0.30/Crypto/Hash/SHA3.hs
+formatted       076c9d704bf2  cryptonite-0.30/Crypto/Hash/SHA384.hs
+formatted       d65edf0aeac8  cryptonite-0.30/Crypto/Hash/SHA512.hs
+formatted       94400683916e  cryptonite-0.30/Crypto/Hash/SHA512t.hs
+formatted       9b214034fb00  cryptonite-0.30/Crypto/Hash/SHAKE.hs
+formatted       506e64c190a2  cryptonite-0.30/Crypto/Hash/Skein256.hs
+formatted       da70bee9980a  cryptonite-0.30/Crypto/Hash/Skein512.hs
+formatted       2f8832cc95bb  cryptonite-0.30/Crypto/Hash/Tiger.hs
+formatted       52ca268ecd11  cryptonite-0.30/Crypto/Hash/Types.hs
+formatted       4ea25e04f5c1  cryptonite-0.30/Crypto/Hash/Whirlpool.hs
+formatted       f70544b8e5f8  cryptonite-0.30/Crypto/Internal/Builder.hs
+formatted       98a5de0267ed  cryptonite-0.30/Crypto/Internal/ByteArray.hs
+formatted       f801f423094d  cryptonite-0.30/Crypto/Internal/Compat.hs
+formatted       8d064e9ef0c8  cryptonite-0.30/Crypto/Internal/CompatPrim.hs
+formatted       9ecf7ae42e4a  cryptonite-0.30/Crypto/Internal/DeepSeq.hs
+formatted       4646f54cc944  cryptonite-0.30/Crypto/Internal/Imports.hs
+formatted       4878b8fb8411  cryptonite-0.30/Crypto/Internal/Nat.hs
+formatted       483861a9b72d  cryptonite-0.30/Crypto/Internal/WordArray.hs
+formatted       5786998be3b3  cryptonite-0.30/Crypto/Internal/Words.hs
+formatted       0434f24b7a9f  cryptonite-0.30/Crypto/KDF/Argon2.hs
+formatted       9725e47b1b66  cryptonite-0.30/Crypto/KDF/BCrypt.hs
+formatted       28be07832b83  cryptonite-0.30/Crypto/KDF/BCryptPBKDF.hs
+formatted       7c78160cd13d  cryptonite-0.30/Crypto/KDF/HKDF.hs
+formatted       f25d68c357c2  cryptonite-0.30/Crypto/KDF/PBKDF2.hs
+formatted       3307468c4b5d  cryptonite-0.30/Crypto/KDF/Scrypt.hs
+formatted       489f10db3ff6  cryptonite-0.30/Crypto/MAC/CMAC.hs
+formatted       9dff2956cdea  cryptonite-0.30/Crypto/MAC/HMAC.hs
+formatted       859812024323  cryptonite-0.30/Crypto/MAC/KMAC.hs
+formatted       a54d3189768c  cryptonite-0.30/Crypto/MAC/Poly1305.hs
+formatted       c065c0ae8804  cryptonite-0.30/Crypto/Number/Basic.hs
+partly-checked  27ebb2f56bcc  cryptonite-0.30/Crypto/Number/Compat.hs
+formatted       d8e4da3cf8c5  cryptonite-0.30/Crypto/Number/F2m.hs
+formatted       7b62d9f0185b  cryptonite-0.30/Crypto/Number/Generate.hs
+formatted       53fbd1bf4d6c  cryptonite-0.30/Crypto/Number/ModArithmetic.hs
+formatted       3887ba3c7c43  cryptonite-0.30/Crypto/Number/Nat.hs
+formatted       930fa05c486f  cryptonite-0.30/Crypto/Number/Prime.hs
+formatted       3be1d9c43e52  cryptonite-0.30/Crypto/Number/Serialize.hs
+formatted       cfe6a456efe7  cryptonite-0.30/Crypto/Number/Serialize/Internal.hs
+formatted       8f181f9bc069  cryptonite-0.30/Crypto/Number/Serialize/Internal/LE.hs
+formatted       c21267dc7970  cryptonite-0.30/Crypto/Number/Serialize/LE.hs
+formatted       306914497f38  cryptonite-0.30/Crypto/OTP.hs
+formatted       47ac3109be1c  cryptonite-0.30/Crypto/PubKey/Curve25519.hs
+formatted       ff1bad4fe0ae  cryptonite-0.30/Crypto/PubKey/Curve448.hs
+formatted       3f1c06c77c6a  cryptonite-0.30/Crypto/PubKey/DH.hs
+formatted       61fc8cd02023  cryptonite-0.30/Crypto/PubKey/DSA.hs
+formatted       7e94f82c13ef  cryptonite-0.30/Crypto/PubKey/ECC/DH.hs
+formatted       face3da85363  cryptonite-0.30/Crypto/PubKey/ECC/ECDSA.hs
+formatted       97c5eb3f0754  cryptonite-0.30/Crypto/PubKey/ECC/Generate.hs
+formatted       d4527eb98a84  cryptonite-0.30/Crypto/PubKey/ECC/P256.hs
+formatted       421cbae47c83  cryptonite-0.30/Crypto/PubKey/ECC/Prim.hs
+formatted       65081a388743  cryptonite-0.30/Crypto/PubKey/ECC/Types.hs
+formatted       93205445ab9a  cryptonite-0.30/Crypto/PubKey/ECDSA.hs
+formatted       04ef544fcbc1  cryptonite-0.30/Crypto/PubKey/ECIES.hs
+formatted       ca8ec46db323  cryptonite-0.30/Crypto/PubKey/Ed25519.hs
+formatted       dba822ca565e  cryptonite-0.30/Crypto/PubKey/Ed448.hs
+formatted       365814eb2b58  cryptonite-0.30/Crypto/PubKey/EdDSA.hs
+formatted       e083f4a748a3  cryptonite-0.30/Crypto/PubKey/ElGamal.hs
+formatted       5a0517dd2399  cryptonite-0.30/Crypto/PubKey/Internal.hs
+formatted       83e024783092  cryptonite-0.30/Crypto/PubKey/MaskGenFunction.hs
+formatted       aaafa0f20f26  cryptonite-0.30/Crypto/PubKey/RSA.hs
+formatted       c12317773f47  cryptonite-0.30/Crypto/PubKey/RSA/OAEP.hs
+formatted       e8f1ac1faae8  cryptonite-0.30/Crypto/PubKey/RSA/PKCS15.hs
+formatted       9255a1c6fd3d  cryptonite-0.30/Crypto/PubKey/RSA/PSS.hs
+formatted       8643b6ddea84  cryptonite-0.30/Crypto/PubKey/RSA/Prim.hs
+formatted       7ab3ae862f55  cryptonite-0.30/Crypto/PubKey/RSA/Types.hs
+formatted       a97d7fbec7cf  cryptonite-0.30/Crypto/PubKey/Rabin/Basic.hs
+formatted       3e0ac8c999c0  cryptonite-0.30/Crypto/PubKey/Rabin/Modified.hs
+formatted       a53ee7c1c1a5  cryptonite-0.30/Crypto/PubKey/Rabin/OAEP.hs
+formatted       b578b97afc3e  cryptonite-0.30/Crypto/PubKey/Rabin/RW.hs
+formatted       c0eae64dcf68  cryptonite-0.30/Crypto/PubKey/Rabin/Types.hs
+formatted       1854f69b3828  cryptonite-0.30/Crypto/Random.hs
+formatted       f3902d2c9c96  cryptonite-0.30/Crypto/Random/ChaChaDRG.hs
+formatted       8b31b5a87af9  cryptonite-0.30/Crypto/Random/Entropy.hs
+formatted       f8afb2ba19cc  cryptonite-0.30/Crypto/Random/Entropy/Backend.hs
+formatted       9b0c8653e10a  cryptonite-0.30/Crypto/Random/Entropy/RDRand.hs
+formatted       0c206170779c  cryptonite-0.30/Crypto/Random/Entropy/Source.hs
+formatted       75121bc8d581  cryptonite-0.30/Crypto/Random/Entropy/Unix.hs
+formatted       2b02d2fc4203  cryptonite-0.30/Crypto/Random/Entropy/Unsafe.hs
+declined        -             cryptonite-0.30/Crypto/Random/Entropy/Windows.hs
+formatted       4f4ac464c6e9  cryptonite-0.30/Crypto/Random/EntropyPool.hs
+formatted       762f30275eb4  cryptonite-0.30/Crypto/Random/Probabilistic.hs
+formatted       dd360e4a76e6  cryptonite-0.30/Crypto/Random/SystemDRG.hs
+formatted       3613df3a0846  cryptonite-0.30/Crypto/Random/Types.hs
+formatted       b12c43b64866  cryptonite-0.30/Crypto/System/CPU.hs
+formatted       3f10131f3add  cryptonite-0.30/Crypto/Tutorial.hs
+formatted       e865ae48f11b  cryptonite-0.30/Setup.hs
+formatted       ac276403f523  cryptonite-0.30/benchs/Bench.hs
+formatted       772fcb717c67  cryptonite-0.30/benchs/Number/F2m.hs
+formatted       57d09cf26ff7  cryptonite-0.30/tests/BCrypt.hs
+formatted       e0a9d879663a  cryptonite-0.30/tests/BCryptPBKDF.hs
+formatted       c7c79cd84ee7  cryptonite-0.30/tests/BlockCipher.hs
+formatted       ae1da1712bf7  cryptonite-0.30/tests/ChaCha.hs
+formatted       2ff39a30e968  cryptonite-0.30/tests/ChaChaPoly1305.hs
+formatted       c628564c97aa  cryptonite-0.30/tests/ECC.hs
+formatted       5d886e661761  cryptonite-0.30/tests/ECC/Edwards25519.hs
+formatted       e8de6edaf6ac  cryptonite-0.30/tests/ECDSA.hs
+formatted       27ce811073c1  cryptonite-0.30/tests/Hash.hs
+formatted       e00752436aeb  cryptonite-0.30/tests/Imports.hs
+formatted       beecfeaa8fb1  cryptonite-0.30/tests/KAT_AES.hs
+formatted       810d48314931  cryptonite-0.30/tests/KAT_AES/KATCBC.hs
+formatted       18eaacc22a0b  cryptonite-0.30/tests/KAT_AES/KATCCM.hs
+formatted       44fe15b7084a  cryptonite-0.30/tests/KAT_AES/KATECB.hs
+formatted       82fa19f7ce7a  cryptonite-0.30/tests/KAT_AES/KATGCM.hs
+formatted       615d3d0c3896  cryptonite-0.30/tests/KAT_AES/KATOCB3.hs
+formatted       7ab1f2d998b8  cryptonite-0.30/tests/KAT_AES/KATXTS.hs
+formatted       1e2edc23eab4  cryptonite-0.30/tests/KAT_AESGCMSIV.hs
+formatted       5f71c9d0489d  cryptonite-0.30/tests/KAT_AFIS.hs
+formatted       a29f1f177a83  cryptonite-0.30/tests/KAT_Argon2.hs
+formatted       8415bc362f2c  cryptonite-0.30/tests/KAT_Blowfish.hs
+formatted       05a7dbeb9005  cryptonite-0.30/tests/KAT_CAST5.hs
+formatted       a3584b1b317f  cryptonite-0.30/tests/KAT_CMAC.hs
+formatted       c4f1dbee51d6  cryptonite-0.30/tests/KAT_Camellia.hs
+formatted       6afe12fcf4eb  cryptonite-0.30/tests/KAT_Curve25519.hs
+formatted       6093259a5aa9  cryptonite-0.30/tests/KAT_Curve448.hs
+formatted       8e0eac40b9d6  cryptonite-0.30/tests/KAT_DES.hs
+formatted       3a7902b73bd8  cryptonite-0.30/tests/KAT_Ed25519.hs
+formatted       bbf6a21d5f18  cryptonite-0.30/tests/KAT_Ed448.hs
+formatted       b59a87e7f1e5  cryptonite-0.30/tests/KAT_EdDSA.hs
+formatted       0fa0afdb302b  cryptonite-0.30/tests/KAT_HKDF.hs
+formatted       f0b45b263f2a  cryptonite-0.30/tests/KAT_HMAC.hs
+formatted       ee17a2d47a67  cryptonite-0.30/tests/KAT_KMAC.hs
+formatted       66cf41c37e13  cryptonite-0.30/tests/KAT_MiyaguchiPreneel.hs
+formatted       5161823955d7  cryptonite-0.30/tests/KAT_OTP.hs
+formatted       e23a8a363aff  cryptonite-0.30/tests/KAT_PBKDF2.hs
+formatted       1f0d2812b0a5  cryptonite-0.30/tests/KAT_PubKey.hs
+formatted       c92369374dbb  cryptonite-0.30/tests/KAT_PubKey/DSA.hs
+formatted       743790d1c893  cryptonite-0.30/tests/KAT_PubKey/ECC.hs
+formatted       72827abb8090  cryptonite-0.30/tests/KAT_PubKey/ECDSA.hs
+formatted       0a8edec8bb84  cryptonite-0.30/tests/KAT_PubKey/OAEP.hs
+formatted       6ba37e5828ed  cryptonite-0.30/tests/KAT_PubKey/P256.hs
+formatted       2f24c00b4a7c  cryptonite-0.30/tests/KAT_PubKey/PSS.hs
+formatted       bba8cd12072c  cryptonite-0.30/tests/KAT_PubKey/RSA.hs
+formatted       cd527ad025c4  cryptonite-0.30/tests/KAT_PubKey/Rabin.hs
+formatted       fa1389bb8af8  cryptonite-0.30/tests/KAT_RC4.hs
+formatted       6c174475decc  cryptonite-0.30/tests/KAT_Scrypt.hs
+formatted       36380d994c1c  cryptonite-0.30/tests/KAT_TripleDES.hs
+formatted       88dd0eef74a1  cryptonite-0.30/tests/KAT_Twofish.hs
+formatted       d3ffb4dd724c  cryptonite-0.30/tests/Number.hs
+formatted       9347fc3e6890  cryptonite-0.30/tests/Number/F2m.hs
+formatted       153769199399  cryptonite-0.30/tests/Padding.hs
+formatted       e4b87212dc1f  cryptonite-0.30/tests/Poly1305.hs
+formatted       38c09837971d  cryptonite-0.30/tests/Salsa.hs
+formatted       54065ea7b3f2  cryptonite-0.30/tests/Tests.hs
+formatted       be766d438585  cryptonite-0.30/tests/Utils.hs
+formatted       f7ee48c90ce9  cryptonite-0.30/tests/XSalsa.hs
+formatted       e865ae48f11b  diagrams-core-1.5.1.2/Setup.hs
+formatted       390dfdff3fbc  diagrams-core-1.5.1.2/src/Diagrams/Core.hs
+formatted       5b9f4064740f  diagrams-core-1.5.1.2/src/Diagrams/Core/Compile.hs
+formatted       0c2deef4d97c  diagrams-core-1.5.1.2/src/Diagrams/Core/Envelope.hs
+formatted       c945af86b66d  diagrams-core-1.5.1.2/src/Diagrams/Core/HasOrigin.hs
+formatted       5e6397a73cbf  diagrams-core-1.5.1.2/src/Diagrams/Core/Juxtapose.hs
+formatted       0102accfadbf  diagrams-core-1.5.1.2/src/Diagrams/Core/Measure.hs
+formatted       3f232ced8cd3  diagrams-core-1.5.1.2/src/Diagrams/Core/Names.hs
+formatted       169fec80496d  diagrams-core-1.5.1.2/src/Diagrams/Core/Points.hs
+formatted       f005c45a7335  diagrams-core-1.5.1.2/src/Diagrams/Core/Query.hs
+formatted       5c32f24f7311  diagrams-core-1.5.1.2/src/Diagrams/Core/Style.hs
+formatted       0d93bb9387d4  diagrams-core-1.5.1.2/src/Diagrams/Core/Trace.hs
+formatted       ceb1829b99d5  diagrams-core-1.5.1.2/src/Diagrams/Core/Transform.hs
+formatted       a5ac419d9f46  diagrams-core-1.5.1.2/src/Diagrams/Core/Types.hs
+formatted       a9f71c9c75d0  diagrams-core-1.5.1.2/src/Diagrams/Core/V.hs
+formatted       5cabe7655bac  distributed-process-0.7.8/benchmarks/Channels.hs
+formatted       504953bb1387  distributed-process-0.7.8/benchmarks/Latency.hs
+formatted       e43130036e36  distributed-process-0.7.8/benchmarks/ProcessRing.hs
+formatted       664624ede357  distributed-process-0.7.8/benchmarks/Spawns.hs
+formatted       54738fd746e9  distributed-process-0.7.8/benchmarks/Throughput.hs
+formatted       e7bfb48f27d1  distributed-process-0.7.8/src/Control/Distributed/Process.hs
+formatted       8f3dab3f697b  distributed-process-0.7.8/src/Control/Distributed/Process/Closure.hs
+formatted       9abdf121594b  distributed-process-0.7.8/src/Control/Distributed/Process/Debug.hs
+formatted       c98976ba0493  distributed-process-0.7.8/src/Control/Distributed/Process/Internal/BiMultiMap.hs
+formatted       fe72c6f43347  distributed-process-0.7.8/src/Control/Distributed/Process/Internal/CQueue.hs
+formatted       2946b3a11a2f  distributed-process-0.7.8/src/Control/Distributed/Process/Internal/Closure/BuiltIn.hs
+formatted       a950bf8d3ff9  distributed-process-0.7.8/src/Control/Distributed/Process/Internal/Closure/Explicit.hs
+formatted       8a4e71f45f0a  distributed-process-0.7.8/src/Control/Distributed/Process/Internal/Closure/TH.hs
+formatted       fbf0689c8cf6  distributed-process-0.7.8/src/Control/Distributed/Process/Internal/Messaging.hs
+formatted       c0510eec52c1  distributed-process-0.7.8/src/Control/Distributed/Process/Internal/Primitives.hs
+formatted       c2731aa95425  distributed-process-0.7.8/src/Control/Distributed/Process/Internal/Spawn.hs
+formatted       cd3afabcd890  distributed-process-0.7.8/src/Control/Distributed/Process/Internal/StrictContainerAccessors.hs
+formatted       8a9d9c67b86f  distributed-process-0.7.8/src/Control/Distributed/Process/Internal/StrictList.hs
+formatted       b21182e8f9f2  distributed-process-0.7.8/src/Control/Distributed/Process/Internal/StrictMVar.hs
+formatted       ff8f65da47e4  distributed-process-0.7.8/src/Control/Distributed/Process/Internal/Types.hs
+formatted       d8a70ea27555  distributed-process-0.7.8/src/Control/Distributed/Process/Internal/WeakTQueue.hs
+formatted       b54c3b7901fc  distributed-process-0.7.8/src/Control/Distributed/Process/Management.hs
+formatted       11e628359717  distributed-process-0.7.8/src/Control/Distributed/Process/Management/Internal/Agent.hs
+formatted       39b50d32c5a6  distributed-process-0.7.8/src/Control/Distributed/Process/Management/Internal/Bus.hs
+formatted       5e7aa53931dc  distributed-process-0.7.8/src/Control/Distributed/Process/Management/Internal/Trace/Primitives.hs
+formatted       818907f11c3f  distributed-process-0.7.8/src/Control/Distributed/Process/Management/Internal/Trace/Remote.hs
+formatted       e22725f70cfe  distributed-process-0.7.8/src/Control/Distributed/Process/Management/Internal/Trace/Tracer.hs
+formatted       2b21046051cd  distributed-process-0.7.8/src/Control/Distributed/Process/Management/Internal/Trace/Types.hs
+formatted       07108d12c1fe  distributed-process-0.7.8/src/Control/Distributed/Process/Management/Internal/Types.hs
+formatted       e790ad3384cd  distributed-process-0.7.8/src/Control/Distributed/Process/Node.hs
+formatted       6b86ee01b32a  distributed-process-0.7.8/src/Control/Distributed/Process/Serializable.hs
+formatted       daf3cd1d8b53  distributed-process-0.7.8/src/Control/Distributed/Process/UnsafePrimitives.hs
+formatted       ce7a3d76bb9a  dlist-1.0/Data/DList.hs
+formatted       d276a3077979  dlist-1.0/Data/DList/DNonEmpty.hs
+formatted       3d51b496abb0  dlist-1.0/Data/DList/DNonEmpty/Internal.hs
+partly-checked  7e289a0d3651  dlist-1.0/Data/DList/Internal.hs
+formatted       669ee89127ed  dlist-1.0/Data/DList/Unsafe.hs
+formatted       66e90dad4a5a  dlist-1.0/tests/DListProperties.hs
+formatted       54f0c52fc06b  dlist-1.0/tests/DNonEmptyProperties.hs
+formatted       988c01fea196  dlist-1.0/tests/ImportUnsafe.hs
+formatted       7878296311fe  dlist-1.0/tests/Main.hs
+formatted       4d7411576558  dlist-1.0/tests/OverloadedStrings.hs
+formatted       0c9b9888b599  dlist-1.0/tests/QuickCheckUtil.hs
+formatted       e865ae48f11b  esqueleto-3.6.0.3/Setup.hs
+formatted       fb274a829f01  esqueleto-3.6.0.3/src/Database/Esqueleto.hs
+formatted       99a3554c79c4  esqueleto-3.6.0.3/src/Database/Esqueleto/Experimental.hs
+formatted       f39aad505f10  esqueleto-3.6.0.3/src/Database/Esqueleto/Experimental/From.hs
+formatted       3dc85ea0c84f  esqueleto-3.6.0.3/src/Database/Esqueleto/Experimental/From/CommonTableExpression.hs
+formatted       eb9741d8135b  esqueleto-3.6.0.3/src/Database/Esqueleto/Experimental/From/Join.hs
+formatted       beecd102c083  esqueleto-3.6.0.3/src/Database/Esqueleto/Experimental/From/SqlSetOperation.hs
+formatted       6bfe86eb6141  esqueleto-3.6.0.3/src/Database/Esqueleto/Experimental/ToAlias.hs
+formatted       ed8893f41cd7  esqueleto-3.6.0.3/src/Database/Esqueleto/Experimental/ToAliasReference.hs
+formatted       9f36875401e2  esqueleto-3.6.0.3/src/Database/Esqueleto/Experimental/ToMaybe.hs
+formatted       a736ace7f7d4  esqueleto-3.6.0.3/src/Database/Esqueleto/Internal/ExprParser.hs
+formatted       46c7bdbbee30  esqueleto-3.6.0.3/src/Database/Esqueleto/Internal/Internal.hs
+formatted       8e8a8c378f2b  esqueleto-3.6.0.3/src/Database/Esqueleto/Internal/PersistentImport.hs
+formatted       23c62f207b2d  esqueleto-3.6.0.3/src/Database/Esqueleto/Legacy.hs
+formatted       9cd66d1b3ed2  esqueleto-3.6.0.3/src/Database/Esqueleto/MySQL.hs
+formatted       236ac6325e8b  esqueleto-3.6.0.3/src/Database/Esqueleto/PostgreSQL.hs
+formatted       1b1d21812e48  esqueleto-3.6.0.3/src/Database/Esqueleto/PostgreSQL/JSON.hs
+formatted       df35c8f3b6bf  esqueleto-3.6.0.3/src/Database/Esqueleto/PostgreSQL/JSON/Instances.hs
+formatted       bfa22ec5fd41  esqueleto-3.6.0.3/src/Database/Esqueleto/Record.hs
+formatted       167fa1cef38a  esqueleto-3.6.0.3/src/Database/Esqueleto/SQLite.hs
+formatted       791ffee464be  esqueleto-3.6.0.3/test/Common/Record.hs
+formatted       7db3ef49d34f  esqueleto-3.6.0.3/test/Common/Test.hs
+formatted       07d3054c5606  esqueleto-3.6.0.3/test/Common/Test/CTE.hs
+formatted       1f83d04692e3  esqueleto-3.6.0.3/test/Common/Test/Import.hs
+formatted       2e16567983e5  esqueleto-3.6.0.3/test/Common/Test/Models.hs
+formatted       1e1af0ff65e2  esqueleto-3.6.0.3/test/Common/Test/Select.hs
+formatted       6c403a7dbfd3  esqueleto-3.6.0.3/test/MySQL/Test.hs
+formatted       649022fe6ecf  esqueleto-3.6.0.3/test/PostgreSQL/MigrateJSON.hs
+formatted       b9c4d713d02f  esqueleto-3.6.0.3/test/PostgreSQL/Test.hs
+formatted       0e0ef1763885  esqueleto-3.6.0.3/test/SQLite/Test.hs
+formatted       9c274d8e66c1  esqueleto-3.6.0.3/test/Spec.hs
+formatted       2ddfe57b9539  exceptions-0.10.12/src/Control/Monad/Catch.hs
+formatted       95434fcb6957  exceptions-0.10.12/src/Control/Monad/Catch/Pure.hs
+formatted       da6b7265725b  exceptions-0.10.12/tests/Control/Monad/Catch/Tests.hs
+formatted       bba664ba2b8b  exceptions-0.10.12/tests/Tests.hs
+formatted       421394df9111  fay-0.24.2.0/Setup.hs
+formatted       ec9eeba0c6a1  fay-0.24.2.0/examples/CodeWorld.hs
+formatted       7cf91d63601f  fay-0.24.2.0/examples/CodeWorldMain.hs
+formatted       d34203032896  fay-0.24.2.0/examples/Cont.hs
+formatted       b5088332842e  fay-0.24.2.0/examples/D3TreeSample.hs
+formatted       45fa087c720a  fay-0.24.2.0/examples/FayFromJs.hs
+formatted       d4be2511948d  fay-0.24.2.0/examples/Separated.hs
+formatted       73cbc6340843  fay-0.24.2.0/examples/X.hs
+formatted       89a1e9058dc3  fay-0.24.2.0/examples/Y.hs
+formatted       55d7b8cf115f  fay-0.24.2.0/examples/alert.hs
+formatted       3563971c6bdb  fay-0.24.2.0/examples/calc.hs
+formatted       2d60fb67f2de  fay-0.24.2.0/examples/canvaswater.hs
+formatted       97df12f5dfa2  fay-0.24.2.0/examples/console.hs
+formatted       7608e18ca01c  fay-0.24.2.0/examples/data.hs
+formatted       57124dd1aa0e  fay-0.24.2.0/examples/dom.hs
+formatted       a017f7092550  fay-0.24.2.0/examples/jquery.hs
+formatted       19887dc6f70a  fay-0.24.2.0/examples/json.hs
+formatted       db1cb782ccc3  fay-0.24.2.0/examples/node.hs
+formatted       f3df3b020033  fay-0.24.2.0/examples/nqueens.hs
+formatted       615082642614  fay-0.24.2.0/examples/obj.hs
+formatted       a197f077306c  fay-0.24.2.0/examples/oscillator.hs
+formatted       c79a44579d85  fay-0.24.2.0/examples/pat.hs
+formatted       fa732b1a5e66  fay-0.24.2.0/examples/properties.hs
+formatted       7085b02d6471  fay-0.24.2.0/examples/ref.hs
+formatted       55fe2b9f624f  fay-0.24.2.0/examples/showExamples.hs
+formatted       884b6fbdaadc  fay-0.24.2.0/examples/tailrecursive.hs
+formatted       c2d5e370d7e2  fay-0.24.2.0/src/Fay.hs
+formatted       9a042d6a7ba9  fay-0.24.2.0/src/Fay/Compiler.hs
+formatted       727b9da5eeda  fay-0.24.2.0/src/Fay/Compiler/Decl.hs
+formatted       d4575500ee48  fay-0.24.2.0/src/Fay/Compiler/Defaults.hs
+formatted       891834d5aec2  fay-0.24.2.0/src/Fay/Compiler/Desugar.hs
+formatted       570ca805808c  fay-0.24.2.0/src/Fay/Compiler/Desugar/Name.hs
+formatted       fe53147a7e33  fay-0.24.2.0/src/Fay/Compiler/Desugar/Types.hs
+formatted       cd957c0884e8  fay-0.24.2.0/src/Fay/Compiler/Exp.hs
+formatted       cfc0f0f46b43  fay-0.24.2.0/src/Fay/Compiler/FFI.hs
+formatted       69fd6dd80a66  fay-0.24.2.0/src/Fay/Compiler/GADT.hs
+formatted       bcb9d437929e  fay-0.24.2.0/src/Fay/Compiler/Import.hs
+formatted       766c34ce53b0  fay-0.24.2.0/src/Fay/Compiler/InitialPass.hs
+formatted       d9d683411028  fay-0.24.2.0/src/Fay/Compiler/Misc.hs
+formatted       bce0992d570d  fay-0.24.2.0/src/Fay/Compiler/ModuleT.hs
+formatted       2fdd19da261b  fay-0.24.2.0/src/Fay/Compiler/Optimizer.hs
+formatted       ac32749d90ec  fay-0.24.2.0/src/Fay/Compiler/Packages.hs
+formatted       1798f425b036  fay-0.24.2.0/src/Fay/Compiler/Parse.hs
+formatted       46f343ccba7b  fay-0.24.2.0/src/Fay/Compiler/Pattern.hs
+formatted       7cca783f3fcd  fay-0.24.2.0/src/Fay/Compiler/Prelude.hs
+formatted       0fe3943a05fb  fay-0.24.2.0/src/Fay/Compiler/PrimOp.hs
+formatted       d7dcfe1aa9ca  fay-0.24.2.0/src/Fay/Compiler/Print.hs
+formatted       da23ccb55970  fay-0.24.2.0/src/Fay/Compiler/QName.hs
+formatted       9fe2fbd3e360  fay-0.24.2.0/src/Fay/Compiler/State.hs
+formatted       fb1831a445cc  fay-0.24.2.0/src/Fay/Compiler/Typecheck.hs
+formatted       631cbd5cb454  fay-0.24.2.0/src/Fay/Config.hs
+formatted       15cd1e849d0e  fay-0.24.2.0/src/Fay/Convert.hs
+formatted       80d46083d774  fay-0.24.2.0/src/Fay/Exts.hs
+formatted       7ec6f093e0ca  fay-0.24.2.0/src/Fay/Exts/NoAnnotation.hs
+formatted       bd1f234d96c0  fay-0.24.2.0/src/Fay/Exts/Scoped.hs
+formatted       f7856f337bee  fay-0.24.2.0/src/Fay/FFI.hs
+formatted       7dd89da8a466  fay-0.24.2.0/src/Fay/Runtime.hs
+formatted       0ac5069cbf76  fay-0.24.2.0/src/Fay/Types.hs
+formatted       6654772d79a6  fay-0.24.2.0/src/Fay/Types/CompileError.hs
+formatted       4f7fdfee2a8f  fay-0.24.2.0/src/Fay/Types/CompileResult.hs
+formatted       cea8d04284a4  fay-0.24.2.0/src/Fay/Types/FFI.hs
+formatted       16c62b3f8086  fay-0.24.2.0/src/Fay/Types/Js.hs
+formatted       1165cbb859cc  fay-0.24.2.0/src/Fay/Types/ModulePath.hs
+formatted       ed80698a7cd1  fay-0.24.2.0/src/Fay/Types/Printer.hs
+formatted       6593766b1d2e  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names.hs
+formatted       379279fca760  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/Annotated.hs
+formatted       effa30f29551  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/Exports.hs
+formatted       633d0ead4b0e  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/GetBound.hs
+formatted       74e293075d13  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/GlobalSymbolTable.hs
+formatted       13662130820d  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/GlobalSymbolTable.hs-boot
+formatted       3346bfa56c31  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/Imports.hs
+formatted       bda66c725ce4  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/LocalSymbolTable.hs
+formatted       c6c4acea37c3  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/ModuleSymbols.hs
+formatted       76ce45f69410  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/Open/Base.hs
+formatted       b12db8ba5ce9  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/Open/Derived.hs
+formatted       325536c28de7  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/Open/Instances.hs
+formatted       deb2b656a1ad  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/RecordWildcards.hs
+formatted       80dec7fda3fb  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/Recursive.hs
+formatted       006f3c334ab0  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/ScopeUtils.hs
+formatted       3dd4a51f2cc5  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/SyntaxUtils.hs
+formatted       954e31fc5bf8  fay-0.24.2.0/src/haskell-names/Language/Haskell/Names/Types.hs
+formatted       a185a50b6e6a  fay-0.24.2.0/src/main/Main.hs
+formatted       b9c869a29067  fay-0.24.2.0/src/tests/Test/CommandLine.hs
+formatted       68c640b352e9  fay-0.24.2.0/src/tests/Test/Compile.hs
+formatted       6fdbf9951c76  fay-0.24.2.0/src/tests/Test/Convert.hs
+formatted       89d594b07db0  fay-0.24.2.0/src/tests/Test/Desugar.hs
+formatted       a3937c4d8bef  fay-0.24.2.0/src/tests/Test/Util.hs
+formatted       63cce78f9492  fay-0.24.2.0/src/tests/Tests.hs
+formatted       8114602da4c3  fay-0.24.2.0/tests/AllBaseModules.hs
+formatted       e78d25c5a73d  fay-0.24.2.0/tests/AutomaticList.hs
+formatted       779c72fbdb74  fay-0.24.2.0/tests/Bool.hs
+formatted       ad89dd2cf37b  fay-0.24.2.0/tests/CPP.hs
+formatted       61e542a01350  fay-0.24.2.0/tests/Char.hs
+formatted       7badee2f20a7  fay-0.24.2.0/tests/Compile/CPPMultiLineStrings.hs
+formatted       a5ace073f2a3  fay-0.24.2.0/tests/Compile/CPPTypecheck.hs
+formatted       66d008a435ce  fay-0.24.2.0/tests/Compile/EnumChar.hs
+formatted       79a705007362  fay-0.24.2.0/tests/Compile/ImportRecords.hs
+formatted       ad7ecf9ee4fe  fay-0.24.2.0/tests/Compile/Records.hs
+formatted       9817e9c801a0  fay-0.24.2.0/tests/Compile/StrictWrapper.hs
+formatted       3f10c446d77e  fay-0.24.2.0/tests/Compile/pretty.hs
+formatted       3f10c446d77e  fay-0.24.2.0/tests/Compile/prettyOperators.hs
+formatted       3f10c446d77e  fay-0.24.2.0/tests/Compile/prettyThunks.hs
+formatted       7e5ba819c89a  fay-0.24.2.0/tests/Defined.hs
+formatted       933b5c75c95d  fay-0.24.2.0/tests/DesugarFFI.hs
+formatted       247bf5cdbba0  fay-0.24.2.0/tests/DoLet2.hs
+formatted       8e59e23cdef2  fay-0.24.2.0/tests/DoLet3.hs
+formatted       8506e48ae167  fay-0.24.2.0/tests/Double.hs
+formatted       555ed6125da8  fay-0.24.2.0/tests/Double2.hs
+formatted       940c2db0f038  fay-0.24.2.0/tests/Double3.hs
+formatted       ce51517b312e  fay-0.24.2.0/tests/Double4.hs
+formatted       e7d8f2571cb1  fay-0.24.2.0/tests/Either.hs
+formatted       f00c11dbed60  fay-0.24.2.0/tests/EmptyDataDeclArray.hs
+formatted       7c2bc66a86e6  fay-0.24.2.0/tests/Eq.hs
+formatted       25d8fd9d5d5a  fay-0.24.2.0/tests/ExportEThingAll.hs
+formatted       bea5851db3b4  fay-0.24.2.0/tests/ExportEThingAll_Export.hs
+formatted       b86ba0189dff  fay-0.24.2.0/tests/ExportEThingWith.hs
+formatted       6c639783702a  fay-0.24.2.0/tests/ExportList.hs
+formatted       c70d5951fda8  fay-0.24.2.0/tests/ExportList_A.hs
+formatted       eb351b1cfd3e  fay-0.24.2.0/tests/ExportList_B.hs
+formatted       4736c70718a7  fay-0.24.2.0/tests/ExportList_C.hs
+formatted       41c7f9eb857a  fay-0.24.2.0/tests/ExportList_D.hs
+formatted       b42dad751766  fay-0.24.2.0/tests/ExportQualified_Export.hs
+formatted       e08dc6f4e84b  fay-0.24.2.0/tests/ExportQualified_Import.hs
+formatted       e9617631d536  fay-0.24.2.0/tests/ExportType.hs
+formatted       ba54245a67ef  fay-0.24.2.0/tests/Floating.hs
+formatted       02165869295d  fay-0.24.2.0/tests/FromString.hs
+formatted       fc43945a5277  fay-0.24.2.0/tests/FromString/Dep.hs
+formatted       09e516e107ad  fay-0.24.2.0/tests/FromString/DepDep.hs
+formatted       81bdb91ec92b  fay-0.24.2.0/tests/FromString/FayText.hs
+formatted       3da43a919ebc  fay-0.24.2.0/tests/GADTs_without_records.hs
+formatted       102949714efb  fay-0.24.2.0/tests/GuardWhere.hs
+formatted       4c6803c7f169  fay-0.24.2.0/tests/HidePreludeImport.hs
+formatted       a1408d450caf  fay-0.24.2.0/tests/HidePreludeImport_Import.hs
+formatted       fa5b4cc76a44  fay-0.24.2.0/tests/Hierarchical/Export.hs
+formatted       102307416bcd  fay-0.24.2.0/tests/Hierarchical/RecordDefined.hs
+formatted       920c9acca3b5  fay-0.24.2.0/tests/HierarchicalImport.hs
+formatted       def230ba708f  fay-0.24.2.0/tests/ImplicitPrelude.hs
+formatted       c71809dd7876  fay-0.24.2.0/tests/ImportHiding.hs
+formatted       75f8ddda7df8  fay-0.24.2.0/tests/ImportIThingAll.hs
+formatted       b4c50a46461c  fay-0.24.2.0/tests/ImportList.hs
+formatted       87c5a69d1b76  fay-0.24.2.0/tests/ImportList1/A.hs
+formatted       a25b5782f91c  fay-0.24.2.0/tests/ImportList1/B.hs
+formatted       a9003116e1c9  fay-0.24.2.0/tests/ImportList1/C.hs
+formatted       b5cb6de55974  fay-0.24.2.0/tests/ImportListType.hs
+formatted       69bb47d76aef  fay-0.24.2.0/tests/ImportType.hs
+formatted       440bc41f78be  fay-0.24.2.0/tests/ImportType2.hs
+formatted       5ff8e931a567  fay-0.24.2.0/tests/ImportType2I/A.hs
+formatted       e15dbb9a2720  fay-0.24.2.0/tests/ImportType2I/B.hs
+formatted       9d4bcec16bd7  fay-0.24.2.0/tests/Integer.hs
+formatted       ed2b3650244f  fay-0.24.2.0/tests/Integral.hs
+formatted       dadef2b7cb03  fay-0.24.2.0/tests/Issue215/B.hs
+formatted       eeedb44973d0  fay-0.24.2.0/tests/Issue215A.hs
+formatted       b0a19078b259  fay-0.24.2.0/tests/Js2FayFunc.hs
+formatted       8592007d3db3  fay-0.24.2.0/tests/JsFunctionPassing.hs
+formatted       009642e56a6b  fay-0.24.2.0/tests/LambdaCase.hs
+formatted       47266926fa39  fay-0.24.2.0/tests/LazyOperators.hs
+formatted       ee291ee7e00e  fay-0.24.2.0/tests/List.hs
+formatted       c8021ca9ec3f  fay-0.24.2.0/tests/List2.hs
+formatted       a93b0ff4bcc5  fay-0.24.2.0/tests/ListEq.hs
+formatted       c3daafcf2461  fay-0.24.2.0/tests/MainThunk.hs
+formatted       350d9831d6f8  fay-0.24.2.0/tests/ModuleReExport/ExportsIdentifier.hs
+formatted       25cef8780cae  fay-0.24.2.0/tests/ModuleReExport/ExportsModule.hs
+formatted       9dfef0f7c129  fay-0.24.2.0/tests/ModuleReExports.hs
+formatted       c082d387d888  fay-0.24.2.0/tests/ModuleRecordClash.hs
+formatted       997782df97ba  fay-0.24.2.0/tests/ModuleRecordClash/R.hs
+formatted       53ea9782c8a3  fay-0.24.2.0/tests/ModuleRecordClash2.hs
+formatted       3f2cf09e81b7  fay-0.24.2.0/tests/ModuleRecordClash2_Hello.hs
+formatted       1a83fbebaaf8  fay-0.24.2.0/tests/Monad.hs
+formatted       b3f89d2ed36e  fay-0.24.2.0/tests/Monad2.hs
+formatted       0c9780229637  fay-0.24.2.0/tests/MultiWayIf.hs
+formatted       0e3845c048a2  fay-0.24.2.0/tests/NestedImporting.hs
+formatted       4b3a670722e0  fay-0.24.2.0/tests/NestedImporting/A.hs
+formatted       2a092a0c1f4c  fay-0.24.2.0/tests/NestedImporting2.hs
+formatted       19cbbffb80bc  fay-0.24.2.0/tests/NestedImporting2/A.hs
+formatted       17f211243d54  fay-0.24.2.0/tests/NewtypeImport_Export.hs
+formatted       34ed28dbd073  fay-0.24.2.0/tests/NewtypeImport_Import.hs
+formatted       ad07b3a0d755  fay-0.24.2.0/tests/Nullable.hs
+formatted       f01c35cc494d  fay-0.24.2.0/tests/Num.hs
+formatted       75ea0e91fb04  fay-0.24.2.0/tests/Ord.hs
+formatted       66e4369c7bda  fay-0.24.2.0/tests/PrefixOpPat.hs
+formatted       129023442df5  fay-0.24.2.0/tests/QualifiedImport.hs
+formatted       3298b9301836  fay-0.24.2.0/tests/QualifiedImport/X.hs
+formatted       391559feaa6f  fay-0.24.2.0/tests/QualifiedImport/Y.hs
+formatted       5a73215af899  fay-0.24.2.0/tests/Ratio.hs
+formatted       577c81fcbe39  fay-0.24.2.0/tests/ReExport1.hs
+formatted       97f273a7040d  fay-0.24.2.0/tests/ReExport2.hs
+formatted       9fb50fe15789  fay-0.24.2.0/tests/ReExport3.hs
+formatted       8b077416b2a2  fay-0.24.2.0/tests/ReExportGlobally.hs
+formatted       4b9cbdde2416  fay-0.24.2.0/tests/ReExportGlobally/A.hs
+formatted       b21d1616e152  fay-0.24.2.0/tests/ReExportGloballyExplicit.hs
+formatted       9315bbd88930  fay-0.24.2.0/tests/RealFrac.hs
+formatted       1a6a33c6ac9d  fay-0.24.2.0/tests/RecCon.hs
+formatted       986c34c1b565  fay-0.24.2.0/tests/RecDecl.hs
+formatted       bb55ab6798d0  fay-0.24.2.0/tests/RecordImport2_Export1.hs
+formatted       938433aeb8c8  fay-0.24.2.0/tests/RecordImport2_Export2.hs
+formatted       c044e70c8101  fay-0.24.2.0/tests/RecordImport2_Import.hs
+formatted       9ed1c0f11b4a  fay-0.24.2.0/tests/RecordImport_Export.hs
+formatted       7436f43b45cc  fay-0.24.2.0/tests/RecordImport_Import.hs
+formatted       227a87a9ae8b  fay-0.24.2.0/tests/Sink.hs
+formatted       0d52d0cd7e4b  fay-0.24.2.0/tests/SkipLetTypes.hs
+formatted       79a7eb241171  fay-0.24.2.0/tests/SkipWhereTypes.hs
+formatted       b2f90faa6d96  fay-0.24.2.0/tests/StringForcing.hs
+formatted       78f704c770c1  fay-0.24.2.0/tests/Strings.hs
+formatted       b23a6f00c551  fay-0.24.2.0/tests/T190.hs
+formatted       692f0dae5fb8  fay-0.24.2.0/tests/T190_A.hs
+formatted       8e73afc88ae8  fay-0.24.2.0/tests/T190_B.hs
+formatted       e68acdaf2dfe  fay-0.24.2.0/tests/T190_C.hs
+formatted       7bd1c4fd8478  fay-0.24.2.0/tests/TextOrd.hs
+formatted       f47544b81667  fay-0.24.2.0/tests/Trace.hs
+formatted       c578ce2acbf6  fay-0.24.2.0/tests/TupleCalls.hs
+formatted       d35a3f3c7245  fay-0.24.2.0/tests/TyVarSerialization.hs
+formatted       7d85fb13bd93  fay-0.24.2.0/tests/Var.hs
+formatted       7a2ffc1587f5  fay-0.24.2.0/tests/VarPtr.hs
+formatted       5bcb67338113  fay-0.24.2.0/tests/WhenUnlessRecursion.hs
+formatted       c767b8778a1d  fay-0.24.2.0/tests/asPatternMatch.hs
+formatted       aa05f8bd2bf0  fay-0.24.2.0/tests/automatic.hs
+formatted       83d1d385ae83  fay-0.24.2.0/tests/baseFixities.hs
+formatted       ce58f47bac04  fay-0.24.2.0/tests/basicFunctions.hs
+formatted       33b5a5453ff8  fay-0.24.2.0/tests/case.hs
+formatted       a51f036ac082  fay-0.24.2.0/tests/case2.hs
+formatted       4a4542652251  fay-0.24.2.0/tests/case3.hs
+formatted       e563419849e3  fay-0.24.2.0/tests/caseList.hs
+formatted       6f41ab7df8c9  fay-0.24.2.0/tests/caseWildcard.hs
+formatted       9437474fc565  fay-0.24.2.0/tests/circular.hs
+formatted       3ac360393116  fay-0.24.2.0/tests/curry.hs
+formatted       9bbe8cd8c749  fay-0.24.2.0/tests/cycle.hs
+formatted       d07827315b77  fay-0.24.2.0/tests/do.hs
+formatted       262e4e61e6b8  fay-0.24.2.0/tests/doAssingPatternMatch.hs
+formatted       ad5b707f664a  fay-0.24.2.0/tests/doBindAssign.hs
+formatted       e41cbdd7656a  fay-0.24.2.0/tests/doLet.hs
+formatted       9f8a8d10c1d3  fay-0.24.2.0/tests/emptyMain.hs
+formatted       380eff7dedb9  fay-0.24.2.0/tests/enumFrom.hs
+formatted       05834fe58432  fay-0.24.2.0/tests/error.hs
+formatted       f563902672cb  fay-0.24.2.0/tests/ffiExpr.hs
+formatted       73697f0c099c  fay-0.24.2.0/tests/ffimunging.hs
+formatted       dc67c504a097  fay-0.24.2.0/tests/fix.hs
+formatted       9267690ec8d2  fay-0.24.2.0/tests/fromInteger.hs
+formatted       73a7dce83bdd  fay-0.24.2.0/tests/fromIntegral.hs
+formatted       860a7aed8af3  fay-0.24.2.0/tests/guards.hs
+formatted       8ff7b7e5d80d  fay-0.24.2.0/tests/infixDataConst.hs
+formatted       99c963974ca0  fay-0.24.2.0/tests/ints.hs
+formatted       9ec2af24577b  fay-0.24.2.0/tests/linesAndWords.hs
+formatted       36a10a974013  fay-0.24.2.0/tests/listComprehensions.hs
+formatted       392b79e97d1d  fay-0.24.2.0/tests/listlen.hs
+formatted       9d98dc262b39  fay-0.24.2.0/tests/mutableReference.hs
+formatted       f983711e6f6b  fay-0.24.2.0/tests/nameGen.hs
+formatted       00499901b441  fay-0.24.2.0/tests/namedFieldPuns.hs
+formatted       68fcd666b331  fay-0.24.2.0/tests/negation.hs
+formatted       4c9cf35b4aee  fay-0.24.2.0/tests/newtype.hs
+formatted       36cf37d7cd68  fay-0.24.2.0/tests/newtypeIndirectApp.hs
+formatted       a587812e6602  fay-0.24.2.0/tests/numTheory.hs
+formatted       40bd883716b3  fay-0.24.2.0/tests/nums.hs
+formatted       c27df9670630  fay-0.24.2.0/tests/pats.hs
+formatted       b317cbb85f97  fay-0.24.2.0/tests/patternGuards.hs
+formatted       353e37b5a857  fay-0.24.2.0/tests/patternMatchFail.hs
+formatted       0e69935e45c9  fay-0.24.2.0/tests/patternMatchLet.hs
+formatted       f963663ae2cf  fay-0.24.2.0/tests/patternMatchingTuples.hs
+formatted       41871bce5735  fay-0.24.2.0/tests/recordFunctionPatternMatch.hs
+formatted       6010444abc75  fay-0.24.2.0/tests/recordPatternMatch.hs
+formatted       0dda5fc8df9d  fay-0.24.2.0/tests/recordPatternMatch2.hs
+formatted       63b9091a92a2  fay-0.24.2.0/tests/recordUseBeforeDefine.hs
+formatted       6000e445e696  fay-0.24.2.0/tests/recordWildCards.hs
+formatted       63a19682d7d9  fay-0.24.2.0/tests/records.hs
+formatted       a371f7d8d704  fay-0.24.2.0/tests/recursive.hs
+formatted       9797f8836f3b  fay-0.24.2.0/tests/reservedWords.hs
+formatted       3bdaf5d65328  fay-0.24.2.0/tests/sections.hs
+formatted       19e9c7c69db9  fay-0.24.2.0/tests/seq-fake.hs
+formatted       2ac1dc3c2516  fay-0.24.2.0/tests/seq.hs
+formatted       add7affcb8d6  fay-0.24.2.0/tests/serialization.hs
+formatted       e76961e79030  fay-0.24.2.0/tests/succPred.hs
+formatted       461d16ef4da1  fay-0.24.2.0/tests/tailRecursion.hs
+formatted       b29bc268b713  fay-0.24.2.0/tests/then.hs
+formatted       7b2a525c6d17  fay-0.24.2.0/tests/tupleCon.hs
+formatted       71a59816933e  fay-0.24.2.0/tests/tupleSec.hs
+formatted       c864de89b243  fay-0.24.2.0/tests/unit.hs
+formatted       cfb7dd15a745  fay-0.24.2.0/tests/utf8.hs
+formatted       68905bc32429  fay-0.24.2.0/tests/where.hs
+formatted       6ea0b301c8c4  fay-0.24.2.0/tests/whereBind.hs
+formatted       62b7dd25b5c9  fay-0.24.2.0/tests/whereBind2.hs
+formatted       dd52de0acf94  fay-0.24.2.0/tests/whereBind3.hs
+formatted       b3d258de0403  free-5.2/examples/PerfTH.hs
+formatted       24418bc38fac  free-5.2/examples/RetryTH.hs
+formatted       7641743d0c1f  free-5.2/examples/ValidationForm.hs
+formatted       9fcd1a6b4714  free-5.2/src/Control/Alternative/Free.hs
+formatted       6cdf81c21164  free-5.2/src/Control/Alternative/Free/Final.hs
+formatted       8b307bae43e5  free-5.2/src/Control/Applicative/Free.hs
+formatted       1593e637f12f  free-5.2/src/Control/Applicative/Free/Fast.hs
+formatted       f23f3f214be8  free-5.2/src/Control/Applicative/Free/Final.hs
+formatted       51e39ca09f78  free-5.2/src/Control/Applicative/Trans/Free.hs
+formatted       dd9069083e98  free-5.2/src/Control/Comonad/Cofree.hs
+formatted       9b0f6d5a4082  free-5.2/src/Control/Comonad/Cofree/Class.hs
+formatted       866a464a9f8d  free-5.2/src/Control/Comonad/Trans/Cofree.hs
+formatted       19144d43e9b1  free-5.2/src/Control/Comonad/Trans/Coiter.hs
+formatted       f6734128b306  free-5.2/src/Control/Monad/Free.hs
+formatted       92f9ffbc940f  free-5.2/src/Control/Monad/Free/Ap.hs
+formatted       93c96d44b956  free-5.2/src/Control/Monad/Free/Church.hs
+formatted       39bf4e33f6e2  free-5.2/src/Control/Monad/Free/Class.hs
+formatted       d6318fb07edb  free-5.2/src/Control/Monad/Free/TH.hs
+formatted       a51821c826a6  free-5.2/src/Control/Monad/Trans/Free.hs
+formatted       b9554e2bf6b2  free-5.2/src/Control/Monad/Trans/Free/Ap.hs
+formatted       91e1c571caac  free-5.2/src/Control/Monad/Trans/Free/Church.hs
+formatted       d881a98c4458  free-5.2/src/Control/Monad/Trans/Iter.hs
+formatted       56c248be435c  fsnotify-0.4.4.0/Setup.hs
+formatted       389a7e5c2ae0  fsnotify-0.4.4.0/example/Main.hs
+formatted       79850be0460c  fsnotify-0.4.4.0/src/System/FSNotify.hs
+formatted       6305f96f4771  fsnotify-0.4.4.0/src/System/FSNotify/Devel.hs
+formatted       0d0e6f3eaf91  fsnotify-0.4.4.0/src/System/FSNotify/Find.hs
+formatted       b3352b1bac69  fsnotify-0.4.4.0/src/System/FSNotify/Linux.hs
+formatted       625e3b56cc56  fsnotify-0.4.4.0/src/System/FSNotify/Linux/Util.hs
+formatted       4117630a0f98  fsnotify-0.4.4.0/src/System/FSNotify/Listener.hs
+formatted       27f8de9419d7  fsnotify-0.4.4.0/src/System/FSNotify/OSX.hs
+formatted       7469549d73c7  fsnotify-0.4.4.0/src/System/FSNotify/Path.hs
+formatted       519b0f9f9013  fsnotify-0.4.4.0/src/System/FSNotify/Polling.hs
+formatted       a2ef1e22a2f9  fsnotify-0.4.4.0/src/System/FSNotify/Types.hs
+formatted       e0e90401aa05  fsnotify-0.4.4.0/src/System/FSNotify/Win32.hs
+formatted       c7e9311ea071  fsnotify-0.4.4.0/test/FSNotify/Test/EventTests.hs
+partly-checked  e314b5ced2e3  fsnotify-0.4.4.0/test/FSNotify/Test/Util.hs
+formatted       77d07b9cdac3  fsnotify-0.4.4.0/test/Main.hs
+formatted       d207c49e99c4  fsnotify-0.4.4.0/win-src/System/Win32/Notify.hs
+formatted       e865ae48f11b  hakyll-4.17.0.0/Setup.hs
+formatted       0a3f98709f72  hakyll-4.17.0.0/data/example/site.hs
+formatted       116aaa72d476  hakyll-4.17.0.0/lib/Data/List/Extended.hs
+formatted       f638cd45236f  hakyll-4.17.0.0/lib/Data/Yaml/Extended.hs
+formatted       0fcae45b2ba9  hakyll-4.17.0.0/lib/Hakyll.hs
+formatted       26eb24c40060  hakyll-4.17.0.0/lib/Hakyll/Check.hs
+formatted       0442498d286c  hakyll-4.17.0.0/lib/Hakyll/Commands.hs
+formatted       dd7499d469a5  hakyll-4.17.0.0/lib/Hakyll/Core/Compiler.hs
+formatted       e9f89f339007  hakyll-4.17.0.0/lib/Hakyll/Core/Compiler/Internal.hs
+formatted       c7cfc530bd2a  hakyll-4.17.0.0/lib/Hakyll/Core/Compiler/Require.hs
+formatted       10bda89cbe6d  hakyll-4.17.0.0/lib/Hakyll/Core/Configuration.hs
+formatted       9ea9908950b2  hakyll-4.17.0.0/lib/Hakyll/Core/Dependencies.hs
+formatted       558f0d294954  hakyll-4.17.0.0/lib/Hakyll/Core/File.hs
+formatted       c3cd48ba4d35  hakyll-4.17.0.0/lib/Hakyll/Core/Identifier.hs
+formatted       02b568af6a14  hakyll-4.17.0.0/lib/Hakyll/Core/Identifier/Pattern.hs
+formatted       4da1703227de  hakyll-4.17.0.0/lib/Hakyll/Core/Identifier/Pattern/Internal.hs
+formatted       25bce39252d0  hakyll-4.17.0.0/lib/Hakyll/Core/Item.hs
+formatted       ea66b0f47f92  hakyll-4.17.0.0/lib/Hakyll/Core/Item/SomeItem.hs
+formatted       8d06795590b2  hakyll-4.17.0.0/lib/Hakyll/Core/Logger.hs
+formatted       06876ce9052c  hakyll-4.17.0.0/lib/Hakyll/Core/Metadata.hs
+formatted       6e39852547dc  hakyll-4.17.0.0/lib/Hakyll/Core/Provider.hs
+formatted       1de546a3cffb  hakyll-4.17.0.0/lib/Hakyll/Core/Provider/Internal.hs
+formatted       4380c86a9504  hakyll-4.17.0.0/lib/Hakyll/Core/Provider/Metadata.hs
+formatted       0cfbeb9b73ba  hakyll-4.17.0.0/lib/Hakyll/Core/Provider/MetadataCache.hs
+formatted       4d859f3e45b2  hakyll-4.17.0.0/lib/Hakyll/Core/Routes.hs
+formatted       1be73b780ecd  hakyll-4.17.0.0/lib/Hakyll/Core/Rules.hs
+formatted       93257f6a99a8  hakyll-4.17.0.0/lib/Hakyll/Core/Rules/Internal.hs
+formatted       f97472fe3373  hakyll-4.17.0.0/lib/Hakyll/Core/Runtime.hs
+formatted       df1c2bd7e8fb  hakyll-4.17.0.0/lib/Hakyll/Core/Store.hs
+formatted       bdd417b6806c  hakyll-4.17.0.0/lib/Hakyll/Core/UnixFilter.hs
+formatted       acbb971a63bc  hakyll-4.17.0.0/lib/Hakyll/Core/Util/File.hs
+formatted       5cef0dfbc5f6  hakyll-4.17.0.0/lib/Hakyll/Core/Util/Parser.hs
+formatted       3f21bbf445b2  hakyll-4.17.0.0/lib/Hakyll/Core/Util/String.hs
+formatted       a3abc0522132  hakyll-4.17.0.0/lib/Hakyll/Core/Writable.hs
+formatted       89452e47ea7e  hakyll-4.17.0.0/lib/Hakyll/Main.hs
+formatted       6ed09594e890  hakyll-4.17.0.0/lib/Hakyll/Preview/Poll.hs
+formatted       d363dc04f1a7  hakyll-4.17.0.0/lib/Hakyll/Preview/Server.hs
+formatted       90f95798e3c7  hakyll-4.17.0.0/lib/Hakyll/Web/CompressCss.hs
+formatted       671587b91bc7  hakyll-4.17.0.0/lib/Hakyll/Web/Feed.hs
+formatted       e50bf6641fdd  hakyll-4.17.0.0/lib/Hakyll/Web/Html.hs
+formatted       2c80bbb22db0  hakyll-4.17.0.0/lib/Hakyll/Web/Html/RelativizeUrls.hs
+formatted       96d6089c0c79  hakyll-4.17.0.0/lib/Hakyll/Web/Meta/JSONLD.hs
+formatted       a3dbe80d0b45  hakyll-4.17.0.0/lib/Hakyll/Web/Meta/OpenGraph.hs
+formatted       a3b6503b2c4a  hakyll-4.17.0.0/lib/Hakyll/Web/Meta/TwitterCard.hs
+formatted       47b99b2ffc3a  hakyll-4.17.0.0/lib/Hakyll/Web/Paginate.hs
+formatted       b95f8f27cbd7  hakyll-4.17.0.0/lib/Hakyll/Web/Pandoc.hs
+formatted       c168dc9fdb41  hakyll-4.17.0.0/lib/Hakyll/Web/Pandoc/Biblio.hs
+formatted       63c711e3ed6f  hakyll-4.17.0.0/lib/Hakyll/Web/Pandoc/Binary.hs
+formatted       0fc2b889ce48  hakyll-4.17.0.0/lib/Hakyll/Web/Pandoc/FileType.hs
+formatted       d77258d3d120  hakyll-4.17.0.0/lib/Hakyll/Web/Redirect.hs
+formatted       89e848715da3  hakyll-4.17.0.0/lib/Hakyll/Web/Tags.hs
+formatted       07888eef3bb3  hakyll-4.17.0.0/lib/Hakyll/Web/Template.hs
+formatted       61c4714e9090  hakyll-4.17.0.0/lib/Hakyll/Web/Template/Context.hs
+formatted       46295fe0766a  hakyll-4.17.0.0/lib/Hakyll/Web/Template/Internal.hs
+formatted       d367498bf2ae  hakyll-4.17.0.0/lib/Hakyll/Web/Template/Internal/Element.hs
+formatted       7741b1b5c63c  hakyll-4.17.0.0/lib/Hakyll/Web/Template/Internal/Trim.hs
+formatted       270fe0160883  hakyll-4.17.0.0/lib/Hakyll/Web/Template/List.hs
+formatted       73b58eb8d063  hakyll-4.17.0.0/src/Init.hs
+formatted       a98f565dc3bd  hakyll-4.17.0.0/tests/Hakyll/Core/Dependencies/Tests.hs
+formatted       3bf0323ba67d  hakyll-4.17.0.0/tests/Hakyll/Core/Identifier/Tests.hs
+formatted       9de7f44e0478  hakyll-4.17.0.0/tests/Hakyll/Core/Provider/Metadata/Tests.hs
+formatted       7741f8e19a21  hakyll-4.17.0.0/tests/Hakyll/Core/Provider/Tests.hs
+formatted       0a6fac8a3fe5  hakyll-4.17.0.0/tests/Hakyll/Core/Routes/Tests.hs
+formatted       db910a6e5dc7  hakyll-4.17.0.0/tests/Hakyll/Core/Rules/Tests.hs
+formatted       82ed53ac9567  hakyll-4.17.0.0/tests/Hakyll/Core/Runtime/Tests.hs
+formatted       3a05a7e0bc33  hakyll-4.17.0.0/tests/Hakyll/Core/Store/Tests.hs
+formatted       1d5cb288b64e  hakyll-4.17.0.0/tests/Hakyll/Core/UnixFilter/Tests.hs
+formatted       6e4a85499d79  hakyll-4.17.0.0/tests/Hakyll/Core/Util/String/Tests.hs
+formatted       f1ebb50fe01f  hakyll-4.17.0.0/tests/Hakyll/Web/CompressCss/Tests.hs
+formatted       80f74904677f  hakyll-4.17.0.0/tests/Hakyll/Web/Feed/Tests.hs
+formatted       d894df9d2439  hakyll-4.17.0.0/tests/Hakyll/Web/Html/RelativizeUrls/Tests.hs
+formatted       4744c78df9c5  hakyll-4.17.0.0/tests/Hakyll/Web/Html/Tests.hs
+formatted       2a15f11a4a04  hakyll-4.17.0.0/tests/Hakyll/Web/Pandoc/Biblio/Tests.hs
+formatted       2ea236fa5d2a  hakyll-4.17.0.0/tests/Hakyll/Web/Pandoc/FileType/Tests.hs
+formatted       9f03f7b47ce5  hakyll-4.17.0.0/tests/Hakyll/Web/Tags/Tests.hs
+formatted       c56b3b0da4d3  hakyll-4.17.0.0/tests/Hakyll/Web/Template/Context/Tests.hs
+formatted       e2ffd8e19970  hakyll-4.17.0.0/tests/Hakyll/Web/Template/Tests.hs
+formatted       809577082614  hakyll-4.17.0.0/tests/TestSuite.hs
+formatted       d0e8ca390798  hakyll-4.17.0.0/tests/TestSuite/Util.hs
+formatted       66153c16e099  hakyll-4.17.0.0/web/site.hs
+formatted       9226007b6541  hashable-1.5.1.0/Setup.hs
+formatted       ca97ac3a2690  hashable-1.5.1.0/examples/Main.hs
+formatted       eeae7da4f236  hashable-1.5.1.0/src/Data/Hashable.hs
+partly-checked  87f8823c46f6  hashable-1.5.1.0/src/Data/Hashable/Class.hs
+formatted       77b173dc1cff  hashable-1.5.1.0/src/Data/Hashable/FFI.hs
+formatted       d2be5b809f2a  hashable-1.5.1.0/src/Data/Hashable/Generic.hs
+formatted       bef7142e6e4e  hashable-1.5.1.0/src/Data/Hashable/Generic/Instances.hs
+formatted       c9c87bb00bc0  hashable-1.5.1.0/src/Data/Hashable/Imports.hs
+formatted       e6b4c010a36d  hashable-1.5.1.0/src/Data/Hashable/Lifted.hs
+formatted       710bda251742  hashable-1.5.1.0/src/Data/Hashable/LowLevel.hs
+formatted       228c88ef0843  hashable-1.5.1.0/src/Data/Hashable/Mix.hs
+formatted       bd7108c77ca4  hashable-1.5.1.0/src/Data/Hashable/XXH3.hs
+formatted       f74f5b618f9a  hashable-1.5.1.0/tests/Main.hs
+formatted       32ee1e5efc54  hashable-1.5.1.0/tests/Properties.hs
+formatted       aa65b20321d6  hashable-1.5.1.0/tests/Regress.hs
+formatted       468c72120829  hashable-1.5.1.0/tests/xxhash-tests.hs
+formatted       fd56f35a1469  haxl-2.5.1.1/Haxl/Core.hs
+formatted       d1219c0fe211  haxl-2.5.1.1/Haxl/Core/CallGraph.hs
+formatted       df46f7db59bc  haxl-2.5.1.1/Haxl/Core/DataCache.hs
+formatted       23dc644893ba  haxl-2.5.1.1/Haxl/Core/DataSource.hs
+formatted       30d8adb0a3bc  haxl-2.5.1.1/Haxl/Core/Exception.hs
+formatted       270cd401eb34  haxl-2.5.1.1/Haxl/Core/Fetch.hs
+formatted       b4afaa8d717d  haxl-2.5.1.1/Haxl/Core/Flags.hs
+formatted       6116af7c8eab  haxl-2.5.1.1/Haxl/Core/Memo.hs
+formatted       331b6d94ce03  haxl-2.5.1.1/Haxl/Core/Monad.hs
+formatted       19ee0e1d26fe  haxl-2.5.1.1/Haxl/Core/Parallel.hs
+formatted       d03eb9460c3a  haxl-2.5.1.1/Haxl/Core/Profile.hs
+formatted       015cb76495fb  haxl-2.5.1.1/Haxl/Core/RequestStore.hs
+formatted       c0648ec8a2c7  haxl-2.5.1.1/Haxl/Core/Run.hs
+formatted       a8e73c380c33  haxl-2.5.1.1/Haxl/Core/ShowP.hs
+formatted       f2cb25c4ae73  haxl-2.5.1.1/Haxl/Core/StateStore.hs
+formatted       fa6eb029c52a  haxl-2.5.1.1/Haxl/Core/Stats.hs
+formatted       bd368a5862fd  haxl-2.5.1.1/Haxl/Core/Util.hs
+formatted       4d201ce15d28  haxl-2.5.1.1/Haxl/DataSource/ConcurrentIO.hs
+formatted       cf38b55569d1  haxl-2.5.1.1/Haxl/Prelude.hs
+formatted       0bf115c25c25  haxl-2.5.1.1/Setup.hs
+formatted       5897e1a72e86  haxl-2.5.1.1/tests/AdoTests.hs
+formatted       7392cb2bf8df  haxl-2.5.1.1/tests/AllTests.hs
+formatted       29963bfcd43e  haxl-2.5.1.1/tests/BadDataSource.hs
+formatted       9869a85f8734  haxl-2.5.1.1/tests/BatchTests.hs
+formatted       a75656cc58b4  haxl-2.5.1.1/tests/Bench.hs
+formatted       6b4d75212e14  haxl-2.5.1.1/tests/CoreTests.hs
+formatted       46378c08a2d4  haxl-2.5.1.1/tests/DataCacheTest.hs
+formatted       8120f9ee1106  haxl-2.5.1.1/tests/DataSourceDispatchTests.hs
+formatted       04f8f254da6b  haxl-2.5.1.1/tests/ExampleDataSource.hs
+formatted       962f9962dfb5  haxl-2.5.1.1/tests/ExceptionStackTests.hs
+formatted       329e1c7e0fd4  haxl-2.5.1.1/tests/FullyAsyncTest.hs
+formatted       5b348a1f5fab  haxl-2.5.1.1/tests/LoadCache.hs
+formatted       4c9a496637db  haxl-2.5.1.1/tests/MemoizationTests.hs
+formatted       cd2dd7052af8  haxl-2.5.1.1/tests/MockTAO.hs
+formatted       679224c9d5e5  haxl-2.5.1.1/tests/MonadAsyncTest.hs
+formatted       08f288ec8741  haxl-2.5.1.1/tests/MonadBench.hs
+formatted       be417b8bc52f  haxl-2.5.1.1/tests/OutgoneFetchesTests.hs
+formatted       f760bff6e190  haxl-2.5.1.1/tests/ParallelTests.hs
+formatted       c757b6a749ba  haxl-2.5.1.1/tests/ProfileTests.hs
+formatted       478999c2d1bd  haxl-2.5.1.1/tests/SleepDataSource.hs
+formatted       23f293b1253d  haxl-2.5.1.1/tests/StatsTests.hs
+formatted       0deec7d41cb2  haxl-2.5.1.1/tests/TestBadDataSource.hs
+formatted       6270eac19e14  haxl-2.5.1.1/tests/TestExampleDataSource.hs
+formatted       33f33c2b6767  haxl-2.5.1.1/tests/TestMain.hs
+formatted       c0a01d1bb863  haxl-2.5.1.1/tests/TestTypes.hs
+formatted       0cdf14515138  haxl-2.5.1.1/tests/TestUtils.hs
+formatted       19781f6f8677  haxl-2.5.1.1/tests/WorkDataSource.hs
+formatted       b8be7bcaa06e  haxl-2.5.1.1/tests/WriteTests.hs
+formatted       ac2ee89a4ffa  hedgehog-1.7/src/Hedgehog.hs
+formatted       1c094fda6263  hedgehog-1.7/src/Hedgehog/Gen.hs
+formatted       c03c7c6e1080  hedgehog-1.7/src/Hedgehog/Internal/Barbie.hs
+formatted       d9db2ccb4bc7  hedgehog-1.7/src/Hedgehog/Internal/Config.hs
+formatted       7855a4bfe6fc  hedgehog-1.7/src/Hedgehog/Internal/Discovery.hs
+formatted       15b153c4095e  hedgehog-1.7/src/Hedgehog/Internal/Distributive.hs
+formatted       db3d79ebed8e  hedgehog-1.7/src/Hedgehog/Internal/Exception.hs
+formatted       94960f681457  hedgehog-1.7/src/Hedgehog/Internal/Gen.hs
+formatted       82bd44e46c74  hedgehog-1.7/src/Hedgehog/Internal/HTraversable.hs
+formatted       0b6e930c617c  hedgehog-1.7/src/Hedgehog/Internal/Opaque.hs
+formatted       0c41d0d4f087  hedgehog-1.7/src/Hedgehog/Internal/Prelude.hs
+formatted       a48f67a8e4b7  hedgehog-1.7/src/Hedgehog/Internal/Property.hs
+formatted       144a39866885  hedgehog-1.7/src/Hedgehog/Internal/Queue.hs
+formatted       9d14d12ad0b0  hedgehog-1.7/src/Hedgehog/Internal/Range.hs
+formatted       e83fa4c27743  hedgehog-1.7/src/Hedgehog/Internal/Region.hs
+formatted       ffa4ddc6361c  hedgehog-1.7/src/Hedgehog/Internal/Report.hs
+formatted       1c86cc2eaef4  hedgehog-1.7/src/Hedgehog/Internal/Runner.hs
+formatted       fb3eda304e9f  hedgehog-1.7/src/Hedgehog/Internal/Seed.hs
+formatted       8b91f20c13a8  hedgehog-1.7/src/Hedgehog/Internal/Show.hs
+formatted       c446e4f9c366  hedgehog-1.7/src/Hedgehog/Internal/Shrink.hs
+formatted       c083b8dff0b7  hedgehog-1.7/src/Hedgehog/Internal/Source.hs
+formatted       ea48c5d7dba1  hedgehog-1.7/src/Hedgehog/Internal/State.hs
+formatted       8c1393826b50  hedgehog-1.7/src/Hedgehog/Internal/TH.hs
+formatted       79e0eb255f0f  hedgehog-1.7/src/Hedgehog/Internal/Tree.hs
+formatted       42e8fad71904  hedgehog-1.7/src/Hedgehog/Internal/Tripping.hs
+formatted       33c9141eeffd  hedgehog-1.7/src/Hedgehog/Main.hs
+formatted       d71772dad16c  hedgehog-1.7/src/Hedgehog/Range.hs
+formatted       e23ab85e9c05  hedgehog-1.7/test/Test/Hedgehog/Applicative.hs
+formatted       37e6a1383406  hedgehog-1.7/test/Test/Hedgehog/Confidence.hs
+formatted       937e5890d2b0  hedgehog-1.7/test/Test/Hedgehog/Filter.hs
+formatted       6e253dd6a871  hedgehog-1.7/test/Test/Hedgehog/Maybe.hs
+formatted       b90e9af1e67d  hedgehog-1.7/test/Test/Hedgehog/Seed.hs
+formatted       4edd92333a33  hedgehog-1.7/test/Test/Hedgehog/Skip.hs
+formatted       d20ec251ab72  hedgehog-1.7/test/Test/Hedgehog/Text.hs
+formatted       2d3b2e9d7168  hedgehog-1.7/test/Test/Hedgehog/Zip.hs
+formatted       df799f9ffb57  hedgehog-1.7/test/test.hs
+formatted       f6dcbd2ed311  hledger-1.52.1/Hledger/Cli.hs
+formatted       367c43f7a331  hledger-1.52.1/Hledger/Cli/Anchor.hs
+formatted       8da9d899b517  hledger-1.52.1/Hledger/Cli/Anon.hs
+formatted       9dd2718db13b  hledger-1.52.1/Hledger/Cli/CliOptions.hs
+formatted       e5decead5a84  hledger-1.52.1/Hledger/Cli/Commands.hs
+formatted       982029c1f001  hledger-1.52.1/Hledger/Cli/Commands/Accounts.hs
+formatted       17bf0339577c  hledger-1.52.1/Hledger/Cli/Commands/Activity.hs
+formatted       16f8888d5909  hledger-1.52.1/Hledger/Cli/Commands/Add.hs
+formatted       61e6c36c3497  hledger-1.52.1/Hledger/Cli/Commands/Aregister.hs
+formatted       e54ad4de1d4e  hledger-1.52.1/Hledger/Cli/Commands/Balance.hs
+formatted       df62b41123dc  hledger-1.52.1/Hledger/Cli/Commands/Balancesheet.hs
+formatted       2a8714e55f40  hledger-1.52.1/Hledger/Cli/Commands/Balancesheetequity.hs
+formatted       a74be8a824e5  hledger-1.52.1/Hledger/Cli/Commands/Cashflow.hs
+formatted       9f950310dd7f  hledger-1.52.1/Hledger/Cli/Commands/Check.hs
+formatted       d72408ffa321  hledger-1.52.1/Hledger/Cli/Commands/Close.hs
+formatted       e9c489e0f01e  hledger-1.52.1/Hledger/Cli/Commands/Codes.hs
+formatted       075784a0845d  hledger-1.52.1/Hledger/Cli/Commands/Commodities.hs
+formatted       b88eaa5e1e83  hledger-1.52.1/Hledger/Cli/Commands/Demo.hs
+formatted       82dfab8a9677  hledger-1.52.1/Hledger/Cli/Commands/Descriptions.hs
+formatted       3999deea0979  hledger-1.52.1/Hledger/Cli/Commands/Diff.hs
+formatted       b51410797a83  hledger-1.52.1/Hledger/Cli/Commands/Files.hs
+formatted       15d50a6cb01a  hledger-1.52.1/Hledger/Cli/Commands/Help.hs
+formatted       6f60ce8d90d0  hledger-1.52.1/Hledger/Cli/Commands/Import.hs
+formatted       3fc4bde8aaae  hledger-1.52.1/Hledger/Cli/Commands/Incomestatement.hs
+formatted       e795242e76e2  hledger-1.52.1/Hledger/Cli/Commands/Notes.hs
+formatted       7868c26f6945  hledger-1.52.1/Hledger/Cli/Commands/Payees.hs
+formatted       74c42e16a7cb  hledger-1.52.1/Hledger/Cli/Commands/Prices.hs
+formatted       177a0e3d59ff  hledger-1.52.1/Hledger/Cli/Commands/Print.hs
+formatted       b3664f32c410  hledger-1.52.1/Hledger/Cli/Commands/Register.hs
+formatted       fe57269eee06  hledger-1.52.1/Hledger/Cli/Commands/Rewrite.hs
+formatted       47c5a107dffd  hledger-1.52.1/Hledger/Cli/Commands/Roi.hs
+formatted       446ba4a560aa  hledger-1.52.1/Hledger/Cli/Commands/Run.hs
+formatted       ea4fee5c5510  hledger-1.52.1/Hledger/Cli/Commands/Setup.hs
+formatted       ebb24201e89a  hledger-1.52.1/Hledger/Cli/Commands/Stats.hs
+formatted       c0d493d6d059  hledger-1.52.1/Hledger/Cli/Commands/Tags.hs
+formatted       1f04a41315cb  hledger-1.52.1/Hledger/Cli/CompoundBalanceCommand.hs
+formatted       48c180b42259  hledger-1.52.1/Hledger/Cli/Conf.hs
+formatted       261d1d375816  hledger-1.52.1/Hledger/Cli/DocFiles.hs
+formatted       e2b8c81fe6ee  hledger-1.52.1/Hledger/Cli/Script.hs
+formatted       387a9a45d1e9  hledger-1.52.1/Hledger/Cli/Utils.hs
+formatted       54a7475ed07e  hledger-1.52.1/Hledger/Cli/Version.hs
+formatted       e865ae48f11b  hledger-1.52.1/Setup.hs
+formatted       5f05220c744b  hledger-1.52.1/app/hledger-cli.hs
+formatted       367217908354  hledger-1.52.1/bench/bench.hs
+formatted       770ce114d693  hledger-1.52.1/test/unittest.hs
+formatted       e865ae48f11b  hlint-3.10/Setup.hs
+formatted       0b9c394414b3  hlint-3.10/data/HLint_QuickCheck.hs
+declined        -             hlint-3.10/data/HLint_TypeCheck.hs
+formatted       7f62e2698706  hlint-3.10/data/Test.hs
+formatted       a3cf0d266650  hlint-3.10/src/Apply.hs
+formatted       8114bd9792d9  hlint-3.10/src/CC.hs
+formatted       0b9726856d3e  hlint-3.10/src/CmdLine.hs
+formatted       5ecebf30e886  hlint-3.10/src/Config/Compute.hs
+formatted       76a1b906c927  hlint-3.10/src/Config/Haskell.hs
+formatted       747182f5f5c1  hlint-3.10/src/Config/Read.hs
+formatted       36ef2b52eee9  hlint-3.10/src/Config/Type.hs
+formatted       2318c0eeb167  hlint-3.10/src/Config/Yaml.hs
+formatted       871e24292ba2  hlint-3.10/src/EmbedData.hs
+formatted       17b761cb46a0  hlint-3.10/src/Extension.hs
+formatted       232c5ddbbb9b  hlint-3.10/src/Fixity.hs
+formatted       1c82631c3859  hlint-3.10/src/GHC/All.hs
+formatted       63d81c2c405a  hlint-3.10/src/GHC/Util.hs
+formatted       f8ab552f2009  hlint-3.10/src/GHC/Util/ApiAnnotation.hs
+formatted       c2680a511d29  hlint-3.10/src/GHC/Util/Brackets.hs
+formatted       8cff3984ef92  hlint-3.10/src/GHC/Util/DynFlags.hs
+formatted       7c1f93703a5a  hlint-3.10/src/GHC/Util/FreeVars.hs
+formatted       3d386a403912  hlint-3.10/src/GHC/Util/HsDecl.hs
+formatted       86e7bc3b5850  hlint-3.10/src/GHC/Util/HsExpr.hs
+formatted       d1d6f4c3efc7  hlint-3.10/src/GHC/Util/Scope.hs
+formatted       d8a06089d209  hlint-3.10/src/GHC/Util/SrcLoc.hs
+formatted       57a53e29344b  hlint-3.10/src/GHC/Util/Unify.hs
+formatted       b405492ce03f  hlint-3.10/src/GHC/Util/View.hs
+formatted       6a92057478ff  hlint-3.10/src/HLint.hs
+formatted       9c128d41e9da  hlint-3.10/src/Hint/All.hs
+formatted       92b62ac403c1  hlint-3.10/src/Hint/Bracket.hs
+formatted       e0953eb3c567  hlint-3.10/src/Hint/Comment.hs
+formatted       6ad7311bca93  hlint-3.10/src/Hint/Duplicate.hs
+formatted       63510e8bd4a6  hlint-3.10/src/Hint/Export.hs
+formatted       7bef350e46fd  hlint-3.10/src/Hint/Extensions.hs
+formatted       8499a9dafb7a  hlint-3.10/src/Hint/Fixities.hs
+formatted       aab2b0975534  hlint-3.10/src/Hint/Import.hs
+formatted       7fa5ea0b1e9a  hlint-3.10/src/Hint/Lambda.hs
+formatted       272b8222175a  hlint-3.10/src/Hint/List.hs
+formatted       8f1d0c686e2b  hlint-3.10/src/Hint/ListRec.hs
+formatted       3027b7686bbd  hlint-3.10/src/Hint/Match.hs
+formatted       7215f269ef89  hlint-3.10/src/Hint/Monad.hs
+formatted       4d078aac9ede  hlint-3.10/src/Hint/Naming.hs
+formatted       a1a5d9519cee  hlint-3.10/src/Hint/Negation.hs
+formatted       9bd70a7dc4ae  hlint-3.10/src/Hint/NewType.hs
+formatted       f6fa0661942d  hlint-3.10/src/Hint/NumLiteral.hs
+formatted       f9c646cee321  hlint-3.10/src/Hint/Pattern.hs
+formatted       0076ccb5bd1c  hlint-3.10/src/Hint/Pragma.hs
+formatted       5dd8e1ba7821  hlint-3.10/src/Hint/Restrict.hs
+formatted       a55fbaad4a77  hlint-3.10/src/Hint/Smell.hs
+formatted       3308ee100b88  hlint-3.10/src/Hint/Type.hs
+formatted       a7c7f90eb40c  hlint-3.10/src/Hint/Unsafe.hs
+formatted       48cd04ad2e02  hlint-3.10/src/HsColour.hs
+formatted       dd9801a47942  hlint-3.10/src/Idea.hs
+formatted       576b754ba5d4  hlint-3.10/src/Language/Haskell/HLint.hs
+formatted       7b8846cb4591  hlint-3.10/src/Main.hs
+formatted       fcdf50a5835c  hlint-3.10/src/Parallel.hs
+formatted       cddb107b52b7  hlint-3.10/src/Refact.hs
+formatted       97865215d682  hlint-3.10/src/Report.hs
+formatted       e370044256db  hlint-3.10/src/SARIF.hs
+formatted       3a554bc4caa1  hlint-3.10/src/Summary.hs
+formatted       3b64750323e1  hlint-3.10/src/Test/All.hs
+formatted       63a9906d70b9  hlint-3.10/src/Test/Annotations.hs
+formatted       d9f760fed213  hlint-3.10/src/Test/InputOutput.hs
+formatted       265163b13605  hlint-3.10/src/Test/Util.hs
+formatted       0f5eb69b44dd  hlint-3.10/src/Timing.hs
+formatted       40bafe709540  hlint-3.10/src/Util.hs
+formatted       14f5f9f6c72a  hspec-core-2.11.17/src/GetOpt/Declarative.hs
+formatted       13b54fc56d9e  hspec-core-2.11.17/src/GetOpt/Declarative/Environment.hs
+formatted       ac874aa7540a  hspec-core-2.11.17/src/GetOpt/Declarative/Interpret.hs
+formatted       aed8c8d69571  hspec-core-2.11.17/src/GetOpt/Declarative/Types.hs
+formatted       7963314c7b2d  hspec-core-2.11.17/src/GetOpt/Declarative/Util.hs
+formatted       c59700aebda7  hspec-core-2.11.17/src/Test/Hspec/Core/Annotations.hs
+formatted       aaed3a708e2b  hspec-core-2.11.17/src/Test/Hspec/Core/Clock.hs
+formatted       daebbe191e9f  hspec-core-2.11.17/src/Test/Hspec/Core/Compat.hs
+formatted       f5ded9eab569  hspec-core-2.11.17/src/Test/Hspec/Core/Config.hs
+formatted       b9ed2689f1a4  hspec-core-2.11.17/src/Test/Hspec/Core/Config/Definition.hs
+formatted       93914a41d318  hspec-core-2.11.17/src/Test/Hspec/Core/Config/Options.hs
+formatted       38a2774bf309  hspec-core-2.11.17/src/Test/Hspec/Core/Example.hs
+formatted       78f6f2a2f383  hspec-core-2.11.17/src/Test/Hspec/Core/Example/Location.hs
+formatted       19c90134f072  hspec-core-2.11.17/src/Test/Hspec/Core/Extension.hs
+formatted       b5766e2580e3  hspec-core-2.11.17/src/Test/Hspec/Core/Extension/Config.hs
+formatted       b0c9672ff2ee  hspec-core-2.11.17/src/Test/Hspec/Core/Extension/Config/Type.hs
+formatted       dfaf22b9e266  hspec-core-2.11.17/src/Test/Hspec/Core/Extension/Item.hs
+formatted       61fffea8ad44  hspec-core-2.11.17/src/Test/Hspec/Core/Extension/Option.hs
+formatted       2c1d2b4038d2  hspec-core-2.11.17/src/Test/Hspec/Core/Extension/Spec.hs
+formatted       090871045b95  hspec-core-2.11.17/src/Test/Hspec/Core/Extension/Tree.hs
+formatted       53c4bba788e8  hspec-core-2.11.17/src/Test/Hspec/Core/FailureReport.hs
+formatted       a49d2bd24295  hspec-core-2.11.17/src/Test/Hspec/Core/Format.hs
+formatted       b8b03afd38ee  hspec-core-2.11.17/src/Test/Hspec/Core/Formatters.hs
+formatted       0f6c87760ec2  hspec-core-2.11.17/src/Test/Hspec/Core/Formatters/Diff.hs
+formatted       337da9e04e1d  hspec-core-2.11.17/src/Test/Hspec/Core/Formatters/Internal.hs
+formatted       463fbae99397  hspec-core-2.11.17/src/Test/Hspec/Core/Formatters/Pretty.hs
+formatted       71e26cb11ffa  hspec-core-2.11.17/src/Test/Hspec/Core/Formatters/Pretty/Parser.hs
+formatted       07264fb33ca8  hspec-core-2.11.17/src/Test/Hspec/Core/Formatters/Pretty/Unicode.hs
+formatted       32564aeda195  hspec-core-2.11.17/src/Test/Hspec/Core/Formatters/V1.hs
+formatted       f7f280a9eab8  hspec-core-2.11.17/src/Test/Hspec/Core/Formatters/V1/Free.hs
+formatted       be38872426b7  hspec-core-2.11.17/src/Test/Hspec/Core/Formatters/V1/Internal.hs
+formatted       94d88619a62f  hspec-core-2.11.17/src/Test/Hspec/Core/Formatters/V1/Monad.hs
+formatted       b83d7732b214  hspec-core-2.11.17/src/Test/Hspec/Core/Formatters/V2.hs
+formatted       f3ed1fa624ba  hspec-core-2.11.17/src/Test/Hspec/Core/Hooks.hs
+formatted       d7e33bec18c0  hspec-core-2.11.17/src/Test/Hspec/Core/QuickCheck.hs
+formatted       5cbcf4cb40d4  hspec-core-2.11.17/src/Test/Hspec/Core/QuickCheck/Util.hs
+formatted       1be2d9c4a008  hspec-core-2.11.17/src/Test/Hspec/Core/Runner.hs
+formatted       559e8587e33c  hspec-core-2.11.17/src/Test/Hspec/Core/Runner/Eval.hs
+formatted       45d877a0b59c  hspec-core-2.11.17/src/Test/Hspec/Core/Runner/JobQueue.hs
+formatted       486c3e882e3e  hspec-core-2.11.17/src/Test/Hspec/Core/Runner/PrintSlowSpecItems.hs
+formatted       800cbdaf0858  hspec-core-2.11.17/src/Test/Hspec/Core/Runner/Result.hs
+formatted       d699e2b567f5  hspec-core-2.11.17/src/Test/Hspec/Core/Shuffle.hs
+formatted       929d1248e847  hspec-core-2.11.17/src/Test/Hspec/Core/Spec.hs
+formatted       0aaa70c4113f  hspec-core-2.11.17/src/Test/Hspec/Core/Spec/Monad.hs
+formatted       1b327d112974  hspec-core-2.11.17/src/Test/Hspec/Core/Timer.hs
+formatted       358c754dd8df  hspec-core-2.11.17/src/Test/Hspec/Core/Tree.hs
+formatted       80d2d2b8d380  hspec-core-2.11.17/src/Test/Hspec/Core/Util.hs
+formatted       4030224416bf  hspec-core-2.11.17/test/GetOpt/Declarative/EnvironmentSpec.hs
+formatted       6655e2e71bb3  hspec-core-2.11.17/test/GetOpt/Declarative/UtilSpec.hs
+formatted       aaa94a74898c  hspec-core-2.11.17/test/Helper.hs
+formatted       10aa2070ffb6  hspec-core-2.11.17/test/Mock.hs
+formatted       42263bafabb2  hspec-core-2.11.17/test/Spec.hs
+formatted       409fb8a0b5e3  hspec-core-2.11.17/test/SpecHook.hs
+formatted       ae9de2079048  hspec-core-2.11.17/test/Test/Hspec/Core/AnnotationsSpec.hs
+formatted       1157d1650ac3  hspec-core-2.11.17/test/Test/Hspec/Core/ClockSpec.hs
+formatted       819d29d3431f  hspec-core-2.11.17/test/Test/Hspec/Core/CompatSpec.hs
+formatted       e5db68e3c868  hspec-core-2.11.17/test/Test/Hspec/Core/Config/DefinitionSpec.hs
+formatted       105756fabf5e  hspec-core-2.11.17/test/Test/Hspec/Core/Config/OptionsSpec.hs
+formatted       edfe82f15e2d  hspec-core-2.11.17/test/Test/Hspec/Core/ConfigSpec.hs
+formatted       d3f3063d7de1  hspec-core-2.11.17/test/Test/Hspec/Core/Example/LocationSpec.hs
+formatted       dc7ffd47b78e  hspec-core-2.11.17/test/Test/Hspec/Core/ExampleSpec.hs
+formatted       1a45c62099d0  hspec-core-2.11.17/test/Test/Hspec/Core/FailureReportSpec.hs
+formatted       8992979a0121  hspec-core-2.11.17/test/Test/Hspec/Core/FormatSpec.hs
+formatted       c2d7791f1000  hspec-core-2.11.17/test/Test/Hspec/Core/Formatters/DiffSpec.hs
+formatted       63df1c3fa7b1  hspec-core-2.11.17/test/Test/Hspec/Core/Formatters/InternalSpec.hs
+formatted       2ffb49f5a742  hspec-core-2.11.17/test/Test/Hspec/Core/Formatters/Pretty/ParserSpec.hs
+formatted       afa9ffaa3bf1  hspec-core-2.11.17/test/Test/Hspec/Core/Formatters/Pretty/UnicodeSpec.hs
+formatted       ac2da1dd4d6b  hspec-core-2.11.17/test/Test/Hspec/Core/Formatters/PrettySpec.hs
+formatted       2665482bea3b  hspec-core-2.11.17/test/Test/Hspec/Core/Formatters/V1Spec.hs
+formatted       fdce61371e6b  hspec-core-2.11.17/test/Test/Hspec/Core/Formatters/V2Spec.hs
+formatted       177347d407e1  hspec-core-2.11.17/test/Test/Hspec/Core/HooksSpec.hs
+formatted       ad736b09b724  hspec-core-2.11.17/test/Test/Hspec/Core/QuickCheck/UtilSpec.hs
+formatted       775321ce08bf  hspec-core-2.11.17/test/Test/Hspec/Core/Runner/EvalSpec.hs
+formatted       7eadb8336461  hspec-core-2.11.17/test/Test/Hspec/Core/Runner/JobQueueSpec.hs
+formatted       0d283fd19887  hspec-core-2.11.17/test/Test/Hspec/Core/Runner/PrintSlowSpecItemsSpec.hs
+formatted       2781ae88628b  hspec-core-2.11.17/test/Test/Hspec/Core/Runner/ResultSpec.hs
+formatted       5c98171187e3  hspec-core-2.11.17/test/Test/Hspec/Core/RunnerSpec.hs
+formatted       711af46b8809  hspec-core-2.11.17/test/Test/Hspec/Core/ShuffleSpec.hs
+formatted       109f785c9f28  hspec-core-2.11.17/test/Test/Hspec/Core/SpecSpec.hs
+formatted       ccd964421c9d  hspec-core-2.11.17/test/Test/Hspec/Core/TimerSpec.hs
+formatted       ad44f3bb30b2  hspec-core-2.11.17/test/Test/Hspec/Core/TreeSpec.hs
+formatted       9b07f9624b8d  hspec-core-2.11.17/test/Test/Hspec/Core/UtilSpec.hs
+formatted       e13927dd80dc  hspec-core-2.11.17/vendor/Data/Algorithm/Diff.hs
+partly-checked  03ba27ab9fd5  hspec-core-2.11.17/vendor/async-2.2.5/Control/Concurrent/Async.hs
+formatted       bea44982097a  hspec-core-2.11.17/vendor/stm-2.5.0.1/Control/Concurrent/STM/TMVar.hs
+formatted       b3d4964504e7  http-client-0.7.19/Data/KeyedPool.hs
+formatted       3e436f1b2afb  http-client-0.7.19/Network/HTTP/Client.hs
+formatted       547642efe2cc  http-client-0.7.19/Network/HTTP/Client/Body.hs
+formatted       d5454cf22a87  http-client-0.7.19/Network/HTTP/Client/Connection.hs
+formatted       b7a129091d84  http-client-0.7.19/Network/HTTP/Client/Cookies.hs
+formatted       d532447f828a  http-client-0.7.19/Network/HTTP/Client/Core.hs
+formatted       7a5aad8e01a5  http-client-0.7.19/Network/HTTP/Client/Headers.hs
+formatted       44b1ad27a89e  http-client-0.7.19/Network/HTTP/Client/Internal.hs
+formatted       e04e09593516  http-client-0.7.19/Network/HTTP/Client/Manager.hs
+formatted       67fd1b56f592  http-client-0.7.19/Network/HTTP/Client/MultipartFormData.hs
+formatted       878a896a4834  http-client-0.7.19/Network/HTTP/Client/Request.hs
+formatted       cf2358330a5c  http-client-0.7.19/Network/HTTP/Client/Response.hs
+formatted       d48abdb1339e  http-client-0.7.19/Network/HTTP/Client/Types.hs
+formatted       ca6a48d5e983  http-client-0.7.19/Network/HTTP/Client/Util.hs
+formatted       076df85ddc10  http-client-0.7.19/Network/HTTP/Proxy.hs
+formatted       e865ae48f11b  http-client-0.7.19/Setup.hs
+formatted       b1d3bc1d8679  http-client-0.7.19/publicsuffixlist/Network/PublicSuffixList/DataStructure.hs
+formatted       245d124b8415  http-client-0.7.19/publicsuffixlist/Network/PublicSuffixList/Lookup.hs
+formatted       765e07adf78d  http-client-0.7.19/publicsuffixlist/Network/PublicSuffixList/Serialize.hs
+formatted       a7f41d1b5ab1  http-client-0.7.19/publicsuffixlist/Network/PublicSuffixList/Types.hs
+formatted       5a31984d56fd  http-client-0.7.19/test-nonet/Network/HTTP/Client/BodySpec.hs
+formatted       329d7775ecfb  http-client-0.7.19/test-nonet/Network/HTTP/Client/ConnectionSpec.hs
+formatted       c152236f3c88  http-client-0.7.19/test-nonet/Network/HTTP/Client/CookieSpec.hs
+formatted       11f71ff1af3c  http-client-0.7.19/test-nonet/Network/HTTP/Client/HeadersSpec.hs
+formatted       37bbc630210e  http-client-0.7.19/test-nonet/Network/HTTP/Client/RequestBodySpec.hs
+formatted       9d193cb0c288  http-client-0.7.19/test-nonet/Network/HTTP/Client/RequestSpec.hs
+formatted       5109990dfcb0  http-client-0.7.19/test-nonet/Network/HTTP/Client/ResponseSpec.hs
+formatted       78f0fd41871c  http-client-0.7.19/test-nonet/Network/HTTP/ClientSpec.hs
+formatted       2fbd14b119a4  http-client-0.7.19/test-nonet/Spec.hs
+formatted       b7ca700fa2e5  http-client-0.7.19/test/Network/HTTP/ClientSpec.hs
+formatted       2fbd14b119a4  http-client-0.7.19/test/Spec.hs
+formatted       13d151556922  http-types-0.12.6/Network/HTTP/Types.hs
+formatted       e7eff6d3c526  http-types-0.12.6/Network/HTTP/Types/Header.hs
+formatted       26f2850b0a92  http-types-0.12.6/Network/HTTP/Types/Method.hs
+formatted       937169187cf1  http-types-0.12.6/Network/HTTP/Types/QueryLike.hs
+formatted       973c6368ae63  http-types-0.12.6/Network/HTTP/Types/Status.hs
+formatted       8393cb3031e8  http-types-0.12.6/Network/HTTP/Types/URI.hs
+formatted       f437cc36b9fa  http-types-0.12.6/Network/HTTP/Types/Version.hs
+formatted       e865ae48f11b  http-types-0.12.6/Setup.hs
+formatted       7d11c2eb808e  http-types-0.12.6/test/Network/HTTP/Types/HeaderSpec.hs
+formatted       1816a6090b5e  http-types-0.12.6/test/Network/HTTP/Types/MethodSpec.hs
+formatted       848ef1c45ded  http-types-0.12.6/test/Network/HTTP/Types/StatusSpec.hs
+formatted       f94b29c98abb  http-types-0.12.6/test/Network/HTTP/Types/URISpec.hs
+formatted       5ac67585c5a1  http-types-0.12.6/test/Network/HTTP/Types/VersionSpec.hs
+formatted       2fbd14b119a4  http-types-0.12.6/test/Spec.hs
+formatted       6d7c004ed36a  http-types-0.12.6/test/doctests.hs
+formatted       a98abaa3cc37  idris-1.3.4/Setup.hs
+formatted       6c39a6764f61  idris-1.3.4/codegen/idris-codegen-c/Main.hs
+formatted       66ce632c5bcb  idris-1.3.4/codegen/idris-codegen-javascript/Main.hs
+formatted       06a7843d0cd6  idris-1.3.4/codegen/idris-codegen-node/Main.hs
+formatted       eaa6467947db  idris-1.3.4/main/Main.hs
+formatted       3fd541795c69  idris-1.3.4/src/IRTS/Bytecode.hs
+formatted       389c860d28b1  idris-1.3.4/src/IRTS/CodegenC.hs
+formatted       9e5812762ec8  idris-1.3.4/src/IRTS/CodegenCommon.hs
+formatted       563f242aebaf  idris-1.3.4/src/IRTS/CodegenJavaScript.hs
+formatted       fd7bb36cb03b  idris-1.3.4/src/IRTS/Compiler.hs
+formatted       4e0f5b2e8aca  idris-1.3.4/src/IRTS/Defunctionalise.hs
+formatted       5147e632c0e4  idris-1.3.4/src/IRTS/DumpBC.hs
+formatted       62c2f906c6c0  idris-1.3.4/src/IRTS/Exports.hs
+formatted       9e44d172890b  idris-1.3.4/src/IRTS/Inliner.hs
+formatted       ca2a16bd8e2f  idris-1.3.4/src/IRTS/JavaScript/AST.hs
+formatted       303007b18f14  idris-1.3.4/src/IRTS/JavaScript/Codegen.hs
+formatted       b171baf09627  idris-1.3.4/src/IRTS/JavaScript/LangTransforms.hs
+formatted       837e1fafadd6  idris-1.3.4/src/IRTS/JavaScript/Name.hs
+formatted       cd5cebdbb649  idris-1.3.4/src/IRTS/JavaScript/PrimOp.hs
+formatted       c8b0770fe027  idris-1.3.4/src/IRTS/JavaScript/Specialize.hs
+formatted       cc4fb2a016e8  idris-1.3.4/src/IRTS/Lang.hs
+formatted       d959abd1dfe4  idris-1.3.4/src/IRTS/LangOpts.hs
+formatted       54ee13488588  idris-1.3.4/src/IRTS/Portable.hs
+formatted       2b9b1428a50f  idris-1.3.4/src/IRTS/Simplified.hs
+formatted       c149d514359b  idris-1.3.4/src/IRTS/System.hs
+formatted       0b84ce237bb8  idris-1.3.4/src/Idris/ASTUtils.hs
+formatted       a8f154205e55  idris-1.3.4/src/Idris/AbsSyntax.hs
+formatted       f6be69b820bf  idris-1.3.4/src/Idris/AbsSyntaxTree.hs
+formatted       9f032fa98b74  idris-1.3.4/src/Idris/Apropos.hs
+formatted       1b17f73d1ed1  idris-1.3.4/src/Idris/CaseSplit.hs
+formatted       887228791bf4  idris-1.3.4/src/Idris/Chaser.hs
+formatted       a47646c618f2  idris-1.3.4/src/Idris/CmdOptions.hs
+formatted       4da7f931a59f  idris-1.3.4/src/Idris/Colours.hs
+formatted       6890f5a88278  idris-1.3.4/src/Idris/Completion.hs
+formatted       75f2ee4dbe05  idris-1.3.4/src/Idris/Core/Binary.hs
+formatted       70e0c9ec5d29  idris-1.3.4/src/Idris/Core/CaseTree.hs
+formatted       fa5732ba0860  idris-1.3.4/src/Idris/Core/Constraints.hs
+formatted       32e1f1dc7a41  idris-1.3.4/src/Idris/Core/DeepSeq.hs
+formatted       3b956c85cb93  idris-1.3.4/src/Idris/Core/Elaborate.hs
+formatted       d0216dc5a258  idris-1.3.4/src/Idris/Core/Evaluate.hs
+formatted       9e811f74925b  idris-1.3.4/src/Idris/Core/Execute.hs
+formatted       823bce2a23e1  idris-1.3.4/src/Idris/Core/ProofState.hs
+formatted       0ccd6a932fe8  idris-1.3.4/src/Idris/Core/ProofTerm.hs
+formatted       cd52f6495e8c  idris-1.3.4/src/Idris/Core/TT.hs
+formatted       d6069959015f  idris-1.3.4/src/Idris/Core/Typecheck.hs
+formatted       7872856d0301  idris-1.3.4/src/Idris/Core/Unify.hs
+formatted       01a710f67630  idris-1.3.4/src/Idris/Core/WHNF.hs
+formatted       36e22c48009d  idris-1.3.4/src/Idris/Coverage.hs
+formatted       61677e52356c  idris-1.3.4/src/Idris/DSL.hs
+formatted       04b448aefa16  idris-1.3.4/src/Idris/DataOpts.hs
+formatted       591136fc0c25  idris-1.3.4/src/Idris/DeepSeq.hs
+formatted       2ece0ec01e3c  idris-1.3.4/src/Idris/Delaborate.hs
+formatted       c0a210b99952  idris-1.3.4/src/Idris/Directives.hs
+formatted       d3d91df82106  idris-1.3.4/src/Idris/Docs.hs
+formatted       a485f5642886  idris-1.3.4/src/Idris/Docstrings.hs
+formatted       a1c474156864  idris-1.3.4/src/Idris/Elab/AsPat.hs
+formatted       0c12951dd00e  idris-1.3.4/src/Idris/Elab/Clause.hs
+formatted       9e5c2909e062  idris-1.3.4/src/Idris/Elab/Data.hs
+formatted       8513eb951865  idris-1.3.4/src/Idris/Elab/Implementation.hs
+formatted       9349c5236898  idris-1.3.4/src/Idris/Elab/Interface.hs
+formatted       7c5f6b45e740  idris-1.3.4/src/Idris/Elab/Provider.hs
+formatted       432315b423c7  idris-1.3.4/src/Idris/Elab/Quasiquote.hs
+formatted       229f49cf1c9d  idris-1.3.4/src/Idris/Elab/Record.hs
+formatted       187fb9ddcd79  idris-1.3.4/src/Idris/Elab/Rewrite.hs
+formatted       77ebc33633f8  idris-1.3.4/src/Idris/Elab/RunElab.hs
+formatted       5ca384198b92  idris-1.3.4/src/Idris/Elab/Term.hs
+formatted       43565a6d9bac  idris-1.3.4/src/Idris/Elab/Transform.hs
+formatted       cf8cbbec4fe7  idris-1.3.4/src/Idris/Elab/Type.hs
+formatted       b3e66f72a9ac  idris-1.3.4/src/Idris/Elab/Utils.hs
+formatted       ac9c50ffdaf7  idris-1.3.4/src/Idris/Elab/Value.hs
+formatted       5ce0ed3888f3  idris-1.3.4/src/Idris/ElabDecls.hs
+formatted       ef766f0afd74  idris-1.3.4/src/Idris/Erasure.hs
+formatted       7c4b0ef95bf4  idris-1.3.4/src/Idris/ErrReverse.hs
+formatted       28314a1db8cc  idris-1.3.4/src/Idris/Error.hs
+formatted       21bcb871fca8  idris-1.3.4/src/Idris/Help.hs
+formatted       3698ba4d3817  idris-1.3.4/src/Idris/IBC.hs
+formatted       5964507fe26c  idris-1.3.4/src/Idris/IdeMode.hs
+formatted       e909e2fe452b  idris-1.3.4/src/Idris/IdrisDoc.hs
+formatted       8b7f62814233  idris-1.3.4/src/Idris/Imports.hs
+formatted       3e21520569d8  idris-1.3.4/src/Idris/Info.hs
+formatted       90f54928d9ca  idris-1.3.4/src/Idris/Info/Show.hs
+formatted       eb72f451c8f1  idris-1.3.4/src/Idris/Inliner.hs
+formatted       be060fc86cc8  idris-1.3.4/src/Idris/Interactive.hs
+formatted       5071375a4820  idris-1.3.4/src/Idris/Main.hs
+formatted       be56610644ba  idris-1.3.4/src/Idris/ModeCommon.hs
+formatted       28bd80263c16  idris-1.3.4/src/Idris/Options.hs
+formatted       969e2318f735  idris-1.3.4/src/Idris/Output.hs
+formatted       05a01adec344  idris-1.3.4/src/Idris/Package.hs
+formatted       2a5fae85b8c9  idris-1.3.4/src/Idris/Package/Common.hs
+formatted       90885df148d3  idris-1.3.4/src/Idris/Package/Parser.hs
+formatted       ab0906fb24a3  idris-1.3.4/src/Idris/Parser.hs
+formatted       e4d16cf46f6b  idris-1.3.4/src/Idris/Parser/Data.hs
+formatted       56341a9cef2a  idris-1.3.4/src/Idris/Parser/Expr.hs
+formatted       de7138f89659  idris-1.3.4/src/Idris/Parser/Helpers.hs
+formatted       edc130411af1  idris-1.3.4/src/Idris/Parser/Ops.hs
+formatted       3f33ff4561d4  idris-1.3.4/src/Idris/Parser/Stack.hs
+formatted       7f8889e1a85a  idris-1.3.4/src/Idris/PartialEval.hs
+formatted       58ad84ded5d8  idris-1.3.4/src/Idris/Primitives.hs
+formatted       429ec8a4efee  idris-1.3.4/src/Idris/ProofSearch.hs
+formatted       168d70e142b3  idris-1.3.4/src/Idris/Prover.hs
+formatted       ad0ff1beaf54  idris-1.3.4/src/Idris/Providers.hs
+formatted       c47d07c305a7  idris-1.3.4/src/Idris/REPL.hs
+formatted       d43671c3f627  idris-1.3.4/src/Idris/REPL/Browse.hs
+formatted       586418ee0cf6  idris-1.3.4/src/Idris/REPL/Commands.hs
+formatted       f36f6bde407f  idris-1.3.4/src/Idris/REPL/Parser.hs
+formatted       a35f4ee64226  idris-1.3.4/src/Idris/Reflection.hs
+formatted       d8e303fd1eef  idris-1.3.4/src/Idris/Termination.hs
+formatted       6837e439e7d6  idris-1.3.4/src/Idris/Transforms.hs
+formatted       06befdb6fc0c  idris-1.3.4/src/Idris/TypeSearch.hs
+formatted       528c0d503ddd  idris-1.3.4/src/Idris/Unlit.hs
+formatted       b613b7be20de  idris-1.3.4/src/Idris/WhoCalls.hs
+formatted       7f4a44aa7694  idris-1.3.4/src/Util/DynamicLinker.hs
+formatted       298e72ccbb61  idris-1.3.4/src/Util/Net.hs
+formatted       f47f361e150a  idris-1.3.4/src/Util/Pretty.hs
+formatted       13363649406c  idris-1.3.4/src/Util/ScreenSize.hs
+formatted       963968c021ee  idris-1.3.4/src/Util/System.hs
+formatted       9df5a10ea1fd  idris-1.3.4/test/TestData.hs
+formatted       720af8681b46  idris-1.3.4/test/TestRun.hs
+formatted       e865ae48f11b  intero-0.1.40/Setup.hs
+formatted       41797b039ec2  intero-0.1.40/src/Completion.hs
+formatted       808924ac99ff  intero-0.1.40/src/GhciFind.hs
+partly-checked  c0aea4c4237d  intero-0.1.40/src/GhciInfo.hs
+formatted       e0fd727cd7cd  intero-0.1.40/src/GhciMonad.hs
+formatted       43c5576cb10f  intero-0.1.40/src/GhciTags.hs
+formatted       72999d5c814e  intero-0.1.40/src/GhciTypes.hs
+declined        -             intero-0.1.40/src/InteractiveUI.hs
+formatted       d3b894941b5e  intero-0.1.40/src/Intero/Compat.hs
+partly-checked  f1e8bf4ae69f  intero-0.1.40/src/Main.hs
+formatted       13b22f1a2f96  intero-0.1.40/src/test/Main.hs
+formatted       4fe73bbfe233  leksah-0.16.2.2/data/leksah-welcome/src/Main.hs
+formatted       1cefb44a49bc  leksah-0.16.2.2/data/leksah-welcome/test/Main.hs
+formatted       34cb8bb8a612  leksah-0.16.2.2/main/Main.hs
+formatted       0d71ef1dc947  leksah-0.16.2.2/src/IDE/BufferMode.hs
+formatted       0cd8482b4f61  leksah-0.16.2.2/src/IDE/Build.hs
+formatted       d08cdd390358  leksah-0.16.2.2/src/IDE/Command.hs
+formatted       311f46674981  leksah-0.16.2.2/src/IDE/Command/Print.hs
+formatted       3587f60b8002  leksah-0.16.2.2/src/IDE/Command/VCS.hs
+formatted       4c605686bc49  leksah-0.16.2.2/src/IDE/Command/VCS/Common.hs
+formatted       10b6c6b7bbca  leksah-0.16.2.2/src/IDE/Command/VCS/Common/GUI.hs
+formatted       931de47dcc70  leksah-0.16.2.2/src/IDE/Command/VCS/Common/Helper.hs
+formatted       fa517869ef32  leksah-0.16.2.2/src/IDE/Command/VCS/Common/Workspaces.hs
+formatted       703e291d1e3f  leksah-0.16.2.2/src/IDE/Command/VCS/GIT.hs
+formatted       5bebaffe9dd2  leksah-0.16.2.2/src/IDE/Command/VCS/Mercurial.hs
+formatted       5af0b2acf931  leksah-0.16.2.2/src/IDE/Command/VCS/SVN.hs
+formatted       7b9e3b7c3af1  leksah-0.16.2.2/src/IDE/Command/VCS/Types.hs
+formatted       355e7822fb24  leksah-0.16.2.2/src/IDE/Completion.hs
+formatted       83a32ce3d650  leksah-0.16.2.2/src/IDE/Core/State.hs
+formatted       b8029845c5f6  leksah-0.16.2.2/src/IDE/Core/Types.hs
+formatted       375889d7ec16  leksah-0.16.2.2/src/IDE/Debug.hs
+does-not-parse  -             leksah-0.16.2.2/src/IDE/Find.hs
+formatted       a7b49b049b8e  leksah-0.16.2.2/src/IDE/GUIHistory.hs
+formatted       8ac61c496a03  leksah-0.16.2.2/src/IDE/HLint.hs
+formatted       8ddfdb5cd7cb  leksah-0.16.2.2/src/IDE/ImportTool.hs
+formatted       c94ba55b56fd  leksah-0.16.2.2/src/IDE/Keymap.hs
+formatted       3f0638c605cd  leksah-0.16.2.2/src/IDE/LPaste.hs
+formatted       ad760d284046  leksah-0.16.2.2/src/IDE/Leksah.hs
+formatted       cd678b5b6e72  leksah-0.16.2.2/src/IDE/LogRef.hs
+formatted       d41f35d520d8  leksah-0.16.2.2/src/IDE/Metainfo/Provider.hs
+formatted       add30e907a64  leksah-0.16.2.2/src/IDE/NotebookFlipper.hs
+formatted       d441d0417158  leksah-0.16.2.2/src/IDE/OSX.hs
+formatted       749e1f9f6205  leksah-0.16.2.2/src/IDE/Package.hs
+formatted       1d8174da2ad0  leksah-0.16.2.2/src/IDE/Pane/Breakpoints.hs
+formatted       b953df2cafd1  leksah-0.16.2.2/src/IDE/Pane/Errors.hs
+formatted       76f1dfe82863  leksah-0.16.2.2/src/IDE/Pane/Files.hs
+formatted       5174fb1d8807  leksah-0.16.2.2/src/IDE/Pane/Grep.hs
+formatted       6bea42aabf13  leksah-0.16.2.2/src/IDE/Pane/HLint.hs
+formatted       3ca32b10d0e9  leksah-0.16.2.2/src/IDE/Pane/Info.hs
+formatted       ea0f6cc3cdd0  leksah-0.16.2.2/src/IDE/Pane/Log.hs
+formatted       c7b48862410e  leksah-0.16.2.2/src/IDE/Pane/Modules.hs
+formatted       575af73a6da8  leksah-0.16.2.2/src/IDE/Pane/PackageEditor.hs
+formatted       f0501c777408  leksah-0.16.2.2/src/IDE/Pane/PackageFlags.hs
+formatted       b852a84764b6  leksah-0.16.2.2/src/IDE/Pane/Search.hs
+formatted       fb6b3817d585  leksah-0.16.2.2/src/IDE/Pane/SourceBuffer.hs
+formatted       17fd33faa199  leksah-0.16.2.2/src/IDE/Pane/Trace.hs
+formatted       42dcc1c61a8c  leksah-0.16.2.2/src/IDE/Pane/Variables.hs
+formatted       402db82d0213  leksah-0.16.2.2/src/IDE/Pane/WebKit/Documentation.hs
+formatted       bf74d49a257b  leksah-0.16.2.2/src/IDE/Pane/WebKit/Inspect.hs
+formatted       36523e19eb43  leksah-0.16.2.2/src/IDE/Pane/WebKit/Output.hs
+formatted       6d01b337aa2d  leksah-0.16.2.2/src/IDE/Pane/Workspace.hs
+formatted       9b92bdd95195  leksah-0.16.2.2/src/IDE/PaneGroups.hs
+formatted       043a3ca4d21e  leksah-0.16.2.2/src/IDE/Preferences.hs
+formatted       b428f06dc6a8  leksah-0.16.2.2/src/IDE/Session.hs
+formatted       8fd5bd558558  leksah-0.16.2.2/src/IDE/SourceCandy.hs
+formatted       402da8621309  leksah-0.16.2.2/src/IDE/Statusbar.hs
+formatted       188c4e9a0936  leksah-0.16.2.2/src/IDE/SymbolNavigation.hs
+formatted       265b135c829e  leksah-0.16.2.2/src/IDE/TextEditor.hs
+formatted       fc7e53f0e945  leksah-0.16.2.2/src/IDE/TextEditor/Class.hs
+formatted       1c4c5952013a  leksah-0.16.2.2/src/IDE/TextEditor/CodeMirror.hs
+formatted       ead97fbc797b  leksah-0.16.2.2/src/IDE/TextEditor/GtkSourceView.hs
+formatted       02fedce6ee7f  leksah-0.16.2.2/src/IDE/TextEditor/Yi.hs
+formatted       74ead3c637fd  leksah-0.16.2.2/src/IDE/TextEditor/Yi/Config.hs
+formatted       049d901c6e0d  leksah-0.16.2.2/src/IDE/Utils/CabalUtils.hs
+formatted       a1e35678dab5  leksah-0.16.2.2/src/IDE/Utils/DirectoryUtils.hs
+formatted       8c14e6468260  leksah-0.16.2.2/src/IDE/Utils/ExternalTool.hs
+formatted       e7fe8dbc01fb  leksah-0.16.2.2/src/IDE/Utils/GUIUtils.hs
+formatted       681c8db74a16  leksah-0.16.2.2/src/IDE/Utils/ServerConnection.hs
+formatted       c5c3f2775509  leksah-0.16.2.2/src/IDE/Workspaces.hs
+formatted       dde088ae3291  leksah-0.16.2.2/src/IDE/Workspaces/Writer.hs
+formatted       50c9e4996c17  lens-5.3.6/benchmarks/alongside.hs
+formatted       9fb7d388f89d  lens-5.3.6/benchmarks/folds.hs
+formatted       954468d85b1f  lens-5.3.6/benchmarks/plated.hs
+formatted       474a59bad6c3  lens-5.3.6/benchmarks/traversals.hs
+formatted       67948814999e  lens-5.3.6/benchmarks/unsafe.hs
+formatted       6b5d9407288a  lens-5.3.6/examples/Aeson.hs
+formatted       fcea15eace15  lens-5.3.6/examples/Plates.hs
+formatted       42c84063ca40  lens-5.3.6/examples/Pong.hs
+formatted       1e7ca6c2bac4  lens-5.3.6/examples/Turtle.hs
+formatted       e865ae48f11b  lens-5.3.6/lens-properties/Setup.hs
+formatted       03d5b652be06  lens-5.3.6/lens-properties/src/Control/Lens/Properties.hs
+formatted       078f1b9b6754  lens-5.3.6/src/Control/Exception/Lens.hs
+formatted       4fb8b462c692  lens-5.3.6/src/Control/Lens.hs
+formatted       dab5fde53fc2  lens-5.3.6/src/Control/Lens/At.hs
+formatted       1a555e9740b2  lens-5.3.6/src/Control/Lens/Combinators.hs
+formatted       45285718981c  lens-5.3.6/src/Control/Lens/Cons.hs
+formatted       087aa6536345  lens-5.3.6/src/Control/Lens/Each.hs
+formatted       db06507f8eb3  lens-5.3.6/src/Control/Lens/Empty.hs
+formatted       afba13ca40b2  lens-5.3.6/src/Control/Lens/Equality.hs
+formatted       e63ce52c62a6  lens-5.3.6/src/Control/Lens/Extras.hs
+formatted       c0712f9f2b0e  lens-5.3.6/src/Control/Lens/Fold.hs
+formatted       1d6b4529afae  lens-5.3.6/src/Control/Lens/Getter.hs
+formatted       be96a32da04a  lens-5.3.6/src/Control/Lens/Indexed.hs
+formatted       f2b77c23d24e  lens-5.3.6/src/Control/Lens/Internal.hs
+formatted       8350be0d02be  lens-5.3.6/src/Control/Lens/Internal/Bazaar.hs
+formatted       77d72de128e9  lens-5.3.6/src/Control/Lens/Internal/ByteString.hs
+formatted       d8ca8cef6fef  lens-5.3.6/src/Control/Lens/Internal/CTypes.hs
+formatted       dfd3f37cd579  lens-5.3.6/src/Control/Lens/Internal/Context.hs
+formatted       a6d8f75d39fc  lens-5.3.6/src/Control/Lens/Internal/Deque.hs
+formatted       4c63a54a8aeb  lens-5.3.6/src/Control/Lens/Internal/Doctest.hs
+formatted       36dfae32602b  lens-5.3.6/src/Control/Lens/Internal/Exception.hs
+formatted       94e9c2ef7d99  lens-5.3.6/src/Control/Lens/Internal/FieldTH.hs
+formatted       8751bf3b6318  lens-5.3.6/src/Control/Lens/Internal/Fold.hs
+formatted       fe2ce335a9fd  lens-5.3.6/src/Control/Lens/Internal/Getter.hs
+formatted       72ecae413405  lens-5.3.6/src/Control/Lens/Internal/Indexed.hs
+formatted       74a115066cae  lens-5.3.6/src/Control/Lens/Internal/Instances.hs
+formatted       a9257a233659  lens-5.3.6/src/Control/Lens/Internal/Iso.hs
+formatted       62616dcfe279  lens-5.3.6/src/Control/Lens/Internal/Level.hs
+formatted       929b3db19b16  lens-5.3.6/src/Control/Lens/Internal/List.hs
+formatted       b107d5717343  lens-5.3.6/src/Control/Lens/Internal/Magma.hs
+formatted       3660c5db758f  lens-5.3.6/src/Control/Lens/Internal/Prelude.hs
+formatted       d033545bb0fa  lens-5.3.6/src/Control/Lens/Internal/Prism.hs
+formatted       9d0a84d65d47  lens-5.3.6/src/Control/Lens/Internal/PrismTH.hs
+formatted       d1e3368088fd  lens-5.3.6/src/Control/Lens/Internal/Profunctor.hs
+formatted       a0cfb7f64915  lens-5.3.6/src/Control/Lens/Internal/Review.hs
+formatted       bd611b570342  lens-5.3.6/src/Control/Lens/Internal/Setter.hs
+formatted       cb94f36001d0  lens-5.3.6/src/Control/Lens/Internal/TH.hs
+formatted       3eb540f212c9  lens-5.3.6/src/Control/Lens/Internal/Zoom.hs
+formatted       4d4a8b86f259  lens-5.3.6/src/Control/Lens/Iso.hs
+formatted       90c89d25de5a  lens-5.3.6/src/Control/Lens/Lens.hs
+formatted       bde563e05b67  lens-5.3.6/src/Control/Lens/Level.hs
+formatted       1b24416ce249  lens-5.3.6/src/Control/Lens/Operators.hs
+formatted       61aef519b850  lens-5.3.6/src/Control/Lens/Plated.hs
+formatted       cd556da34caa  lens-5.3.6/src/Control/Lens/Prism.hs
+formatted       b465099e5056  lens-5.3.6/src/Control/Lens/Profunctor.hs
+formatted       4fa75f887167  lens-5.3.6/src/Control/Lens/Reified.hs
+formatted       6e871d8e4385  lens-5.3.6/src/Control/Lens/Review.hs
+formatted       5f1a95d65c20  lens-5.3.6/src/Control/Lens/Setter.hs
+formatted       fa7936ec3040  lens-5.3.6/src/Control/Lens/TH.hs
+formatted       9164ff122ee8  lens-5.3.6/src/Control/Lens/Traversal.hs
+formatted       3a5cbb2c959c  lens-5.3.6/src/Control/Lens/Tuple.hs
+formatted       181a647a9c7b  lens-5.3.6/src/Control/Lens/Type.hs
+formatted       ff8881502434  lens-5.3.6/src/Control/Lens/Unsound.hs
+partly-checked  dc2e66e1542a  lens-5.3.6/src/Control/Lens/Wrapped.hs
+formatted       2c3a223dec39  lens-5.3.6/src/Control/Lens/Zoom.hs
+formatted       d04fd074c74d  lens-5.3.6/src/Control/Monad/Error/Lens.hs
+formatted       b9bfa6cc2ae6  lens-5.3.6/src/Control/Parallel/Strategies/Lens.hs
+formatted       3580c9fdbe74  lens-5.3.6/src/Control/Seq/Lens.hs
+formatted       ae1408607f92  lens-5.3.6/src/Data/Array/Lens.hs
+formatted       4f2a2066b52a  lens-5.3.6/src/Data/Bits/Lens.hs
+formatted       e1c3ede72b89  lens-5.3.6/src/Data/ByteString/Lazy/Lens.hs
+formatted       fd83b8412797  lens-5.3.6/src/Data/ByteString/Lens.hs
+formatted       a0beda949826  lens-5.3.6/src/Data/ByteString/Strict/Lens.hs
+formatted       e7fc0d3b8334  lens-5.3.6/src/Data/Complex/Lens.hs
+formatted       626272b6276a  lens-5.3.6/src/Data/Data/Lens.hs
+formatted       ae776c45408a  lens-5.3.6/src/Data/Dynamic/Lens.hs
+formatted       9817c7fd06d9  lens-5.3.6/src/Data/HashSet/Lens.hs
+formatted       9b6a7ea1de9a  lens-5.3.6/src/Data/IntSet/Lens.hs
+formatted       afd0c52fb1bb  lens-5.3.6/src/Data/List/Lens.hs
+formatted       c78898aaa504  lens-5.3.6/src/Data/Map/Lens.hs
+formatted       bf33871e79d3  lens-5.3.6/src/Data/Sequence/Lens.hs
+formatted       3b630e1120f0  lens-5.3.6/src/Data/Set/Lens.hs
+formatted       6abbc5ff2a97  lens-5.3.6/src/Data/Text/Lazy/Lens.hs
+formatted       c144e0a2b4d7  lens-5.3.6/src/Data/Text/Lens.hs
+formatted       5ce20871a8d2  lens-5.3.6/src/Data/Text/Strict/Lens.hs
+formatted       a4a006800f1d  lens-5.3.6/src/Data/Tree/Lens.hs
+formatted       bfb9f14912e5  lens-5.3.6/src/Data/Typeable/Lens.hs
+formatted       fa5b2f903156  lens-5.3.6/src/Data/Vector/Generic/Lens.hs
+formatted       4348b84e4ed7  lens-5.3.6/src/Data/Vector/Lens.hs
+formatted       7e80fcd30b07  lens-5.3.6/src/GHC/Generics/Lens.hs
+partly-checked  85462ac66a8d  lens-5.3.6/src/Language/Haskell/TH/Lens.hs
+formatted       6142187a095c  lens-5.3.6/src/Numeric/Lens.hs
+formatted       11d5331927be  lens-5.3.6/src/Numeric/Natural/Lens.hs
+formatted       353cf4551a49  lens-5.3.6/src/System/Exit/Lens.hs
+formatted       5a4f7cf6359b  lens-5.3.6/src/System/FilePath/Lens.hs
+formatted       18c87dbc74ee  lens-5.3.6/src/System/IO/Error/Lens.hs
+formatted       aa93fbb09ce5  lens-5.3.6/tests/BigRecord.hs
+formatted       4bb6e1258874  lens-5.3.6/tests/T1024.hs
+formatted       783da428b966  lens-5.3.6/tests/T799.hs
+formatted       735c78d5ee02  lens-5.3.6/tests/T917.hs
+formatted       1d3a1a7a064d  lens-5.3.6/tests/T972.hs
+formatted       1e9429a79aca  lens-5.3.6/tests/doctests.hs
+formatted       a554fa5629d9  lens-5.3.6/tests/hunit.hs
+declined        -             lens-5.3.6/tests/properties.hs
+formatted       4bd3d2baa141  lens-5.3.6/tests/templates.hs
+formatted       2a47884feb32  lifted-base-0.2.3.12/Control/Concurrent/Chan/Lifted.hs
+formatted       ed858547b569  lifted-base-0.2.3.12/Control/Concurrent/Lifted.hs
+formatted       9e73627aa56a  lifted-base-0.2.3.12/Control/Concurrent/MVar/Lifted.hs
+formatted       7896c1c8db7e  lifted-base-0.2.3.12/Control/Concurrent/QSem/Lifted.hs
+formatted       0e92e2e3c452  lifted-base-0.2.3.12/Control/Concurrent/QSemN/Lifted.hs
+formatted       5cc7e142b7a9  lifted-base-0.2.3.12/Control/Concurrent/SampleVar/Lifted.hs
+formatted       9a9d09688902  lifted-base-0.2.3.12/Control/Exception/Lifted.hs
+formatted       6ce3f2d36b4c  lifted-base-0.2.3.12/Data/IORef/Lifted.hs
+formatted       0232c1b3e9de  lifted-base-0.2.3.12/Foreign/Marshal/Utils/Lifted.hs
+formatted       e865ae48f11b  lifted-base-0.2.3.12/Setup.hs
+formatted       5d96e3b3a63b  lifted-base-0.2.3.12/System/Timeout/Lifted.hs
+formatted       8186b0308f97  lifted-base-0.2.3.12/bench/bench.hs
+formatted       969f026a4085  lifted-base-0.2.3.12/test/test.hs
+formatted       0331614d7776  megaparsec-9.8.1/Text/Megaparsec.hs
+formatted       aaf0968c72cf  megaparsec-9.8.1/Text/Megaparsec/Byte.hs
+formatted       af93162c0732  megaparsec-9.8.1/Text/Megaparsec/Byte/Binary.hs
+formatted       6daebd54878b  megaparsec-9.8.1/Text/Megaparsec/Byte/Lexer.hs
+formatted       a8f12808d592  megaparsec-9.8.1/Text/Megaparsec/Char.hs
+formatted       fb0aa0491a35  megaparsec-9.8.1/Text/Megaparsec/Char/Lexer.hs
+formatted       9ada7619d986  megaparsec-9.8.1/Text/Megaparsec/Class.hs
+formatted       04c41e5e9d68  megaparsec-9.8.1/Text/Megaparsec/Common.hs
+formatted       516df951af5f  megaparsec-9.8.1/Text/Megaparsec/Debug.hs
+formatted       063bb778990a  megaparsec-9.8.1/Text/Megaparsec/Error.hs
+formatted       6dc9b6ce5897  megaparsec-9.8.1/Text/Megaparsec/Error.hs-boot
+formatted       92e848d5b88d  megaparsec-9.8.1/Text/Megaparsec/Error/Builder.hs
+formatted       ef8c030d6d02  megaparsec-9.8.1/Text/Megaparsec/Internal.hs
+formatted       2d845f6be8a2  megaparsec-9.8.1/Text/Megaparsec/Internal.hs-boot
+formatted       fb54b4f4cab3  megaparsec-9.8.1/Text/Megaparsec/Lexer.hs
+formatted       0db88dbc985e  megaparsec-9.8.1/Text/Megaparsec/Pos.hs
+formatted       4f1b6ce7ca12  megaparsec-9.8.1/Text/Megaparsec/State.hs
+formatted       e5a839627bb9  megaparsec-9.8.1/Text/Megaparsec/Stream.hs
+formatted       5e21ab523a4c  megaparsec-9.8.1/Text/Megaparsec/Unicode.hs
+formatted       882124e5ceb6  megaparsec-9.8.1/bench/memory/Main.hs
+formatted       d8a32e7340de  megaparsec-9.8.1/bench/speed/Main.hs
+formatted       e865ae48f11b  microlens-0.5.0.0/Setup.hs
+partly-checked  37206fb8e023  microlens-0.5.0.0/src/Lens/Micro.hs
+formatted       a33fe5ffd3d9  microlens-0.5.0.0/src/Lens/Micro/Extras.hs
+formatted       3608b82ef46d  microlens-0.5.0.0/src/Lens/Micro/FieldN.hs
+partly-checked  a6c752419362  microlens-0.5.0.0/src/Lens/Micro/Internal.hs
+formatted       de09492cc927  microlens-0.5.0.0/src/Lens/Micro/Type.hs
+formatted       9fd4d8759261  mtl-2.3.2/Control/Monad/Accum.hs
+formatted       1c966453ae10  mtl-2.3.2/Control/Monad/Cont.hs
+formatted       3582a87cd07b  mtl-2.3.2/Control/Monad/Cont/Class.hs
+formatted       a1002896353b  mtl-2.3.2/Control/Monad/Error/Class.hs
+formatted       241b9ab5b29e  mtl-2.3.2/Control/Monad/Except.hs
+formatted       fae093b03648  mtl-2.3.2/Control/Monad/Identity.hs
+formatted       8bb64ac32001  mtl-2.3.2/Control/Monad/RWS.hs
+formatted       f59a78122b11  mtl-2.3.2/Control/Monad/RWS/CPS.hs
+formatted       853a42d0a7d0  mtl-2.3.2/Control/Monad/RWS/Class.hs
+formatted       6fedd348f84f  mtl-2.3.2/Control/Monad/RWS/Lazy.hs
+formatted       ddc740ed2ba9  mtl-2.3.2/Control/Monad/RWS/Strict.hs
+formatted       70448da6c08e  mtl-2.3.2/Control/Monad/Reader.hs
+formatted       e43c7f3c3559  mtl-2.3.2/Control/Monad/Reader/Class.hs
+formatted       fda85a3d8a5b  mtl-2.3.2/Control/Monad/Select.hs
+formatted       dbf53d8970a0  mtl-2.3.2/Control/Monad/State.hs
+formatted       a11cb9d9968b  mtl-2.3.2/Control/Monad/State/Class.hs
+formatted       297011983d2c  mtl-2.3.2/Control/Monad/State/Lazy.hs
+formatted       77f07f071154  mtl-2.3.2/Control/Monad/State/Strict.hs
+formatted       4442f9cb2755  mtl-2.3.2/Control/Monad/Trans.hs
+formatted       c315c681e4a7  mtl-2.3.2/Control/Monad/Writer.hs
+formatted       bd34c32bca35  mtl-2.3.2/Control/Monad/Writer/CPS.hs
+formatted       220119ac3010  mtl-2.3.2/Control/Monad/Writer/Class.hs
+formatted       26c1b816de3a  mtl-2.3.2/Control/Monad/Writer/Lazy.hs
+formatted       e5a4e79a643b  mtl-2.3.2/Control/Monad/Writer/Strict.hs
+formatted       e865ae48f11b  mtl-2.3.2/Setup.hs
+formatted       9007a7528d49  optics-0.4.2.1/benchmarks/folds.hs
+formatted       6819e713d7fd  optics-0.4.2.1/benchmarks/traversals.hs
+formatted       379aca047379  optics-0.4.2.1/src/Optics.hs
+formatted       fbb3a44aca1a  optics-0.4.2.1/tests/Optics/Tests.hs
+formatted       41b76dda3069  optics-0.4.2.1/tests/Optics/Tests/Computation.hs
+formatted       2a9b6567f5bf  optics-0.4.2.1/tests/Optics/Tests/Core.hs
+formatted       f99d8cd6ed70  optics-0.4.2.1/tests/Optics/Tests/Eta.hs
+formatted       fa94f2166eef  optics-0.4.2.1/tests/Optics/Tests/Labels/Generic.hs
+formatted       be66017a6045  optics-0.4.2.1/tests/Optics/Tests/Labels/TH.hs
+formatted       1ec08bb9f22e  optics-0.4.2.1/tests/Optics/Tests/Misc.hs
+formatted       9a4b74c6e2a0  optics-0.4.2.1/tests/Optics/Tests/Properties.hs
+partly-checked  5d457e97c466  optics-0.4.2.1/tests/Optics/Tests/Utils.hs
+formatted       e865ae48f11b  optparse-applicative-0.19.0.0/Setup.hs
+formatted       efe055dda734  optparse-applicative-0.19.0.0/src/Options/Applicative.hs
+formatted       86ed36cdbae6  optparse-applicative-0.19.0.0/src/Options/Applicative/Arrows.hs
+formatted       fa5bdd86f120  optparse-applicative-0.19.0.0/src/Options/Applicative/BashCompletion.hs
+formatted       23f732be6b3d  optparse-applicative-0.19.0.0/src/Options/Applicative/Builder.hs
+formatted       b35877965cca  optparse-applicative-0.19.0.0/src/Options/Applicative/Builder/Completer.hs
+formatted       24b9dc042174  optparse-applicative-0.19.0.0/src/Options/Applicative/Builder/Internal.hs
+formatted       dbcd46a4e6a7  optparse-applicative-0.19.0.0/src/Options/Applicative/Common.hs
+formatted       9d9cd51f75af  optparse-applicative-0.19.0.0/src/Options/Applicative/Extra.hs
+formatted       02404b06b751  optparse-applicative-0.19.0.0/src/Options/Applicative/Help.hs
+formatted       5c1b1a0b0e25  optparse-applicative-0.19.0.0/src/Options/Applicative/Help/Chunk.hs
+formatted       45fed0cf69dd  optparse-applicative-0.19.0.0/src/Options/Applicative/Help/Core.hs
+formatted       c6289fc77a0b  optparse-applicative-0.19.0.0/src/Options/Applicative/Help/Levenshtein.hs
+formatted       dbad440603b5  optparse-applicative-0.19.0.0/src/Options/Applicative/Help/Pretty.hs
+formatted       ea64d277c8d8  optparse-applicative-0.19.0.0/src/Options/Applicative/Help/Types.hs
+formatted       0f4de91bc49b  optparse-applicative-0.19.0.0/src/Options/Applicative/Internal.hs
+formatted       cfaae94bf094  optparse-applicative-0.19.0.0/src/Options/Applicative/NonEmpty.hs
+formatted       1b1444725881  optparse-applicative-0.19.0.0/src/Options/Applicative/Types.hs
+formatted       88e47dac52ad  optparse-applicative-0.19.0.0/tests/Examples/Alternatives.hs
+formatted       9cdd4cffe98a  optparse-applicative-0.19.0.0/tests/Examples/Cabal.hs
+formatted       6eb87c31763d  optparse-applicative-0.19.0.0/tests/Examples/Commands.hs
+formatted       3e7e8c6885db  optparse-applicative-0.19.0.0/tests/Examples/Formatting.hs
+formatted       63619af33822  optparse-applicative-0.19.0.0/tests/Examples/Hello.hs
+formatted       515fef001627  optparse-applicative-0.19.0.0/tests/Examples/LongSub.hs
+formatted       c2e700c8f642  optparse-applicative-0.19.0.0/tests/Examples/ParserGroup/AllGrouped.hs
+formatted       f5ab674c163c  optparse-applicative-0.19.0.0/tests/Examples/ParserGroup/Basic.hs
+formatted       dbff3ca47a7d  optparse-applicative-0.19.0.0/tests/Examples/ParserGroup/CommandGroups.hs
+formatted       87c22c856d69  optparse-applicative-0.19.0.0/tests/Examples/ParserGroup/DuplicateCommandGroups.hs
+formatted       ded6a73332cc  optparse-applicative-0.19.0.0/tests/Examples/ParserGroup/Duplicates.hs
+formatted       8ea0fc79c8f6  optparse-applicative-0.19.0.0/tests/Examples/ParserGroup/Nested.hs
+formatted       25bcbf4b701f  optparse-applicative-0.19.0.0/tests/test.hs
+formatted       40d0309b0851  pandoc-3.10.2/benchmark/benchmark-pandoc.hs
+formatted       e9cc6bbe8397  pandoc-3.10.2/src/Text/Pandoc.hs
+formatted       8c46f3c9674c  pandoc-3.10.2/src/Text/Pandoc/App.hs
+formatted       c058b2ade26f  pandoc-3.10.2/src/Text/Pandoc/App/CommandLineOptions.hs
+formatted       0d1b64ebcf3b  pandoc-3.10.2/src/Text/Pandoc/App/Input.hs
+formatted       08f327b1dbbc  pandoc-3.10.2/src/Text/Pandoc/App/Opt.hs
+formatted       3a8ec3e92f62  pandoc-3.10.2/src/Text/Pandoc/App/OutputSettings.hs
+formatted       30536e2da049  pandoc-3.10.2/src/Text/Pandoc/Asciify.hs
+formatted       0798d787f37f  pandoc-3.10.2/src/Text/Pandoc/CSS.hs
+formatted       eb9916b55f28  pandoc-3.10.2/src/Text/Pandoc/CSV.hs
+formatted       425285a86e63  pandoc-3.10.2/src/Text/Pandoc/Char.hs
+formatted       0da11c1d73e3  pandoc-3.10.2/src/Text/Pandoc/Chunks.hs
+formatted       95542a4940a6  pandoc-3.10.2/src/Text/Pandoc/Citeproc.hs
+formatted       9764427f15ce  pandoc-3.10.2/src/Text/Pandoc/Citeproc/BibTeX.hs
+formatted       f4a7c604316e  pandoc-3.10.2/src/Text/Pandoc/Citeproc/CslJson.hs
+formatted       a47804651b9d  pandoc-3.10.2/src/Text/Pandoc/Citeproc/Data.hs
+formatted       b2e977e82e53  pandoc-3.10.2/src/Text/Pandoc/Citeproc/Locator.hs
+formatted       67c0badf53a8  pandoc-3.10.2/src/Text/Pandoc/Citeproc/MetaValue.hs
+formatted       ba128290e789  pandoc-3.10.2/src/Text/Pandoc/Citeproc/Name.hs
+formatted       76559347a97c  pandoc-3.10.2/src/Text/Pandoc/Citeproc/Util.hs
+formatted       1b13d0dc5e1b  pandoc-3.10.2/src/Text/Pandoc/Class.hs
+formatted       121629e38e36  pandoc-3.10.2/src/Text/Pandoc/Class/CommonState.hs
+formatted       e2b41d9d63a2  pandoc-3.10.2/src/Text/Pandoc/Class/IO.hs
+formatted       554e3fd3f722  pandoc-3.10.2/src/Text/Pandoc/Class/PandocIO.hs
+formatted       c65acaaeb3de  pandoc-3.10.2/src/Text/Pandoc/Class/PandocMonad.hs
+formatted       af26c6ef7be1  pandoc-3.10.2/src/Text/Pandoc/Class/PandocPure.hs
+formatted       0b8f40903d65  pandoc-3.10.2/src/Text/Pandoc/Class/Sandbox.hs
+formatted       e1a80598ff8f  pandoc-3.10.2/src/Text/Pandoc/Data.hs
+formatted       099f3439d138  pandoc-3.10.2/src/Text/Pandoc/Data/BakedIn.hs
+formatted       58434b0c4602  pandoc-3.10.2/src/Text/Pandoc/Emoji.hs
+formatted       232d7de23b73  pandoc-3.10.2/src/Text/Pandoc/Error.hs
+formatted       72ff19ca80f5  pandoc-3.10.2/src/Text/Pandoc/Extensions.hs
+formatted       3bdc8aed022b  pandoc-3.10.2/src/Text/Pandoc/Filter.hs
+formatted       1be979d2afbf  pandoc-3.10.2/src/Text/Pandoc/Filter/Environment.hs
+formatted       3921a2426b07  pandoc-3.10.2/src/Text/Pandoc/Filter/JSON.hs
+formatted       9bf058c6704f  pandoc-3.10.2/src/Text/Pandoc/Format.hs
+formatted       3df0ace70613  pandoc-3.10.2/src/Text/Pandoc/Highlighting.hs
+formatted       834edab63758  pandoc-3.10.2/src/Text/Pandoc/Image.hs
+formatted       f331e86b53d6  pandoc-3.10.2/src/Text/Pandoc/ImageSize.hs
+formatted       f519615c70eb  pandoc-3.10.2/src/Text/Pandoc/Logging.hs
+formatted       198eaaad0ea2  pandoc-3.10.2/src/Text/Pandoc/MIME.hs
+formatted       fc58bac11b5e  pandoc-3.10.2/src/Text/Pandoc/MediaBag.hs
+formatted       e52f385e0fff  pandoc-3.10.2/src/Text/Pandoc/Options.hs
+formatted       c171dffba9a8  pandoc-3.10.2/src/Text/Pandoc/PDF.hs
+formatted       127d7ca8c1db  pandoc-3.10.2/src/Text/Pandoc/Parsing.hs
+formatted       d0bfe0ebb5ca  pandoc-3.10.2/src/Text/Pandoc/Parsing/Capabilities.hs
+formatted       78249fa68c58  pandoc-3.10.2/src/Text/Pandoc/Parsing/Citations.hs
+formatted       50b13251d11e  pandoc-3.10.2/src/Text/Pandoc/Parsing/Future.hs
+formatted       99cc2a7199cc  pandoc-3.10.2/src/Text/Pandoc/Parsing/General.hs
+formatted       ebf243a003b2  pandoc-3.10.2/src/Text/Pandoc/Parsing/GridTable.hs
+formatted       ae35c28522cd  pandoc-3.10.2/src/Text/Pandoc/Parsing/Lists.hs
+formatted       eb8555a8fccb  pandoc-3.10.2/src/Text/Pandoc/Parsing/Math.hs
+formatted       fad3834b08e5  pandoc-3.10.2/src/Text/Pandoc/Parsing/Smart.hs
+formatted       fbd406c6c8a4  pandoc-3.10.2/src/Text/Pandoc/Parsing/State.hs
+formatted       a83effd57b53  pandoc-3.10.2/src/Text/Pandoc/Process.hs
+formatted       5798ce9f1d3b  pandoc-3.10.2/src/Text/Pandoc/Readers.hs
+formatted       91355327396d  pandoc-3.10.2/src/Text/Pandoc/Readers/AsciiDoc.hs
+formatted       fb9989e02f4c  pandoc-3.10.2/src/Text/Pandoc/Readers/BibTeX.hs
+formatted       6df32968e0c9  pandoc-3.10.2/src/Text/Pandoc/Readers/CSV.hs
+formatted       6168a3f9a3ab  pandoc-3.10.2/src/Text/Pandoc/Readers/CommonMark.hs
+formatted       663d47f4276b  pandoc-3.10.2/src/Text/Pandoc/Readers/Creole.hs
+formatted       9a91a657b202  pandoc-3.10.2/src/Text/Pandoc/Readers/CslJson.hs
+formatted       8f06acca3961  pandoc-3.10.2/src/Text/Pandoc/Readers/Djot.hs
+formatted       05fb48bb853d  pandoc-3.10.2/src/Text/Pandoc/Readers/DocBook.hs
+formatted       acd46ae3c358  pandoc-3.10.2/src/Text/Pandoc/Readers/Docx.hs
+formatted       4fb8f147768f  pandoc-3.10.2/src/Text/Pandoc/Readers/Docx/Combine.hs
+formatted       1b010d639304  pandoc-3.10.2/src/Text/Pandoc/Readers/Docx/Fields.hs
+formatted       1182acf4b772  pandoc-3.10.2/src/Text/Pandoc/Readers/Docx/Lists.hs
+formatted       1113793eb414  pandoc-3.10.2/src/Text/Pandoc/Readers/Docx/Parse.hs
+formatted       cdafbece822b  pandoc-3.10.2/src/Text/Pandoc/Readers/Docx/Parse/Styles.hs
+formatted       59a529967b45  pandoc-3.10.2/src/Text/Pandoc/Readers/Docx/Symbols.hs
+formatted       5ca3b138e6d7  pandoc-3.10.2/src/Text/Pandoc/Readers/Docx/Util.hs
+formatted       ad24860bbd96  pandoc-3.10.2/src/Text/Pandoc/Readers/DokuWiki.hs
+formatted       84bb8bb4469c  pandoc-3.10.2/src/Text/Pandoc/Readers/EPUB.hs
+formatted       f3a6089222df  pandoc-3.10.2/src/Text/Pandoc/Readers/EndNote.hs
+formatted       14038d82e889  pandoc-3.10.2/src/Text/Pandoc/Readers/FB2.hs
+formatted       65369113b4e2  pandoc-3.10.2/src/Text/Pandoc/Readers/HTML.hs
+formatted       b968ae9289d6  pandoc-3.10.2/src/Text/Pandoc/Readers/HTML/Parsing.hs
+formatted       7906dc4b5ee7  pandoc-3.10.2/src/Text/Pandoc/Readers/HTML/Table.hs
+formatted       d02eee6a5e0a  pandoc-3.10.2/src/Text/Pandoc/Readers/HTML/TagCategories.hs
+formatted       4fb367cd5dd3  pandoc-3.10.2/src/Text/Pandoc/Readers/HTML/Types.hs
+formatted       eff46e987f16  pandoc-3.10.2/src/Text/Pandoc/Readers/Haddock.hs
+formatted       3d25a4df8c5a  pandoc-3.10.2/src/Text/Pandoc/Readers/Ipynb.hs
+formatted       cc07dc20c65e  pandoc-3.10.2/src/Text/Pandoc/Readers/JATS.hs
+formatted       f20ff0b6f36b  pandoc-3.10.2/src/Text/Pandoc/Readers/Jira.hs
+formatted       43d9623365dd  pandoc-3.10.2/src/Text/Pandoc/Readers/LaTeX.hs
+formatted       9555c9856dcb  pandoc-3.10.2/src/Text/Pandoc/Readers/LaTeX/Citation.hs
+formatted       74ee6d8d6efe  pandoc-3.10.2/src/Text/Pandoc/Readers/LaTeX/Inline.hs
+formatted       c4741ac43b79  pandoc-3.10.2/src/Text/Pandoc/Readers/LaTeX/Lang.hs
+formatted       43b3ffa002c0  pandoc-3.10.2/src/Text/Pandoc/Readers/LaTeX/Macro.hs
+formatted       a15facafa92f  pandoc-3.10.2/src/Text/Pandoc/Readers/LaTeX/Math.hs
+formatted       35684bb01d7e  pandoc-3.10.2/src/Text/Pandoc/Readers/LaTeX/Parsing.hs
+formatted       9d40938ba9d0  pandoc-3.10.2/src/Text/Pandoc/Readers/LaTeX/SIunitx.hs
+formatted       bab24b274f92  pandoc-3.10.2/src/Text/Pandoc/Readers/LaTeX/Table.hs
+formatted       9c0b878a8cae  pandoc-3.10.2/src/Text/Pandoc/Readers/Man.hs
+formatted       01f3ff3cf815  pandoc-3.10.2/src/Text/Pandoc/Readers/Markdown.hs
+formatted       b7b9f1155f1b  pandoc-3.10.2/src/Text/Pandoc/Readers/Mdoc.hs
+formatted       9964d2d17020  pandoc-3.10.2/src/Text/Pandoc/Readers/Mdoc/Lex.hs
+formatted       728f79b431ec  pandoc-3.10.2/src/Text/Pandoc/Readers/Mdoc/Macros.hs
+formatted       1a3b54c227b9  pandoc-3.10.2/src/Text/Pandoc/Readers/Mdoc/Standards.hs
+formatted       157be0b1896b  pandoc-3.10.2/src/Text/Pandoc/Readers/MediaWiki.hs
+formatted       ff97e43c99ad  pandoc-3.10.2/src/Text/Pandoc/Readers/Metadata.hs
+formatted       9f0f39d21fdd  pandoc-3.10.2/src/Text/Pandoc/Readers/Muse.hs
+formatted       b5fdcc7976c0  pandoc-3.10.2/src/Text/Pandoc/Readers/Native.hs
+formatted       07f9f5b9b349  pandoc-3.10.2/src/Text/Pandoc/Readers/ODT.hs
+formatted       4b763e5899cb  pandoc-3.10.2/src/Text/Pandoc/Readers/ODT/Arrows/State.hs
+formatted       978b213b2283  pandoc-3.10.2/src/Text/Pandoc/Readers/ODT/Arrows/Utils.hs
+formatted       bf610e3c1650  pandoc-3.10.2/src/Text/Pandoc/Readers/ODT/Base.hs
+formatted       cee91ffec7f1  pandoc-3.10.2/src/Text/Pandoc/Readers/ODT/ContentReader.hs
+formatted       6f2a41bef1f6  pandoc-3.10.2/src/Text/Pandoc/Readers/ODT/Generic/Fallible.hs
+formatted       3cb13f8a11b2  pandoc-3.10.2/src/Text/Pandoc/Readers/ODT/Generic/Namespaces.hs
+formatted       6d9540eaec43  pandoc-3.10.2/src/Text/Pandoc/Readers/ODT/Generic/SetMap.hs
+formatted       f6c4ec56e4e8  pandoc-3.10.2/src/Text/Pandoc/Readers/ODT/Generic/Utils.hs
+formatted       cea88b9dd60d  pandoc-3.10.2/src/Text/Pandoc/Readers/ODT/Generic/XMLConverter.hs
+formatted       c322898badf2  pandoc-3.10.2/src/Text/Pandoc/Readers/ODT/Namespaces.hs
+formatted       1156ac4adb5d  pandoc-3.10.2/src/Text/Pandoc/Readers/ODT/StyleReader.hs
+formatted       fc024f0c1f5f  pandoc-3.10.2/src/Text/Pandoc/Readers/OOXML/Shared.hs
+formatted       af1d77effb19  pandoc-3.10.2/src/Text/Pandoc/Readers/OPML.hs
+formatted       f0c2a727f84e  pandoc-3.10.2/src/Text/Pandoc/Readers/Org.hs
+formatted       b11790cf298d  pandoc-3.10.2/src/Text/Pandoc/Readers/Org/BlockStarts.hs
+formatted       87d98588269f  pandoc-3.10.2/src/Text/Pandoc/Readers/Org/Blocks.hs
+formatted       3ff195adb2ff  pandoc-3.10.2/src/Text/Pandoc/Readers/Org/DocumentTree.hs
+formatted       0e89e887eae3  pandoc-3.10.2/src/Text/Pandoc/Readers/Org/ExportSettings.hs
+formatted       2cc65319731e  pandoc-3.10.2/src/Text/Pandoc/Readers/Org/Inlines.hs
+formatted       e34a610bde26  pandoc-3.10.2/src/Text/Pandoc/Readers/Org/Meta.hs
+formatted       ddd05cefe687  pandoc-3.10.2/src/Text/Pandoc/Readers/Org/ParserState.hs
+formatted       cddaebd35c79  pandoc-3.10.2/src/Text/Pandoc/Readers/Org/Parsing.hs
+formatted       56b3882f7c5f  pandoc-3.10.2/src/Text/Pandoc/Readers/Org/Shared.hs
+formatted       b88c97613fb0  pandoc-3.10.2/src/Text/Pandoc/Readers/Pod.hs
+formatted       53643fbdc8d6  pandoc-3.10.2/src/Text/Pandoc/Readers/Pptx.hs
+formatted       9f0a1be15c9c  pandoc-3.10.2/src/Text/Pandoc/Readers/Pptx/Parse.hs
+formatted       06b32e0a02bb  pandoc-3.10.2/src/Text/Pandoc/Readers/Pptx/Shapes.hs
+formatted       68136f2cd896  pandoc-3.10.2/src/Text/Pandoc/Readers/Pptx/Slides.hs
+formatted       2a1143e52057  pandoc-3.10.2/src/Text/Pandoc/Readers/Pptx/SmartArt.hs
+formatted       57c12a897562  pandoc-3.10.2/src/Text/Pandoc/Readers/RIS.hs
+formatted       9bf24ffe54d5  pandoc-3.10.2/src/Text/Pandoc/Readers/RST.hs
+formatted       12dbe03639cd  pandoc-3.10.2/src/Text/Pandoc/Readers/RTF.hs
+formatted       d9ba7b2c7b59  pandoc-3.10.2/src/Text/Pandoc/Readers/Roff.hs
+formatted       07cc917bf86a  pandoc-3.10.2/src/Text/Pandoc/Readers/Roff/Escape.hs
+formatted       4f544a701d34  pandoc-3.10.2/src/Text/Pandoc/Readers/TWiki.hs
+formatted       25cccdcbef5d  pandoc-3.10.2/src/Text/Pandoc/Readers/Textile.hs
+formatted       7e7d5f748c66  pandoc-3.10.2/src/Text/Pandoc/Readers/TikiWiki.hs
+formatted       92e7cf81f874  pandoc-3.10.2/src/Text/Pandoc/Readers/Txt2Tags.hs
+formatted       4af418633a39  pandoc-3.10.2/src/Text/Pandoc/Readers/Typst.hs
+formatted       571c0f71e243  pandoc-3.10.2/src/Text/Pandoc/Readers/Typst/Math.hs
+formatted       862b8ee41599  pandoc-3.10.2/src/Text/Pandoc/Readers/Typst/Parsing.hs
+formatted       d9474be2d4dd  pandoc-3.10.2/src/Text/Pandoc/Readers/Vimwiki.hs
+formatted       a6c0f74dc4bf  pandoc-3.10.2/src/Text/Pandoc/Readers/XML.hs
+formatted       6da1519e9667  pandoc-3.10.2/src/Text/Pandoc/Readers/Xlsx.hs
+formatted       835a84d727ab  pandoc-3.10.2/src/Text/Pandoc/Readers/Xlsx/Cells.hs
+formatted       da7c96257b3c  pandoc-3.10.2/src/Text/Pandoc/Readers/Xlsx/Parse.hs
+formatted       cec0a64a8f3d  pandoc-3.10.2/src/Text/Pandoc/Readers/Xlsx/Sheets.hs
+formatted       a3abe5c4303a  pandoc-3.10.2/src/Text/Pandoc/RoffChar.hs
+formatted       3b2c2c8b4a58  pandoc-3.10.2/src/Text/Pandoc/Scripting.hs
+formatted       e11dcf0c5f07  pandoc-3.10.2/src/Text/Pandoc/SelfContained.hs
+formatted       9b4ca9cf24ae  pandoc-3.10.2/src/Text/Pandoc/Shared.hs
+formatted       d4b69c2106f2  pandoc-3.10.2/src/Text/Pandoc/Slides.hs
+formatted       f972700afdb1  pandoc-3.10.2/src/Text/Pandoc/Sources.hs
+formatted       4723b914e051  pandoc-3.10.2/src/Text/Pandoc/TeX.hs
+formatted       1af167eb5091  pandoc-3.10.2/src/Text/Pandoc/Templates.hs
+formatted       3742fd06d6d7  pandoc-3.10.2/src/Text/Pandoc/Transforms.hs
+formatted       353cd881b0ba  pandoc-3.10.2/src/Text/Pandoc/Translations.hs
+formatted       062da3b78ef5  pandoc-3.10.2/src/Text/Pandoc/Translations/Types.hs
+formatted       e8b9d88b67b0  pandoc-3.10.2/src/Text/Pandoc/URI.hs
+formatted       4aa82cbc83c8  pandoc-3.10.2/src/Text/Pandoc/UTF8.hs
+formatted       e958a4d78635  pandoc-3.10.2/src/Text/Pandoc/UUID.hs
+formatted       c4b212f4e18f  pandoc-3.10.2/src/Text/Pandoc/Version.hs
+formatted       64127df72dfc  pandoc-3.10.2/src/Text/Pandoc/Writers.hs
+formatted       740042f14295  pandoc-3.10.2/src/Text/Pandoc/Writers/ANSI.hs
+formatted       a5a598c6ebd6  pandoc-3.10.2/src/Text/Pandoc/Writers/AnnotatedTable.hs
+formatted       f6512b24e402  pandoc-3.10.2/src/Text/Pandoc/Writers/AsciiDoc.hs
+formatted       d770fbc4289a  pandoc-3.10.2/src/Text/Pandoc/Writers/BBCode.hs
+formatted       74bebaa57c03  pandoc-3.10.2/src/Text/Pandoc/Writers/BibTeX.hs
+formatted       c3a3e99a6a7b  pandoc-3.10.2/src/Text/Pandoc/Writers/Blaze.hs
+formatted       fd730c859a35  pandoc-3.10.2/src/Text/Pandoc/Writers/ChunkedHTML.hs
+formatted       936b3d7e333a  pandoc-3.10.2/src/Text/Pandoc/Writers/CommonMark.hs
+formatted       4c3d328643fe  pandoc-3.10.2/src/Text/Pandoc/Writers/ConTeXt.hs
+formatted       d9b0707d098c  pandoc-3.10.2/src/Text/Pandoc/Writers/CslJson.hs
+formatted       9f27f448bef2  pandoc-3.10.2/src/Text/Pandoc/Writers/Djot.hs
+formatted       a5d327fae7c4  pandoc-3.10.2/src/Text/Pandoc/Writers/DocBook.hs
+formatted       7bf8f7c3beff  pandoc-3.10.2/src/Text/Pandoc/Writers/Docx.hs
+formatted       61434c17e954  pandoc-3.10.2/src/Text/Pandoc/Writers/Docx/OpenXML.hs
+formatted       47c7fc1f3217  pandoc-3.10.2/src/Text/Pandoc/Writers/Docx/StyleMap.hs
+formatted       9366da9eb866  pandoc-3.10.2/src/Text/Pandoc/Writers/Docx/Table.hs
+formatted       a7b1f18b1b94  pandoc-3.10.2/src/Text/Pandoc/Writers/Docx/Types.hs
+formatted       393f60564bb0  pandoc-3.10.2/src/Text/Pandoc/Writers/DokuWiki.hs
+formatted       63bfa4a35c66  pandoc-3.10.2/src/Text/Pandoc/Writers/EPUB.hs
+formatted       18a7003d6454  pandoc-3.10.2/src/Text/Pandoc/Writers/FB2.hs
+formatted       c4b4f9d5a6e4  pandoc-3.10.2/src/Text/Pandoc/Writers/GridTable.hs
+formatted       52d1f99c1ff0  pandoc-3.10.2/src/Text/Pandoc/Writers/HTML.hs
+formatted       6dff5ff11e27  pandoc-3.10.2/src/Text/Pandoc/Writers/Haddock.hs
+formatted       c124279e4c0c  pandoc-3.10.2/src/Text/Pandoc/Writers/ICML.hs
+formatted       dd0566d62914  pandoc-3.10.2/src/Text/Pandoc/Writers/Ipynb.hs
+formatted       c36a94774899  pandoc-3.10.2/src/Text/Pandoc/Writers/JATS.hs
+formatted       4a683f5d9700  pandoc-3.10.2/src/Text/Pandoc/Writers/JATS/References.hs
+formatted       854a6ee637a9  pandoc-3.10.2/src/Text/Pandoc/Writers/JATS/Table.hs
+formatted       3aae3967440a  pandoc-3.10.2/src/Text/Pandoc/Writers/JATS/Types.hs
+formatted       9cd811748938  pandoc-3.10.2/src/Text/Pandoc/Writers/Jira.hs
+formatted       7688ee789662  pandoc-3.10.2/src/Text/Pandoc/Writers/LaTeX.hs
+formatted       cafc5a3796df  pandoc-3.10.2/src/Text/Pandoc/Writers/LaTeX/Caption.hs
+formatted       a2dbe3145658  pandoc-3.10.2/src/Text/Pandoc/Writers/LaTeX/Citation.hs
+formatted       e89e979a29e1  pandoc-3.10.2/src/Text/Pandoc/Writers/LaTeX/Lang.hs
+formatted       8c164dd5cc9c  pandoc-3.10.2/src/Text/Pandoc/Writers/LaTeX/Notes.hs
+formatted       c117286c3731  pandoc-3.10.2/src/Text/Pandoc/Writers/LaTeX/Table.hs
+formatted       a4eb629d0029  pandoc-3.10.2/src/Text/Pandoc/Writers/LaTeX/Types.hs
+formatted       f86bcaf0241e  pandoc-3.10.2/src/Text/Pandoc/Writers/LaTeX/Util.hs
+formatted       85fcfddb12db  pandoc-3.10.2/src/Text/Pandoc/Writers/Man.hs
+formatted       b9f4a40b59a1  pandoc-3.10.2/src/Text/Pandoc/Writers/Markdown.hs
+formatted       a7a53336237a  pandoc-3.10.2/src/Text/Pandoc/Writers/Markdown/Inline.hs
+formatted       c57101b9ec66  pandoc-3.10.2/src/Text/Pandoc/Writers/Markdown/Table.hs
+formatted       02c7eb593d88  pandoc-3.10.2/src/Text/Pandoc/Writers/Markdown/Types.hs
+formatted       3d9d722a4e7e  pandoc-3.10.2/src/Text/Pandoc/Writers/Math.hs
+formatted       b64a72014932  pandoc-3.10.2/src/Text/Pandoc/Writers/MediaWiki.hs
+formatted       6390452aa35b  pandoc-3.10.2/src/Text/Pandoc/Writers/Ms.hs
+formatted       80ea597c2f04  pandoc-3.10.2/src/Text/Pandoc/Writers/Muse.hs
+formatted       4acde5355993  pandoc-3.10.2/src/Text/Pandoc/Writers/Native.hs
+formatted       8ef435634695  pandoc-3.10.2/src/Text/Pandoc/Writers/ODT.hs
+formatted       780b39e3c620  pandoc-3.10.2/src/Text/Pandoc/Writers/OOXML.hs
+formatted       4c4123778a13  pandoc-3.10.2/src/Text/Pandoc/Writers/OPML.hs
+formatted       11f3bed781a4  pandoc-3.10.2/src/Text/Pandoc/Writers/OpenDocument.hs
+formatted       7d585a078c42  pandoc-3.10.2/src/Text/Pandoc/Writers/Org.hs
+formatted       74e7486aeef1  pandoc-3.10.2/src/Text/Pandoc/Writers/Powerpoint.hs
+formatted       9b93eaeae21e  pandoc-3.10.2/src/Text/Pandoc/Writers/Powerpoint/Output.hs
+formatted       3cbe72b20538  pandoc-3.10.2/src/Text/Pandoc/Writers/Powerpoint/Presentation.hs
+formatted       c16f99045f8e  pandoc-3.10.2/src/Text/Pandoc/Writers/RST.hs
+formatted       4864c0915868  pandoc-3.10.2/src/Text/Pandoc/Writers/RTF.hs
+formatted       526459d5f74f  pandoc-3.10.2/src/Text/Pandoc/Writers/Roff.hs
+formatted       64258df1d09e  pandoc-3.10.2/src/Text/Pandoc/Writers/Shared.hs
+formatted       6ff714d9bc8d  pandoc-3.10.2/src/Text/Pandoc/Writers/TEI.hs
+formatted       01231d1cd443  pandoc-3.10.2/src/Text/Pandoc/Writers/Texinfo.hs
+formatted       3a596ddb6e0a  pandoc-3.10.2/src/Text/Pandoc/Writers/Textile.hs
+formatted       e65d7bf1c614  pandoc-3.10.2/src/Text/Pandoc/Writers/Txt2Tags.hs
+formatted       ab0ca20ffb33  pandoc-3.10.2/src/Text/Pandoc/Writers/Typst.hs
+formatted       5753a1fc2b52  pandoc-3.10.2/src/Text/Pandoc/Writers/Vimdoc.hs
+formatted       030057adfda6  pandoc-3.10.2/src/Text/Pandoc/Writers/XML.hs
+formatted       159b08d5178c  pandoc-3.10.2/src/Text/Pandoc/Writers/XWiki.hs
+formatted       d353c0adc4a4  pandoc-3.10.2/src/Text/Pandoc/Writers/ZimWiki.hs
+formatted       b9434fb9de0a  pandoc-3.10.2/src/Text/Pandoc/XML.hs
+formatted       29da3381e068  pandoc-3.10.2/src/Text/Pandoc/XMLFormat.hs
+formatted       57155b5f1fa9  pandoc-3.10.2/test/Tests/Command.hs
+formatted       cc2af1e38ce1  pandoc-3.10.2/test/Tests/Helpers.hs
+formatted       b6b7d7a032dd  pandoc-3.10.2/test/Tests/MediaBag.hs
+formatted       58f15e3f067a  pandoc-3.10.2/test/Tests/Old.hs
+formatted       333649c94dd9  pandoc-3.10.2/test/Tests/Readers/Creole.hs
+formatted       c5655e1aeeef  pandoc-3.10.2/test/Tests/Readers/Docx.hs
+formatted       35e25d7a6148  pandoc-3.10.2/test/Tests/Readers/DokuWiki.hs
+formatted       150d1390d716  pandoc-3.10.2/test/Tests/Readers/EPUB.hs
+formatted       0d2db3fa6504  pandoc-3.10.2/test/Tests/Readers/FB2.hs
+formatted       155489214643  pandoc-3.10.2/test/Tests/Readers/HTML.hs
+formatted       a047fe6e2033  pandoc-3.10.2/test/Tests/Readers/JATS.hs
+formatted       3ee2ef6dea11  pandoc-3.10.2/test/Tests/Readers/Jira.hs
+formatted       a0bebbb719e9  pandoc-3.10.2/test/Tests/Readers/LaTeX.hs
+formatted       b7f1456dfbcb  pandoc-3.10.2/test/Tests/Readers/Man.hs
+formatted       67e0bd9ae4b8  pandoc-3.10.2/test/Tests/Readers/Markdown.hs
+formatted       7aec4f85c064  pandoc-3.10.2/test/Tests/Readers/Mdoc.hs
+formatted       725337c69fd0  pandoc-3.10.2/test/Tests/Readers/Muse.hs
+formatted       d850617edb68  pandoc-3.10.2/test/Tests/Readers/ODT.hs
+formatted       4cec297f4fab  pandoc-3.10.2/test/Tests/Readers/Org.hs
+formatted       e5c1db2d073f  pandoc-3.10.2/test/Tests/Readers/Org/Block.hs
+formatted       b4b9cddd5711  pandoc-3.10.2/test/Tests/Readers/Org/Block/CodeBlock.hs
+formatted       8bfbfbb823bf  pandoc-3.10.2/test/Tests/Readers/Org/Block/Figure.hs
+formatted       1db2ce6020c8  pandoc-3.10.2/test/Tests/Readers/Org/Block/Header.hs
+formatted       6040ddbe898e  pandoc-3.10.2/test/Tests/Readers/Org/Block/List.hs
+formatted       3e9d7a83d060  pandoc-3.10.2/test/Tests/Readers/Org/Block/Table.hs
+formatted       2059c719f367  pandoc-3.10.2/test/Tests/Readers/Org/Directive.hs
+formatted       bfd915a68797  pandoc-3.10.2/test/Tests/Readers/Org/Inline.hs
+formatted       c762e1d74166  pandoc-3.10.2/test/Tests/Readers/Org/Inline/Citation.hs
+formatted       b2fb48f770ee  pandoc-3.10.2/test/Tests/Readers/Org/Inline/Note.hs
+formatted       c86aabaf01bb  pandoc-3.10.2/test/Tests/Readers/Org/Inline/Smart.hs
+formatted       06c0169c3199  pandoc-3.10.2/test/Tests/Readers/Org/Meta.hs
+formatted       9f0320fe3803  pandoc-3.10.2/test/Tests/Readers/Org/Shared.hs
+formatted       1eb1a05f4635  pandoc-3.10.2/test/Tests/Readers/Pod.hs
+formatted       ff6bbea7ddc9  pandoc-3.10.2/test/Tests/Readers/Pptx.hs
+formatted       1320e3e7aa2d  pandoc-3.10.2/test/Tests/Readers/RST.hs
+formatted       63d3f17d29f9  pandoc-3.10.2/test/Tests/Readers/RTF.hs
+formatted       aca713b17e29  pandoc-3.10.2/test/Tests/Readers/Txt2Tags.hs
+formatted       d805d2ea3361  pandoc-3.10.2/test/Tests/Readers/Xlsx.hs
+formatted       2692dc26ee41  pandoc-3.10.2/test/Tests/Shared.hs
+formatted       9159eea2487f  pandoc-3.10.2/test/Tests/Writers/AnnotatedTable.hs
+formatted       b21e7e06def4  pandoc-3.10.2/test/Tests/Writers/AsciiDoc.hs
+formatted       70088c61a9f3  pandoc-3.10.2/test/Tests/Writers/BBCode.hs
+formatted       6dcb350b3086  pandoc-3.10.2/test/Tests/Writers/ConTeXt.hs
+formatted       eed62139c6af  pandoc-3.10.2/test/Tests/Writers/DocBook.hs
+formatted       3734475521c2  pandoc-3.10.2/test/Tests/Writers/Docx.hs
+formatted       c93a204195d1  pandoc-3.10.2/test/Tests/Writers/FB2.hs
+formatted       69041cc0bebc  pandoc-3.10.2/test/Tests/Writers/HTML.hs
+formatted       e20190db8973  pandoc-3.10.2/test/Tests/Writers/JATS.hs
+formatted       f691886863f7  pandoc-3.10.2/test/Tests/Writers/Jira.hs
+formatted       9b6e923fe756  pandoc-3.10.2/test/Tests/Writers/LaTeX.hs
+formatted       c301d7bef6ff  pandoc-3.10.2/test/Tests/Writers/Markdown.hs
+formatted       c8345b0f787e  pandoc-3.10.2/test/Tests/Writers/Markua.hs
+formatted       fb4d32e30070  pandoc-3.10.2/test/Tests/Writers/Ms.hs
+formatted       ef0e40bc038b  pandoc-3.10.2/test/Tests/Writers/Muse.hs
+formatted       9309764377bd  pandoc-3.10.2/test/Tests/Writers/Native.hs
+formatted       123f7ce6880c  pandoc-3.10.2/test/Tests/Writers/OOXML.hs
+formatted       3033600cbe42  pandoc-3.10.2/test/Tests/Writers/Org.hs
+formatted       0e4b414e2dea  pandoc-3.10.2/test/Tests/Writers/Plain.hs
+formatted       1b5be67cf1c4  pandoc-3.10.2/test/Tests/Writers/Powerpoint.hs
+formatted       d5d49a829a7e  pandoc-3.10.2/test/Tests/Writers/RST.hs
+formatted       7f7f9e6de407  pandoc-3.10.2/test/Tests/Writers/TEI.hs
+formatted       9286c785c97e  pandoc-3.10.2/test/Tests/Writers/Txt2Tags.hs
+formatted       14edd0465124  pandoc-3.10.2/test/Tests/XML.hs
+formatted       16057c777a9d  pandoc-3.10.2/test/command/3510-src.hs
+formatted       3f023b0abbe3  pandoc-3.10.2/test/command/6466-beg.hs
+formatted       06289f98fcac  pandoc-3.10.2/test/command/6466-end.hs
+formatted       546301610b9b  pandoc-3.10.2/test/command/6466-mid.hs
+formatted       b6f515e00962  pandoc-3.10.2/test/command/6466-whole.hs
+formatted       53aaf2e2c6e0  pandoc-3.10.2/test/test-pandoc.hs
+formatted       2556d5cb9f72  pandoc-3.10.2/xml-light/Text/Pandoc/XML/Light.hs
+formatted       3cd6a981ab05  pandoc-3.10.2/xml-light/Text/Pandoc/XML/Light/Output.hs
+formatted       3f7a60f285f2  pandoc-3.10.2/xml-light/Text/Pandoc/XML/Light/Proc.hs
+formatted       de45363ba4dc  pandoc-3.10.2/xml-light/Text/Pandoc/XML/Light/Types.hs
+formatted       e865ae48f11b  pandoc-types-1.23.1.2/Setup.hs
+formatted       8376040e03f4  pandoc-types-1.23.1.2/benchmark/bench.hs
+formatted       3ae03bf8e37c  pandoc-types-1.23.1.2/src/Text/Pandoc/Arbitrary.hs
+formatted       87ebe529440f  pandoc-types-1.23.1.2/src/Text/Pandoc/Builder.hs
+formatted       2f99ad7040cc  pandoc-types-1.23.1.2/src/Text/Pandoc/Definition.hs
+formatted       42a13347f367  pandoc-types-1.23.1.2/src/Text/Pandoc/Generic.hs
+formatted       8fad29f2adc4  pandoc-types-1.23.1.2/src/Text/Pandoc/JSON.hs
+formatted       521e0dcaf505  pandoc-types-1.23.1.2/src/Text/Pandoc/Walk.hs
+formatted       dcf10d45e788  pandoc-types-1.23.1.2/test/Data/String/QQ.hs
+formatted       aa803b05c956  pandoc-types-1.23.1.2/test/test-pandoc-types.hs
+formatted       7474b7e1d4f5  parsec3-1.0.1.8/Setup.hs
+formatted       48d72ad7fc59  parsec3-1.0.1.8/Text/Parsec.hs
+formatted       5c36e0dc2f16  parsec3-1.0.1.8/Text/Parsec/ByteString.hs
+formatted       067f443a7131  parsec3-1.0.1.8/Text/Parsec/ByteString/Lazy.hs
+formatted       5e6bdea20cf6  parsec3-1.0.1.8/Text/Parsec/Char.hs
+formatted       522600ab706d  parsec3-1.0.1.8/Text/Parsec/Combinator.hs
+formatted       fbc0d23649b9  parsec3-1.0.1.8/Text/Parsec/Error.hs
+formatted       7791b03e9f31  parsec3-1.0.1.8/Text/Parsec/Expr.hs
+formatted       156014d6ed26  parsec3-1.0.1.8/Text/Parsec/Language.hs
+formatted       40bf4d018d51  parsec3-1.0.1.8/Text/Parsec/Perm.hs
+formatted       c50efff79fe5  parsec3-1.0.1.8/Text/Parsec/Pos.hs
+formatted       29be56fe440f  parsec3-1.0.1.8/Text/Parsec/Prim.hs
+formatted       c911dc63e8d5  parsec3-1.0.1.8/Text/Parsec/String.hs
+formatted       0442595aeaa8  parsec3-1.0.1.8/Text/Parsec/Text.hs
+formatted       f2bff0c9cc7d  parsec3-1.0.1.8/Text/Parsec/Text/Lazy.hs
+formatted       bb0eeef3f954  parsec3-1.0.1.8/Text/Parsec/Token.hs
+formatted       22b02f116512  parser-combinators-1.3.1/Control/Applicative/Combinators.hs
+formatted       2b483a550d21  parser-combinators-1.3.1/Control/Applicative/Combinators/NonEmpty.hs
+formatted       7d01c0dddfcd  parser-combinators-1.3.1/Control/Applicative/Permutations.hs
+formatted       80eb76464ce8  parser-combinators-1.3.1/Control/Monad/Combinators.hs
+formatted       203c01d41bb8  parser-combinators-1.3.1/Control/Monad/Combinators/Expr.hs
+formatted       f63c3b21684d  parser-combinators-1.3.1/Control/Monad/Combinators/NonEmpty.hs
+formatted       2ce12720b575  parser-combinators-1.3.1/Control/Monad/Permutations.hs
+formatted       4c7a2ed66fb7  persistent-2.18.1.0/Database/Persist.hs
+formatted       af7417196697  persistent-2.18.1.0/Database/Persist/Class.hs
+formatted       a62cb576f4b1  persistent-2.18.1.0/Database/Persist/Class/PersistConfig.hs
+formatted       56f625ad1ea2  persistent-2.18.1.0/Database/Persist/Class/PersistEntity.hs
+formatted       59a8f044a3b1  persistent-2.18.1.0/Database/Persist/Class/PersistField.hs
+formatted       4229d83e727f  persistent-2.18.1.0/Database/Persist/Class/PersistQuery.hs
+formatted       194836df1fd0  persistent-2.18.1.0/Database/Persist/Class/PersistStore.hs
+formatted       c7df1c76c273  persistent-2.18.1.0/Database/Persist/Class/PersistUnique.hs
+formatted       8411f5f4d556  persistent-2.18.1.0/Database/Persist/Compatible.hs
+formatted       40afca283a80  persistent-2.18.1.0/Database/Persist/Compatible/TH.hs
+formatted       88f7099ef25d  persistent-2.18.1.0/Database/Persist/Compatible/Types.hs
+formatted       afd0e0f5df2e  persistent-2.18.1.0/Database/Persist/EntityDef.hs
+formatted       849d0a429195  persistent-2.18.1.0/Database/Persist/EntityDef/Internal.hs
+formatted       e1f19a8d7ad8  persistent-2.18.1.0/Database/Persist/FieldDef.hs
+formatted       ab8743cef9ef  persistent-2.18.1.0/Database/Persist/FieldDef/Internal.hs
+formatted       62ee350971e4  persistent-2.18.1.0/Database/Persist/ImplicitIdDef.hs
+formatted       23219cfb95d9  persistent-2.18.1.0/Database/Persist/ImplicitIdDef/Internal.hs
+formatted       03da4b4e1d1b  persistent-2.18.1.0/Database/Persist/Names.hs
+formatted       bffc2993298b  persistent-2.18.1.0/Database/Persist/PersistValue.hs
+formatted       3b8981721873  persistent-2.18.1.0/Database/Persist/Quasi.hs
+formatted       8181443f0a2e  persistent-2.18.1.0/Database/Persist/Quasi/Internal.hs
+formatted       46a99c7ced31  persistent-2.18.1.0/Database/Persist/Quasi/Internal/ModelParser.hs
+formatted       7c334061474c  persistent-2.18.1.0/Database/Persist/Quasi/Internal/TypeParser.hs
+formatted       21110acf54fd  persistent-2.18.1.0/Database/Persist/Quasi/PersistSettings.hs
+formatted       bd8ed569b227  persistent-2.18.1.0/Database/Persist/Quasi/PersistSettings/Internal.hs
+formatted       a2208d509db2  persistent-2.18.1.0/Database/Persist/Sql.hs
+formatted       246fc7fd8a33  persistent-2.18.1.0/Database/Persist/Sql/Class.hs
+formatted       7df96aa6ca37  persistent-2.18.1.0/Database/Persist/Sql/Internal.hs
+formatted       61627a409445  persistent-2.18.1.0/Database/Persist/Sql/Migration.hs
+formatted       6bb586234ba3  persistent-2.18.1.0/Database/Persist/Sql/Orphan/PersistQuery.hs
+formatted       f92ba225547b  persistent-2.18.1.0/Database/Persist/Sql/Orphan/PersistStore.hs
+formatted       423a6f1ddcbf  persistent-2.18.1.0/Database/Persist/Sql/Orphan/PersistUnique.hs
+formatted       4da2e4b129cc  persistent-2.18.1.0/Database/Persist/Sql/Raw.hs
+formatted       0e7b2ba6e228  persistent-2.18.1.0/Database/Persist/Sql/Run.hs
+formatted       87c15b78e7c4  persistent-2.18.1.0/Database/Persist/Sql/Types.hs
+formatted       9e7bc02b72db  persistent-2.18.1.0/Database/Persist/Sql/Types/Internal.hs
+formatted       4501af7f2e24  persistent-2.18.1.0/Database/Persist/Sql/Util.hs
+formatted       20882da7c4ce  persistent-2.18.1.0/Database/Persist/SqlBackend.hs
+formatted       748cbc69c920  persistent-2.18.1.0/Database/Persist/SqlBackend/Internal.hs
+formatted       47acc3733907  persistent-2.18.1.0/Database/Persist/SqlBackend/Internal/InsertSqlResult.hs
+formatted       4bd5d30fe421  persistent-2.18.1.0/Database/Persist/SqlBackend/Internal/IsolationLevel.hs
+formatted       c8a378801422  persistent-2.18.1.0/Database/Persist/SqlBackend/Internal/MkSqlBackend.hs
+formatted       945521fad6a2  persistent-2.18.1.0/Database/Persist/SqlBackend/Internal/SqlPoolHooks.hs
+formatted       4e0a2509487b  persistent-2.18.1.0/Database/Persist/SqlBackend/Internal/Statement.hs
+formatted       e5985feb4a17  persistent-2.18.1.0/Database/Persist/SqlBackend/Internal/StatementCache.hs
+formatted       8c6a9aceba09  persistent-2.18.1.0/Database/Persist/SqlBackend/SqlPoolHooks.hs
+formatted       22acd1321720  persistent-2.18.1.0/Database/Persist/SqlBackend/StatementCache.hs
+formatted       c43972a3241b  persistent-2.18.1.0/Database/Persist/TH.hs
+formatted       7a8187006d4b  persistent-2.18.1.0/Database/Persist/TH/Internal.hs
+formatted       3eb1ab75fbdf  persistent-2.18.1.0/Database/Persist/Types.hs
+formatted       602702e0f86e  persistent-2.18.1.0/Database/Persist/Types/Base.hs
+formatted       b8189bc0e07d  persistent-2.18.1.0/Database/Persist/Types/SourceSpan.hs
+formatted       1aec50d3544f  persistent-2.18.1.0/bench/Main.hs
+formatted       d4e78e3f895b  persistent-2.18.1.0/bench/Models.hs
+formatted       1e8c8c93c976  persistent-2.18.1.0/test/Database/Persist/ClassSpec.hs
+formatted       6082a8164f41  persistent-2.18.1.0/test/Database/Persist/PersistValueSpec.hs
+formatted       6b7b4611f96f  persistent-2.18.1.0/test/Database/Persist/QuasiSpec.hs
+formatted       519e8fe84f6b  persistent-2.18.1.0/test/Database/Persist/TH/CommentSpec.hs
+formatted       e39700ee9e91  persistent-2.18.1.0/test/Database/Persist/TH/CompositeKeyStyleSpec.hs
+formatted       f9f4014951e3  persistent-2.18.1.0/test/Database/Persist/TH/DiscoverEntitiesSpec.hs
+formatted       c444c6731179  persistent-2.18.1.0/test/Database/Persist/TH/EmbedSpec.hs
+formatted       bf23d25d4982  persistent-2.18.1.0/test/Database/Persist/TH/EntityHaddockSpec.hs
+formatted       6809c758a81d  persistent-2.18.1.0/test/Database/Persist/TH/ForeignRefSpec.hs
+formatted       0c3421ff2893  persistent-2.18.1.0/test/Database/Persist/TH/ImplicitIdColSpec.hs
+formatted       8570d4321968  persistent-2.18.1.0/test/Database/Persist/TH/JsonEncodingSpec.hs
+formatted       8adfe4a4228d  persistent-2.18.1.0/test/Database/Persist/TH/KindEntitiesSpec.hs
+formatted       5aacd109f219  persistent-2.18.1.0/test/Database/Persist/TH/KindEntitiesSpecImports.hs
+formatted       95ba90d362da  persistent-2.18.1.0/test/Database/Persist/TH/MaybeFieldDefsSpec.hs
+formatted       c4b2085e7249  persistent-2.18.1.0/test/Database/Persist/TH/MigrationOnlySpec.hs
+formatted       dbad9d8d922f  persistent-2.18.1.0/test/Database/Persist/TH/MultiBlockSpec.hs
+formatted       b776165f7ac3  persistent-2.18.1.0/test/Database/Persist/TH/MultiBlockSpec/Model.hs
+formatted       baa7f67273ec  persistent-2.18.1.0/test/Database/Persist/TH/NestedSymbolsInTypeSpec.hs
+formatted       f0e370f995e7  persistent-2.18.1.0/test/Database/Persist/TH/NestedSymbolsInTypeSpecImports.hs
+formatted       148f97b27fd9  persistent-2.18.1.0/test/Database/Persist/TH/NoFieldSelectorsSpec.hs
+formatted       e227905a242e  persistent-2.18.1.0/test/Database/Persist/TH/OverloadedLabelSpec.hs
+formatted       ad712bcac46e  persistent-2.18.1.0/test/Database/Persist/TH/PersistWith/Model.hs
+formatted       8d58beb8b33c  persistent-2.18.1.0/test/Database/Persist/TH/PersistWith/Model2.hs
+formatted       a7b8dff135f1  persistent-2.18.1.0/test/Database/Persist/TH/PersistWithSpec.hs
+formatted       7b6cf72d5ecc  persistent-2.18.1.0/test/Database/Persist/TH/RequireOnlyPersistImportSpec.hs
+formatted       9a0756832b2d  persistent-2.18.1.0/test/Database/Persist/TH/SharedPrimaryKeyImportedSpec.hs
+formatted       885e1164f19c  persistent-2.18.1.0/test/Database/Persist/TH/SharedPrimaryKeySpec.hs
+formatted       145463b36f4d  persistent-2.18.1.0/test/Database/Persist/TH/SumSpec.hs
+formatted       e6bfe40fd881  persistent-2.18.1.0/test/Database/Persist/TH/ToFromPersistValuesSpec.hs
+formatted       a18bfc6474db  persistent-2.18.1.0/test/Database/Persist/TH/TypeLitFieldDefsSpec.hs
+formatted       4b5eb99e6097  persistent-2.18.1.0/test/Database/Persist/THSpec.hs
+formatted       f9304e426550  persistent-2.18.1.0/test/TemplateTestImports.hs
+formatted       7f05465b25d5  persistent-2.18.1.0/test/main.hs
+formatted       e865ae48f11b  pipes-4.3.16/Setup.hs
+formatted       bc3b140ba83c  pipes-4.3.16/benchmarks/Common.hs
+formatted       e459e4d124d4  pipes-4.3.16/benchmarks/LiftBench.hs
+formatted       d100cca123ea  pipes-4.3.16/benchmarks/PreludeBench.hs
+formatted       c9e4b8790a2e  pipes-4.3.16/src/Pipes.hs
+formatted       73ed6cfff72e  pipes-4.3.16/src/Pipes/Core.hs
+formatted       e021398dbff3  pipes-4.3.16/src/Pipes/Internal.hs
+formatted       e3b36f0685b2  pipes-4.3.16/src/Pipes/Lift.hs
+formatted       82bba5f85292  pipes-4.3.16/src/Pipes/Prelude.hs
+formatted       436224de8a77  pipes-4.3.16/src/Pipes/Tutorial.hs
+formatted       068bd78f1e97  pipes-4.3.16/tests/Main.hs
+formatted       56dca68e0a87  postgrest-9.0.1/Setup.hs
+formatted       772d4f353686  postgrest-9.0.1/main/Main.hs
+formatted       e24d5ee8932f  postgrest-9.0.1/src/PostgREST/App.hs
+formatted       f658b8d95628  postgrest-9.0.1/src/PostgREST/AppState.hs
+formatted       04688f64c4e1  postgrest-9.0.1/src/PostgREST/Auth.hs
+formatted       0abbe3feaa05  postgrest-9.0.1/src/PostgREST/CLI.hs
+formatted       1b3df3371712  postgrest-9.0.1/src/PostgREST/Config.hs
+formatted       26e0ccfa04f8  postgrest-9.0.1/src/PostgREST/Config/Database.hs
+formatted       9632241317fd  postgrest-9.0.1/src/PostgREST/Config/JSPath.hs
+formatted       b719e278251b  postgrest-9.0.1/src/PostgREST/Config/PgVersion.hs
+formatted       6c2ca99e2760  postgrest-9.0.1/src/PostgREST/Config/Proxy.hs
+formatted       65c66f863629  postgrest-9.0.1/src/PostgREST/ContentType.hs
+formatted       9200d4931d04  postgrest-9.0.1/src/PostgREST/Cors.hs
+formatted       738b5e18a7a6  postgrest-9.0.1/src/PostgREST/DbStructure.hs
+formatted       a0f5c884d319  postgrest-9.0.1/src/PostgREST/DbStructure/Identifiers.hs
+formatted       29d8af69557a  postgrest-9.0.1/src/PostgREST/DbStructure/Proc.hs
+formatted       8670bffe5d4a  postgrest-9.0.1/src/PostgREST/DbStructure/Relationship.hs
+formatted       66c6fb5fc0f5  postgrest-9.0.1/src/PostgREST/DbStructure/Table.hs
+formatted       c35d5cc3a41e  postgrest-9.0.1/src/PostgREST/Error.hs
+formatted       f1b82d17eed8  postgrest-9.0.1/src/PostgREST/GucHeader.hs
+formatted       2c6a7ae61af9  postgrest-9.0.1/src/PostgREST/Logger.hs
+formatted       1dacd910468e  postgrest-9.0.1/src/PostgREST/Middleware.hs
+formatted       17654b363841  postgrest-9.0.1/src/PostgREST/OpenAPI.hs
+formatted       cdec9328f2d4  postgrest-9.0.1/src/PostgREST/Query/QueryBuilder.hs
+formatted       9ac8d5c64df2  postgrest-9.0.1/src/PostgREST/Query/SqlFragment.hs
+formatted       5f4cbf20b7f3  postgrest-9.0.1/src/PostgREST/Query/Statements.hs
+formatted       7d83276a4311  postgrest-9.0.1/src/PostgREST/RangeQuery.hs
+formatted       4cecd3055b78  postgrest-9.0.1/src/PostgREST/Request/ApiRequest.hs
+formatted       6ee594640f68  postgrest-9.0.1/src/PostgREST/Request/DbRequestBuilder.hs
+formatted       fc3632173741  postgrest-9.0.1/src/PostgREST/Request/Parsers.hs
+formatted       8e710c5836da  postgrest-9.0.1/src/PostgREST/Request/Preferences.hs
+formatted       1353ba00b6c3  postgrest-9.0.1/src/PostgREST/Request/Types.hs
+formatted       0c839dec485e  postgrest-9.0.1/src/PostgREST/Unix.hs
+formatted       793800bb054f  postgrest-9.0.1/src/PostgREST/Version.hs
+formatted       900b9c705574  postgrest-9.0.1/src/PostgREST/Workers.hs
+formatted       c719f882d27c  postgrest-9.0.1/test/doc/Main.hs
+formatted       0aa4fe971d52  postgrest-9.0.1/test/spec/Feature/AndOrParamsSpec.hs
+formatted       ff8246e7adcd  postgrest-9.0.1/test/spec/Feature/AsymmetricJwtSpec.hs
+formatted       bac4b7907402  postgrest-9.0.1/test/spec/Feature/AudienceJwtSecretSpec.hs
+formatted       acbe9362314e  postgrest-9.0.1/test/spec/Feature/AuthSpec.hs
+formatted       2fe84a7e70d0  postgrest-9.0.1/test/spec/Feature/BinaryJwtSecretSpec.hs
+formatted       2fb433681c01  postgrest-9.0.1/test/spec/Feature/ConcurrentSpec.hs
+formatted       db553e991f45  postgrest-9.0.1/test/spec/Feature/CorsSpec.hs
+formatted       343d3e3a465e  postgrest-9.0.1/test/spec/Feature/DeleteSpec.hs
+formatted       112082d3da25  postgrest-9.0.1/test/spec/Feature/DisabledOpenApiSpec.hs
+formatted       ad7384965a9e  postgrest-9.0.1/test/spec/Feature/EmbedDisambiguationSpec.hs
+formatted       f7a7ea3d2a87  postgrest-9.0.1/test/spec/Feature/EmbedInnerJoinSpec.hs
+formatted       a3dddabdb704  postgrest-9.0.1/test/spec/Feature/ExtraSearchPathSpec.hs
+formatted       ff20687cb475  postgrest-9.0.1/test/spec/Feature/HtmlRawOutputSpec.hs
+formatted       2e6a9474e718  postgrest-9.0.1/test/spec/Feature/IgnorePrivOpenApiSpec.hs
+formatted       ea599ebfe99c  postgrest-9.0.1/test/spec/Feature/InsertSpec.hs
+formatted       6f6ff9c35189  postgrest-9.0.1/test/spec/Feature/JsonOperatorSpec.hs
+formatted       12271bc52ad6  postgrest-9.0.1/test/spec/Feature/LegacyGucsSpec.hs
+formatted       5228aaf9349c  postgrest-9.0.1/test/spec/Feature/MultipleSchemaSpec.hs
+formatted       7bdf0d9b94ab  postgrest-9.0.1/test/spec/Feature/NoJwtSpec.hs
+formatted       a7144a84ab24  postgrest-9.0.1/test/spec/Feature/NonexistentSchemaSpec.hs
+formatted       d10bde3ba967  postgrest-9.0.1/test/spec/Feature/OpenApiSpec.hs
+formatted       1b9c2f6f5c75  postgrest-9.0.1/test/spec/Feature/OptionsSpec.hs
+formatted       89a1589ff0fe  postgrest-9.0.1/test/spec/Feature/ProxySpec.hs
+formatted       4e889783f9ba  postgrest-9.0.1/test/spec/Feature/QueryLimitedSpec.hs
+formatted       343a60a46b7c  postgrest-9.0.1/test/spec/Feature/QuerySpec.hs
+formatted       06632a6a8e0a  postgrest-9.0.1/test/spec/Feature/RangeSpec.hs
+formatted       7cb746560127  postgrest-9.0.1/test/spec/Feature/RawOutputTypesSpec.hs
+formatted       b4a3ab5a81a9  postgrest-9.0.1/test/spec/Feature/RollbackSpec.hs
+formatted       dc5321d79fb3  postgrest-9.0.1/test/spec/Feature/RootSpec.hs
+formatted       77a649eeb2e6  postgrest-9.0.1/test/spec/Feature/RpcPreRequestGucsSpec.hs
+formatted       79c99d7ebcf6  postgrest-9.0.1/test/spec/Feature/RpcSpec.hs
+formatted       73c0ab518a3d  postgrest-9.0.1/test/spec/Feature/SingularSpec.hs
+formatted       be03de84804f  postgrest-9.0.1/test/spec/Feature/UnicodeSpec.hs
+formatted       162dade8a566  postgrest-9.0.1/test/spec/Feature/UpdateSpec.hs
+formatted       eb3b5ebce8b4  postgrest-9.0.1/test/spec/Feature/UpsertSpec.hs
+formatted       7a9dd3383794  postgrest-9.0.1/test/spec/Main.hs
+formatted       f32b163f57d7  postgrest-9.0.1/test/spec/QueryCost.hs
+formatted       c8a3a9772eba  postgrest-9.0.1/test/spec/SpecHelper.hs
+formatted       c136e6235ce2  postgrest-9.0.1/test/spec/TestTypes.hs
+formatted       13abd8b59335  profunctors-5.6.3/src/Data/Profunctor.hs
+formatted       cd53a440a7f3  profunctors-5.6.3/src/Data/Profunctor/Adjunction.hs
+formatted       44ffb6d1bea1  profunctors-5.6.3/src/Data/Profunctor/Cayley.hs
+formatted       43b9af9dbdee  profunctors-5.6.3/src/Data/Profunctor/Choice.hs
+formatted       e75ce088bc39  profunctors-5.6.3/src/Data/Profunctor/Closed.hs
+formatted       1bf9da8132db  profunctors-5.6.3/src/Data/Profunctor/Composition.hs
+formatted       637e91df9ad9  profunctors-5.6.3/src/Data/Profunctor/Mapping.hs
+formatted       59b30aaa8b06  profunctors-5.6.3/src/Data/Profunctor/Monad.hs
+formatted       9cdbefb9ae8d  profunctors-5.6.3/src/Data/Profunctor/Ran.hs
+formatted       75bf7910fd8f  profunctors-5.6.3/src/Data/Profunctor/Rep.hs
+formatted       a405de2f08b4  profunctors-5.6.3/src/Data/Profunctor/Sieve.hs
+formatted       08010efdb1f7  profunctors-5.6.3/src/Data/Profunctor/Strong.hs
+formatted       c581748aad4e  profunctors-5.6.3/src/Data/Profunctor/Traversing.hs
+formatted       1c7fe01f264b  profunctors-5.6.3/src/Data/Profunctor/Types.hs
+formatted       40464db793ac  profunctors-5.6.3/src/Data/Profunctor/Unsafe.hs
+formatted       5f12d0dd1351  profunctors-5.6.3/src/Data/Profunctor/Yoneda.hs
+formatted       f97b976f5a71  purescript-0.15.15/Setup.hs
+formatted       fc25cc9ab507  purescript-0.15.15/app/Command/Bundle.hs
+formatted       d0c2fd344d2b  purescript-0.15.15/app/Command/Compile.hs
+formatted       7219813f0a5c  purescript-0.15.15/app/Command/Docs.hs
+formatted       c06c3f05260e  purescript-0.15.15/app/Command/Docs/Html.hs
+formatted       037036ef66e1  purescript-0.15.15/app/Command/Docs/Markdown.hs
+formatted       60636f418bc5  purescript-0.15.15/app/Command/Graph.hs
+formatted       60131f690f8b  purescript-0.15.15/app/Command/Hierarchy.hs
+formatted       be7dd3becfad  purescript-0.15.15/app/Command/Ide.hs
+formatted       2c3998824b51  purescript-0.15.15/app/Command/Publish.hs
+formatted       a930f15c3b4e  purescript-0.15.15/app/Command/REPL.hs
+formatted       aa128423c4fb  purescript-0.15.15/app/Main.hs
+formatted       8c8cfed900b8  purescript-0.15.15/app/SharedCLI.hs
+formatted       18a85337fa6b  purescript-0.15.15/app/Version.hs
+formatted       e69aed05fabc  purescript-0.15.15/src/Control/Monad/Logger.hs
+formatted       f396208e56b6  purescript-0.15.15/src/Control/Monad/Supply.hs
+formatted       4199e8087c69  purescript-0.15.15/src/Control/Monad/Supply/Class.hs
+formatted       7a4d7979e1c9  purescript-0.15.15/src/Data/Text/PureScript.hs
+formatted       eef5dd037abf  purescript-0.15.15/src/Language/PureScript.hs
+formatted       64c0d4442190  purescript-0.15.15/src/Language/PureScript/AST.hs
+formatted       6857432ccb89  purescript-0.15.15/src/Language/PureScript/AST/Binders.hs
+formatted       31b3dc106302  purescript-0.15.15/src/Language/PureScript/AST/Declarations.hs
+formatted       0368132e2a7c  purescript-0.15.15/src/Language/PureScript/AST/Declarations/ChainId.hs
+formatted       fbdaa45efd39  purescript-0.15.15/src/Language/PureScript/AST/Exported.hs
+formatted       16c598490b8b  purescript-0.15.15/src/Language/PureScript/AST/Literals.hs
+formatted       6dde4019084f  purescript-0.15.15/src/Language/PureScript/AST/Operators.hs
+formatted       7cb50594d1de  purescript-0.15.15/src/Language/PureScript/AST/SourcePos.hs
+formatted       fd740ce393cd  purescript-0.15.15/src/Language/PureScript/AST/Traversals.hs
+formatted       b141c8c10db8  purescript-0.15.15/src/Language/PureScript/AST/Utils.hs
+formatted       afe55109e72f  purescript-0.15.15/src/Language/PureScript/Bundle.hs
+formatted       665ede6abf17  purescript-0.15.15/src/Language/PureScript/CST.hs
+formatted       a5963c5438f8  purescript-0.15.15/src/Language/PureScript/CST/Convert.hs
+formatted       2143990c6781  purescript-0.15.15/src/Language/PureScript/CST/Errors.hs
+formatted       c81c2ecf7ebe  purescript-0.15.15/src/Language/PureScript/CST/Flatten.hs
+formatted       36fe1c70493a  purescript-0.15.15/src/Language/PureScript/CST/Layout.hs
+formatted       7ac157858a86  purescript-0.15.15/src/Language/PureScript/CST/Lexer.hs
+formatted       a08c36743aa3  purescript-0.15.15/src/Language/PureScript/CST/Monad.hs
+formatted       a696e86ab554  purescript-0.15.15/src/Language/PureScript/CST/Positions.hs
+formatted       2df3a82dec66  purescript-0.15.15/src/Language/PureScript/CST/Print.hs
+formatted       c741805ffed3  purescript-0.15.15/src/Language/PureScript/CST/Traversals.hs
+formatted       81c5d151f932  purescript-0.15.15/src/Language/PureScript/CST/Traversals/Type.hs
+formatted       46dd73253c21  purescript-0.15.15/src/Language/PureScript/CST/Types.hs
+formatted       36359ab27c15  purescript-0.15.15/src/Language/PureScript/CST/Utils.hs
+formatted       ebd74707d2df  purescript-0.15.15/src/Language/PureScript/CodeGen.hs
+formatted       9cf1b3de6d73  purescript-0.15.15/src/Language/PureScript/CodeGen/JS.hs
+formatted       f10bc54be3c8  purescript-0.15.15/src/Language/PureScript/CodeGen/JS/Common.hs
+formatted       f81f2f0671e9  purescript-0.15.15/src/Language/PureScript/CodeGen/JS/Printer.hs
+formatted       a69b28f801ea  purescript-0.15.15/src/Language/PureScript/Comments.hs
+formatted       7e1454fed47d  purescript-0.15.15/src/Language/PureScript/Constants/Libs.hs
+formatted       4e84deb1970c  purescript-0.15.15/src/Language/PureScript/Constants/Prim.hs
+formatted       08cf8657b87b  purescript-0.15.15/src/Language/PureScript/Constants/TH.hs
+formatted       0e372eb9e534  purescript-0.15.15/src/Language/PureScript/CoreFn.hs
+formatted       c133879c858f  purescript-0.15.15/src/Language/PureScript/CoreFn/Ann.hs
+formatted       2556afbb3bea  purescript-0.15.15/src/Language/PureScript/CoreFn/Binders.hs
+formatted       08f7f269d88a  purescript-0.15.15/src/Language/PureScript/CoreFn/CSE.hs
+formatted       3a083ba8ee7c  purescript-0.15.15/src/Language/PureScript/CoreFn/Desugar.hs
+formatted       2f90c3840d55  purescript-0.15.15/src/Language/PureScript/CoreFn/Expr.hs
+formatted       17eec7fac664  purescript-0.15.15/src/Language/PureScript/CoreFn/FromJSON.hs
+formatted       83a35a14ab46  purescript-0.15.15/src/Language/PureScript/CoreFn/Laziness.hs
+formatted       083a81cbf5bf  purescript-0.15.15/src/Language/PureScript/CoreFn/Meta.hs
+formatted       2b2d42f479f2  purescript-0.15.15/src/Language/PureScript/CoreFn/Module.hs
+formatted       26edb255fed7  purescript-0.15.15/src/Language/PureScript/CoreFn/Optimizer.hs
+formatted       a01b08124299  purescript-0.15.15/src/Language/PureScript/CoreFn/ToJSON.hs
+formatted       74e775f771b9  purescript-0.15.15/src/Language/PureScript/CoreFn/Traversals.hs
+formatted       63122a31d5b9  purescript-0.15.15/src/Language/PureScript/CoreImp.hs
+formatted       5545c5e53cd1  purescript-0.15.15/src/Language/PureScript/CoreImp/AST.hs
+formatted       07f8248f1a4c  purescript-0.15.15/src/Language/PureScript/CoreImp/Module.hs
+formatted       76a5683510a3  purescript-0.15.15/src/Language/PureScript/CoreImp/Optimizer.hs
+formatted       900e45f47ef2  purescript-0.15.15/src/Language/PureScript/CoreImp/Optimizer/Blocks.hs
+formatted       69950bb1f0de  purescript-0.15.15/src/Language/PureScript/CoreImp/Optimizer/Common.hs
+formatted       1d936757f795  purescript-0.15.15/src/Language/PureScript/CoreImp/Optimizer/Inliner.hs
+formatted       cd70e24b2f0a  purescript-0.15.15/src/Language/PureScript/CoreImp/Optimizer/MagicDo.hs
+formatted       4a46787c4f53  purescript-0.15.15/src/Language/PureScript/CoreImp/Optimizer/TCO.hs
+formatted       c3bcb1230471  purescript-0.15.15/src/Language/PureScript/CoreImp/Optimizer/Unused.hs
+formatted       54228acabdeb  purescript-0.15.15/src/Language/PureScript/Crash.hs
+formatted       d38f4a6a3f33  purescript-0.15.15/src/Language/PureScript/Docs.hs
+formatted       4478d29d0228  purescript-0.15.15/src/Language/PureScript/Docs/AsHtml.hs
+formatted       b2652f6691cc  purescript-0.15.15/src/Language/PureScript/Docs/AsMarkdown.hs
+formatted       a02b1656aca1  purescript-0.15.15/src/Language/PureScript/Docs/Collect.hs
+formatted       4b0e409bc207  purescript-0.15.15/src/Language/PureScript/Docs/Convert.hs
+formatted       d0cd55c3280e  purescript-0.15.15/src/Language/PureScript/Docs/Convert/ReExports.hs
+formatted       9037caf6f0fd  purescript-0.15.15/src/Language/PureScript/Docs/Convert/Single.hs
+formatted       d97124c1ab6a  purescript-0.15.15/src/Language/PureScript/Docs/Css.hs
+formatted       f90d0d26dd2b  purescript-0.15.15/src/Language/PureScript/Docs/Prim.hs
+formatted       edaa27498ded  purescript-0.15.15/src/Language/PureScript/Docs/Render.hs
+formatted       4c98064ffe67  purescript-0.15.15/src/Language/PureScript/Docs/RenderedCode.hs
+formatted       2f9857670eb2  purescript-0.15.15/src/Language/PureScript/Docs/RenderedCode/RenderType.hs
+formatted       c20dd6b6a9df  purescript-0.15.15/src/Language/PureScript/Docs/RenderedCode/Types.hs
+formatted       876b5438b748  purescript-0.15.15/src/Language/PureScript/Docs/Tags.hs
+formatted       5872469a59f7  purescript-0.15.15/src/Language/PureScript/Docs/Types.hs
+formatted       bc381d509404  purescript-0.15.15/src/Language/PureScript/Docs/Utils/MonoidExtras.hs
+formatted       3d05b5f9ca04  purescript-0.15.15/src/Language/PureScript/Environment.hs
+formatted       833858141e1a  purescript-0.15.15/src/Language/PureScript/Errors.hs
+formatted       805b37c2988c  purescript-0.15.15/src/Language/PureScript/Errors/JSON.hs
+formatted       30d65d281400  purescript-0.15.15/src/Language/PureScript/Externs.hs
+formatted       20df6c4b2580  purescript-0.15.15/src/Language/PureScript/Glob.hs
+formatted       a91b6028a053  purescript-0.15.15/src/Language/PureScript/Graph.hs
+formatted       0af324e42f5f  purescript-0.15.15/src/Language/PureScript/Hierarchy.hs
+formatted       281c5e956097  purescript-0.15.15/src/Language/PureScript/Ide.hs
+formatted       4d15e4184a91  purescript-0.15.15/src/Language/PureScript/Ide/CaseSplit.hs
+formatted       881ddb331445  purescript-0.15.15/src/Language/PureScript/Ide/Command.hs
+formatted       9df2facac4b2  purescript-0.15.15/src/Language/PureScript/Ide/Completion.hs
+formatted       beb74c449b74  purescript-0.15.15/src/Language/PureScript/Ide/Error.hs
+formatted       ead51a8cf8b2  purescript-0.15.15/src/Language/PureScript/Ide/Externs.hs
+formatted       846996d62981  purescript-0.15.15/src/Language/PureScript/Ide/Filter.hs
+formatted       3576f2d7de05  purescript-0.15.15/src/Language/PureScript/Ide/Filter/Declaration.hs
+formatted       19c2f9d82289  purescript-0.15.15/src/Language/PureScript/Ide/Filter/Imports.hs
+formatted       d3bf1ba9ac6a  purescript-0.15.15/src/Language/PureScript/Ide/Imports.hs
+formatted       03a7f932c16a  purescript-0.15.15/src/Language/PureScript/Ide/Imports/Actions.hs
+formatted       dae869e09d51  purescript-0.15.15/src/Language/PureScript/Ide/Logging.hs
+formatted       6495efed1636  purescript-0.15.15/src/Language/PureScript/Ide/Matcher.hs
+formatted       fe69a6b2ed2c  purescript-0.15.15/src/Language/PureScript/Ide/Prim.hs
+formatted       ac973f1b2f5a  purescript-0.15.15/src/Language/PureScript/Ide/Rebuild.hs
+formatted       9390668ca723  purescript-0.15.15/src/Language/PureScript/Ide/Reexports.hs
+formatted       40ae0185eda5  purescript-0.15.15/src/Language/PureScript/Ide/SourceFile.hs
+formatted       4badb68aba43  purescript-0.15.15/src/Language/PureScript/Ide/State.hs
+formatted       97156b72015a  purescript-0.15.15/src/Language/PureScript/Ide/Types.hs
+formatted       a2547b22a5bd  purescript-0.15.15/src/Language/PureScript/Ide/Usage.hs
+formatted       c5c7f0134f7c  purescript-0.15.15/src/Language/PureScript/Ide/Util.hs
+formatted       a54bd99f9377  purescript-0.15.15/src/Language/PureScript/Interactive.hs
+formatted       ea47006e2013  purescript-0.15.15/src/Language/PureScript/Interactive/Completion.hs
+formatted       17488dfda517  purescript-0.15.15/src/Language/PureScript/Interactive/Directive.hs
+formatted       2ab1349ff2ec  purescript-0.15.15/src/Language/PureScript/Interactive/IO.hs
+formatted       f41f6e5826db  purescript-0.15.15/src/Language/PureScript/Interactive/Message.hs
+formatted       595ebf5e2141  purescript-0.15.15/src/Language/PureScript/Interactive/Module.hs
+formatted       4b81e9100134  purescript-0.15.15/src/Language/PureScript/Interactive/Parser.hs
+formatted       1addaeaf36e0  purescript-0.15.15/src/Language/PureScript/Interactive/Printer.hs
+formatted       6ddd734712d4  purescript-0.15.15/src/Language/PureScript/Interactive/Types.hs
+formatted       1c78dfc40930  purescript-0.15.15/src/Language/PureScript/Label.hs
+formatted       2d0f22fb5805  purescript-0.15.15/src/Language/PureScript/Linter.hs
+formatted       a4813ff2c614  purescript-0.15.15/src/Language/PureScript/Linter/Exhaustive.hs
+formatted       299f2c75ebc4  purescript-0.15.15/src/Language/PureScript/Linter/Imports.hs
+formatted       463c2330ffe1  purescript-0.15.15/src/Language/PureScript/Linter/Wildcards.hs
+formatted       1511cd74f131  purescript-0.15.15/src/Language/PureScript/Make.hs
+formatted       316ef33e238d  purescript-0.15.15/src/Language/PureScript/Make/Actions.hs
+formatted       103c1376e453  purescript-0.15.15/src/Language/PureScript/Make/BuildPlan.hs
+formatted       2ff6ea3e0439  purescript-0.15.15/src/Language/PureScript/Make/Cache.hs
+formatted       5a62260bbc36  purescript-0.15.15/src/Language/PureScript/Make/Monad.hs
+formatted       d32972a1d126  purescript-0.15.15/src/Language/PureScript/ModuleDependencies.hs
+formatted       f525c70bb6b0  purescript-0.15.15/src/Language/PureScript/Names.hs
+formatted       0f9b1ea22f14  purescript-0.15.15/src/Language/PureScript/Options.hs
+formatted       2a2b99ef8171  purescript-0.15.15/src/Language/PureScript/PSString.hs
+formatted       2b26a96d8bcc  purescript-0.15.15/src/Language/PureScript/Pretty.hs
+formatted       c590bb7fdae4  purescript-0.15.15/src/Language/PureScript/Pretty/Common.hs
+formatted       c8ae94e56cbc  purescript-0.15.15/src/Language/PureScript/Pretty/Types.hs
+formatted       e154c175f83f  purescript-0.15.15/src/Language/PureScript/Pretty/Values.hs
+formatted       7afc9764bee9  purescript-0.15.15/src/Language/PureScript/Publish.hs
+formatted       79e26f16154a  purescript-0.15.15/src/Language/PureScript/Publish/BoxesHelpers.hs
+formatted       fd7373c25f32  purescript-0.15.15/src/Language/PureScript/Publish/ErrorsWarnings.hs
+formatted       a7eeb8da714c  purescript-0.15.15/src/Language/PureScript/Publish/Registry/Compat.hs
+formatted       fba7a9e201e6  purescript-0.15.15/src/Language/PureScript/Publish/Utils.hs
+formatted       c4b949fe0d09  purescript-0.15.15/src/Language/PureScript/Renamer.hs
+formatted       9e88be14067d  purescript-0.15.15/src/Language/PureScript/Roles.hs
+formatted       2530d5774295  purescript-0.15.15/src/Language/PureScript/Sugar.hs
+formatted       834b0e83e969  purescript-0.15.15/src/Language/PureScript/Sugar/AdoNotation.hs
+formatted       69ace5e25259  purescript-0.15.15/src/Language/PureScript/Sugar/BindingGroups.hs
+formatted       6aef86a4887f  purescript-0.15.15/src/Language/PureScript/Sugar/CaseDeclarations.hs
+formatted       7efb24168510  purescript-0.15.15/src/Language/PureScript/Sugar/DoNotation.hs
+formatted       b232946c3700  purescript-0.15.15/src/Language/PureScript/Sugar/LetPattern.hs
+formatted       ae52bb36f9ee  purescript-0.15.15/src/Language/PureScript/Sugar/Names.hs
+formatted       b2eab3efd8fe  purescript-0.15.15/src/Language/PureScript/Sugar/Names/Common.hs
+formatted       e317ca567acf  purescript-0.15.15/src/Language/PureScript/Sugar/Names/Env.hs
+formatted       f2e2506cd465  purescript-0.15.15/src/Language/PureScript/Sugar/Names/Exports.hs
+formatted       6955df9dd4c2  purescript-0.15.15/src/Language/PureScript/Sugar/Names/Imports.hs
+formatted       54d278b2a1af  purescript-0.15.15/src/Language/PureScript/Sugar/ObjectWildcards.hs
+formatted       1f8d111ee043  purescript-0.15.15/src/Language/PureScript/Sugar/Operators.hs
+formatted       9db73f9a40a9  purescript-0.15.15/src/Language/PureScript/Sugar/Operators/Binders.hs
+formatted       13722182a0e7  purescript-0.15.15/src/Language/PureScript/Sugar/Operators/Common.hs
+formatted       a5ab8188f154  purescript-0.15.15/src/Language/PureScript/Sugar/Operators/Expr.hs
+formatted       81c3efe7c9f9  purescript-0.15.15/src/Language/PureScript/Sugar/Operators/Types.hs
+formatted       fb9c5b98a9e5  purescript-0.15.15/src/Language/PureScript/Sugar/TypeClasses.hs
+formatted       7d9f317829e0  purescript-0.15.15/src/Language/PureScript/Sugar/TypeClasses/Deriving.hs
+formatted       ecea49da50c6  purescript-0.15.15/src/Language/PureScript/Sugar/TypeDeclarations.hs
+formatted       24e5df024499  purescript-0.15.15/src/Language/PureScript/Traversals.hs
+formatted       ca48c70748fe  purescript-0.15.15/src/Language/PureScript/TypeChecker.hs
+formatted       9b0b916deed1  purescript-0.15.15/src/Language/PureScript/TypeChecker/Deriving.hs
+formatted       6f3315a67e07  purescript-0.15.15/src/Language/PureScript/TypeChecker/Entailment.hs
+formatted       475dea9a3c17  purescript-0.15.15/src/Language/PureScript/TypeChecker/Entailment/Coercible.hs
+formatted       b504bbdc02b8  purescript-0.15.15/src/Language/PureScript/TypeChecker/Entailment/IntCompare.hs
+formatted       3fc4c00e183c  purescript-0.15.15/src/Language/PureScript/TypeChecker/Kinds.hs
+formatted       47e4f5ec9f12  purescript-0.15.15/src/Language/PureScript/TypeChecker/Monad.hs
+formatted       4c2777ae908a  purescript-0.15.15/src/Language/PureScript/TypeChecker/Roles.hs
+formatted       3d9eb14e5345  purescript-0.15.15/src/Language/PureScript/TypeChecker/Skolems.hs
+formatted       c8964442e6c6  purescript-0.15.15/src/Language/PureScript/TypeChecker/Subsumption.hs
+formatted       c5b309590b3d  purescript-0.15.15/src/Language/PureScript/TypeChecker/Synonyms.hs
+formatted       a0db4db50108  purescript-0.15.15/src/Language/PureScript/TypeChecker/TypeSearch.hs
+formatted       69b6eeefd174  purescript-0.15.15/src/Language/PureScript/TypeChecker/Types.hs
+formatted       e88ff7e32a40  purescript-0.15.15/src/Language/PureScript/TypeChecker/Unify.hs
+formatted       2d148264f334  purescript-0.15.15/src/Language/PureScript/TypeClassDictionaries.hs
+formatted       ed3ce891a8d0  purescript-0.15.15/src/Language/PureScript/Types.hs
+formatted       50a45fbad08d  purescript-0.15.15/src/System/IO/UTF8.hs
+formatted       c599f7d8bf58  purescript-0.15.15/tests/Language/PureScript/Ide/CompletionSpec.hs
+formatted       099ba0badfd6  purescript-0.15.15/tests/Language/PureScript/Ide/FilterSpec.hs
+formatted       1033245eef97  purescript-0.15.15/tests/Language/PureScript/Ide/ImportsSpec.hs
+formatted       028f5c10dae7  purescript-0.15.15/tests/Language/PureScript/Ide/MatcherSpec.hs
+formatted       e7c92690fcf3  purescript-0.15.15/tests/Language/PureScript/Ide/RebuildSpec.hs
+formatted       7890facc486a  purescript-0.15.15/tests/Language/PureScript/Ide/ReexportsSpec.hs
+formatted       59d2a1d292e1  purescript-0.15.15/tests/Language/PureScript/Ide/SourceFileSpec.hs
+formatted       8f0a665bd9ba  purescript-0.15.15/tests/Language/PureScript/Ide/StateSpec.hs
+formatted       9864a15e1927  purescript-0.15.15/tests/Language/PureScript/Ide/Test.hs
+formatted       67fe4d589cdb  purescript-0.15.15/tests/Language/PureScript/Ide/UsageSpec.hs
+formatted       0406ed28e812  purescript-0.15.15/tests/Main.hs
+formatted       ed333c67c3b1  purescript-0.15.15/tests/PscIdeSpec.hs
+formatted       a2b0f5e823b9  purescript-0.15.15/tests/TestAst.hs
+formatted       5e98364df884  purescript-0.15.15/tests/TestCompiler.hs
+formatted       c454ba7cc3dd  purescript-0.15.15/tests/TestCoreFn.hs
+formatted       5b562e2e0010  purescript-0.15.15/tests/TestCst.hs
+formatted       d9a9eb37749c  purescript-0.15.15/tests/TestDocs.hs
+formatted       e29c16f400a0  purescript-0.15.15/tests/TestGraph.hs
+formatted       7314022489fa  purescript-0.15.15/tests/TestHierarchy.hs
+formatted       0874e238b9c0  purescript-0.15.15/tests/TestIde.hs
+formatted       4e905fa525a9  purescript-0.15.15/tests/TestMake.hs
+formatted       e782a733be50  purescript-0.15.15/tests/TestPrimDocs.hs
+formatted       d2998d562480  purescript-0.15.15/tests/TestPscPublish.hs
+formatted       e47fc0f000ee  purescript-0.15.15/tests/TestPsci.hs
+formatted       557206f834dc  purescript-0.15.15/tests/TestPsci/CommandTest.hs
+formatted       a139fd3aa0c9  purescript-0.15.15/tests/TestPsci/CompletionTest.hs
+formatted       5fa6ca09e4c4  purescript-0.15.15/tests/TestPsci/EvalTest.hs
+formatted       52ef143912e6  purescript-0.15.15/tests/TestPsci/TestEnv.hs
+formatted       3aaf84c12b48  purescript-0.15.15/tests/TestSourceMaps.hs
+formatted       32a8b25e8a6d  purescript-0.15.15/tests/TestUtils.hs
+formatted       81d9fcab1309  raaz-0.3.11/api/aead/Auth/Implementation.hsig
+formatted       3c30facf2cf7  raaz-0.3.11/api/aead/Cipher/Implementation.hsig
+formatted       faee44cdbcec  raaz-0.3.11/api/aead/Interface.hs
+formatted       a346882029b3  raaz-0.3.11/api/auth/Implementation.hsig
+formatted       64f75c0371bc  raaz-0.3.11/api/auth/Interface.hs
+formatted       29b7f7e93ae5  raaz-0.3.11/api/digest/Implementation.hsig
+formatted       558beb703aff  raaz-0.3.11/api/digest/Interface.hs
+formatted       33dbca109528  raaz-0.3.11/api/encrypt/Implementation.hsig
+formatted       abdae110e56a  raaz-0.3.11/api/encrypt/Interface.hs
+formatted       10d5d9d622cd  raaz-0.3.11/api/random/Entropy.hsig
+formatted       83b376fec166  raaz-0.3.11/api/random/Implementation.hsig
+formatted       ffc859b186af  raaz-0.3.11/api/random/Internal.hs
+formatted       b649659b6718  raaz-0.3.11/api/random/PRGenerator.hs
+formatted       316f45947114  raaz-0.3.11/benchmarks/Main.hs
+formatted       876b405577a3  raaz-0.3.11/benchmarks/internal/Benchmark/CSPRG.hs
+formatted       20cee45b7828  raaz-0.3.11/benchmarks/internal/Benchmark/Primitive.hs
+formatted       1e4c846b4064  raaz-0.3.11/benchmarks/internal/Benchmark/Types.hs
+formatted       9ec4c716a238  raaz-0.3.11/core/Raaz/Core.hs
+formatted       52634a64c590  raaz-0.3.11/core/Raaz/Core/ByteSource.hs
+formatted       a05146df1142  raaz-0.3.11/core/Raaz/Core/Constants.hs
+formatted       97564cea364d  raaz-0.3.11/core/Raaz/Core/CpuSupports.hs
+formatted       b89a1297556b  raaz-0.3.11/core/Raaz/Core/Encode.hs
+formatted       7d4d89c52f5c  raaz-0.3.11/core/Raaz/Core/Encode/Base16.hs
+formatted       1897172e3c60  raaz-0.3.11/core/Raaz/Core/Encode/Base64.hs
+formatted       f8721f54231f  raaz-0.3.11/core/Raaz/Core/Encode/Internal.hs
+formatted       8061d9cd4bc4  raaz-0.3.11/core/Raaz/Core/Memory.hs
+formatted       be5bdc9fc1ae  raaz-0.3.11/core/Raaz/Core/MonoidalAction.hs
+formatted       a44dbacd364d  raaz-0.3.11/core/Raaz/Core/Parse.hs
+formatted       514d08e6f301  raaz-0.3.11/core/Raaz/Core/Parse/Unsafe.hs
+formatted       3d4dcaf4509d  raaz-0.3.11/core/Raaz/Core/Prelude.hs
+formatted       642d73a32500  raaz-0.3.11/core/Raaz/Core/Primitive.hs
+formatted       f026c14b5cef  raaz-0.3.11/core/Raaz/Core/Transfer.hs
+formatted       437bb6bc524e  raaz-0.3.11/core/Raaz/Core/Transfer/Unsafe.hs
+formatted       03cf11da4658  raaz-0.3.11/core/Raaz/Core/Types.hs
+formatted       14f5c5822c66  raaz-0.3.11/core/Raaz/Core/Types/Copying.hs
+formatted       7a6d55f211a6  raaz-0.3.11/core/Raaz/Core/Types/Endian.hs
+formatted       a48c22bbc9bf  raaz-0.3.11/core/Raaz/Core/Types/Equality.hs
+formatted       72aa730843b9  raaz-0.3.11/core/Raaz/Core/Types/Internal.hs
+formatted       131bd6941a42  raaz-0.3.11/core/Raaz/Core/Types/Pointer.hs
+formatted       f9be8525b0e9  raaz-0.3.11/core/Raaz/Core/Types/Tuple.hs
+formatted       d98d94a62e17  raaz-0.3.11/core/Raaz/Core/Util/ByteString.hs
+formatted       aadc37085673  raaz-0.3.11/core/Raaz/Primitive/AEAD/Internal.hs
+formatted       bdf59fdf9536  raaz-0.3.11/core/Raaz/Primitive/Blake2/Internal.hs
+formatted       26f42c9a3385  raaz-0.3.11/core/Raaz/Primitive/ChaCha20/Internal.hs
+formatted       933091143258  raaz-0.3.11/core/Raaz/Primitive/HashMemory.hs
+formatted       2e41cccfd947  raaz-0.3.11/core/Raaz/Primitive/Keyed/Internal.hs
+formatted       11f319d28f77  raaz-0.3.11/core/Raaz/Primitive/Poly1305/Internal.hs
+formatted       662036acbd84  raaz-0.3.11/core/Raaz/Primitive/Sha2/Internal.hs
+formatted       d321e6f120cc  raaz-0.3.11/implementation/Blake2b/CHandWritten.hs
+formatted       c7f7e16ff427  raaz-0.3.11/implementation/Blake2b/CPortable.hs
+formatted       5f5fb27d70c0  raaz-0.3.11/implementation/Blake2s/CHandWritten.hs
+formatted       d4911e2aba2f  raaz-0.3.11/implementation/ChaCha20/CHandWritten.hs
+formatted       fd7ed676bf40  raaz-0.3.11/implementation/ChaCha20/CPortable.hs
+formatted       2f7657c239d7  raaz-0.3.11/implementation/ChaCha20/Random/CPortable.hs
+formatted       e3deac8e5358  raaz-0.3.11/implementation/Poly1305/CPortable.hs
+formatted       340ec557db99  raaz-0.3.11/implementation/Poly1305/Memory.hs
+formatted       720f42375ee4  raaz-0.3.11/implementation/Sha256/CHandWritten.hs
+formatted       c064cc7a8421  raaz-0.3.11/implementation/Sha256/CPortable.hs
+formatted       a59c773526b4  raaz-0.3.11/implementation/Sha512/CHandWritten.hs
+formatted       53529d47a59f  raaz-0.3.11/implementation/Sha512/CPortable.hs
+formatted       e5d101450ea0  raaz-0.3.11/implementation/entropy/arc4random/Entropy.hs
+formatted       fe1af598e9b2  raaz-0.3.11/implementation/entropy/urandom/Entropy.hs
+formatted       0a7a863b87f6  raaz-0.3.11/indef/Implementation.hsig
+formatted       5b5f82999259  raaz-0.3.11/indef/Utils.hs
+formatted       524895081243  raaz-0.3.11/indef/buffer/Buffer.hs
+formatted       cd4684e81d95  raaz-0.3.11/indef/buffer/Context.hs
+formatted       d34b17eeb2fb  raaz-0.3.11/indef/buffer/Implementation.hsig
+formatted       5de45ebd7407  raaz-0.3.11/indef/chacha20/Implementation.hsig
+formatted       496eb8d3a6e9  raaz-0.3.11/indef/chacha20/XChaCha20/Implementation.hs
+formatted       91e1d49fa2ec  raaz-0.3.11/indef/keyed/hash/Implementation.hsig
+formatted       484c54b73764  raaz-0.3.11/indef/keyed/hash/Mac/Implementation.hs
+formatted       fd3b4278ccc5  raaz-0.3.11/libverse/Raaz/Verse/Blake2b/C/Portable.hs
+formatted       44b600e76f74  raaz-0.3.11/libverse/Raaz/Verse/ChaCha20/C/Portable.hs
+formatted       221da1a1ba37  raaz-0.3.11/libverse/Raaz/Verse/Poly1305/C/Portable.hs
+formatted       7ccb752d8b1d  raaz-0.3.11/libverse/Raaz/Verse/Sha256/C/Portable.hs
+formatted       695112ac1280  raaz-0.3.11/libverse/Raaz/Verse/Sha512/C/Portable.hs
+formatted       2fbd14b119a4  raaz-0.3.11/monocypher/tests/Monocypher.hs
+formatted       1d0ec4de7195  raaz-0.3.11/monocypher/tests/Monocypher/Blake2bSpec.hs
+formatted       106d8eed6480  raaz-0.3.11/monocypher/tests/Monocypher/ChaCha20Spec.hs
+formatted       e81070c8d0f4  raaz-0.3.11/monocypher/tests/Monocypher/Sha512Spec.hs
+formatted       309f4011c1b9  raaz-0.3.11/raaz/Raaz.hs
+formatted       e9a09ee4fdff  raaz-0.3.11/raaz/Raaz/Auth.hs
+formatted       5467fc4082bb  raaz-0.3.11/raaz/Raaz/AuthEncrypt.hs
+formatted       6c7dee472711  raaz-0.3.11/raaz/Raaz/AuthEncrypt/Unsafe.hs
+formatted       7a5701480b18  raaz-0.3.11/raaz/Raaz/Digest.hs
+formatted       b154ef8c060a  raaz-0.3.11/raaz/Raaz/Random.hs
+formatted       14ec81125123  raaz-0.3.11/raaz/Raaz/V1/Auth.hs
+formatted       ac72448e6d8d  raaz-0.3.11/raaz/Raaz/V1/AuthEncrypt.hs
+formatted       9c227de3e844  raaz-0.3.11/raaz/Raaz/V1/AuthEncrypt/Unsafe.hs
+formatted       b221e97b02a1  raaz-0.3.11/raaz/Raaz/V1/Digest.hs
+formatted       dfc72506b4ee  raaz-0.3.11/raaz/bin/Command/Checksum.hs
+formatted       6af965bca577  raaz-0.3.11/raaz/bin/Command/Info.hs
+formatted       8b84f490d89a  raaz-0.3.11/raaz/bin/Command/Rand.hs
+formatted       5267a6b74531  raaz-0.3.11/raaz/bin/Main.hs
+formatted       bb0aca2148f4  raaz-0.3.11/raaz/bin/Usage.hs
+formatted       8955f3f595d6  raaz-0.3.11/tests/Raaz/Cipher/ChaCha20Spec.hs
+formatted       66c20297d941  raaz-0.3.11/tests/Raaz/Cipher/XChaCha20Spec.hs
+formatted       f70ba0951ea5  raaz-0.3.11/tests/Raaz/Core/ByteSourceSpec.hs
+formatted       f50f5814ce13  raaz-0.3.11/tests/Raaz/Core/EncodeSpec.hs
+formatted       a5cc6d99aed2  raaz-0.3.11/tests/Raaz/Core/MemorySpec.hs
+formatted       11c7d4db7839  raaz-0.3.11/tests/Raaz/Core/Types/WordSpec.hs
+formatted       b186aa2ce683  raaz-0.3.11/tests/Raaz/Core/Util/ByteStringSpec.hs
+formatted       9d02caada1d9  raaz-0.3.11/tests/Raaz/Digest/Blake2Spec.hs
+formatted       4f62e035aa97  raaz-0.3.11/tests/Raaz/Digest/Sha256Spec.hs
+formatted       ab3342a1c1c3  raaz-0.3.11/tests/Raaz/Digest/Sha512Spec.hs
+formatted       57a10ec0221b  raaz-0.3.11/tests/Raaz/Mac/Poly1305Spec.hs
+formatted       6cdc5c00b3a8  raaz-0.3.11/tests/Raaz/RandomSpec.hs
+formatted       2fbd14b119a4  raaz-0.3.11/tests/Spec.hs
+formatted       b1a4cba13110  raaz-0.3.11/tests/auth/Implementation.hsig
+formatted       ae7499e9f1a2  raaz-0.3.11/tests/auth/Tests/Auth.hs
+formatted       146a3742af4d  raaz-0.3.11/tests/auth/implementation/Auth/Mac/Blake2b.hs
+formatted       1400f8497a4b  raaz-0.3.11/tests/auth/implementation/Auth/Mac/Blake2s.hs
+formatted       f25bf91a517e  raaz-0.3.11/tests/auth/implementation/Auth/Poly1305.hs
+formatted       7123559f7c81  raaz-0.3.11/tests/cipher/Tests/Cipher.hs
+formatted       0c05cee23c2f  raaz-0.3.11/tests/comparative/AuthEncrypt.hs
+formatted       97ef04d16217  raaz-0.3.11/tests/comparative/AuthEncrypt/ChaCha20Poly1305Spec.hs
+formatted       741dc859a7b4  raaz-0.3.11/tests/comparative/Compare.hs
+formatted       5a902c132987  raaz-0.3.11/tests/comparative/Digest.hs
+formatted       9b0b9e470964  raaz-0.3.11/tests/comparative/Digest/Blake2bSpec.hs
+formatted       5e40537778de  raaz-0.3.11/tests/comparative/Digest/Sha256Spec.hs
+formatted       1d23a17f155b  raaz-0.3.11/tests/comparative/Digest/Sha512Spec.hs
+formatted       a5fa5869f401  raaz-0.3.11/tests/comparative/Encrypt.hs
+formatted       43a4a9f511ea  raaz-0.3.11/tests/comparative/Encrypt/ChaCha20Spec.hs
+formatted       2fbd14b119a4  raaz-0.3.11/tests/comparative/Main.hs
+formatted       9a4da070ca55  raaz-0.3.11/tests/core/Tests/Core.hs
+formatted       9b7c1c31e1e0  raaz-0.3.11/tests/core/Tests/Core/Imports.hs
+formatted       c746b6855fd8  raaz-0.3.11/tests/core/Tests/Core/Instances.hs
+formatted       62f66214a824  raaz-0.3.11/tests/core/Tests/Core/Utils.hs
+formatted       bcc780e22f03  raaz-0.3.11/tests/message-digest/Implementation.hsig
+formatted       2bb252395b85  raaz-0.3.11/tests/message-digest/Tests/Digest.hs
+formatted       4a8ac51676df  random-1.3.1/Setup.hs
+formatted       f81df0c89774  random-1.3.1/bench-legacy/BinSearch.hs
+formatted       ec53458f4d57  random-1.3.1/bench-legacy/SimpleRNGBench.hs
+formatted       0584292cc54f  random-1.3.1/bench/Main.hs
+formatted       fc5450bd346c  random-1.3.1/src/System/Random.hs
+formatted       5851806268ea  random-1.3.1/src/System/Random/Array.hs
+formatted       0648347f5df7  random-1.3.1/src/System/Random/GFinite.hs
+formatted       b01bc1443faf  random-1.3.1/src/System/Random/Internal.hs
+formatted       43cf9948fc9c  random-1.3.1/src/System/Random/Seed.hs
+formatted       2b2590d1c67b  random-1.3.1/src/System/Random/Stateful.hs
+formatted       0d72e1db2b6d  random-1.3.1/test-inspection/Spec.hs
+formatted       c6f769b56ab6  random-1.3.1/test-inspection/Spec/Inspection.hs
+formatted       ed91342d3f30  random-1.3.1/test-legacy/Legacy.hs
+formatted       0160098f7cc5  random-1.3.1/test-legacy/Random1283.hs
+formatted       ad6c39289552  random-1.3.1/test-legacy/RangeTest.hs
+formatted       4c1669996d8d  random-1.3.1/test-legacy/T7936.hs
+formatted       398febcc8a6f  random-1.3.1/test-legacy/TestRandomIOs.hs
+formatted       3ef25c06bdfc  random-1.3.1/test-legacy/TestRandomRs.hs
+formatted       170817d6d661  random-1.3.1/test/Spec.hs
+formatted       a65d68fad80b  random-1.3.1/test/Spec/Range.hs
+formatted       e0e7306312ea  random-1.3.1/test/Spec/Run.hs
+formatted       b3fd15d83ccf  random-1.3.1/test/Spec/Seed.hs
+formatted       53b268e9c80a  random-1.3.1/test/Spec/Stateful.hs
+formatted       4ac47a361dee  recursion-schemes-5.2.3/examples/Expr.hs
+formatted       37b2a0b086b3  recursion-schemes-5.2.3/src/Data/Functor/Base.hs
+formatted       a84fbb2dc105  recursion-schemes-5.2.3/src/Data/Functor/Foldable.hs
+formatted       60333913c12d  recursion-schemes-5.2.3/src/Data/Functor/Foldable/TH.hs
+formatted       1581398eb1b5  resourcet-1.3.0/Control/Monad/Trans/Resource.hs
+formatted       ae2967cdb48f  resourcet-1.3.0/Control/Monad/Trans/Resource/Internal.hs
+formatted       80dc65ef0c4a  resourcet-1.3.0/Data/Acquire.hs
+formatted       4a9defd159ee  resourcet-1.3.0/Data/Acquire/Internal.hs
+formatted       27565132aa25  resourcet-1.3.0/UnliftIO/Resource.hs
+formatted       1434a2ae8bde  resourcet-1.3.0/test/main.hs
+formatted       e865ae48f11b  retry-0.9.3.1/Setup.hs
+formatted       89288db2c195  retry-0.9.3.1/src/Control/Retry.hs
+formatted       757a08fbfe9f  retry-0.9.3.1/src/UnliftIO/Retry.hs
+formatted       94b4a78445b3  retry-0.9.3.1/test/Main.hs
+formatted       08af947c789a  retry-0.9.3.1/test/Tests/Control/Retry.hs
+formatted       0b770fc83ef2  retry-0.9.3.1/test/Tests/UnliftIO/Retry.hs
+formatted       e865ae48f11b  safe-exceptions-0.1.7.4/Setup.hs
+formatted       bfa9329aa42a  safe-exceptions-0.1.7.4/src/Control/Exception/Safe.hs
+formatted       d65c0e991a57  safe-exceptions-0.1.7.4/test/Control/Exception/SafeSpec.hs
+formatted       2fbd14b119a4  safe-exceptions-0.1.7.4/test/Spec.hs
+formatted       e865ae48f11b  scientific-0.3.8.1/Setup.hs
+formatted       6a2de24bbe1d  scientific-0.3.8.1/bench/bench.hs
+formatted       b51f688e4f66  scientific-0.3.8.1/src/Data/ByteString/Builder/Scientific.hs
+formatted       6fcd3c78e09a  scientific-0.3.8.1/src/Data/Scientific.hs
+formatted       5837fdbf8485  scientific-0.3.8.1/src/Data/Text/Lazy/Builder/Scientific.hs
+formatted       e18e1762aa10  scientific-0.3.8.1/src/GHC/Integer/Compat.hs
+formatted       70da6923c6d5  scientific-0.3.8.1/src/Utils.hs
+formatted       08267660b11e  scientific-0.3.8.1/test/test.hs
+formatted       e865ae48f11b  scotty-0.30/Setup.hs
+formatted       c9dfe68e2b3d  scotty-0.30/Web/Scotty.hs
+formatted       cc7d56854e51  scotty-0.30/Web/Scotty/Action.hs
+formatted       7865e58f308d  scotty-0.30/Web/Scotty/Body.hs
+formatted       210215898ba8  scotty-0.30/Web/Scotty/Cookie.hs
+formatted       7fbb2c4c4db1  scotty-0.30/Web/Scotty/Internal/Types.hs
+formatted       ccdc72ea4dc8  scotty-0.30/Web/Scotty/Route.hs
+formatted       220c453f0fd9  scotty-0.30/Web/Scotty/Session.hs
+formatted       8ae99d50285d  scotty-0.30/Web/Scotty/Trans.hs
+formatted       e2036cbfa7c2  scotty-0.30/Web/Scotty/Trans/Lazy.hs
+formatted       fe607154f3af  scotty-0.30/Web/Scotty/Trans/Strict.hs
+formatted       6bad8484016a  scotty-0.30/Web/Scotty/Util.hs
+formatted       19a63b08e8cc  scotty-0.30/bench/Main.hs
+formatted       ff18ebd00d97  scotty-0.30/doctest/Main.hs
+formatted       f0b727a58f1f  scotty-0.30/examples/basic.hs
+formatted       128fcbdca77d  scotty-0.30/examples/bodyecho.hs
+formatted       0bfdeec9e9d5  scotty-0.30/examples/cookies.hs
+formatted       e68dfe58dd88  scotty-0.30/examples/exceptions.hs
+formatted       3417d0bd8a35  scotty-0.30/examples/globalstate.hs
+formatted       5d812024dc2a  scotty-0.30/examples/gzip.hs
+formatted       14f88a75023e  scotty-0.30/examples/json_mode.hs
+formatted       d96b13ea35d6  scotty-0.30/examples/middleware.hs
+formatted       dd5796ac98ac  scotty-0.30/examples/nested.hs
+formatted       f424d2128b4a  scotty-0.30/examples/options.hs
+formatted       8b1e46c9aeb7  scotty-0.30/examples/reader.hs
+formatted       6750528250e9  scotty-0.30/examples/session.hs
+formatted       d40e0a8e64ea  scotty-0.30/examples/upload.hs
+formatted       94f10fda97e5  scotty-0.30/examples/urlshortener.hs
+formatted       2fbd14b119a4  scotty-0.30/test/Spec.hs
+formatted       dd9baecda733  scotty-0.30/test/Test/Hspec/Wai/Extra.hs
+formatted       88776873ba4e  scotty-0.30/test/Web/ScottySpec.hs
+formatted       091ccbfea22a  semigroupoids-6.0.2/src/Data/Bifunctor/Apply.hs
+formatted       a420abc361b5  semigroupoids-6.0.2/src/Data/Functor/Alt.hs
+formatted       b091ae1639ae  semigroupoids-6.0.2/src/Data/Functor/Apply.hs
+formatted       4322a16f4eaf  semigroupoids-6.0.2/src/Data/Functor/Bind.hs
+partly-checked  df73e43115ed  semigroupoids-6.0.2/src/Data/Functor/Bind/Class.hs
+formatted       82dabf65525e  semigroupoids-6.0.2/src/Data/Functor/Bind/Trans.hs
+formatted       1a0625f8bf10  semigroupoids-6.0.2/src/Data/Functor/Contravariant/Conclude.hs
+formatted       07df2e2c41cf  semigroupoids-6.0.2/src/Data/Functor/Contravariant/Decide.hs
+formatted       db97dfd12637  semigroupoids-6.0.2/src/Data/Functor/Contravariant/Divise.hs
+formatted       8d9ff323a8d5  semigroupoids-6.0.2/src/Data/Functor/Extend.hs
+formatted       eeeb9b11aa89  semigroupoids-6.0.2/src/Data/Functor/Plus.hs
+formatted       2c9e2b95e1c6  semigroupoids-6.0.2/src/Data/Groupoid.hs
+formatted       ada45a392805  semigroupoids-6.0.2/src/Data/Isomorphism.hs
+formatted       045d35e85b6e  semigroupoids-6.0.2/src/Data/Semigroup/Bifoldable.hs
+formatted       3b69bf2b2c98  semigroupoids-6.0.2/src/Data/Semigroup/Bitraversable.hs
+formatted       bc14896823af  semigroupoids-6.0.2/src/Data/Semigroup/Foldable.hs
+formatted       15d51636f77f  semigroupoids-6.0.2/src/Data/Semigroup/Foldable/Class.hs
+formatted       e46135ea634e  semigroupoids-6.0.2/src/Data/Semigroup/Traversable.hs
+formatted       5db895bd9aed  semigroupoids-6.0.2/src/Data/Semigroup/Traversable/Class.hs
+formatted       f396855efdc4  semigroupoids-6.0.2/src/Data/Semigroupoid.hs
+formatted       b3380ca605a0  semigroupoids-6.0.2/src/Data/Semigroupoid/Categorical.hs
+formatted       dd586be40bf0  semigroupoids-6.0.2/src/Data/Semigroupoid/Dual.hs
+formatted       f1c21cb8613d  semigroupoids-6.0.2/src/Data/Semigroupoid/Ob.hs
+formatted       6c569b65cb14  semigroupoids-6.0.2/src/Data/Semigroupoid/Static.hs
+formatted       9945f77c9069  semigroupoids-6.0.2/src/Data/Traversable/Instances.hs
+formatted       4f91affffbe0  semigroupoids-6.0.2/src/Semigroupoids/Do.hs
+formatted       36cd692fcb55  semigroupoids-6.0.2/src/Semigroupoids/Internal.hs
+formatted       e865ae48f11b  servant-0.20.3.0/Setup.hs
+formatted       6c60dfa14bab  servant-0.20.3.0/src/Servant/API.hs
+formatted       5a93b6c6920b  servant-0.20.3.0/src/Servant/API/Alternative.hs
+formatted       75083035f5f7  servant-0.20.3.0/src/Servant/API/BasicAuth.hs
+formatted       67a0fa186634  servant-0.20.3.0/src/Servant/API/Capture.hs
+formatted       30586810caf1  servant-0.20.3.0/src/Servant/API/ContentTypes.hs
+formatted       b131dd1a95be  servant-0.20.3.0/src/Servant/API/Description.hs
+formatted       3529480c44cb  servant-0.20.3.0/src/Servant/API/Empty.hs
+formatted       f5f890f1b91b  servant-0.20.3.0/src/Servant/API/Experimental/Auth.hs
+formatted       b27583864c6e  servant-0.20.3.0/src/Servant/API/Fragment.hs
+formatted       514122c80af6  servant-0.20.3.0/src/Servant/API/Generic.hs
+formatted       86a01166d6f0  servant-0.20.3.0/src/Servant/API/Header.hs
+formatted       a4120f74a189  servant-0.20.3.0/src/Servant/API/Host.hs
+formatted       28ff37015f45  servant-0.20.3.0/src/Servant/API/HttpVersion.hs
+formatted       ffc36b46d798  servant-0.20.3.0/src/Servant/API/IsSecure.hs
+formatted       9d0d41393a3e  servant-0.20.3.0/src/Servant/API/Modifiers.hs
+formatted       684bc7886ecb  servant-0.20.3.0/src/Servant/API/MultiVerb.hs
+formatted       56acb7471063  servant-0.20.3.0/src/Servant/API/NamedRoutes.hs
+formatted       9ff90737a6ed  servant-0.20.3.0/src/Servant/API/QueryParam.hs
+formatted       c9e33c06dd4d  servant-0.20.3.0/src/Servant/API/QueryString.hs
+formatted       a2969f7ec694  servant-0.20.3.0/src/Servant/API/Range.hs
+formatted       b4ca6686cebd  servant-0.20.3.0/src/Servant/API/Raw.hs
+formatted       bf0e0f5c31f1  servant-0.20.3.0/src/Servant/API/RemoteHost.hs
+formatted       546ee6390b43  servant-0.20.3.0/src/Servant/API/ReqBody.hs
+formatted       d928b8fb5d2c  servant-0.20.3.0/src/Servant/API/ResponseHeaders.hs
+formatted       c67668bb6c05  servant-0.20.3.0/src/Servant/API/ServerSentEvents.hs
+formatted       d944ce6b72bb  servant-0.20.3.0/src/Servant/API/Status.hs
+formatted       d3008fc94481  servant-0.20.3.0/src/Servant/API/Stream.hs
+formatted       2075b4d49a8e  servant-0.20.3.0/src/Servant/API/Sub.hs
+formatted       ff144efc7edd  servant-0.20.3.0/src/Servant/API/TypeErrors.hs
+formatted       201085562ace  servant-0.20.3.0/src/Servant/API/TypeLevel.hs
+formatted       c0878f59a227  servant-0.20.3.0/src/Servant/API/TypeLevel/List.hs
+formatted       9be4a4b0a678  servant-0.20.3.0/src/Servant/API/UVerb.hs
+formatted       46da2eb7f65a  servant-0.20.3.0/src/Servant/API/UVerb/Union.hs
+formatted       abf6188d387f  servant-0.20.3.0/src/Servant/API/Vault.hs
+formatted       99b275626c24  servant-0.20.3.0/src/Servant/API/Verbs.hs
+formatted       deda0b809380  servant-0.20.3.0/src/Servant/API/WithNamedContext.hs
+formatted       c8d1802909fc  servant-0.20.3.0/src/Servant/API/WithResource.hs
+formatted       d97da3f0bb6d  servant-0.20.3.0/src/Servant/Links.hs
+formatted       ff8c792172dc  servant-0.20.3.0/src/Servant/Test/ComprehensiveAPI.hs
+formatted       72397d3bb59f  servant-0.20.3.0/src/Servant/Types/Internal/Response.hs
+formatted       8f2c3fef963c  servant-0.20.3.0/src/Servant/Types/SourceT.hs
+formatted       484ac8b49db2  servant-0.20.3.0/test/Servant/API/ContentTypesSpec.hs
+formatted       092efa81712a  servant-0.20.3.0/test/Servant/API/ResponseHeadersSpec.hs
+formatted       99970f8f87ed  servant-0.20.3.0/test/Servant/API/StreamSpec.hs
+formatted       8039684754dd  servant-0.20.3.0/test/Servant/LinksSpec.hs
+formatted       2fbd14b119a4  servant-0.20.3.0/test/Spec.hs
+formatted       e865ae48f11b  servant-server-0.20.3.0/Setup.hs
+formatted       39ab7e0143c5  servant-server-0.20.3.0/example/greet.hs
+formatted       08e74f5df484  servant-server-0.20.3.0/src/Servant.hs
+formatted       4e5e14480522  servant-server-0.20.3.0/src/Servant/Server.hs
+formatted       a6d416eaa214  servant-server-0.20.3.0/src/Servant/Server/Experimental/Auth.hs
+formatted       d02fe8efeb6c  servant-server-0.20.3.0/src/Servant/Server/Generic.hs
+formatted       76e1bb03861e  servant-server-0.20.3.0/src/Servant/Server/Internal.hs
+formatted       3841500d6a67  servant-server-0.20.3.0/src/Servant/Server/Internal/BasicAuth.hs
+formatted       f03d2f6ed8bf  servant-server-0.20.3.0/src/Servant/Server/Internal/Context.hs
+formatted       270fb8218e92  servant-server-0.20.3.0/src/Servant/Server/Internal/Delayed.hs
+formatted       53d1b4ea8afa  servant-server-0.20.3.0/src/Servant/Server/Internal/DelayedIO.hs
+formatted       5a85be243261  servant-server-0.20.3.0/src/Servant/Server/Internal/ErrorFormatter.hs
+formatted       2d8b6e227464  servant-server-0.20.3.0/src/Servant/Server/Internal/Handler.hs
+formatted       e759d749c842  servant-server-0.20.3.0/src/Servant/Server/Internal/ResponseRender.hs
+formatted       c917f160a6ee  servant-server-0.20.3.0/src/Servant/Server/Internal/RouteResult.hs
+formatted       80a04147d1d7  servant-server-0.20.3.0/src/Servant/Server/Internal/Router.hs
+formatted       c6b1b1f5c4f1  servant-server-0.20.3.0/src/Servant/Server/Internal/RoutingApplication.hs
+formatted       68d2c1ad8a45  servant-server-0.20.3.0/src/Servant/Server/Internal/ServerError.hs
+formatted       a588e8a6002c  servant-server-0.20.3.0/src/Servant/Server/StaticFiles.hs
+formatted       7a929eb5f6c6  servant-server-0.20.3.0/src/Servant/Server/UVerb.hs
+formatted       d43150f68994  servant-server-0.20.3.0/src/Servant/Utils/StaticFiles.hs
+formatted       4d91407009da  servant-server-0.20.3.0/test/Servant/ArbitraryMonadServerSpec.hs
+formatted       d6971ea1d324  servant-server-0.20.3.0/test/Servant/HoistSpec.hs
+formatted       91b965c983ef  servant-server-0.20.3.0/test/Servant/Server/ErrorSpec.hs
+formatted       6e725d0bb23c  servant-server-0.20.3.0/test/Servant/Server/Internal/ContextSpec.hs
+formatted       06840e723cbc  servant-server-0.20.3.0/test/Servant/Server/Internal/RoutingApplicationSpec.hs
+formatted       ed1fb686c7f4  servant-server-0.20.3.0/test/Servant/Server/RouterSpec.hs
+formatted       217323758702  servant-server-0.20.3.0/test/Servant/Server/StaticFilesSpec.hs
+formatted       a48e6f9f028f  servant-server-0.20.3.0/test/Servant/Server/StreamingSpec.hs
+formatted       ffec1b355a67  servant-server-0.20.3.0/test/Servant/Server/UsingContextSpec.hs
+formatted       c68eea536d8f  servant-server-0.20.3.0/test/Servant/Server/UsingContextSpec/TestCombinators.hs
+formatted       7053087a930f  servant-server-0.20.3.0/test/Servant/ServerSpec.hs
+formatted       2fbd14b119a4  servant-server-0.20.3.0/test/Spec.hs
+formatted       e865ae48f11b  shake-0.19.9/Setup.hs
+formatted       1115d98036fa  shake-0.19.9/docs/manual/Shakefile.hs
+formatted       9d11f22fc368  shake-0.19.9/src/Development/Ninja/All.hs
+formatted       3104f3ca6fe0  shake-0.19.9/src/Development/Ninja/Env.hs
+formatted       df84026a633e  shake-0.19.9/src/Development/Ninja/Lexer.hs
+formatted       11197fb7bfd8  shake-0.19.9/src/Development/Ninja/Parse.hs
+formatted       c0a33fcdb116  shake-0.19.9/src/Development/Ninja/Type.hs
+formatted       1e091717f0e4  shake-0.19.9/src/Development/Shake.hs
+formatted       6abc5aa00667  shake-0.19.9/src/Development/Shake/Classes.hs
+formatted       1b4810581680  shake-0.19.9/src/Development/Shake/Command.hs
+formatted       5959e8996e24  shake-0.19.9/src/Development/Shake/Config.hs
+formatted       2ffbbbe7ea76  shake-0.19.9/src/Development/Shake/Database.hs
+formatted       6a9f5286dbbd  shake-0.19.9/src/Development/Shake/FilePath.hs
+formatted       1f7279048342  shake-0.19.9/src/Development/Shake/Forward.hs
+formatted       0f161b15d908  shake-0.19.9/src/Development/Shake/Internal/Args.hs
+formatted       176c017dbbd9  shake-0.19.9/src/Development/Shake/Internal/CmdOption.hs
+formatted       89cf4b51fe66  shake-0.19.9/src/Development/Shake/Internal/CompactUI.hs
+formatted       741e862bf58e  shake-0.19.9/src/Development/Shake/Internal/Core/Action.hs
+formatted       a94401153b61  shake-0.19.9/src/Development/Shake/Internal/Core/Build.hs
+formatted       c03d9bf624a4  shake-0.19.9/src/Development/Shake/Internal/Core/Database.hs
+formatted       3e4afc55b835  shake-0.19.9/src/Development/Shake/Internal/Core/Monad.hs
+formatted       15dda4610803  shake-0.19.9/src/Development/Shake/Internal/Core/Pool.hs
+formatted       72387b89230e  shake-0.19.9/src/Development/Shake/Internal/Core/Rules.hs
+formatted       34e1f3ed18dd  shake-0.19.9/src/Development/Shake/Internal/Core/Run.hs
+formatted       55d80ed15e96  shake-0.19.9/src/Development/Shake/Internal/Core/Storage.hs
+formatted       bfe3604d202f  shake-0.19.9/src/Development/Shake/Internal/Core/Types.hs
+formatted       46848a2a03e2  shake-0.19.9/src/Development/Shake/Internal/Demo.hs
+formatted       1afe6f5f82c8  shake-0.19.9/src/Development/Shake/Internal/Derived.hs
+formatted       419e421f13a6  shake-0.19.9/src/Development/Shake/Internal/Errors.hs
+declined        -             shake-0.19.9/src/Development/Shake/Internal/FileInfo.hs
+formatted       759fa2b54278  shake-0.19.9/src/Development/Shake/Internal/FileName.hs
+formatted       fe798a191c19  shake-0.19.9/src/Development/Shake/Internal/FilePattern.hs
+formatted       1e054a94085b  shake-0.19.9/src/Development/Shake/Internal/History/Bloom.hs
+formatted       01551ed3cbf4  shake-0.19.9/src/Development/Shake/Internal/History/Cloud.hs
+formatted       249ed8efaa13  shake-0.19.9/src/Development/Shake/Internal/History/Network.hs
+formatted       2481e80c7e58  shake-0.19.9/src/Development/Shake/Internal/History/Serialise.hs
+formatted       14a6f9c117dc  shake-0.19.9/src/Development/Shake/Internal/History/Server.hs
+formatted       d90d4f71cadd  shake-0.19.9/src/Development/Shake/Internal/History/Shared.hs
+declined        -             shake-0.19.9/src/Development/Shake/Internal/History/Symlink.hs
+formatted       765062af5b1e  shake-0.19.9/src/Development/Shake/Internal/History/Types.hs
+formatted       1667cc1258cb  shake-0.19.9/src/Development/Shake/Internal/Options.hs
+formatted       15a7f1039c01  shake-0.19.9/src/Development/Shake/Internal/Paths.hs
+formatted       cd695d3ce28f  shake-0.19.9/src/Development/Shake/Internal/Profile.hs
+declined        -             shake-0.19.9/src/Development/Shake/Internal/Progress.hs
+formatted       342442931569  shake-0.19.9/src/Development/Shake/Internal/Resource.hs
+formatted       5733144919c3  shake-0.19.9/src/Development/Shake/Internal/Rules/Default.hs
+formatted       49bcf9520df0  shake-0.19.9/src/Development/Shake/Internal/Rules/Directory.hs
+formatted       8355467730f0  shake-0.19.9/src/Development/Shake/Internal/Rules/File.hs
+formatted       e7921ae8b2dd  shake-0.19.9/src/Development/Shake/Internal/Rules/Files.hs
+formatted       18637b215cdb  shake-0.19.9/src/Development/Shake/Internal/Rules/Oracle.hs
+formatted       b0d13ac0a3a9  shake-0.19.9/src/Development/Shake/Internal/Rules/OrderOnly.hs
+formatted       c9bb8c405fe0  shake-0.19.9/src/Development/Shake/Internal/Rules/Rerun.hs
+formatted       b6e1d27ae046  shake-0.19.9/src/Development/Shake/Internal/Value.hs
+formatted       4f57cc655ba3  shake-0.19.9/src/Development/Shake/Rule.hs
+formatted       72f09acd1481  shake-0.19.9/src/Development/Shake/Util.hs
+formatted       796b5a76fb8c  shake-0.19.9/src/General/Bilist.hs
+formatted       a2e9bfc4e206  shake-0.19.9/src/General/Binary.hs
+formatted       bbd9c27b5570  shake-0.19.9/src/General/Chunks.hs
+formatted       432dccc3b19c  shake-0.19.9/src/General/Cleanup.hs
+declined        -             shake-0.19.9/src/General/EscCodes.hs
+formatted       7652f69a9c07  shake-0.19.9/src/General/Extra.hs
+formatted       6ac31a44af53  shake-0.19.9/src/General/Fence.hs
+declined        -             shake-0.19.9/src/General/FileLock.hs
+formatted       55352d28b4a5  shake-0.19.9/src/General/GetOpt.hs
+formatted       c704d012d9ae  shake-0.19.9/src/General/Ids.hs
+formatted       9126ed0fbd34  shake-0.19.9/src/General/Intern.hs
+formatted       fdae30466e09  shake-0.19.9/src/General/ListBuilder.hs
+formatted       54fa4898327b  shake-0.19.9/src/General/Makefile.hs
+formatted       b7d26aaba50b  shake-0.19.9/src/General/Pool.hs
+formatted       300d27247ce2  shake-0.19.9/src/General/Process.hs
+formatted       0d39543216b1  shake-0.19.9/src/General/Template.hs
+formatted       20e74944695a  shake-0.19.9/src/General/Thread.hs
+formatted       b9b9368bdf92  shake-0.19.9/src/General/Timing.hs
+formatted       f1cfb5928cdc  shake-0.19.9/src/General/TypeMap.hs
+formatted       8d69ed0989cc  shake-0.19.9/src/General/Wait.hs
+formatted       4743f12ee1b5  shake-0.19.9/src/Paths.hs
+formatted       6ee887146e25  shake-0.19.9/src/Run.hs
+formatted       e59791013e00  shake-0.19.9/src/Test.hs
+formatted       8559d6daa99e  shake-0.19.9/src/Test/Basic.hs
+formatted       93ef4d632053  shake-0.19.9/src/Test/Batch.hs
+formatted       9817e09728fc  shake-0.19.9/src/Test/Benchmark.hs
+formatted       72e8b4ab4dea  shake-0.19.9/src/Test/Builtin.hs
+formatted       48ec6eca2417  shake-0.19.9/src/Test/BuiltinOverride.hs
+formatted       10efc06e6c7b  shake-0.19.9/src/Test/C.hs
+formatted       53e433c2fd6d  shake-0.19.9/src/Test/Cache.hs
+formatted       2d7ccbb45ced  shake-0.19.9/src/Test/Cleanup.hs
+formatted       ca28e238b42b  shake-0.19.9/src/Test/CloseFileHandles.hs
+formatted       52e8e06b790c  shake-0.19.9/src/Test/Command.hs
+formatted       5ea96ce5a74d  shake-0.19.9/src/Test/Config.hs
+formatted       1f3180d02ce5  shake-0.19.9/src/Test/Database.hs
+formatted       e8ca948ce33e  shake-0.19.9/src/Test/Digest.hs
+formatted       9b70158e614d  shake-0.19.9/src/Test/Directory.hs
+formatted       1aee80e9930e  shake-0.19.9/src/Test/Docs.hs
+formatted       7425a9004035  shake-0.19.9/src/Test/Errors.hs
+formatted       b698eeb22c5b  shake-0.19.9/src/Test/Existence.hs
+formatted       33dfd1039065  shake-0.19.9/src/Test/FileLock.hs
+formatted       62fa7f2a0865  shake-0.19.9/src/Test/FilePath.hs
+formatted       19b187c8cbe6  shake-0.19.9/src/Test/FilePattern.hs
+formatted       7f088d1e23e6  shake-0.19.9/src/Test/Files.hs
+formatted       f46b5feb3e77  shake-0.19.9/src/Test/Forward.hs
+formatted       07a41b0c82df  shake-0.19.9/src/Test/History.hs
+formatted       a6278c0f744f  shake-0.19.9/src/Test/Journal.hs
+formatted       441f831d7e39  shake-0.19.9/src/Test/Lint.hs
+formatted       abb6b38a5148  shake-0.19.9/src/Test/Live.hs
+formatted       b1f4f9102098  shake-0.19.9/src/Test/Manual.hs
+formatted       0ea86eab061d  shake-0.19.9/src/Test/Match.hs
+formatted       3358afb343e9  shake-0.19.9/src/Test/Monad.hs
+formatted       30eaa5d85dba  shake-0.19.9/src/Test/Ninja.hs
+formatted       78f51e13afdb  shake-0.19.9/src/Test/Oracle.hs
+formatted       3a29cbe0f415  shake-0.19.9/src/Test/OrderOnly.hs
+formatted       11c7d4112a98  shake-0.19.9/src/Test/Parallel.hs
+formatted       af1e17f9eab1  shake-0.19.9/src/Test/Pool.hs
+formatted       d7b6e41656b0  shake-0.19.9/src/Test/Progress.hs
+formatted       8f84d993fd5b  shake-0.19.9/src/Test/Random.hs
+formatted       2cbfb37c7d59  shake-0.19.9/src/Test/Rebuild.hs
+formatted       685ecba8ab37  shake-0.19.9/src/Test/Reschedule.hs
+formatted       a4beab4d5e04  shake-0.19.9/src/Test/Resources.hs
+formatted       721fa3aeb323  shake-0.19.9/src/Test/Self.hs
+formatted       f64db4b85e97  shake-0.19.9/src/Test/SelfMake.hs
+formatted       ce7a14c40a6c  shake-0.19.9/src/Test/Tar.hs
+formatted       010efc5cef7a  shake-0.19.9/src/Test/Targets.hs
+formatted       2ada3fd9cfe5  shake-0.19.9/src/Test/Thread.hs
+formatted       54ac2eb76326  shake-0.19.9/src/Test/Tup.hs
+formatted       d61d4ca26661  shake-0.19.9/src/Test/Type.hs
+formatted       068337f03a57  shake-0.19.9/src/Test/Unicode.hs
+formatted       312e45ba1b16  shake-0.19.9/src/Test/Util.hs
+formatted       6649fd7b7e4a  shake-0.19.9/src/Test/Verbosity.hs
+formatted       f32aa5af75ac  shake-0.19.9/src/Test/Version.hs
+formatted       e865ae48f11b  singletons-3.0.4/Setup.hs
+partly-checked  030c4775a83c  singletons-3.0.4/src/Data/Singletons.hs
+formatted       c6ea02200969  singletons-3.0.4/src/Data/Singletons/Decide.hs
+formatted       5385ff6312e7  singletons-3.0.4/src/Data/Singletons/ShowSing.hs
+formatted       27ecc95d3298  singletons-3.0.4/src/Data/Singletons/Sigma.hs
+formatted       ed287bbc0444  singletons-3.0.4/tests/ByHand.hs
+formatted       dff1d2757819  singletons-3.0.4/tests/ByHand2.hs
+formatted       92855df34052  singletons-3.0.4/tests/SingletonsTestSuite.hs
+formatted       a7151db2ed5c  split-0.2.5/src/Data/List/Split.hs
+formatted       81873df3b2c6  split-0.2.5/src/Data/List/Split/Internals.hs
+formatted       0476e48b031e  split-0.2.5/test/Properties.hs
+formatted       e865ae48f11b  stack-9.9.9/Setup.hs
+formatted       e865ae48f11b  stack-9.9.9/new-template/Setup.hs
+formatted       76b6ff5a6856  stack-9.9.9/new-template/app/Main.hs
+formatted       b206a21d3b3c  stack-9.9.9/new-template/src/Lib.hs
+formatted       ef8d1c0c14bd  stack-9.9.9/new-template/test/Spec.hs
+formatted       b50eee5c8227  stack-9.9.9/src/Control/Concurrent/Execute.hs
+formatted       de0bbff44bba  stack-9.9.9/src/Data/Aeson/Extended.hs
+formatted       45b24cbb6885  stack-9.9.9/src/Data/Attoparsec/Args.hs
+formatted       6be772a6002d  stack-9.9.9/src/Data/Attoparsec/Combinators.hs
+formatted       e4f1165dc10b  stack-9.9.9/src/Data/Binary/VersionTagged.hs
+formatted       b0799314dce2  stack-9.9.9/src/Data/Maybe/Extra.hs
+formatted       8740a5fcb2ef  stack-9.9.9/src/Data/Set/Monad.hs
+formatted       c08aaa172c8a  stack-9.9.9/src/Network/HTTP/Download.hs
+formatted       f77d8fc87761  stack-9.9.9/src/Network/HTTP/Download/Verified.hs
+formatted       d7a0d294e3c7  stack-9.9.9/src/Options/Applicative/Args.hs
+formatted       0116483c0e39  stack-9.9.9/src/Options/Applicative/Builder/Extra.hs
+formatted       35d5981b158d  stack-9.9.9/src/Path/Find.hs
+formatted       eafb883091d5  stack-9.9.9/src/Path/IO.hs
+formatted       2df07688f5ed  stack-9.9.9/src/Stack/Build.hs
+formatted       bdc4f36f2c62  stack-9.9.9/src/Stack/Build/Cache.hs
+formatted       0897208eeffe  stack-9.9.9/src/Stack/Build/ConstructPlan.hs
+formatted       db82adc28202  stack-9.9.9/src/Stack/Build/Execute.hs
+formatted       696682f442ac  stack-9.9.9/src/Stack/Build/Haddock.hs
+formatted       e0977d49109c  stack-9.9.9/src/Stack/Build/Installed.hs
+formatted       8f851999c795  stack-9.9.9/src/Stack/Build/Source.hs
+formatted       f170a6d78347  stack-9.9.9/src/Stack/Build/Types.hs
+formatted       1f1e5f5c9ec2  stack-9.9.9/src/Stack/BuildPlan.hs
+formatted       8a25795f0c0a  stack-9.9.9/src/Stack/Config.hs
+formatted       db186c830bf3  stack-9.9.9/src/Stack/Constants.hs
+formatted       607b56eb6fc7  stack-9.9.9/src/Stack/Docker.hs
+formatted       107229bac31d  stack-9.9.9/src/Stack/Docker/GlobalDB.hs
+formatted       7d15eaae39ff  stack-9.9.9/src/Stack/Dot.hs
+formatted       e3fe02818737  stack-9.9.9/src/Stack/Exec.hs
+formatted       69a1b5e114c2  stack-9.9.9/src/Stack/Fetch.hs
+formatted       967c0ee2eef6  stack-9.9.9/src/Stack/GhcPkg.hs
+formatted       8e7700c60073  stack-9.9.9/src/Stack/Init.hs
+formatted       9f228f8da7ce  stack-9.9.9/src/Stack/New.hs
+formatted       a4120f7039a7  stack-9.9.9/src/Stack/Package.hs
+formatted       439e5a338ecf  stack-9.9.9/src/Stack/PackageDump.hs
+formatted       131f4c58d4cc  stack-9.9.9/src/Stack/PackageIndex.hs
+formatted       2814387b2b76  stack-9.9.9/src/Stack/Repl.hs
+formatted       766a71919c27  stack-9.9.9/src/Stack/Setup.hs
+formatted       68c48310e4ce  stack-9.9.9/src/Stack/Solver.hs
+formatted       ebbf896669e4  stack-9.9.9/src/Stack/Types.hs
+formatted       6a77fad930d5  stack-9.9.9/src/Stack/Types/BuildPlan.hs
+formatted       a6b384b7378c  stack-9.9.9/src/Stack/Types/Config.hs
+formatted       69401069957e  stack-9.9.9/src/Stack/Types/Docker.hs
+formatted       cd2bb0d685de  stack-9.9.9/src/Stack/Types/FlagName.hs
+formatted       d8f8b074a086  stack-9.9.9/src/Stack/Types/GhcPkgId.hs
+formatted       bd4be7dcc823  stack-9.9.9/src/Stack/Types/Internal.hs
+formatted       6f80f79fae7e  stack-9.9.9/src/Stack/Types/PackageIdentifier.hs
+formatted       88a4f8bd73e5  stack-9.9.9/src/Stack/Types/PackageName.hs
+formatted       cf90354db024  stack-9.9.9/src/Stack/Types/StackT.hs
+formatted       c698b30fdbaf  stack-9.9.9/src/Stack/Types/Version.hs
+formatted       2f4855580908  stack-9.9.9/src/Stack/Upgrade.hs
+formatted       3d5a37bb3efe  stack-9.9.9/src/Stack/Upload.hs
+formatted       85d5e680f53b  stack-9.9.9/src/System/Process/Log.hs
+formatted       015e3efd2d86  stack-9.9.9/src/System/Process/PagerEditor.hs
+formatted       bc60fdf030d4  stack-9.9.9/src/System/Process/Read.hs
+formatted       c40dad9ce8ee  stack-9.9.9/src/System/Process/Run.hs
+formatted       e9412f975a02  stack-9.9.9/src/main/Main.hs
+formatted       4eec70869c80  stack-9.9.9/src/main/Plugins.hs
+formatted       50b246d28182  stack-9.9.9/src/main/Plugins/Commands.hs
+formatted       65c8c298f7aa  stack-9.9.9/src/test/Spec.hs
+formatted       bbf9464a53ee  stack-9.9.9/src/test/Stack/ArgsSpec.hs
+formatted       41ea23b8880f  stack-9.9.9/src/test/Stack/Build/ExecuteSpec.hs
+formatted       6c14531834d3  stack-9.9.9/src/test/Stack/BuildPlanSpec.hs
+formatted       24a9e21c3c15  stack-9.9.9/src/test/Stack/ConfigSpec.hs
+formatted       2d4cbcc98b0c  stack-9.9.9/src/test/Stack/PackageDumpSpec.hs
+formatted       fd075df62297  stack-9.9.9/src/test/Test.hs
+formatted       53953d153dfa  stack-9.9.9/test/integration/Spec.hs
+formatted       56e4e5258116  statistics-0.16.5.0/Statistics/Autocorrelation.hs
+formatted       bda03074d5aa  statistics-0.16.5.0/Statistics/ConfidenceInt.hs
+formatted       069d7156f594  statistics-0.16.5.0/Statistics/Correlation.hs
+formatted       9ba74f547b39  statistics-0.16.5.0/Statistics/Correlation/Kendall.hs
+formatted       bbd4e3259f36  statistics-0.16.5.0/Statistics/Distribution.hs
+formatted       ae8ad80251ff  statistics-0.16.5.0/Statistics/Distribution/Beta.hs
+formatted       7b32fc5b6cfc  statistics-0.16.5.0/Statistics/Distribution/Binomial.hs
+formatted       23f140cdf9bc  statistics-0.16.5.0/Statistics/Distribution/CauchyLorentz.hs
+formatted       dc30bfda499d  statistics-0.16.5.0/Statistics/Distribution/ChiSquared.hs
+formatted       f4734696df71  statistics-0.16.5.0/Statistics/Distribution/DiscreteUniform.hs
+formatted       cc3d61a22aa0  statistics-0.16.5.0/Statistics/Distribution/Exponential.hs
+formatted       5d35b356cb29  statistics-0.16.5.0/Statistics/Distribution/FDistribution.hs
+formatted       1258f180d7c0  statistics-0.16.5.0/Statistics/Distribution/Gamma.hs
+formatted       97a9584986c7  statistics-0.16.5.0/Statistics/Distribution/Geometric.hs
+formatted       e05ef1359929  statistics-0.16.5.0/Statistics/Distribution/Hypergeometric.hs
+formatted       ca93eabbbf15  statistics-0.16.5.0/Statistics/Distribution/Laplace.hs
+formatted       1e363f04365e  statistics-0.16.5.0/Statistics/Distribution/Lognormal.hs
+formatted       f5cce916fd78  statistics-0.16.5.0/Statistics/Distribution/NegativeBinomial.hs
+formatted       fb17da6ed19d  statistics-0.16.5.0/Statistics/Distribution/Normal.hs
+formatted       1bbb63345a51  statistics-0.16.5.0/Statistics/Distribution/Poisson.hs
+formatted       e7fb38252559  statistics-0.16.5.0/Statistics/Distribution/Poisson/Internal.hs
+formatted       7c5e046a9045  statistics-0.16.5.0/Statistics/Distribution/StudentT.hs
+formatted       b7ab79ca83fb  statistics-0.16.5.0/Statistics/Distribution/Transform.hs
+formatted       1df538a9db1d  statistics-0.16.5.0/Statistics/Distribution/Uniform.hs
+formatted       bd8bb4f92c76  statistics-0.16.5.0/Statistics/Distribution/Weibull.hs
+formatted       a5d3ccd314a5  statistics-0.16.5.0/Statistics/Function.hs
+formatted       4ce5ca3ee348  statistics-0.16.5.0/Statistics/Internal.hs
+formatted       86e8d1a0a535  statistics-0.16.5.0/Statistics/Quantile.hs
+formatted       4eb8961889ae  statistics-0.16.5.0/Statistics/Regression.hs
+formatted       535c5c96b342  statistics-0.16.5.0/Statistics/Resampling.hs
+formatted       76d271403a9e  statistics-0.16.5.0/Statistics/Resampling/Bootstrap.hs
+formatted       cc05168e10be  statistics-0.16.5.0/Statistics/Sample.hs
+formatted       24ce2ba6d88a  statistics-0.16.5.0/Statistics/Sample/Histogram.hs
+formatted       cab9e68a7e21  statistics-0.16.5.0/Statistics/Sample/Internal.hs
+formatted       7333b62fa746  statistics-0.16.5.0/Statistics/Sample/KernelDensity.hs
+formatted       57cb926959b9  statistics-0.16.5.0/Statistics/Sample/KernelDensity/Simple.hs
+formatted       e7d037eb7906  statistics-0.16.5.0/Statistics/Sample/Normalize.hs
+formatted       1242733971ab  statistics-0.16.5.0/Statistics/Sample/Powers.hs
+formatted       5530b1f597e3  statistics-0.16.5.0/Statistics/Test/Bartlett.hs
+formatted       da8b73ff5c88  statistics-0.16.5.0/Statistics/Test/ChiSquared.hs
+formatted       4990518d53f6  statistics-0.16.5.0/Statistics/Test/Internal.hs
+formatted       b240b0717330  statistics-0.16.5.0/Statistics/Test/KolmogorovSmirnov.hs
+formatted       68068b68b9a0  statistics-0.16.5.0/Statistics/Test/KruskalWallis.hs
+formatted       6e9db487a147  statistics-0.16.5.0/Statistics/Test/Levene.hs
+formatted       537ff3519540  statistics-0.16.5.0/Statistics/Test/MannWhitneyU.hs
+formatted       63ad198bde51  statistics-0.16.5.0/Statistics/Test/StudentT.hs
+formatted       8222073f1e45  statistics-0.16.5.0/Statistics/Test/Types.hs
+formatted       f3c789b5cb44  statistics-0.16.5.0/Statistics/Test/WilcoxonT.hs
+formatted       4dc98e7c6347  statistics-0.16.5.0/Statistics/Transform.hs
+formatted       f4cfb5a2aebb  statistics-0.16.5.0/Statistics/Types.hs
+formatted       f071cb4c4814  statistics-0.16.5.0/Statistics/Types/Internal.hs
+formatted       b5402a2dc355  statistics-0.16.5.0/bench-papi/Bench.hs
+formatted       3963835f0889  statistics-0.16.5.0/bench-time/Bench.hs
+formatted       61d4105d3456  statistics-0.16.5.0/benchmark/Main.hs
+formatted       d80f7bf6f96d  statistics-0.16.5.0/examples/kde/KDE.hs
+formatted       dcea40eeb511  statistics-0.16.5.0/tests/Tests/ApproxEq.hs
+formatted       2ae25961f71d  statistics-0.16.5.0/tests/Tests/Correlation.hs
+formatted       ff8bfb187b54  statistics-0.16.5.0/tests/Tests/Distribution.hs
+formatted       23d95813c217  statistics-0.16.5.0/tests/Tests/ExactDistribution.hs
+formatted       299f43f28485  statistics-0.16.5.0/tests/Tests/Function.hs
+formatted       9c5a618f3bf1  statistics-0.16.5.0/tests/Tests/Helpers.hs
+formatted       fec77bb7c2ff  statistics-0.16.5.0/tests/Tests/KDE.hs
+formatted       cf822ef362eb  statistics-0.16.5.0/tests/Tests/Matrix.hs
+formatted       27d419347379  statistics-0.16.5.0/tests/Tests/Matrix/Types.hs
+formatted       5815fd5a68d5  statistics-0.16.5.0/tests/Tests/NonParametric.hs
+formatted       4d0172724882  statistics-0.16.5.0/tests/Tests/NonParametric/Table.hs
+formatted       65adfee8e313  statistics-0.16.5.0/tests/Tests/Orphanage.hs
+formatted       bc01b981cd07  statistics-0.16.5.0/tests/Tests/Parametric.hs
+formatted       d94da0d75fed  statistics-0.16.5.0/tests/Tests/Quantile.hs
+formatted       4e08d3c82170  statistics-0.16.5.0/tests/Tests/Serialization.hs
+formatted       d60faa0d5f6c  statistics-0.16.5.0/tests/Tests/Transform.hs
+formatted       55f699624c9d  statistics-0.16.5.0/tests/doctest.hs
+formatted       f0e3d45c9159  statistics-0.16.5.0/tests/tests.hs
+formatted       2c4811cee336  stm-2.5.3.1/Control/Concurrent/STM.hs
+formatted       3cda51e9e44e  stm-2.5.3.1/Control/Concurrent/STM/TArray.hs
+formatted       a3a6bd16402a  stm-2.5.3.1/Control/Concurrent/STM/TBQueue.hs
+formatted       643c4c4304ca  stm-2.5.3.1/Control/Concurrent/STM/TChan.hs
+formatted       5de1c73d983a  stm-2.5.3.1/Control/Concurrent/STM/TMVar.hs
+formatted       61a61ef9eccf  stm-2.5.3.1/Control/Concurrent/STM/TQueue.hs
+formatted       0167cfd0c06a  stm-2.5.3.1/Control/Concurrent/STM/TSem.hs
+formatted       6a0ece958ded  stm-2.5.3.1/Control/Concurrent/STM/TVar.hs
+partly-checked  4ed888ed9420  stm-2.5.3.1/Control/Monad/STM.hs
+formatted       6aecb29a12ab  stm-2.5.3.1/Control/Sequential/STM.hs
+formatted       7474b7e1d4f5  stm-2.5.3.1/Setup.hs
+formatted       e290291970ca  stm-2.5.3.1/testsuite/src/Issue17.hs
+formatted       c3343c4d48cb  stm-2.5.3.1/testsuite/src/Issue9.hs
+formatted       9159857aaf7c  stm-2.5.3.1/testsuite/src/Main.hs
+formatted       5a7bdca5eb2f  stm-2.5.3.1/testsuite/src/Stm052.hs
+formatted       9b30ce222d29  stm-2.5.3.1/testsuite/src/Stm064.hs
+formatted       0f86f9b94d82  stm-2.5.3.1/testsuite/src/Stm065.hs
+formatted       0872066614e0  swagger2-2.9.1/Setup.hs
+formatted       e61f805d8652  swagger2-2.9.1/examples/hackage.hs
+formatted       3c1b0b04d952  swagger2-2.9.1/src/Data/HashMap/Strict/InsOrd/Compat.hs
+formatted       d71d272f220f  swagger2-2.9.1/src/Data/Swagger.hs
+formatted       f496ee0d4d0c  swagger2-2.9.1/src/Data/Swagger/Declare.hs
+formatted       5302fa19a1a8  swagger2-2.9.1/src/Data/Swagger/Internal.hs
+formatted       7dfa5b7b4803  swagger2-2.9.1/src/Data/Swagger/Internal/AesonUtils.hs
+formatted       be2b0df4ab34  swagger2-2.9.1/src/Data/Swagger/Internal/ParamSchema.hs
+formatted       e4da8109511e  swagger2-2.9.1/src/Data/Swagger/Internal/Schema.hs
+formatted       15b94738c187  swagger2-2.9.1/src/Data/Swagger/Internal/Schema/Validation.hs
+formatted       185e997df260  swagger2-2.9.1/src/Data/Swagger/Internal/TypeShape.hs
+formatted       abc8c961e8d8  swagger2-2.9.1/src/Data/Swagger/Internal/Utils.hs
+formatted       cc7b692d5353  swagger2-2.9.1/src/Data/Swagger/Lens.hs
+formatted       69c86ada5be4  swagger2-2.9.1/src/Data/Swagger/Operation.hs
+formatted       385ee16b2de5  swagger2-2.9.1/src/Data/Swagger/Optics.hs
+formatted       b74d3f8d9ea4  swagger2-2.9.1/src/Data/Swagger/ParamSchema.hs
+formatted       19a9a7c3a0de  swagger2-2.9.1/src/Data/Swagger/Schema.hs
+formatted       59f835605e15  swagger2-2.9.1/src/Data/Swagger/Schema/Generator.hs
+formatted       7770e1fe2353  swagger2-2.9.1/src/Data/Swagger/Schema/Validation.hs
+formatted       2fd313eb8746  swagger2-2.9.1/src/Data/Swagger/SchemaOptions.hs
+formatted       92d24f16cf77  swagger2-2.9.1/test/Data/Swagger/CommonTestTypes.hs
+formatted       88ae3e07f1d6  swagger2-2.9.1/test/Data/Swagger/ParamSchemaSpec.hs
+formatted       ba8d29dd4929  swagger2-2.9.1/test/Data/Swagger/Schema/GeneratorSpec.hs
+formatted       f1eacb0cba50  swagger2-2.9.1/test/Data/Swagger/Schema/ValidationSpec.hs
+formatted       bc07fee39679  swagger2-2.9.1/test/Data/Swagger/SchemaSpec.hs
+formatted       b59e746b8895  swagger2-2.9.1/test/Data/SwaggerSpec.hs
+formatted       2fbd14b119a4  swagger2-2.9.1/test/Spec.hs
+formatted       1534dc51af48  swagger2-2.9.1/test/SpecCommon.hs
+formatted       cc17d35cb01d  swagger2-2.9.1/test/doctests.hs
+formatted       d4738b672bb7  tasty-1.5.4/Control/Concurrent/Async.hs
+formatted       e865ae48f11b  tasty-1.5.4/Setup.hs
+formatted       02df8ffe2eb3  tasty-1.5.4/Test/Tasty.hs
+formatted       da0dd4a5f265  tasty-1.5.4/Test/Tasty/CmdLine.hs
+formatted       3a5fcf3042c0  tasty-1.5.4/Test/Tasty/Core.hs
+formatted       dd00b52edeb7  tasty-1.5.4/Test/Tasty/Ingredients.hs
+formatted       9e13d30f1aac  tasty-1.5.4/Test/Tasty/Ingredients/Basic.hs
+formatted       0e632c2a7445  tasty-1.5.4/Test/Tasty/Ingredients/ConsoleReporter.hs
+formatted       8c6cf8ae3d46  tasty-1.5.4/Test/Tasty/Ingredients/IncludingOptions.hs
+formatted       5435b848bb7e  tasty-1.5.4/Test/Tasty/Ingredients/ListTests.hs
+formatted       1d78b5b7b6d6  tasty-1.5.4/Test/Tasty/Options.hs
+formatted       3423011ddd29  tasty-1.5.4/Test/Tasty/Options/Core.hs
+formatted       d9fbf61e13b4  tasty-1.5.4/Test/Tasty/Options/Env.hs
+formatted       bc3c7e134e5c  tasty-1.5.4/Test/Tasty/Parallel.hs
+formatted       d8b2acdcc674  tasty-1.5.4/Test/Tasty/Patterns.hs
+formatted       0d97fca4d8c9  tasty-1.5.4/Test/Tasty/Patterns/Eval.hs
+formatted       4d5e43449879  tasty-1.5.4/Test/Tasty/Patterns/Expr.hs
+formatted       7095e0ba43dd  tasty-1.5.4/Test/Tasty/Patterns/Parser.hs
+formatted       3b88b836a8da  tasty-1.5.4/Test/Tasty/Patterns/Printer.hs
+formatted       76352e15e8e6  tasty-1.5.4/Test/Tasty/Patterns/Types.hs
+formatted       b2ce3b3d2ba6  tasty-1.5.4/Test/Tasty/Providers.hs
+formatted       1e9dd494aa0d  tasty-1.5.4/Test/Tasty/Providers/ConsoleFormat.hs
+formatted       ff9909ca5604  tasty-1.5.4/Test/Tasty/Run.hs
+formatted       cb5862c8ea8c  tasty-1.5.4/Test/Tasty/Runners.hs
+formatted       a02b4c543c75  tasty-1.5.4/Test/Tasty/Runners/Reducers.hs
+formatted       c621861758e5  tasty-1.5.4/Test/Tasty/Runners/Utils.hs
+formatted       e865ae48f11b  tensorflow-0.2.0.1/Setup.hs
+formatted       fc583182d149  tensorflow-0.2.0.1/src/TensorFlow/Build.hs
+formatted       6a8867b44ef1  tensorflow-0.2.0.1/src/TensorFlow/BuildOp.hs
+formatted       77489c8b8f87  tensorflow-0.2.0.1/src/TensorFlow/ControlFlow.hs
+formatted       4cc5cc869f78  tensorflow-0.2.0.1/src/TensorFlow/Core.hs
+formatted       76a2093eefd8  tensorflow-0.2.0.1/src/TensorFlow/Internal/FFI.hs
+formatted       62d7a0995301  tensorflow-0.2.0.1/src/TensorFlow/Internal/VarInt.hs
+formatted       33a0218dc730  tensorflow-0.2.0.1/src/TensorFlow/Nodes.hs
+formatted       6079d89faf44  tensorflow-0.2.0.1/src/TensorFlow/Output.hs
+formatted       43470d2fc559  tensorflow-0.2.0.1/src/TensorFlow/Session.hs
+formatted       da3a7653404f  tensorflow-0.2.0.1/src/TensorFlow/Tensor.hs
+formatted       3e49e13c010b  tensorflow-0.2.0.1/src/TensorFlow/Types.hs
+formatted       7786d8f90a48  tensorflow-0.2.0.1/tests/FFITest.hs
+formatted       0f5db84dd77b  tensorflow-0.2.0.1/tests/VarIntTest.hs
+formatted       8ae0364c5862  text-2.1.4/benchmarks/haskell/Benchmarks.hs
+formatted       ffe091bc4536  text-2.1.4/benchmarks/haskell/Benchmarks/Builder.hs
+formatted       46dcd64eb8e5  text-2.1.4/benchmarks/haskell/Benchmarks/Concat.hs
+formatted       1e546a146930  text-2.1.4/benchmarks/haskell/Benchmarks/DecodeUtf8.hs
+formatted       41909e2de312  text-2.1.4/benchmarks/haskell/Benchmarks/EncodeUtf8.hs
+formatted       919f36b12c57  text-2.1.4/benchmarks/haskell/Benchmarks/Equality.hs
+formatted       a5d1f5795b29  text-2.1.4/benchmarks/haskell/Benchmarks/FileRead.hs
+formatted       09b54ec2d23a  text-2.1.4/benchmarks/haskell/Benchmarks/FileWrite.hs
+formatted       ad27e899bf04  text-2.1.4/benchmarks/haskell/Benchmarks/FoldLines.hs
+formatted       983d6f9117cd  text-2.1.4/benchmarks/haskell/Benchmarks/Micro.hs
+formatted       78b2688949ff  text-2.1.4/benchmarks/haskell/Benchmarks/Multilang.hs
+formatted       6ee308d7049c  text-2.1.4/benchmarks/haskell/Benchmarks/Programs/BigTable.hs
+formatted       b1d195224e1a  text-2.1.4/benchmarks/haskell/Benchmarks/Programs/Cut.hs
+formatted       2814a67c6d1b  text-2.1.4/benchmarks/haskell/Benchmarks/Programs/Fold.hs
+formatted       2cebf4fe82ba  text-2.1.4/benchmarks/haskell/Benchmarks/Programs/Sort.hs
+formatted       d9f35273ed3a  text-2.1.4/benchmarks/haskell/Benchmarks/Programs/StripTags.hs
+formatted       760d861cf866  text-2.1.4/benchmarks/haskell/Benchmarks/Programs/Throughput.hs
+formatted       021d8145a2fe  text-2.1.4/benchmarks/haskell/Benchmarks/Pure.hs
+formatted       e54e95cc30f1  text-2.1.4/benchmarks/haskell/Benchmarks/ReadNumbers.hs
+formatted       bf7477bd4934  text-2.1.4/benchmarks/haskell/Benchmarks/Replace.hs
+formatted       36cf43ee1086  text-2.1.4/benchmarks/haskell/Benchmarks/Search.hs
+formatted       6630a0ba2adf  text-2.1.4/benchmarks/haskell/Benchmarks/Stream.hs
+formatted       582c824b5ff5  text-2.1.4/benchmarks/haskell/Benchmarks/WordFrequencies.hs
+formatted       352931675b25  text-2.1.4/scripts/ApiCompare.hs
+formatted       227860122661  text-2.1.4/scripts/Arsec.hs
+formatted       eb1cc9cf331c  text-2.1.4/scripts/CaseFolding.hs
+formatted       a0bdad468ca4  text-2.1.4/scripts/CaseMapping.hs
+formatted       57e97be5ba61  text-2.1.4/scripts/SpecialCasing.hs
+formatted       d775bb623580  text-2.1.4/scripts/UnicodeData.hs
+partly-checked  0abe70d97042  text-2.1.4/src/Data/Text.hs
+formatted       d3ff1f08422c  text-2.1.4/src/Data/Text/Array.hs
+formatted       4970b89f4e7e  text-2.1.4/src/Data/Text/Encoding.hs
+formatted       d6231f7ebe99  text-2.1.4/src/Data/Text/Encoding/Error.hs
+formatted       7580816061c0  text-2.1.4/src/Data/Text/Foreign.hs
+formatted       d26ae280631c  text-2.1.4/src/Data/Text/IO.hs
+formatted       8c24fec0de81  text-2.1.4/src/Data/Text/IO/Utf8.hs
+formatted       653829dd073b  text-2.1.4/src/Data/Text/Internal.hs
+formatted       48c631518261  text-2.1.4/src/Data/Text/Internal/ArrayUtils.hs
+formatted       bc619fb754b4  text-2.1.4/src/Data/Text/Internal/Builder.hs
+formatted       3a05c951a914  text-2.1.4/src/Data/Text/Internal/Builder/Functions.hs
+formatted       f5f871c975a4  text-2.1.4/src/Data/Text/Internal/Builder/Int/Digits.hs
+formatted       ab51e88834e1  text-2.1.4/src/Data/Text/Internal/Builder/RealFloat/Functions.hs
+formatted       7fa192160c9b  text-2.1.4/src/Data/Text/Internal/ByteStringCompat.hs
+formatted       b4bfb3453a3f  text-2.1.4/src/Data/Text/Internal/Encoding.hs
+formatted       43a1a670b3db  text-2.1.4/src/Data/Text/Internal/Encoding/Fusion.hs
+formatted       88e5c54a218b  text-2.1.4/src/Data/Text/Internal/Encoding/Fusion/Common.hs
+formatted       875961737225  text-2.1.4/src/Data/Text/Internal/Encoding/Utf16.hs
+formatted       48ea4745d7e8  text-2.1.4/src/Data/Text/Internal/Encoding/Utf32.hs
+formatted       999f28ae046f  text-2.1.4/src/Data/Text/Internal/Encoding/Utf8.hs
+formatted       da5c175cb49c  text-2.1.4/src/Data/Text/Internal/Fusion.hs
+formatted       9ae139203b50  text-2.1.4/src/Data/Text/Internal/Fusion/CaseMapping.hs
+formatted       82caff784f76  text-2.1.4/src/Data/Text/Internal/Fusion/Common.hs
+formatted       a3b0b51a0759  text-2.1.4/src/Data/Text/Internal/Fusion/Size.hs
+formatted       3c7c18d05ebf  text-2.1.4/src/Data/Text/Internal/Fusion/Types.hs
+formatted       32b50634031b  text-2.1.4/src/Data/Text/Internal/IO.hs
+formatted       e2bb47936e11  text-2.1.4/src/Data/Text/Internal/IsAscii.hs
+formatted       538632ba614a  text-2.1.4/src/Data/Text/Internal/Lazy.hs
+formatted       76efe1116cd2  text-2.1.4/src/Data/Text/Internal/Lazy/Encoding/Fusion.hs
+formatted       c627413119e8  text-2.1.4/src/Data/Text/Internal/Lazy/Fusion.hs
+formatted       a3c76abdf09c  text-2.1.4/src/Data/Text/Internal/Lazy/Search.hs
+formatted       e22062ee35e8  text-2.1.4/src/Data/Text/Internal/Measure.hs
+formatted       7635d57189ea  text-2.1.4/src/Data/Text/Internal/PrimCompat.hs
+formatted       634f3b2cbbde  text-2.1.4/src/Data/Text/Internal/Private.hs
+formatted       a41bd3d7edab  text-2.1.4/src/Data/Text/Internal/Read.hs
+formatted       ec56c867ca01  text-2.1.4/src/Data/Text/Internal/Reverse.hs
+formatted       9ddb417cbaa3  text-2.1.4/src/Data/Text/Internal/Search.hs
+formatted       67bf06cca611  text-2.1.4/src/Data/Text/Internal/StrictBuilder.hs
+formatted       ed455e9ee12d  text-2.1.4/src/Data/Text/Internal/Transformation.hs
+formatted       18ae86a38924  text-2.1.4/src/Data/Text/Internal/Unsafe.hs
+formatted       d3b144e675ef  text-2.1.4/src/Data/Text/Internal/Unsafe/Char.hs
+formatted       8bc67bc79968  text-2.1.4/src/Data/Text/Internal/Validate.hs
+formatted       3597c6a4f1b6  text-2.1.4/src/Data/Text/Internal/Validate/Native.hs
+formatted       530d639cfd22  text-2.1.4/src/Data/Text/Internal/Validate/Simd.hs
+formatted       060b4a7eb0fb  text-2.1.4/src/Data/Text/Lazy.hs
+formatted       38ff2d7cb674  text-2.1.4/src/Data/Text/Lazy/Builder.hs
+formatted       38666af96d86  text-2.1.4/src/Data/Text/Lazy/Builder/Int.hs
+formatted       29e65f5a5a13  text-2.1.4/src/Data/Text/Lazy/Builder/RealFloat.hs
+formatted       a19c3620d230  text-2.1.4/src/Data/Text/Lazy/Encoding.hs
+formatted       ac210eeb3b0e  text-2.1.4/src/Data/Text/Lazy/IO.hs
+formatted       737ca3b98c79  text-2.1.4/src/Data/Text/Lazy/Internal.hs
+formatted       4053796b9111  text-2.1.4/src/Data/Text/Lazy/Read.hs
+formatted       95185ba2e9b4  text-2.1.4/src/Data/Text/Read.hs
+formatted       a764e2fbcaba  text-2.1.4/src/Data/Text/Show.hs
+formatted       5aa1e6b706a4  text-2.1.4/src/Data/Text/Unsafe.hs
+formatted       8c35444bb7ce  text-2.1.4/tests/LiteralRuleTest.hs
+formatted       6c129d5c79c5  text-2.1.4/tests/Tests.hs
+formatted       8c9ba4deec7f  text-2.1.4/tests/Tests/Lift.hs
+formatted       eea1f5be128d  text-2.1.4/tests/Tests/Properties.hs
+formatted       22b01cd83996  text-2.1.4/tests/Tests/Properties/Basics.hs
+formatted       4095b24da789  text-2.1.4/tests/Tests/Properties/Builder.hs
+formatted       0da554ece794  text-2.1.4/tests/Tests/Properties/CornerCases.hs
+formatted       f1e8140de487  text-2.1.4/tests/Tests/Properties/Folds.hs
+formatted       05ba3e128127  text-2.1.4/tests/Tests/Properties/Instances.hs
+formatted       c57f3b48eab5  text-2.1.4/tests/Tests/Properties/LowLevel.hs
+formatted       73ce8ac597c8  text-2.1.4/tests/Tests/Properties/Read.hs
+formatted       3429b9447ca6  text-2.1.4/tests/Tests/Properties/Substrings.hs
+formatted       37dbae049e0b  text-2.1.4/tests/Tests/Properties/Text.hs
+formatted       13a8cbedafd1  text-2.1.4/tests/Tests/Properties/Transcoding.hs
+formatted       139bbe092e98  text-2.1.4/tests/Tests/Properties/Validate.hs
+formatted       75f4b0d7a5f3  text-2.1.4/tests/Tests/QuickCheckUtils.hs
+formatted       c6e25a3408e0  text-2.1.4/tests/Tests/RebindableSyntaxTest.hs
+formatted       939e997260ba  text-2.1.4/tests/Tests/Regressions.hs
+formatted       b7037d3f07cc  text-2.1.4/tests/Tests/ShareEmpty.hs
+formatted       f4e9f36f6be9  text-2.1.4/tests/Tests/SlowFunctions.hs
+formatted       375091fbe743  text-2.1.4/tests/Tests/Utils.hs
+formatted       e865ae48f11b  th-abstraction-0.7.2.0/Setup.hs
+formatted       48b10de7e3db  th-abstraction-0.7.2.0/src/Language/Haskell/TH/Datatype.hs
+formatted       b67b7b9c968e  th-abstraction-0.7.2.0/src/Language/Haskell/TH/Datatype/Internal.hs
+formatted       505471744185  th-abstraction-0.7.2.0/src/Language/Haskell/TH/Datatype/TyVarBndr.hs
+formatted       fad455f51be7  th-abstraction-0.7.2.0/test/Harness.hs
+partly-checked  8dc9c0982773  th-abstraction-0.7.2.0/test/Main.hs
+formatted       cc71d6ab2857  th-abstraction-0.7.2.0/test/Types.hs
+formatted       fd2ff7ad97e3  time-1.16.0.1/Setup.hs
+formatted       125260959da8  time-1.16.0.1/benchmark/Main.hs
+formatted       67b30ed4204b  time-1.16.0.1/lib/Data/Format.hs
+formatted       138e9cb35e13  time-1.16.0.1/lib/Data/Time.hs
+formatted       d808f69809c2  time-1.16.0.1/lib/Data/Time/Calendar.hs
+formatted       0f617301ba5b  time-1.16.0.1/lib/Data/Time/Calendar/CalendarDiffDays.hs
+formatted       e210a7d3456b  time-1.16.0.1/lib/Data/Time/Calendar/Days.hs
+formatted       03412f0b8356  time-1.16.0.1/lib/Data/Time/Calendar/Easter.hs
+formatted       f8d4d6f009e4  time-1.16.0.1/lib/Data/Time/Calendar/Gregorian.hs
+formatted       be538512fc07  time-1.16.0.1/lib/Data/Time/Calendar/Julian.hs
+formatted       625e7b428153  time-1.16.0.1/lib/Data/Time/Calendar/JulianYearDay.hs
+formatted       9ba18c758e02  time-1.16.0.1/lib/Data/Time/Calendar/Month.hs
+formatted       eee4b0761e17  time-1.16.0.1/lib/Data/Time/Calendar/MonthDay.hs
+formatted       fe021b5bb8e1  time-1.16.0.1/lib/Data/Time/Calendar/OrdinalDate.hs
+formatted       025bb4e6307c  time-1.16.0.1/lib/Data/Time/Calendar/Private.hs
+formatted       7d5d5b51baca  time-1.16.0.1/lib/Data/Time/Calendar/Quarter.hs
+formatted       61e7261c13da  time-1.16.0.1/lib/Data/Time/Calendar/Types.hs
+formatted       55892c430b7b  time-1.16.0.1/lib/Data/Time/Calendar/Week.hs
+formatted       8d6d0ff3c8ec  time-1.16.0.1/lib/Data/Time/Calendar/WeekDate.hs
+formatted       c2de888ee84b  time-1.16.0.1/lib/Data/Time/Clock.hs
+formatted       0b01b660df99  time-1.16.0.1/lib/Data/Time/Clock/Internal/AbsoluteTime.hs
+formatted       b17785e460f5  time-1.16.0.1/lib/Data/Time/Clock/Internal/CTimeval.hs
+formatted       fde88246f337  time-1.16.0.1/lib/Data/Time/Clock/Internal/DiffTime.hs
+formatted       130201256efa  time-1.16.0.1/lib/Data/Time/Clock/Internal/NominalDiffTime.hs
+formatted       8ef6afa040bc  time-1.16.0.1/lib/Data/Time/Clock/Internal/POSIXTime.hs
+formatted       7b9c6c7bdb50  time-1.16.0.1/lib/Data/Time/Clock/Internal/SystemTime.hs
+formatted       310750655010  time-1.16.0.1/lib/Data/Time/Clock/Internal/UTCDiff.hs
+formatted       a58732cd7eb8  time-1.16.0.1/lib/Data/Time/Clock/Internal/UTCTime.hs
+formatted       acaedfdab698  time-1.16.0.1/lib/Data/Time/Clock/Internal/UniversalTime.hs
+formatted       cf441f809fdf  time-1.16.0.1/lib/Data/Time/Clock/POSIX.hs
+formatted       6dd6034d73b4  time-1.16.0.1/lib/Data/Time/Clock/System.hs
+formatted       7cdd69049dcf  time-1.16.0.1/lib/Data/Time/Clock/TAI.hs
+formatted       b600a5b5c744  time-1.16.0.1/lib/Data/Time/Format.hs
+formatted       6c005f66f0be  time-1.16.0.1/lib/Data/Time/Format/Format/Class.hs
+formatted       47f1688c0787  time-1.16.0.1/lib/Data/Time/Format/Format/Instances.hs
+formatted       3764319de19b  time-1.16.0.1/lib/Data/Time/Format/ISO8601.hs
+formatted       76aa49c9292b  time-1.16.0.1/lib/Data/Time/Format/Internal.hs
+formatted       b7ae7592bcb6  time-1.16.0.1/lib/Data/Time/Format/Locale.hs
+formatted       2cd514758801  time-1.16.0.1/lib/Data/Time/Format/Parse.hs
+formatted       05a7f0bf5554  time-1.16.0.1/lib/Data/Time/Format/Parse/Class.hs
+formatted       cb2ccd8c40fd  time-1.16.0.1/lib/Data/Time/Format/Parse/Instances.hs
+formatted       4489a4cdab49  time-1.16.0.1/lib/Data/Time/LocalTime.hs
+formatted       93986a8450d1  time-1.16.0.1/lib/Data/Time/LocalTime/Internal/CalendarDiffTime.hs
+formatted       94f381fe1ad1  time-1.16.0.1/lib/Data/Time/LocalTime/Internal/Foreign.hs
+formatted       ca98c37fb34c  time-1.16.0.1/lib/Data/Time/LocalTime/Internal/LocalTime.hs
+formatted       9200ebaf067a  time-1.16.0.1/lib/Data/Time/LocalTime/Internal/TimeOfDay.hs
+formatted       74496e557585  time-1.16.0.1/lib/Data/Time/LocalTime/Internal/TimeZone.hs
+formatted       343d16749a70  time-1.16.0.1/lib/Data/Time/LocalTime/Internal/ZonedTime.hs
+formatted       c365d1aa63cd  time-1.16.0.1/test/ForeignCalls.hs
+formatted       fc8234c946fb  time-1.16.0.1/test/ShowDefaultTZAbbreviations.hs
+formatted       b51274826033  time-1.16.0.1/test/ShowTime.hs
+formatted       921506ceef7c  time-1.16.0.1/test/main/Main.hs
+formatted       4db8ebf798ab  time-1.16.0.1/test/main/Test/AddDiff.hs
+formatted       0ff201c42388  time-1.16.0.1/test/main/Test/Arbitrary.hs
+formatted       a31b50175d67  time-1.16.0.1/test/main/Test/Calendar/AddDays.hs
+formatted       5b09874748fc  time-1.16.0.1/test/main/Test/Calendar/AddDaysRef.hs
+formatted       1f2ab37cb077  time-1.16.0.1/test/main/Test/Calendar/CalendarProps.hs
+formatted       fe6ab3f07aa9  time-1.16.0.1/test/main/Test/Calendar/Calendars.hs
+formatted       ba59184d394c  time-1.16.0.1/test/main/Test/Calendar/CalendarsRef.hs
+formatted       e4ef550ce506  time-1.16.0.1/test/main/Test/Calendar/ClipDates.hs
+formatted       f707c1ddaec1  time-1.16.0.1/test/main/Test/Calendar/ClipDatesRef.hs
+formatted       d031fd80c27f  time-1.16.0.1/test/main/Test/Calendar/ConvertBack.hs
+formatted       168e9526852a  time-1.16.0.1/test/main/Test/Calendar/DayPeriod.hs
+formatted       2b4c5c903e40  time-1.16.0.1/test/main/Test/Calendar/Duration.hs
+formatted       56b1c2b8beea  time-1.16.0.1/test/main/Test/Calendar/Easter.hs
+formatted       3f35f96f7337  time-1.16.0.1/test/main/Test/Calendar/LongWeekYears.hs
+formatted       bdfb9e546ba3  time-1.16.0.1/test/main/Test/Calendar/LongWeekYearsRef.hs
+formatted       b5181d1d6218  time-1.16.0.1/test/main/Test/Calendar/MonthDay.hs
+formatted       c01cb667a9a8  time-1.16.0.1/test/main/Test/Calendar/MonthDayRef.hs
+formatted       fc8caea8866a  time-1.16.0.1/test/main/Test/Calendar/MonthOfYear.hs
+formatted       70ffc80a9b91  time-1.16.0.1/test/main/Test/Calendar/Valid.hs
+formatted       516d424dfa89  time-1.16.0.1/test/main/Test/Calendar/Week.hs
+formatted       96f42a259e5f  time-1.16.0.1/test/main/Test/Calendar/Year.hs
+formatted       868a03b5a657  time-1.16.0.1/test/main/Test/Clock/Conversion.hs
+formatted       5c09197a3ec5  time-1.16.0.1/test/main/Test/Clock/Pattern.hs
+formatted       449c0cf9b9bd  time-1.16.0.1/test/main/Test/Clock/Resolution.hs
+formatted       e5afef596413  time-1.16.0.1/test/main/Test/Clock/TAI.hs
+formatted       56759726b4b9  time-1.16.0.1/test/main/Test/Format/Compile.hs
+formatted       9a5ff5f775a0  time-1.16.0.1/test/main/Test/Format/Format.hs
+formatted       458676174a43  time-1.16.0.1/test/main/Test/Format/ISO8601.hs
+formatted       b9a6b11b9e1e  time-1.16.0.1/test/main/Test/Format/ParseTime.hs
+formatted       87d53b9f2df8  time-1.16.0.1/test/main/Test/LocalTime/CalendarDiffTime.hs
+formatted       3c6fcbef621e  time-1.16.0.1/test/main/Test/LocalTime/Time.hs
+formatted       4c37e59c357b  time-1.16.0.1/test/main/Test/LocalTime/TimeOfDay.hs
+formatted       db61298fae47  time-1.16.0.1/test/main/Test/LocalTime/TimeRef.hs
+formatted       274e9173e128  time-1.16.0.1/test/main/Test/TestUtil.hs
+formatted       41cfd788db10  time-1.16.0.1/test/main/Test/Types.hs
+formatted       2e8ad72db81a  time-1.16.0.1/test/template/Main.hs
+formatted       29972ed619e0  time-1.16.0.1/test/template/Test/TastyWrapper.hs
+formatted       ea580c874e6f  time-1.16.0.1/test/unix/Main.hs
+formatted       9d938426697b  time-1.16.0.1/test/unix/Test/Format/Format.hs
+formatted       21b333187684  time-1.16.0.1/test/unix/Test/LocalTime/TimeZone.hs
+formatted       f627f436f233  time-1.16.0.1/test/unix/Test/TestUtil.hs
+formatted       7917eb9d1f66  tls-2.4.3/Benchmarks/Benchmarks.hs
+formatted       489534a90c4b  tls-2.4.3/Network/TLS.hs
+formatted       7ce1364dcb4a  tls-2.4.3/Network/TLS/Backend.hs
+formatted       f9d4f25241e6  tls-2.4.3/Network/TLS/Cipher.hs
+formatted       a0fa75894b05  tls-2.4.3/Network/TLS/Compression.hs
+formatted       1228f4f8033d  tls-2.4.3/Network/TLS/Context.hs
+formatted       04740f1040b6  tls-2.4.3/Network/TLS/Context/Internal.hs
+formatted       8a2288d2bc96  tls-2.4.3/Network/TLS/Core.hs
+formatted       e1443ef58aff  tls-2.4.3/Network/TLS/Credentials.hs
+formatted       b6cc61acbea0  tls-2.4.3/Network/TLS/Crypto.hs
+formatted       a8fca7835f0d  tls-2.4.3/Network/TLS/Crypto/DH.hs
+formatted       446c8c8a07ed  tls-2.4.3/Network/TLS/Crypto/IES.hs
+formatted       b7e6a0d5aaac  tls-2.4.3/Network/TLS/Crypto/Types.hs
+formatted       025f72c75341  tls-2.4.3/Network/TLS/ErrT.hs
+formatted       427d32e6cdf8  tls-2.4.3/Network/TLS/Error.hs
+formatted       25c2c4064c31  tls-2.4.3/Network/TLS/Extension.hs
+formatted       2be304b6f83e  tls-2.4.3/Network/TLS/Extension.hs-boot
+formatted       49db661a445a  tls-2.4.3/Network/TLS/Extra.hs
+formatted       62633b825876  tls-2.4.3/Network/TLS/Extra/Cipher.hs
+formatted       0ee5bebb0e07  tls-2.4.3/Network/TLS/Extra/CipherCBC.hs
+formatted       5d51d07ab286  tls-2.4.3/Network/TLS/Extra/FFDHE.hs
+formatted       0003b888622d  tls-2.4.3/Network/TLS/Handshake.hs
+formatted       34fa3d5f9250  tls-2.4.3/Network/TLS/Handshake/Certificate.hs
+formatted       e0f2a684c93c  tls-2.4.3/Network/TLS/Handshake/Client.hs
+formatted       9c57a50d7cfc  tls-2.4.3/Network/TLS/Handshake/Client/ClientHello.hs
+formatted       fd3b33b247f9  tls-2.4.3/Network/TLS/Handshake/Client/Common.hs
+formatted       020fe94afa85  tls-2.4.3/Network/TLS/Handshake/Client/ServerHello.hs
+formatted       3f13588f75b3  tls-2.4.3/Network/TLS/Handshake/Client/TLS12.hs
+formatted       5c1bcf1c14e2  tls-2.4.3/Network/TLS/Handshake/Client/TLS13.hs
+formatted       a90b777adf6d  tls-2.4.3/Network/TLS/Handshake/Common.hs
+formatted       c5440404a04f  tls-2.4.3/Network/TLS/Handshake/Common13.hs
+formatted       02f97ef7593d  tls-2.4.3/Network/TLS/Handshake/Control.hs
+formatted       2c0676398aca  tls-2.4.3/Network/TLS/Handshake/Key.hs
+formatted       9dc05a147d3b  tls-2.4.3/Network/TLS/Handshake/Random.hs
+formatted       718a7715d422  tls-2.4.3/Network/TLS/Handshake/Server.hs
+formatted       b75e8a299fbb  tls-2.4.3/Network/TLS/Handshake/Server/ClientHello.hs
+formatted       17ae63748aa2  tls-2.4.3/Network/TLS/Handshake/Server/ClientHello12.hs
+formatted       d664c259f6af  tls-2.4.3/Network/TLS/Handshake/Server/ClientHello13.hs
+formatted       a2f2d3470f0f  tls-2.4.3/Network/TLS/Handshake/Server/Common.hs
+formatted       5c07986ccbf1  tls-2.4.3/Network/TLS/Handshake/Server/ServerHello12.hs
+formatted       d3df4765699c  tls-2.4.3/Network/TLS/Handshake/Server/ServerHello13.hs
+formatted       b29b9f3d0ef7  tls-2.4.3/Network/TLS/Handshake/Server/TLS12.hs
+formatted       dacd920cbf42  tls-2.4.3/Network/TLS/Handshake/Server/TLS13.hs
+formatted       6a8388c49af7  tls-2.4.3/Network/TLS/Handshake/Signature.hs
+formatted       4d5c61b9dc3d  tls-2.4.3/Network/TLS/Handshake/State.hs
+formatted       f55d027db091  tls-2.4.3/Network/TLS/Handshake/State13.hs
+formatted       f907190b60ed  tls-2.4.3/Network/TLS/Handshake/TranscriptHash.hs
+formatted       5e1320c4c161  tls-2.4.3/Network/TLS/HashAndSignature.hs
+formatted       7be5df148925  tls-2.4.3/Network/TLS/Hooks.hs
+formatted       b606b0451a2f  tls-2.4.3/Network/TLS/IO.hs
+formatted       4288557274dd  tls-2.4.3/Network/TLS/IO/Decode.hs
+formatted       a9013006f398  tls-2.4.3/Network/TLS/IO/Encode.hs
+formatted       d7509e6fb8f1  tls-2.4.3/Network/TLS/Imports.hs
+formatted       21e9ce7c3507  tls-2.4.3/Network/TLS/Internal.hs
+formatted       92999e90c6b3  tls-2.4.3/Network/TLS/KeySchedule.hs
+formatted       febba7334e9e  tls-2.4.3/Network/TLS/MAC.hs
+formatted       9955ee0bd505  tls-2.4.3/Network/TLS/Measurement.hs
+formatted       426e8a75af01  tls-2.4.3/Network/TLS/Packet.hs
+formatted       41cbbbe9b09e  tls-2.4.3/Network/TLS/Packet13.hs
+formatted       a14ea5098afd  tls-2.4.3/Network/TLS/Parameters.hs
+formatted       29784d509f48  tls-2.4.3/Network/TLS/PostHandshake.hs
+formatted       8edf9e30c18b  tls-2.4.3/Network/TLS/QUIC.hs
+formatted       360a52dcf151  tls-2.4.3/Network/TLS/RNG.hs
+formatted       805eb6800681  tls-2.4.3/Network/TLS/Record.hs
+formatted       e0fdd96fb4fc  tls-2.4.3/Network/TLS/Record/Decrypt.hs
+formatted       58ae652319fd  tls-2.4.3/Network/TLS/Record/Encrypt.hs
+formatted       3d9c53507eaa  tls-2.4.3/Network/TLS/Record/Layer.hs
+formatted       a66c641fa8a1  tls-2.4.3/Network/TLS/Record/Recv.hs
+formatted       9fa588833e07  tls-2.4.3/Network/TLS/Record/Send.hs
+formatted       500b4c31d912  tls-2.4.3/Network/TLS/Record/State.hs
+formatted       932e2e5f3887  tls-2.4.3/Network/TLS/Record/Types.hs
+formatted       42bed44c3eaa  tls-2.4.3/Network/TLS/Session.hs
+formatted       04bdb49074e5  tls-2.4.3/Network/TLS/State.hs
+formatted       aedfbc85cbbc  tls-2.4.3/Network/TLS/Struct.hs
+formatted       4c783b0d9e9d  tls-2.4.3/Network/TLS/Struct13.hs
+formatted       ea0d39cd9f70  tls-2.4.3/Network/TLS/Types.hs
+formatted       253e29d81f4e  tls-2.4.3/Network/TLS/Types/Cipher.hs
+formatted       e6e9255220bb  tls-2.4.3/Network/TLS/Types/Secret.hs
+formatted       35bf4ee60be8  tls-2.4.3/Network/TLS/Types/Session.hs
+formatted       741cb1c84257  tls-2.4.3/Network/TLS/Types/Version.hs
+formatted       be921f75cb0a  tls-2.4.3/Network/TLS/Util.hs
+formatted       1d021bd7e9a7  tls-2.4.3/Network/TLS/Util/ASN1.hs
+formatted       9d70166f446f  tls-2.4.3/Network/TLS/Util/Serialization.hs
+formatted       32a205e8e871  tls-2.4.3/Network/TLS/Wire.hs
+formatted       5c85b406dea3  tls-2.4.3/Network/TLS/X509.hs
+formatted       e865ae48f11b  tls-2.4.3/Setup.hs
+formatted       45a83b6cde24  tls-2.4.3/test/API.hs
+formatted       0d25f1866c79  tls-2.4.3/test/Arbitrary.hs
+formatted       ba1557ab2831  tls-2.4.3/test/Certificate.hs
+formatted       37c216e39fd1  tls-2.4.3/test/CiphersSpec.hs
+formatted       ae18040b3401  tls-2.4.3/test/ECHSpec.hs
+formatted       a99d04d129f7  tls-2.4.3/test/EncodeSpec.hs
+formatted       a99713b7b244  tls-2.4.3/test/HandshakeSpec.hs
+formatted       23c51f587e8d  tls-2.4.3/test/PipeChan.hs
+formatted       338dcd8056de  tls-2.4.3/test/PubKey.hs
+formatted       9621232ed432  tls-2.4.3/test/Run.hs
+formatted       f2f3550cb17a  tls-2.4.3/test/Session.hs
+formatted       2fbd14b119a4  tls-2.4.3/test/Spec.hs
+formatted       9034972735e8  tls-2.4.3/test/ThreadSpec.hs
+formatted       199e7d71bfb6  tls-2.4.3/util/Client.hs
+formatted       c555911ae465  tls-2.4.3/util/Common.hs
+formatted       7dd3b5f2e44a  tls-2.4.3/util/Imports.hs
+formatted       6e9aa070c533  tls-2.4.3/util/Server.hs
+formatted       fa42557a0faa  tls-2.4.3/util/tls-client.hs
+formatted       0b4839d81970  tls-2.4.3/util/tls-server.hs
+partly-checked  36a6d2f6abb4  transformers-0.6.3.0/Control/Applicative/Backwards.hs
+partly-checked  1e0b5cb5f0b3  transformers-0.6.3.0/Control/Applicative/Lift.hs
+formatted       578b0e3c1682  transformers-0.6.3.0/Control/Monad/Signatures.hs
+partly-checked  903d26036ddf  transformers-0.6.3.0/Control/Monad/Trans/Accum.hs
+formatted       11c4fec8a720  transformers-0.6.3.0/Control/Monad/Trans/Class.hs
+formatted       f620249e716e  transformers-0.6.3.0/Control/Monad/Trans/Cont.hs
+partly-checked  2f38844a0b53  transformers-0.6.3.0/Control/Monad/Trans/Except.hs
+partly-checked  6d8a76ff4396  transformers-0.6.3.0/Control/Monad/Trans/Identity.hs
+partly-checked  992296f3d968  transformers-0.6.3.0/Control/Monad/Trans/Maybe.hs
+formatted       6f7326668607  transformers-0.6.3.0/Control/Monad/Trans/RWS.hs
+formatted       b08c74062e9a  transformers-0.6.3.0/Control/Monad/Trans/RWS/CPS.hs
+partly-checked  bbbde7e4b2ce  transformers-0.6.3.0/Control/Monad/Trans/RWS/Lazy.hs
+partly-checked  99cf9d466187  transformers-0.6.3.0/Control/Monad/Trans/RWS/Strict.hs
+partly-checked  b0dea6ec7a78  transformers-0.6.3.0/Control/Monad/Trans/Reader.hs
+formatted       b58555f08340  transformers-0.6.3.0/Control/Monad/Trans/Select.hs
+formatted       dc729d1936a2  transformers-0.6.3.0/Control/Monad/Trans/State.hs
+partly-checked  79758bb0ea7c  transformers-0.6.3.0/Control/Monad/Trans/State/Lazy.hs
+partly-checked  fa45dc7389ec  transformers-0.6.3.0/Control/Monad/Trans/State/Strict.hs
+formatted       6a9857bbd181  transformers-0.6.3.0/Control/Monad/Trans/Writer.hs
+formatted       84635e677dc4  transformers-0.6.3.0/Control/Monad/Trans/Writer/CPS.hs
+partly-checked  4c4d740d0f11  transformers-0.6.3.0/Control/Monad/Trans/Writer/Lazy.hs
+partly-checked  d70a600a810a  transformers-0.6.3.0/Control/Monad/Trans/Writer/Strict.hs
+partly-checked  14c7f90db739  transformers-0.6.3.0/Data/Functor/Constant.hs
+partly-checked  d6d1f203de5b  transformers-0.6.3.0/Data/Functor/Reverse.hs
+formatted       e865ae48f11b  transformers-0.6.3.0/Setup.hs
+partly-checked  d351ac859585  transformers-0.6.3.0/legacy/pre709/Data/Functor/Identity.hs
+formatted       ee4ba7098a5c  transformers-0.6.3.0/legacy/pre711/Control/Monad/IO/Class.hs
+formatted       7d9fab9a0caf  transformers-0.6.3.0/legacy/pre711/Data/Functor/Classes.hs
+formatted       effc0109229f  transformers-0.6.3.0/legacy/pre711/Data/Functor/Compose.hs
+partly-checked  e96184ffa2ec  transformers-0.6.3.0/legacy/pre711/Data/Functor/Product.hs
+formatted       87f324f0c768  transformers-0.6.3.0/legacy/pre711/Data/Functor/Sum.hs
+formatted       e865ae48f11b  typed-process-0.2.13.0/Setup.hs
+formatted       c1dc4f2d5700  typed-process-0.2.13.0/src/System/Process/Typed.hs
+formatted       b0f50f282c25  typed-process-0.2.13.0/src/System/Process/Typed/Internal.hs
+formatted       2fbd14b119a4  typed-process-0.2.13.0/test/Spec.hs
+formatted       4eb03857d270  typed-process-0.2.13.0/test/System/Process/TypedSpec.hs
+formatted       e865ae48f11b  unliftio-0.2.25.1/Setup.hs
+formatted       86399961b28a  unliftio-0.2.25.1/bench/ConcBench.hs
+formatted       737706872ccf  unliftio-0.2.25.1/src/UnliftIO.hs
+formatted       713d1458fd8d  unliftio-0.2.25.1/src/UnliftIO/Async.hs
+formatted       5463e06f3adf  unliftio-0.2.25.1/src/UnliftIO/Chan.hs
+formatted       189c6c89bb81  unliftio-0.2.25.1/src/UnliftIO/Concurrent.hs
+partly-checked  c708a2f3ee0e  unliftio-0.2.25.1/src/UnliftIO/Directory.hs
+formatted       402fb486b3cf  unliftio-0.2.25.1/src/UnliftIO/Environment.hs
+formatted       c9305d3c9be9  unliftio-0.2.25.1/src/UnliftIO/Exception.hs
+formatted       945872778744  unliftio-0.2.25.1/src/UnliftIO/Exception/Lens.hs
+formatted       ff1234d6ddbd  unliftio-0.2.25.1/src/UnliftIO/Foreign.hs
+formatted       a64a8ea6c117  unliftio-0.2.25.1/src/UnliftIO/IO.hs
+formatted       04f7d565fc19  unliftio-0.2.25.1/src/UnliftIO/IO/File.hs
+formatted       9cc05dd4f2c0  unliftio-0.2.25.1/src/UnliftIO/IO/File/Posix.hs
+formatted       2688f4b976d8  unliftio-0.2.25.1/src/UnliftIO/IORef.hs
+formatted       ee412983b256  unliftio-0.2.25.1/src/UnliftIO/Internals/Async.hs
+formatted       2e37ab380c8b  unliftio-0.2.25.1/src/UnliftIO/MVar.hs
+formatted       25ab39f4a7d1  unliftio-0.2.25.1/src/UnliftIO/Memoize.hs
+formatted       e32e1ab244cd  unliftio-0.2.25.1/src/UnliftIO/Process.hs
+formatted       f17d64d4c913  unliftio-0.2.25.1/src/UnliftIO/QSem.hs
+formatted       6e50df49a6ba  unliftio-0.2.25.1/src/UnliftIO/QSemN.hs
+formatted       ee3bf4d22673  unliftio-0.2.25.1/src/UnliftIO/STM.hs
+formatted       809c4f4424bb  unliftio-0.2.25.1/src/UnliftIO/Temporary.hs
+formatted       0f5f7167bc7b  unliftio-0.2.25.1/src/UnliftIO/Timeout.hs
+formatted       2fbd14b119a4  unliftio-0.2.25.1/test/Spec.hs
+formatted       970999bb4200  unliftio-0.2.25.1/test/UnliftIO/AsyncSpec.hs
+formatted       dda4d2f1b5ef  unliftio-0.2.25.1/test/UnliftIO/DirectorySpec.hs
+formatted       500e291fb7a1  unliftio-0.2.25.1/test/UnliftIO/ExceptionSpec.hs
+formatted       d4a0864bfc4d  unliftio-0.2.25.1/test/UnliftIO/IO/FileSpec.hs
+formatted       258e4c04879b  unliftio-0.2.25.1/test/UnliftIO/IOSpec.hs
+formatted       68c4411ed8f4  unliftio-0.2.25.1/test/UnliftIO/MemoizeSpec.hs
+formatted       f878ce9da222  unliftio-0.2.25.1/test/UnliftIO/PooledAsyncSpec.hs
+formatted       e6cf398d7548  unordered-containers-0.2.21/Data/HashMap/Internal.hs
+declined        -             unordered-containers-0.2.21/Data/HashMap/Internal/Array.hs
+formatted       7be08d5816ff  unordered-containers-0.2.21/Data/HashMap/Internal/Debug.hs
+formatted       25f94316b17e  unordered-containers-0.2.21/Data/HashMap/Internal/List.hs
+formatted       24da0241d81f  unordered-containers-0.2.21/Data/HashMap/Internal/Strict.hs
+formatted       a4d22b20936f  unordered-containers-0.2.21/Data/HashMap/Lazy.hs
+formatted       b51d84ac0257  unordered-containers-0.2.21/Data/HashMap/Strict.hs
+formatted       d88b52d5dce2  unordered-containers-0.2.21/Data/HashSet.hs
+formatted       a238b77b05ef  unordered-containers-0.2.21/Data/HashSet/Internal.hs
+formatted       e865ae48f11b  unordered-containers-0.2.21/Setup.hs
+formatted       31f2eba3c570  unordered-containers-0.2.21/benchmarks/Benchmarks.hs
+formatted       0ed2a6102dba  unordered-containers-0.2.21/benchmarks/FineGrained.hs
+formatted       b1cc4b50fa0e  unordered-containers-0.2.21/benchmarks/Key/Bytes.hs
+formatted       de9c7b30da36  unordered-containers-0.2.21/benchmarks/Util/ByteString.hs
+formatted       284694c5798b  unordered-containers-0.2.21/benchmarks/Util/Int.hs
+formatted       771e81db1b05  unordered-containers-0.2.21/benchmarks/Util/String.hs
+formatted       2b26017dfa9e  unordered-containers-0.2.21/tests/Main.hs
+formatted       27005a00112e  unordered-containers-0.2.21/tests/Properties.hs
+formatted       b06c5b9e0c6c  unordered-containers-0.2.21/tests/Properties/HashMapLazy.hs
+formatted       f2a904c3a89a  unordered-containers-0.2.21/tests/Properties/HashMapStrict.hs
+formatted       2212e9831f16  unordered-containers-0.2.21/tests/Properties/HashSet.hs
+formatted       3584a01b2cdd  unordered-containers-0.2.21/tests/Properties/List.hs
+formatted       54d1a11ab949  unordered-containers-0.2.21/tests/Regressions.hs
+formatted       d8eab8f8ddd4  unordered-containers-0.2.21/tests/Strictness.hs
+formatted       00cf0a5ee0ea  unordered-containers-0.2.21/tests/Util/Key.hs
+formatted       e865ae48f11b  unpacked-containers-0/Setup.hs
+formatted       8523e9d3c669  unpacked-containers-0/example/Int.hs
+formatted       ba3a254765ca  unpacked-containers-0/example/Main.hs
+formatted       941a76a7e532  unpacked-containers-0/src/Key.hsig
+formatted       0ab7b95772b1  unpacked-containers-0/src/Map.hs
+formatted       92369d5c9642  unpacked-containers-0/src/Map/Internal.hs
+formatted       412fdc3e3871  unpacked-containers-0/src/Map/Internal/Debug.hs
+formatted       88e3acab50fe  unpacked-containers-0/src/Map/Lazy.hs
+formatted       d160eb88e766  unpacked-containers-0/src/Map/Merge/Lazy.hs
+formatted       3401a14fe602  unpacked-containers-0/src/Map/Merge/Strict.hs
+formatted       1da0e231433b  unpacked-containers-0/src/Map/Strict.hs
+formatted       f41fa99a0443  unpacked-containers-0/src/Map/Strict/Internal.hs
+formatted       bb6c9398369f  unpacked-containers-0/src/Set.hs
+formatted       185a318216e6  unpacked-containers-0/src/Set/Internal.hs
+formatted       867c9afd504a  unpacked-containers-0/utils/Internal/BitQueue.hs
+formatted       bd087fcec914  unpacked-containers-0/utils/Internal/BitUtil.hs
+formatted       1e6457fb908c  unpacked-containers-0/utils/Internal/PtrEquality.hs
+formatted       534c12741bb9  unpacked-containers-0/utils/Internal/State.hs
+formatted       bc7baa228863  unpacked-containers-0/utils/Internal/StrictFold.hs
+formatted       a772ddb0c63d  unpacked-containers-0/utils/Internal/StrictMaybe.hs
+formatted       b7a091ef4c77  unpacked-containers-0/utils/Internal/StrictPair.hs
+formatted       4a8ac51676df  uuid-types-1.0.6.1/Setup.hs
+formatted       e97eca400518  uuid-types-1.0.6.1/src/Data/UUID/Types.hs
+formatted       a09b001e6a41  uuid-types-1.0.6.1/src/Data/UUID/Types/Internal.hs
+formatted       d63508f44841  uuid-types-1.0.6.1/src/Data/UUID/Types/Internal/Builder.hs
+formatted       14a92dc8286f  uuid-types-1.0.6.1/tests/TestUUID.hs
+formatted       e865ae48f11b  vector-0.13.2.0/Setup.hs
+formatted       cb65eb293bd5  vector-0.13.2.0/benchlib/Bench/Vector/Algo/AwShCC.hs
+formatted       8a7c35b680c0  vector-0.13.2.0/benchlib/Bench/Vector/Algo/FindIndexR.hs
+formatted       7536358d3c8c  vector-0.13.2.0/benchlib/Bench/Vector/Algo/HybCC.hs
+formatted       31caf6daa18c  vector-0.13.2.0/benchlib/Bench/Vector/Algo/Leaffix.hs
+formatted       c647f14c61cb  vector-0.13.2.0/benchlib/Bench/Vector/Algo/ListRank.hs
+formatted       bbc9ffdd439f  vector-0.13.2.0/benchlib/Bench/Vector/Algo/MutableSet.hs
+formatted       1b5cb401e1ad  vector-0.13.2.0/benchlib/Bench/Vector/Algo/NextPermutation.hs
+formatted       a1d4d3d489b4  vector-0.13.2.0/benchlib/Bench/Vector/Algo/Quickhull.hs
+formatted       cff7efe83577  vector-0.13.2.0/benchlib/Bench/Vector/Algo/Rootfix.hs
+formatted       bc96aa2b8cdf  vector-0.13.2.0/benchlib/Bench/Vector/Algo/Spectral.hs
+formatted       438dab6789ad  vector-0.13.2.0/benchlib/Bench/Vector/Algo/Tridiag.hs
+formatted       ec97bfaffec3  vector-0.13.2.0/benchlib/Bench/Vector/Tasty.hs
+formatted       368deb66d310  vector-0.13.2.0/benchlib/Bench/Vector/TestData/Graph.hs
+formatted       476c4f42945a  vector-0.13.2.0/benchlib/Bench/Vector/TestData/ParenTree.hs
+formatted       6b1b4aea2361  vector-0.13.2.0/benchmarks/Main.hs
+formatted       77ce7d3b1eda  vector-0.13.2.0/internal/GenUnboxTuple.hs
+formatted       50a769358a75  vector-0.13.2.0/src/Data/Vector.hs
+formatted       5524402837b5  vector-0.13.2.0/src/Data/Vector/Fusion/Bundle.hs
+formatted       2da6c234d40e  vector-0.13.2.0/src/Data/Vector/Fusion/Bundle/Monadic.hs
+formatted       281a320dd1fd  vector-0.13.2.0/src/Data/Vector/Fusion/Bundle/Size.hs
+formatted       8b09b3b8c680  vector-0.13.2.0/src/Data/Vector/Fusion/Stream/Monadic.hs
+formatted       b52b6135f86c  vector-0.13.2.0/src/Data/Vector/Fusion/Util.hs
+formatted       314634869762  vector-0.13.2.0/src/Data/Vector/Generic.hs
+formatted       24e087932bf9  vector-0.13.2.0/src/Data/Vector/Generic/Base.hs
+formatted       6b60cf7d78e7  vector-0.13.2.0/src/Data/Vector/Generic/Mutable.hs
+formatted       14ab0fea35a5  vector-0.13.2.0/src/Data/Vector/Generic/Mutable/Base.hs
+formatted       31ef8684e6a5  vector-0.13.2.0/src/Data/Vector/Generic/New.hs
+formatted       1842a6e1d83f  vector-0.13.2.0/src/Data/Vector/Internal/Check.hs
+formatted       707feb375d98  vector-0.13.2.0/src/Data/Vector/Mutable.hs
+formatted       c77c6d8b48f1  vector-0.13.2.0/src/Data/Vector/Primitive.hs
+formatted       7790a579fd85  vector-0.13.2.0/src/Data/Vector/Primitive/Mutable.hs
+formatted       d63a299a6982  vector-0.13.2.0/src/Data/Vector/Storable.hs
+formatted       f3208fa21c31  vector-0.13.2.0/src/Data/Vector/Storable/Internal.hs
+formatted       a312fe3ca55a  vector-0.13.2.0/src/Data/Vector/Storable/Mutable.hs
+formatted       d056b777cb12  vector-0.13.2.0/src/Data/Vector/Strict.hs
+formatted       3bc69095cb4d  vector-0.13.2.0/src/Data/Vector/Strict/Mutable.hs
+formatted       5a349caedbaf  vector-0.13.2.0/src/Data/Vector/Unboxed.hs
+formatted       1e14851054d6  vector-0.13.2.0/src/Data/Vector/Unboxed/Base.hs
+formatted       58ff39d532e3  vector-0.13.2.0/src/Data/Vector/Unboxed/Mutable.hs
+formatted       e68c2d35dfab  vector-0.13.2.0/tests-inspect/Inspect.hs
+formatted       992258e8ec96  vector-0.13.2.0/tests-inspect/Inspect/DerivingVia.hs
+formatted       005977089309  vector-0.13.2.0/tests-inspect/Inspect/DerivingVia/OtherFoo.hs
+formatted       33f7105f6875  vector-0.13.2.0/tests-inspect/main.hs
+formatted       b27a545b7df5  vector-0.13.2.0/tests/Boilerplater.hs
+formatted       9d758ab214f1  vector-0.13.2.0/tests/Main.hs
+formatted       8061fe09f977  vector-0.13.2.0/tests/Tests/Bundle.hs
+formatted       1525be7e0a46  vector-0.13.2.0/tests/Tests/Move.hs
+formatted       43dd4c8d5a9c  vector-0.13.2.0/tests/Tests/Vector/Boxed.hs
+formatted       54a741f726e9  vector-0.13.2.0/tests/Tests/Vector/Primitive.hs
+formatted       9491118bca38  vector-0.13.2.0/tests/Tests/Vector/Property.hs
+formatted       89d6f5f286c7  vector-0.13.2.0/tests/Tests/Vector/Storable.hs
+formatted       cc9e0bc6f8e0  vector-0.13.2.0/tests/Tests/Vector/Strict.hs
+formatted       891ffe33c45c  vector-0.13.2.0/tests/Tests/Vector/Unboxed.hs
+formatted       9a90ef543177  vector-0.13.2.0/tests/Tests/Vector/UnitTests.hs
+formatted       4e35b27641cf  vector-0.13.2.0/tests/Utilities.hs
+formatted       88ed51490944  vector-0.13.2.0/tests/doctests.hs
+formatted       5561dc5bc4a0  vector-algorithms-0.9.1.0/bench/simple/Blocks.hs
+formatted       8f4b8b5057e3  vector-algorithms-0.9.1.0/bench/simple/Main.hs
+formatted       3e94b6538b40  vector-algorithms-0.9.1.0/src/Data/Vector/Algorithms.hs
+formatted       553211019f78  vector-algorithms-0.9.1.0/src/Data/Vector/Algorithms/AmericanFlag.hs
+formatted       5bc324a60b4f  vector-algorithms-0.9.1.0/src/Data/Vector/Algorithms/Common.hs
+formatted       a7c93d247f1d  vector-algorithms-0.9.1.0/src/Data/Vector/Algorithms/Heap.hs
+formatted       385f1aecc6ac  vector-algorithms-0.9.1.0/src/Data/Vector/Algorithms/Insertion.hs
+formatted       c2cb20f40fd9  vector-algorithms-0.9.1.0/src/Data/Vector/Algorithms/Intro.hs
+formatted       4a50f751547a  vector-algorithms-0.9.1.0/src/Data/Vector/Algorithms/Merge.hs
+formatted       0d30a08d3940  vector-algorithms-0.9.1.0/src/Data/Vector/Algorithms/Optimal.hs
+formatted       b7b0f718deb2  vector-algorithms-0.9.1.0/src/Data/Vector/Algorithms/Radix.hs
+formatted       47f1d28b6145  vector-algorithms-0.9.1.0/src/Data/Vector/Algorithms/Search.hs
+formatted       0a376532e9cb  vector-algorithms-0.9.1.0/src/Data/Vector/Algorithms/Tim.hs
+formatted       a9ac57f13756  vector-algorithms-0.9.1.0/tests/properties/Optimal.hs
+formatted       b19d49d0db4b  vector-algorithms-0.9.1.0/tests/properties/Properties.hs
+formatted       9afd19dd61b7  vector-algorithms-0.9.1.0/tests/properties/Tests.hs
+formatted       68c72976d14e  vector-algorithms-0.9.1.0/tests/properties/Util.hs
+formatted       a090ecfca870  wai-3.2.5/Network/Wai.hs
+formatted       eebfbcd85364  wai-3.2.5/Network/Wai/Internal.hs
+formatted       76fdb58b6d05  wai-3.2.5/test/Network/WaiSpec.hs
+formatted       2fbd14b119a4  wai-3.2.5/test/Spec.hs
+formatted       6ebbad2d21ce  warp-3.4.15/Network/Wai/Handler/Warp.hs
+formatted       009ccfac9d51  warp-3.4.15/Network/Wai/Handler/Warp/Buffer.hs
+formatted       f910265f50d3  warp-3.4.15/Network/Wai/Handler/Warp/Conduit.hs
+formatted       c978e6eb627c  warp-3.4.15/Network/Wai/Handler/Warp/Counter.hs
+formatted       26b005936471  warp-3.4.15/Network/Wai/Handler/Warp/Date.hs
+formatted       f0898462d96f  warp-3.4.15/Network/Wai/Handler/Warp/FdCache.hs
+formatted       5c8ff344b068  warp-3.4.15/Network/Wai/Handler/Warp/File.hs
+formatted       e56514093065  warp-3.4.15/Network/Wai/Handler/Warp/FileInfoCache.hs
+formatted       73ea52fed850  warp-3.4.15/Network/Wai/Handler/Warp/HTTP1.hs
+formatted       6099d557a8b5  warp-3.4.15/Network/Wai/Handler/Warp/HTTP2.hs
+formatted       a7debda99dd6  warp-3.4.15/Network/Wai/Handler/Warp/HTTP2/File.hs
+formatted       cd7ebbac04db  warp-3.4.15/Network/Wai/Handler/Warp/HTTP2/PushPromise.hs
+formatted       40821f53b1d9  warp-3.4.15/Network/Wai/Handler/Warp/HTTP2/Request.hs
+formatted       831c4440cde7  warp-3.4.15/Network/Wai/Handler/Warp/HTTP2/Response.hs
+formatted       40e59aa92ecc  warp-3.4.15/Network/Wai/Handler/Warp/HTTP2/Types.hs
+formatted       69c55babd99e  warp-3.4.15/Network/Wai/Handler/Warp/HashMap.hs
+formatted       8abbc71d629a  warp-3.4.15/Network/Wai/Handler/Warp/Header.hs
+formatted       a036771b5a25  warp-3.4.15/Network/Wai/Handler/Warp/IO.hs
+formatted       d92af26eb2ec  warp-3.4.15/Network/Wai/Handler/Warp/Imports.hs
+formatted       98f2e1cfdade  warp-3.4.15/Network/Wai/Handler/Warp/Internal.hs
+formatted       e8583e08a2e4  warp-3.4.15/Network/Wai/Handler/Warp/MultiMap.hs
+formatted       ed16ebc20147  warp-3.4.15/Network/Wai/Handler/Warp/PackInt.hs
+formatted       22e5a5d6d3c9  warp-3.4.15/Network/Wai/Handler/Warp/ReadInt.hs
+formatted       e29d1517c375  warp-3.4.15/Network/Wai/Handler/Warp/Request.hs
+formatted       c7905b72682b  warp-3.4.15/Network/Wai/Handler/Warp/RequestHeader.hs
+formatted       9b74f110bcea  warp-3.4.15/Network/Wai/Handler/Warp/Response.hs
+formatted       27cae25ae83a  warp-3.4.15/Network/Wai/Handler/Warp/ResponseHeader.hs
+formatted       0f91ea78f24d  warp-3.4.15/Network/Wai/Handler/Warp/Run.hs
+formatted       47a04a642ad1  warp-3.4.15/Network/Wai/Handler/Warp/SendFile.hs
+formatted       1df580e8094c  warp-3.4.15/Network/Wai/Handler/Warp/Settings.hs
+formatted       bc4925a06045  warp-3.4.15/Network/Wai/Handler/Warp/ShuttingDown.hs
+formatted       de1fe97e941a  warp-3.4.15/Network/Wai/Handler/Warp/Types.hs
+formatted       f1ff20ab87da  warp-3.4.15/Network/Wai/Handler/Warp/Windows.hs
+formatted       2bef9620132e  warp-3.4.15/Network/Wai/Handler/Warp/WithApplication.hs
+formatted       f3a2c7ee7659  warp-3.4.15/bench/Parser.hs
+formatted       8f739e595518  warp-3.4.15/test/BufferSpec.hs
+formatted       6d25fc643699  warp-3.4.15/test/ConduitSpec.hs
+formatted       103842d1ec84  warp-3.4.15/test/ConnectionSpec.hs
+formatted       3f7b8c3f5246  warp-3.4.15/test/EarlyHintsSpec.hs
+formatted       04c0408bb90a  warp-3.4.15/test/ExceptionSpec.hs
+formatted       6da076d7c2ae  warp-3.4.15/test/FdCacheSpec.hs
+formatted       f91844cc6a8f  warp-3.4.15/test/FileSpec.hs
+formatted       0ba618e41ab1  warp-3.4.15/test/GracefulShutdownSpec.hs
+formatted       4d81d4cdb7c7  warp-3.4.15/test/HTTP.hs
+formatted       70bab0349402  warp-3.4.15/test/PackIntSpec.hs
+formatted       c0ed531ac6d7  warp-3.4.15/test/ReadIntSpec.hs
+formatted       203ea20f13bf  warp-3.4.15/test/RequestSpec.hs
+formatted       4ef55f7e523c  warp-3.4.15/test/ResponseHeaderSpec.hs
+formatted       ac591a85b19f  warp-3.4.15/test/ResponseSpec.hs
+formatted       190ad2e064b1  warp-3.4.15/test/RunSpec.hs
+formatted       12d7c8bf7283  warp-3.4.15/test/SendFileSpec.hs
+formatted       56bf11ebdf68  warp-3.4.15/test/ServerStateSpec.hs
+formatted       2fbd14b119a4  warp-3.4.15/test/Spec.hs
+formatted       6239c41d8ad7  warp-3.4.15/test/WithApplicationSpec.hs
+formatted       c61ebeab72e9  warp-3.4.15/test/doctests.hs
+formatted       c3a0978b358e  xmonad-0.18.1/Main.hs
+formatted       ecba01b7187b  xmonad-0.18.1/man/xmonad.hs
+formatted       3b6f53962e81  xmonad-0.18.1/src/XMonad.hs
+formatted       a8a2516e84e9  xmonad-0.18.1/src/XMonad/Config.hs
+formatted       9aa143cf0593  xmonad-0.18.1/src/XMonad/Core.hs
+formatted       678fc26f9299  xmonad-0.18.1/src/XMonad/Layout.hs
+formatted       68ebe2886589  xmonad-0.18.1/src/XMonad/Main.hs
+formatted       fececd53a9f5  xmonad-0.18.1/src/XMonad/ManageHook.hs
+formatted       e11a33d9123d  xmonad-0.18.1/src/XMonad/Operations.hs
+formatted       92d9b2f9aecb  xmonad-0.18.1/src/XMonad/StackSet.hs
+formatted       710ec0764541  xmonad-0.18.1/tests/Instances.hs
+formatted       150f94b8a646  xmonad-0.18.1/tests/Properties.hs
+formatted       b9cbebbac632  xmonad-0.18.1/tests/Properties/Delete.hs
+formatted       2b2b85b4c7fe  xmonad-0.18.1/tests/Properties/Failure.hs
+formatted       2825306e83f9  xmonad-0.18.1/tests/Properties/Floating.hs
+formatted       ae9be34908bc  xmonad-0.18.1/tests/Properties/Focus.hs
+formatted       1418915d6ac8  xmonad-0.18.1/tests/Properties/GreedyView.hs
+formatted       74ca5ec847bb  xmonad-0.18.1/tests/Properties/Insert.hs
+formatted       2d0f361b70f7  xmonad-0.18.1/tests/Properties/Layout/Full.hs
+formatted       af6a26b0fa64  xmonad-0.18.1/tests/Properties/Layout/Tall.hs
+formatted       65709ceae761  xmonad-0.18.1/tests/Properties/Screen.hs
+formatted       13ed9089c892  xmonad-0.18.1/tests/Properties/Shift.hs
+formatted       879d6f9db8a2  xmonad-0.18.1/tests/Properties/Stack.hs
+formatted       ba836152eb5d  xmonad-0.18.1/tests/Properties/StackSet.hs
+formatted       4372dd576612  xmonad-0.18.1/tests/Properties/Swap.hs
+formatted       f6f63b59cfb0  xmonad-0.18.1/tests/Properties/View.hs
+formatted       cd8d73c03759  xmonad-0.18.1/tests/Properties/Workspace.hs
+formatted       4e65334f7f2a  xmonad-0.18.1/tests/Utils.hs
+formatted       d8adcc5e8871  yesod-core-1.7.0.0/bench/widget.hs
+formatted       810a9b2932db  yesod-core-1.7.0.0/src/Yesod/Core.hs
+formatted       76a91abab9c7  yesod-core-1.7.0.0/src/Yesod/Core/Class/Breadcrumbs.hs
+formatted       d94322757109  yesod-core-1.7.0.0/src/Yesod/Core/Class/Dispatch.hs
+formatted       4e0e4c27884b  yesod-core-1.7.0.0/src/Yesod/Core/Class/Dispatch/ToParentRoute.hs
+formatted       96d18ec66a91  yesod-core-1.7.0.0/src/Yesod/Core/Class/Handler.hs
+formatted       55ca7aed8601  yesod-core-1.7.0.0/src/Yesod/Core/Class/Yesod.hs
+formatted       7b7185683c72  yesod-core-1.7.0.0/src/Yesod/Core/Content.hs
+formatted       bc567e14f9ae  yesod-core-1.7.0.0/src/Yesod/Core/Dispatch.hs
+formatted       dad160e4138f  yesod-core-1.7.0.0/src/Yesod/Core/Handler.hs
+formatted       88d4d8c2323a  yesod-core-1.7.0.0/src/Yesod/Core/Internal.hs
+formatted       212235b50682  yesod-core-1.7.0.0/src/Yesod/Core/Internal/LiteApp.hs
+formatted       b02eb40e75c3  yesod-core-1.7.0.0/src/Yesod/Core/Internal/Request.hs
+formatted       f6b39e51d0e8  yesod-core-1.7.0.0/src/Yesod/Core/Internal/Response.hs
+formatted       356a82e11c3e  yesod-core-1.7.0.0/src/Yesod/Core/Internal/Run.hs
+formatted       da5ec533b3d0  yesod-core-1.7.0.0/src/Yesod/Core/Internal/Session.hs
+formatted       a3a034ad73c8  yesod-core-1.7.0.0/src/Yesod/Core/Internal/TH.hs
+formatted       a4d70c77b953  yesod-core-1.7.0.0/src/Yesod/Core/Internal/Util.hs
+formatted       3c6023c01f8d  yesod-core-1.7.0.0/src/Yesod/Core/Json.hs
+formatted       3d3ea6cd2254  yesod-core-1.7.0.0/src/Yesod/Core/TypeCache.hs
+formatted       69979bd29865  yesod-core-1.7.0.0/src/Yesod/Core/Types.hs
+formatted       38102a09e32a  yesod-core-1.7.0.0/src/Yesod/Core/Types/Content.hs
+formatted       49991219fbf5  yesod-core-1.7.0.0/src/Yesod/Core/Types/ErrorResponse.hs
+formatted       2f42d728713c  yesod-core-1.7.0.0/src/Yesod/Core/Types/HandlerContents.hs
+formatted       eea90c376092  yesod-core-1.7.0.0/src/Yesod/Core/Types/TypedContent.hs
+formatted       abfe32d3eadd  yesod-core-1.7.0.0/src/Yesod/Core/Unsafe.hs
+formatted       1620502b047c  yesod-core-1.7.0.0/src/Yesod/Core/Widget.hs
+formatted       b35c9ac0daff  yesod-core-1.7.0.0/src/Yesod/Routes/Class.hs
+formatted       230bf54c2b5c  yesod-core-1.7.0.0/src/Yesod/Routes/Overlap.hs
+formatted       ca6f61d82ac7  yesod-core-1.7.0.0/src/Yesod/Routes/Parse.hs
+formatted       7bcf63c3b7e5  yesod-core-1.7.0.0/src/Yesod/Routes/TH.hs
+formatted       d14da8f68696  yesod-core-1.7.0.0/src/Yesod/Routes/TH/Dispatch.hs
+formatted       ecd2aee91940  yesod-core-1.7.0.0/src/Yesod/Routes/TH/Internal.hs
+formatted       28cf4bff1605  yesod-core-1.7.0.0/src/Yesod/Routes/TH/ParseRoute.hs
+formatted       fd3fd980369e  yesod-core-1.7.0.0/src/Yesod/Routes/TH/RenderRoute.hs
+formatted       f162f96e2b36  yesod-core-1.7.0.0/src/Yesod/Routes/TH/RouteAttrs.hs
+formatted       d689ca250357  yesod-core-1.7.0.0/src/Yesod/Routes/TH/Types.hs
+formatted       4cf83d0b0f07  yesod-core-1.7.0.0/test/Hierarchy.hs
+formatted       acf61854d2ec  yesod-core-1.7.0.0/test/Hierarchy/Admin.hs
+formatted       38126f8a1ed6  yesod-core-1.7.0.0/test/Hierarchy/Nest.hs
+formatted       a739150f03f1  yesod-core-1.7.0.0/test/Hierarchy/Nest2.hs
+formatted       1998d7e7b6f0  yesod-core-1.7.0.0/test/Hierarchy/Nest2/NestInner.hs
+formatted       6e683051218c  yesod-core-1.7.0.0/test/Hierarchy/Nest3.hs
+formatted       8f1d12dc181e  yesod-core-1.7.0.0/test/Hierarchy/ResourceTree.hs
+formatted       f70ab72cd608  yesod-core-1.7.0.0/test/Route/DeepAritySpec.hs
+formatted       1a22181a9cf2  yesod-core-1.7.0.0/test/Route/DeepArityTypes.hs
+formatted       6cf89c893af0  yesod-core-1.7.0.0/test/Route/DiscoveryModeSpec.hs
+formatted       8742e593c3d0  yesod-core-1.7.0.0/test/Route/FallthroughSpec.hs
+formatted       83547078da44  yesod-core-1.7.0.0/test/Route/FocusLeafConsSpec.hs
+formatted       b96279c392b7  yesod-core-1.7.0.0/test/Route/InlineParseClausesSpec.hs
+formatted       3a68d4c4db75  yesod-core-1.7.0.0/test/Route/InstanceProbeSpec.hs
+formatted       5f762e160869  yesod-core-1.7.0.0/test/Route/InstanceProbeTypes.hs
+formatted       54180e9629d7  yesod-core-1.7.0.0/test/Route/MissingFocusTargetSpec.hs
+formatted       4ca53b8c21db  yesod-core-1.7.0.0/test/Route/MissingFocusTargetTypes.hs
+formatted       c4733044c565  yesod-core-1.7.0.0/test/Route/NestedParseClausesSpec.hs
+formatted       96c9db79de94  yesod-core-1.7.0.0/test/Route/PureQ.hs
+formatted       1084d2ca990f  yesod-core-1.7.0.0/test/Route/RenderRouteSpec.hs
+formatted       5cf00838dae7  yesod-core-1.7.0.0/test/Route/RouteAttrSpec.hs
+formatted       9303c7a203b3  yesod-core-1.7.0.0/test/Route/SubDispatchAritySpec.hs
+formatted       f355aa443a8a  yesod-core-1.7.0.0/test/RouteSpec.hs
+formatted       186318ce7e7a  yesod-core-1.7.0.0/test/YesodCoreTest.hs
+formatted       f0034c742a78  yesod-core-1.7.0.0/test/YesodCoreTest/Auth.hs
+formatted       3a700bfeb45e  yesod-core-1.7.0.0/test/YesodCoreTest/BangSeparatorRuntime.hs
+formatted       e22fa3279a0b  yesod-core-1.7.0.0/test/YesodCoreTest/Breadcrumb.hs
+formatted       3380dd13fc46  yesod-core-1.7.0.0/test/YesodCoreTest/Cache.hs
+formatted       01cab2974794  yesod-core-1.7.0.0/test/YesodCoreTest/CleanPath.hs
+formatted       36a004c6a4e3  yesod-core-1.7.0.0/test/YesodCoreTest/Content.hs
+formatted       25b4b6405959  yesod-core-1.7.0.0/test/YesodCoreTest/Csrf.hs
+formatted       b5d6ec2cfe62  yesod-core-1.7.0.0/test/YesodCoreTest/ErrorHandling.hs
+formatted       d369eb73b47a  yesod-core-1.7.0.0/test/YesodCoreTest/ErrorHandling/CustomApp.hs
+formatted       59bcbb168336  yesod-core-1.7.0.0/test/YesodCoreTest/Exceptions.hs
+formatted       82e178e31f61  yesod-core-1.7.0.0/test/YesodCoreTest/FallthroughDispatch/Resources.hs
+formatted       e4f8f0ea3e72  yesod-core-1.7.0.0/test/YesodCoreTest/FallthroughDispatch/Runtime.hs
+formatted       4d5c1d9a3551  yesod-core-1.7.0.0/test/YesodCoreTest/FallthroughMatrix/FirstFoo.hs
+formatted       bd497866625d  yesod-core-1.7.0.0/test/YesodCoreTest/FallthroughMatrix/Resources.hs
+formatted       8c70739a50e7  yesod-core-1.7.0.0/test/YesodCoreTest/FallthroughMatrix/Runtime.hs
+formatted       69eb694028b1  yesod-core-1.7.0.0/test/YesodCoreTest/Header.hs
+formatted       58f029383018  yesod-core-1.7.0.0/test/YesodCoreTest/InternalRequest.hs
+formatted       f7afe29ae117  yesod-core-1.7.0.0/test/YesodCoreTest/JsAttributes.hs
+formatted       84646813873d  yesod-core-1.7.0.0/test/YesodCoreTest/JsLoader.hs
+formatted       f8cdd188f370  yesod-core-1.7.0.0/test/YesodCoreTest/JsLoaderSites/Bottom.hs
+formatted       bda9b1f5f2d2  yesod-core-1.7.0.0/test/YesodCoreTest/Json.hs
+formatted       23181a127cee  yesod-core-1.7.0.0/test/YesodCoreTest/Links.hs
+formatted       ab54e89c96fb  yesod-core-1.7.0.0/test/YesodCoreTest/LiteApp.hs
+formatted       418e263ba672  yesod-core-1.7.0.0/test/YesodCoreTest/Media.hs
+formatted       0078c3a7e79d  yesod-core-1.7.0.0/test/YesodCoreTest/MediaData.hs
+formatted       46b0e2d1153d  yesod-core-1.7.0.0/test/YesodCoreTest/Meta.hs
+formatted       d8beeb52123f  yesod-core-1.7.0.0/test/YesodCoreTest/MultiPieceNestedRuntime.hs
+formatted       fb29902bb9c5  yesod-core-1.7.0.0/test/YesodCoreTest/NestedDispatch/InnerR.hs
+formatted       4c9ceb4fb663  yesod-core-1.7.0.0/test/YesodCoreTest/NestedDispatch/NestR.hs
+formatted       4aed48f429ab  yesod-core-1.7.0.0/test/YesodCoreTest/NestedDispatch/Parent0R.hs
+formatted       0f8ca6cd8fe6  yesod-core-1.7.0.0/test/YesodCoreTest/NestedDispatch/Parent0R/Child0R.hs
+formatted       762195ad3d8f  yesod-core-1.7.0.0/test/YesodCoreTest/NestedDispatch/ParentR.hs
+formatted       7587ed701299  yesod-core-1.7.0.0/test/YesodCoreTest/NestedDispatch/Resources.hs
+formatted       a5347308f9b0  yesod-core-1.7.0.0/test/YesodCoreTest/NestedDispatch/Runtime.hs
+formatted       2c72e04ebbc2  yesod-core-1.7.0.0/test/YesodCoreTest/NoOverloadedStrings.hs
+formatted       320b6668f0c5  yesod-core-1.7.0.0/test/YesodCoreTest/NoOverloadedStringsSub.hs
+formatted       ab80a9a09e84  yesod-core-1.7.0.0/test/YesodCoreTest/ParamDefaultSplit/Data.hs
+formatted       a8472a7588f7  yesod-core-1.7.0.0/test/YesodCoreTest/ParamDefaultSplit/Runtime.hs
+formatted       3b1830a98315  yesod-core-1.7.0.0/test/YesodCoreTest/ParamFallthroughRuntime.hs
+formatted       9191317f2178  yesod-core-1.7.0.0/test/YesodCoreTest/ParamFocusSplit/Resources.hs
+formatted       0d171db106f1  yesod-core-1.7.0.0/test/YesodCoreTest/ParamFocusSplit/Runtime.hs
+formatted       6f7510d0b57c  yesod-core-1.7.0.0/test/YesodCoreTest/ParamFocusSplit/SubR.hs
+formatted       46dbd15fa23d  yesod-core-1.7.0.0/test/YesodCoreTest/ParamNestedNoFallthroughRuntime.hs
+formatted       32c5372b9148  yesod-core-1.7.0.0/test/YesodCoreTest/ParamNoExplicitArgs.hs
+formatted       30470908614f  yesod-core-1.7.0.0/test/YesodCoreTest/ParamNoFallthroughRuntime.hs
+formatted       cf6ee78ba4ee  yesod-core-1.7.0.0/test/YesodCoreTest/ParamSubsite/Data.hs
+formatted       e0dfb958d109  yesod-core-1.7.0.0/test/YesodCoreTest/ParamSubsite/InstanceRuntime.hs
+formatted       3597a9c3f0b7  yesod-core-1.7.0.0/test/YesodCoreTest/ParamSubsite/SplitNested.hs
+formatted       f8d1220c3bf2  yesod-core-1.7.0.0/test/YesodCoreTest/ParamSubsite/SplitRuntime.hs
+formatted       1981b86c26db  yesod-core-1.7.0.0/test/YesodCoreTest/ParamTopLevelRuntime.hs
+formatted       f991cd7adeb7  yesod-core-1.7.0.0/test/YesodCoreTest/ParameterizedSite.hs
+formatted       0476a7be2abf  yesod-core-1.7.0.0/test/YesodCoreTest/ParameterizedSite/Compat.hs
+formatted       b2b143cf4a47  yesod-core-1.7.0.0/test/YesodCoreTest/ParameterizedSite/PolyAny.hs
+formatted       eb56902b1432  yesod-core-1.7.0.0/test/YesodCoreTest/ParameterizedSite/PolyShow.hs
+formatted       acaebbfebc7a  yesod-core-1.7.0.0/test/YesodCoreTest/ParameterizedSite/SubRoute.hs
+formatted       48e797fc7ef7  yesod-core-1.7.0.0/test/YesodCoreTest/ParameterizedSubData.hs
+formatted       18a74bf9331c  yesod-core-1.7.0.0/test/YesodCoreTest/ParameterizedSubDispatch.hs
+formatted       eb2ad79d2f60  yesod-core-1.7.0.0/test/YesodCoreTest/ParameterizedSubDispatch/Data.hs
+formatted       c0c9e30ebea8  yesod-core-1.7.0.0/test/YesodCoreTest/ParameterizedSubDispatchRuntime.hs
+formatted       09c5b840c977  yesod-core-1.7.0.0/test/YesodCoreTest/ParameterizedSubDispatchRuntime/Data.hs
+formatted       4555e2245690  yesod-core-1.7.0.0/test/YesodCoreTest/RawResponse.hs
+formatted       03a668e5cea8  yesod-core-1.7.0.0/test/YesodCoreTest/Redirect.hs
+formatted       ddda63d607db  yesod-core-1.7.0.0/test/YesodCoreTest/RenderRouteSpec.hs
+formatted       139e78486aea  yesod-core-1.7.0.0/test/YesodCoreTest/RenderRouteSpec/TH.hs
+formatted       1db9d98dbf8c  yesod-core-1.7.0.0/test/YesodCoreTest/Reps.hs
+formatted       e18610f848a2  yesod-core-1.7.0.0/test/YesodCoreTest/RequestBodySize.hs
+formatted       bf72ad1f5d18  yesod-core-1.7.0.0/test/YesodCoreTest/RuntimeHarness.hs
+formatted       e78bf62c9259  yesod-core-1.7.0.0/test/YesodCoreTest/SplitSubsite/Data.hs
+formatted       df70dd2651a7  yesod-core-1.7.0.0/test/YesodCoreTest/SplitSubsite/NestedR.hs
+formatted       a55ad04cebf6  yesod-core-1.7.0.0/test/YesodCoreTest/SplitSubsite/Runtime.hs
+formatted       a05df238a9e5  yesod-core-1.7.0.0/test/YesodCoreTest/Ssl.hs
+formatted       203d5f3df4f0  yesod-core-1.7.0.0/test/YesodCoreTest/Streaming.hs
+formatted       4a163efbc574  yesod-core-1.7.0.0/test/YesodCoreTest/StubLaxSameSite.hs
+formatted       5831f923349c  yesod-core-1.7.0.0/test/YesodCoreTest/StubSslOnly.hs
+formatted       6510112ce4b4  yesod-core-1.7.0.0/test/YesodCoreTest/StubStrictSameSite.hs
+formatted       9cb2274c1880  yesod-core-1.7.0.0/test/YesodCoreTest/StubUnsecured.hs
+formatted       7b7f0025954e  yesod-core-1.7.0.0/test/YesodCoreTest/SubSub.hs
+formatted       b9e29405eb1b  yesod-core-1.7.0.0/test/YesodCoreTest/SubSubData.hs
+formatted       dbed829ecef5  yesod-core-1.7.0.0/test/YesodCoreTest/SubsiteFallthrough/Data.hs
+formatted       d10fd62ff3f7  yesod-core-1.7.0.0/test/YesodCoreTest/SubsiteFallthrough/Nested.hs
 formatted       d5e98e912280  yesod-core-1.7.0.0/test/YesodCoreTest/SubsiteFallthrough/Runtime.hs
 formatted       fffa6b1eb3e9  yesod-core-1.7.0.0/test/YesodCoreTest/SubsiteOptsFallthrough/Data.hs
 formatted       a30c02d77457  yesod-core-1.7.0.0/test/YesodCoreTest/SubsiteOptsFallthrough/Runtime.hs
diff --git a/corpora/hackage/hackage.report b/corpora/hackage/hackage.report
--- a/corpora/hackage/hackage.report
+++ b/corpora/hackage/hackage.report
@@ -1,349 +1,6 @@
-Why every example of this corpus that is not `formatted` is not.
-
-Generated beside the manifest, and compared against nothing: this
-file is the work list, and it is free to say as much as it likes.
-
-5202 examples, 5137 formatted.
-
-==========================================================================
-broken (8)
-==========================================================================
-
-Agda-2.8.0/src/full/Agda/TypeChecking/Conversion.hs
-    a configuration of the output does not parse: 2240:17: parse error (possibly incorrect indentation or mismatched brackets)
-      2236                blocker = getBlocker s1b
-      2237            -- Jesper, 2019-12-27: SizeUniv is disabled at the moment.
-      2238            if
-      2239              {- sizedTypesEnabled || -} | propEnabled || cubicalEnabled ->
-    > 2240                  case funSort' s1 (Type l2) of
-      2241                    -- If the work we did makes the @funSort@ compute,
-      2242                    -- continue working.
-      2243                    Right s -> equalSort (Type l) s
-      2244                    -- Otherwise: postpone
-    
-    --- input
-    +++ output
-    @@ -1,137 +1,131 @@
-     {-# LANGUAGE CPP #-}
-     {-# LANGUAGE NondecreasingIndentation #-}
-    -
-     #if __GLASGOW_HASKELL__ >= 810
-     {-# OPTIONS_GHC -fmax-pmcheck-models=390 #-} -- Andreas, 2023-05-12, limit determined by binary search
-     #endif
-     
-     module Agda.TypeChecking.Conversion where
-     
-    -import Control.Arrow (second)
-    -import Control.Monad.Except ( MonadError(..) )
-    -
-    -import Data.Function (on)
-    -import Data.Semigroup ((<>))
-    -import Data.IntMap (IntMap)
-    -
-    -import qualified Data.List   as List
-    -import qualified Data.IntMap as IntMap
-    -import qualified Data.IntSet as IntSet
-    -import qualified Data.Set    as Set
-    -
-    +import Agda.Interaction.Options
-     import Agda.Syntax.Common
-    +import Agda.Syntax.Common.Pretty (prettyShow)
-     import Agda.Syntax.Internal
-     import Agda.Syntax.Internal.MetaVars
-     import Agda.Syntax.Translation.InternalToAbstract (reify)
-    -
-    -import Agda.TypeChecking.Monad
-    -import Agda.TypeChecking.MetaVars
-    -import Agda.TypeChecking.MetaVars.Occurs (killArgs,PruneResult(..),rigidVarsNotContainedIn)
-    -import Agda.TypeChecking.Names
-    -import Agda.TypeChecking.Reduce
-    -import Agda.TypeChecking.Substitute
-    -import qualified Agda.TypeChecking.SyntacticEquality as SynEq
-    -import Agda.TypeChecking.Telescope
-     import Agda.TypeChecking.Constraints
-     import Agda.TypeChecking.Conversion.Pure (pureCompareAs, runPureConversion)
-    +import Agda.TypeChecking.Da
-
-ansi-terminal-1.1.5/win/System/Console/ANSI/Windows/Foreign.hs
-    comments, in one configuration: `{-\ntypedef struct _KEY_EVENT_RECORD {\n	BOOL bKeyDown;\n	WORD wRepeatCount;\n	WORD wVirtualKeyCode;\n	WORD wVirtualScanCode;\n	union {\n		WCHAR UnicodeChar;\n		CHAR AsciiChar;\n	} uChar;\n	DWORD dwControlKeyState;\n}\n\n/* gcc's alignment is not what win32 expects */\n PACKED\n\nKEY_EVENT_RECORD;\n-}` became `{-\ntypedef struct _KEY_EVENT_RECORD {\n	BOOL bKeyDown;\n	WORD wRepeatCount;\n	WORD wVirtualKeyCode;\n	WORD wVirtualScanCode;\n	union {\n		WCHAR UnicodeChar;\n		CHAR AsciiChar;\n	} uChar;\n	DWORD dwControlKeyState;\n}\n\n\n/* gcc's alignment is not what win32 expects */\n PACKED\n\n\n\n\n\n\n\nKEY_EVENT_RECORD;\n-}`
-    --- input
-    +++ output
-    @@ -1,51 +1,62 @@
-     {-# LANGUAGE DeriveDataTypeable #-}
-    -{-# LANGUAGE RankNTypes         #-}
-    -{-# LANGUAGE Trustworthy        #-}
-    +{-# LANGUAGE RankNTypes #-}
-    +{-# LANGUAGE Trustworthy #-}
-     
-     module System.Console.ANSI.Windows.Foreign
-    -  (
-    -    INPUT_RECORD (..)
-    -  , INPUT_RECORD_EVENT (..)
-    -  , KEY_EVENT_RECORD (..)
-    -  , getNumberOfConsoleInputEvents
-    -  , readConsoleInput
-    -  , cWcharsToChars
-    -  , unicodeAsciiChar
-    -  , eNABLE_VIRTUAL_TERMINAL_PROCESSING
-    -  , iNVALID_HANDLE_VALUE
-    -  , nullHANDLE
-    -  , getConsoleMode
-    -  , setConsoleMode
-    -  ) where
-    +  ( INPUT_RECORD (..),
-    +    INPUT_RECORD_EVENT (..),
-    +    KEY_EVENT_RECORD (..),
-    +    getNumberOfConsoleInputEvents,
-    +    readConsoleInput,
-    +    cWcharsToChars,
-    +    unicodeAsciiChar,
-    +    eNABLE_VIRTUAL_TERMINAL_PROCESSING,
-    +    iNVALID_HANDLE_VALUE,
-    +    nullHANDLE,
-    +    getConsoleMode,
-    +    setConsoleMode,
-    +  )
-    +where
-     
-    -import Control.Exception ( Exception )
-    -import Data.Char ( chr )
-    -import Data.Typeable ( Typeable )
-    -import Data.Word ( Word32 )
-    -import Foreign.C.Types ( CWchar (..) )
-    -import Foreign.Marshal.Alloc ( alloca )
-    -import Foreign.Marshal.Array ( allocaArray, peekArray, pokeArray )
-    -import Foreign.Ptr ( Ptr, castPtr, plusPtr, nullPtr )
-    -import Foreign.Storable ( Storable (..) )
-    +import Control.Exception (Exception)
-    +import Data.Char (chr)
-    +
-
-dlist-1.0/Data/DList.hs
-    a configuration of the input does not parse: 54:13: parse error on input `Nil'
-    --- input
-    +++ output
-    @@ -1,6 +1,5 @@
-     {- ORMOLU_DISABLE -}
-     {-# LANGUAGE CPP #-}
-    -
-     -- CPP: GHC >= 7.8 && <= 8 for 'pattern' required in the export list
-     #if __GLASGOW_HASKELL__ >= 708 && __GLASGOW_HASKELL__ < 800
-     {-# LANGUAGE PatternSynonyms #-}
-    @@ -41,23 +40,33 @@
-     
-     module Data.DList
-       ( -- * Difference List Type
-    -
-    --- CPP: GHC >= 8 for pattern synonyms allowed in the constructor
-     #if __GLASGOW_HASKELL__ >= 800
-    +
-    +    -- CPP: GHC >= 8 for pattern synonyms allowed in the constructor
-         DList (Nil, Cons),
-    +
-    +    -- * Conversion
-     #else
-    +
-    +    -- CPP: GHC >= 8 for pattern synonyms allowed in the constructor
-         DList,
-     
-    --- CPP: GHC >= 7.8 && <= 8 for 'pattern' required in the export list
-     #if __GLASGOW_HASKELL__ >= 708
-    +
-    +    -- CPP: GHC >= 7.8 && <= 8 for 'pattern' required in the export list
-    +
-         -- ** Bundled Patterns
-         pattern Nil,
-         pattern Cons,
-    -#endif
-     
-    -#endif
-    +    -- * Conversion
-    +#else
-     
-    +    -- CPP: GHC >= 7.8 && <= 8 for 'pattern' required in the export list
-    +
-         -- * Conversion
-    +#endif
-    +#endif
-         fromList,
-         toList,
-         apply,
-
-hashable-1.5.1.0/tests/Regress.hs
-    formatting changed how many configurations there are, from 6 to 8
-    --- input
-    +++ output
-    @@ -4,126 +4,190 @@
-     
-     module Regress (regressions) where
-     
-    -import Test.Tasty (TestTree, testGroup)
-     import Control.Monad (when)
-    -import Test.Tasty.HUnit (testCase, Assertion, assertFailure, (@?=))
-    -import Test.Tasty.QuickCheck (testProperty)
-    -import GHC.Generics (Generic)
-    -import Data.List (nub)
-    -import Data.Fixed (Pico)
-    -import Data.Text (Text)
-     import Data.ByteString (ByteString)
-    -
-    -import qualified Data.Text.Lazy as TL
-     import qualified Data.ByteString.Char8 as BS8
-     import qualified Data.ByteString.Lazy as BSL
-     import qualified Data.ByteString.Lazy.Char8 as BSL8
-    -
-    +import Data.Fixed (Pico)
-    +import Data.List (nub)
-    +import Data.Text (Text)
-    +import qualified Data.Text.Lazy as TL
-    +import GHC.Generics (Generic)
-    +import Test.Tasty (TestTree, testGroup)
-    +import Test.Tasty.HUnit (Assertion, assertFailure, testCase, (@?=))
-    +import Test.Tasty.QuickCheck (testProperty)
-     #ifdef HAVE_MMAP
-     import qualified Regress.Mmap as Mmap
-     #endif
-    -
-     import Data.Hashable
-     
-     #include "MachDeps.h"
-     
-    -assertInequal :: Eq a => String -> a -> a -> Assertion
-    +assertInequal :: (Eq a) => String -> a -> a -> Assertion
-     assertInequal msg x y
-    -    | x == y    = assertFailure msg
-    -    | otherwise = return ()
-    +  | x == y = assertFailure msg
-    +  | otherwise = return ()
-     
-     regressions :: [TestTree]
-    -regressions = [] ++
-    +regressions =
-    +  []
-     #ifdef HAVE_MMAP
-    -    Mmap.regressions ++
-    -    [ testCase "Fixed" $ do
-    -        (hash (1 :: Pico) == hash (2 :: Pico)) @?= False
-    -    ] ++
-    -#endif
-    -    [ testGroup "Generic: sum of nullary constructors"
-    -        [ testCase "0" $ nullaryCase 0 S0
-    -        , testCase "1" $ nullaryCase 1 S1
-    -        , testCase "2" $ nullaryCase 2 S2
-    -        , testCase "3" $ nullaryCase 3 S3
-    -        , testCase "4" $ nullaryCase 4 S4
-    -        ]
-    … and 214 more lines
-
-hspec-core-2.11.17/src/Test/Hspec/Core/Compat.hs
-    formatting is non-idempotent
-    --- first pass
-    +++ second pass
-    @@ -78,17 +78,21 @@
-     #endif
-     import Control.Concurrent
-     import Data.Bool as Imports (bool)
-    +#ifndef __MHS__
-    +import GHC.IO.Exception
-    +  ( IOErrorType (..),
-    +    ioe_type,
-    +  )
-    +#endif
-     import System.Environment as Imports (lookupEnv)
-    -import Text.Read as Imports (readMaybe)
-    -import
-     #ifndef __MHS__
-    -  GHC.IO.Exception
-     #else
-    -  System.IO.Error
-    -#endif
-    +import System.IO.Error
-       ( IOErrorType (..),
-         ioe_type,
-       )
-    +#endif
-    +import Text.Read as Imports (readMaybe)
-     
-     isUnsupportedOperation :: IOError -> Bool
-     isUnsupportedOperation e = ioe_type e == UnsupportedOperation
-
-idris-1.3.4/src/Idris/AbsSyntax.hs
-    formatting is non-idempotent
-    --- first pass
-    +++ second pass
-    @@ -1517,9 +1517,8 @@
-         mkShadow (NS x s) = NS (mkShadow x) s
-     
-         en ::
-    -      Int -- \^ The quotation level - only transform terms that are used, not terms
-    -          -- that are merely mentioned.
-    -      ->
-    +      Int -> -- \^ The quotation level - only transform terms that are used, not terms
-    +      -- that are merely mentioned.
-           PTerm ->
-           PTerm
-         en 0 (PLam fc n nfc t s)
-
-leksah-0.16.2.2/src/IDE/Pane/PackageEditor.hs
-    the output cannot be formatted again: too many configurations to format
+Hackage modules that currently do not format cleanly.
 
-lens-5.3.6/src/Control/Exception/Lens.hs
-    comments, in one configuration: `{-\n$setup\n>>> :set -XNoOverloadedStrings\n>>> :set -XScopedTypeVariables\n>>> import Control.Lens\n>>> import Control.Applicative\n>>> :m + Control.Exception Control.Monad Data.List Prelude\n\n>>> :m + Control.Exception.Context\n\n-}` became `{-\n$setup\n>>> :set -XNoOverloadedStrings\n>>> :set -XScopedTypeVariables\n>>> import Control.Lens\n>>> import Control.Applicative\n>>> :m + Control.Exception Control.Monad Data.List Prelude\n\n\n>>> :m + Control.Exception.Context\n\n\n\n\n\n\n-}`
-    --- input
-    +++ output
-    @@ -1,12 +1,11 @@
-     {-# LANGUAGE CPP #-}
-    -{-# LANGUAGE Rank2Types #-}
-     {-# LANGUAGE FlexibleInstances #-}
-    -{-# LANGUAGE ScopedTypeVariables #-}
-     {-# LANGUAGE MultiParamTypeClasses #-}
-    -{-# LANGUAGE NoMonomorphismRestriction #-}
-     {-# LANGUAGE PatternSynonyms #-}
-    +{-# LANGUAGE Rank2Types #-}
-    +{-# LANGUAGE ScopedTypeVariables #-}
-     {-# LANGUAGE ViewPatterns #-}
-    -
-    +{-# LANGUAGE NoMonomorphismRestriction #-}
-     #ifdef TRUSTWORTHY
-     {-# LANGUAGE Trustworthy #-}
-     #endif
-    @@ -14,6 +13,7 @@
-     #include "lens-common.h"
-     
-     -----------------------------------------------------------------------------
-    +
-     -- |
-     -- Module      :  Control.Exception.Lens
-     -- Copyright   :  (C) 2012-16 Edward Kmett
-    @@ -31,139 +31,177 @@
-     -- The combinators in this module have been generalized to work with
-     -- 'MonadCatch' instead of just 'Prelude.IO'. This enables them to be used
-     -- more easily in 'Monad' transformer stacks.
-    +
-     ----------------------------------------------------------------------------
-     module Control.Exception.Lens
-    -  (
-    -  -- * Handling
-    -    catching, catching_
-    -  , handling, handling_
-    -  -- * Trying
-    -  , trying, trying_
-    -  -- * Throwing
-    -  , throwing
-    -  , throwing_
-    -  , throwingM
-    -  , throwingTo
-    -  -- * Mapping
-    -  , mappedException, mappedException'
-    -  -- * Exceptions
-    -  , exception
-    -  , pattern Exception
-    -  -- * Exception Handlers
-    -  , Handleable(..)
-    -  -- ** IOExceptions
-    -  , AsIOException(..)
-    -  , pattern IOException_
-    -  -- ** Arithmetic Exception
+5240 examples, 5188 formatted.
 
 ==========================================================================
 does-not-parse (1)
@@ -354,27 +11,69 @@
     Did you mean to add a space after the '!'?
 
 ==========================================================================
-partly-checked (25)
+partly-checked (41)
 ==========================================================================
 
+Agda-2.8.0/src/full/Agda/Main.hs
+    128 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
+
 QuickCheck-2.18.0.0/src/Test/QuickCheck.hs
     512 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
 
+QuickCheck-2.18.0.0/src/Test/QuickCheck/Arbitrary.hs
+    55296 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
+
 QuickCheck-2.18.0.0/src/Test/QuickCheck/Exception.hs
     192 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
 
+QuickCheck-2.18.0.0/src/Test/QuickCheck/Function.hs
+    4096 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
+
 async-2.2.6/Control/Concurrent/Async/Internal.hs
     1024 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
 
 cryptonite-0.30/Crypto/Number/Compat.hs
     180 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
 
+dlist-1.0/Data/DList/Internal.hs
+    512 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
+
+fsnotify-0.4.4.0/test/FSNotify/Test/Util.hs
+    384 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
+
+hashable-1.5.1.0/src/Data/Hashable/Class.hs
+    4608 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
+
 hspec-core-2.11.17/vendor/async-2.2.5/Control/Concurrent/Async.hs
     256 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
 
 intero-0.1.40/src/GhciInfo.hs
     72 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
 
+intero-0.1.40/src/Main.hs
+    1536 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
+
+lens-5.3.6/src/Control/Lens/Wrapped.hs
+    538968064 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
+
+lens-5.3.6/src/Language/Haskell/TH/Lens.hs
+    6291456 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
+
+microlens-0.5.0.0/src/Lens/Micro.hs
+    128 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
+
+microlens-0.5.0.0/src/Lens/Micro/Internal.hs
+    96 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
+
+optics-0.4.2.1/tests/Optics/Tests/Utils.hs
+    2048 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
+
+semigroupoids-6.0.2/src/Data/Functor/Bind/Class.hs
+    128 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
+
+singletons-3.0.4/src/Data/Singletons.hs
+    128 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
+
 stm-2.5.3.1/Control/Monad/STM.hs
     72 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
 
@@ -423,9 +122,15 @@
 transformers-0.6.3.0/Control/Monad/Trans/Writer/Strict.hs
     1024 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
 
+transformers-0.6.3.0/Data/Functor/Constant.hs
+    12288 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
+
 transformers-0.6.3.0/Data/Functor/Reverse.hs
     6144 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
 
+transformers-0.6.3.0/legacy/pre709/Data/Functor/Identity.hs
+    256 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
+
 transformers-0.6.3.0/legacy/pre711/Data/Functor/Product.hs
     128 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
 
@@ -433,75 +138,21 @@
     1024 configurations is more than the 64 this checks, so only the ones varying a single conditional were compared
 
 ==========================================================================
-declined (31)
+declined (10)
 ==========================================================================
 
-Agda-2.8.0/src/full/Agda/Main.hs
-    too many configurations to format
-
-QuickCheck-2.18.0.0/src/Test/QuickCheck/Arbitrary.hs
-    too many configurations to format
-
-QuickCheck-2.18.0.0/src/Test/QuickCheck/Function.hs
-    too many configurations to format
-
-QuickCheck-2.18.0.0/src/Test/QuickCheck/Modifiers.hs
-    too many configurations to format
-
-QuickCheck-2.18.0.0/src/Test/QuickCheck/Monadic.hs
-    too many configurations to format
-
-QuickCheck-2.18.0.0/src/Test/QuickCheck/Property.hs
-    QuickCheck-2.18.0.0/src/Test/QuickCheck/Property.hs:315:13-14: parse error on input `::', in the configuration taking #ifndef NO_TYPEABLE, then #ifndef NO_SAFE_HASKELL, then #ifndef NO_TIMEOUT, then #if defined(MIN_VERSION_base), then #ifndef NO_DEEPSEQ, then #ifdef NO_TIMEOUT
-
 cryptonite-0.30/Crypto/Random/Entropy/Windows.hs
     cryptonite-0.30/Crypto/Random/Entropy/Windows.hs:64:16-28: parse error on input `WINDOWS_CCONV', in the configuration taking #if defined(ARCH_X86)
 
-dlist-1.0/Data/DList/Internal.hs
-    too many configurations to format
-
-hashable-1.5.1.0/src/Data/Hashable/Class.hs
-    too many configurations to format
-
 hlint-3.10/data/HLint_TypeCheck.hs
     a pragma that moves positions, which we do not rewrite
 
-hlint-3.10/src/Config/Yaml.hs
-    too many configurations to format
-
-idris-1.3.4/Setup.hs
-    too many configurations to format
-
-idris-1.3.4/src/Util/DynamicLinker.hs
-    idris-1.3.4/src/Util/DynamicLinker.hs:43:63: parse error on input `\', in the configuration taking #ifdef IDRIS_FFI, then #ifdef mingw32_HOST_OS, then #if defined(linux_HOST_OS) || defined(freebsd_HOST_OS) \, then #ifndef mingw32_HOST_OS, then #ifdef linux_HOST_OS
-
 intero-0.1.40/src/InteractiveUI.hs
     too many configurations to format
 
-intero-0.1.40/src/Main.hs
-    too many configurations to format
-
-lens-5.3.6/src/Control/Lens/Wrapped.hs
-    too many configurations to format
-
-lens-5.3.6/src/Language/Haskell/TH/Lens.hs
-    too many configurations to format
-
 lens-5.3.6/tests/properties.hs
     lens-5.3.6/tests/properties.hs:118:26-28: parse error on input `KVS'
 
-microlens-0.5.0.0/src/Lens/Micro.hs
-    too many configurations to format
-
-microlens-0.5.0.0/src/Lens/Micro/Internal.hs
-    too many configurations to format
-
-optics-0.4.2.1/tests/Optics/Tests/Utils.hs
-    optics-0.4.2.1/tests/Optics/Tests/Utils.hs:123:62: parse error on input `\', in the configuration taking #if __GLASGOW_HASKELL__ >= 802 && __GLASGOW_HASKELL__ <= 806, then #if __GLASGOW_HASKELL__ >= 806 && __GLASGOW_HASKELL__ <= 810, then #if __GLASGOW_HASKELL__ == 802, then #if __GLASGOW_HASKELL__ == 810, then #if __GLASGOW_HASKELL__ >= 806, then #if __GLASGOW_HASKELL__ <= 804, then #if __GLASGOW_HASKELL__ == 802 \, then #if __GLASGOW_HASKELL__ >= 900, then #if __GLASGOW_HASKELL__ >= 902 && __GLASGOW_HASKELL__ <= 904, then #if __GLASGOW_HASKELL__ >= 806 && __GLASGOW_HASKELL__ <= 810 \
-
-semigroupoids-6.0.2/src/Data/Functor/Bind/Class.hs
-    too many configurations to format
-
 shake-0.19.9/src/Development/Shake/Internal/FileInfo.hs
     shake-0.19.9/src/Development/Shake/Internal/FileInfo.hs:149:16-23: parse error on input `CALLCONV', in the configuration taking #ifndef MIN_VERSION_unix, then #ifndef MIN_VERSION_time, then #elif defined(mingw32_HOST_OS), then #ifdef x86_64_HOST_ARCH
 
@@ -516,15 +167,6 @@
 
 shake-0.19.9/src/General/FileLock.hs
     shake-0.19.9/src/General/FileLock.hs:28:16-23: parse error on input `CALLCONV', in the configuration taking #ifdef mingw32_HOST_OS, then #ifdef x86_64_HOST_ARCH
-
-time-1.16.0.1/lib/Data/Time/Clock/Internal/CTimeval.hs
-    time-1.16.0.1/lib/Data/Time/Clock/Internal/CTimeval.hs:35:16-19: parse error on input `capi', in the configuration taking no branch of #if !defined(javascript_HOST_ARCH), then #ifndef mingw32_HOST_OS, then no branch of #if defined(javascript_HOST_ARCH) || defined(__MHS__)
-
-transformers-0.6.3.0/Data/Functor/Constant.hs
-    too many configurations to format
-
-transformers-0.6.3.0/legacy/pre709/Data/Functor/Identity.hs
-    too many configurations to format
 
 unordered-containers-0.2.21/Data/HashMap/Internal/Array.hs
     unordered-containers-0.2.21/Data/HashMap/Internal/Array.hs:(266,9)-(267,31): Unexpected case expression in function application:
diff --git a/corpora/vendored/declaration/class/comment-above-a-member-out.hs b/corpora/vendored/declaration/class/comment-above-a-member-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/class/comment-above-a-member-out.hs
@@ -0,0 +1,24 @@
+module Terminal.Grid where
+
+instance Applicative Grid where
+  pure = Grid . repeat
+  -- applied cell by cell
+  Grid fs <*> Grid xs = Grid (zipWith ($) fs xs)
+
+instance Monad Parser where
+  return = pure
+  {- the first version:
+  p >>= f = Parser (\s -> undefined)
+  -}
+  p >>= f = Parser (\s -> runParser p s >>= \(a, s') -> runParser (f a) s')
+
+  -- set apart as written
+  (>>) = (*>)
+
+class Cell a where
+  blank :: a
+  -- the one shown for a cell nothing was put in
+  placeholder :: a
+
+  -- | How wide it is.
+  width :: a -> Int
diff --git a/corpora/vendored/declaration/class/comment-above-a-member.hs b/corpora/vendored/declaration/class/comment-above-a-member.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/class/comment-above-a-member.hs
@@ -0,0 +1,23 @@
+module Terminal.Grid where
+
+instance Applicative Grid where
+  pure = Grid . repeat
+  -- applied cell by cell
+  Grid fs <*> Grid xs = Grid (zipWith ($) fs xs)
+
+instance Monad Parser where
+  return = pure
+  {- the first version:
+  p >>= f = Parser (\s -> undefined)
+  -}
+  p >>= f = Parser (\s -> runParser p s >>= \(a, s') -> runParser (f a) s')
+
+  -- set apart as written
+  (>>) = (*>)
+
+class Cell a where
+  blank :: a
+  -- the one shown for a cell nothing was put in
+  placeholder :: a
+  -- | How wide it is.
+  width :: a -> Int
diff --git a/corpora/vendored/declaration/class/comment-under-the-last-member-out.hs b/corpora/vendored/declaration/class/comment-under-the-last-member-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/class/comment-under-the-last-member-out.hs
@@ -0,0 +1,24 @@
+module Terminal.Time where
+
+class Timed a where
+  timeType ::
+    Maybe Word ->
+    Bool ->
+    a
+  -- TODO interval type
+
+class Zoned a where
+  zonedType ::
+    Maybe Word ->
+    -- | With time zone
+    Bool ->
+    a
+  -- TODO interval type
+
+instance Timed Int where
+  timeType precision zoned =
+    if zoned then 1 else 0
+  -- TODO use the precision
+
+clock :: Int
+clock = 1
diff --git a/corpora/vendored/declaration/class/comment-under-the-last-member.hs b/corpora/vendored/declaration/class/comment-under-the-last-member.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/class/comment-under-the-last-member.hs
@@ -0,0 +1,20 @@
+module Terminal.Time where
+
+class Timed a where
+  timeType ::
+    Maybe Word ->
+    Bool ->
+    a
+  -- TODO interval type
+
+class Zoned a where
+  zonedType :: Maybe Word -> Bool {-^ With time zone -} -> a
+  -- TODO interval type
+
+instance Timed Int where
+  timeType precision zoned =
+    if zoned then 1 else 0
+  -- TODO use the precision
+
+clock :: Int
+clock = 1
diff --git a/corpora/vendored/declaration/data/comment-between-a-haddock-and-its-constructor-out.hs b/corpora/vendored/declaration/data/comment-between-a-haddock-and-its-constructor-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/data/comment-between-a-haddock-and-its-constructor-out.hs
@@ -0,0 +1,21 @@
+module Shape.Kind where
+
+data Shape
+  = Circle Double
+  | -- | A rectangle, given its width and height.
+
+    -- Squares are rectangles too, for now.
+    Rectangle Double Double
+  | -- | A polygon, given its corners,
+    -- in clockwise order.
+
+    -- Corners may repeat.
+    Polygon [(Double, Double)]
+
+data Style = Style
+  { strokeWidth :: Double,
+    -- | The colour of the fill.
+
+    -- Transparent when absent.
+    fill :: Maybe String
+  }
diff --git a/corpora/vendored/declaration/data/comment-between-a-haddock-and-its-constructor.hs b/corpora/vendored/declaration/data/comment-between-a-haddock-and-its-constructor.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/data/comment-between-a-haddock-and-its-constructor.hs
@@ -0,0 +1,21 @@
+module Shape.Kind where
+
+data Shape
+  = Circle Double
+  -- | A rectangle, given its width and height.
+
+  -- Squares are rectangles too, for now.
+  | Rectangle Double Double
+  -- | A polygon, given its corners,
+  -- in clockwise order.
+
+  -- Corners may repeat.
+  | Polygon [(Double, Double)]
+
+data Style = Style
+  { strokeWidth :: Double
+  -- | The colour of the fill.
+
+  -- Transparent when absent.
+  , fill :: Maybe String
+  }
diff --git a/corpora/vendored/declaration/data/comment-between-constructors-out.hs b/corpora/vendored/declaration/data/comment-between-constructors-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/data/comment-between-constructors-out.hs
@@ -0,0 +1,28 @@
+module Kiln.Glaze where
+
+-- A comment between constructors keeps the empty lines the author left
+-- around it, but for one above it when it joins the line of a bar.
+data Finish
+  = Matte
+  | -- Dry to the touch.
+
+    Satin
+  | -- Somewhere between the two.
+
+    Gloss
+
+-- A Haddock belongs to its constructor, and no empty line goes around it.
+data Kiln
+  = Electric
+  | -- | Fired with gas, for reduction.
+    Gas
+  | Wood
+
+-- The same between the constructors of a GADT.
+data Firing a where
+  Bisque :: Firing ()
+  -- The first firing, unglazed.
+
+  Glaze :: Firing Finish
+  -- | Fired once more, low.
+  Luster :: Firing Finish
diff --git a/corpora/vendored/declaration/data/comment-between-constructors.hs b/corpora/vendored/declaration/data/comment-between-constructors.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/data/comment-between-constructors.hs
@@ -0,0 +1,33 @@
+module Kiln.Glaze where
+
+-- A comment between constructors keeps the empty lines the author left
+-- around it, but for one above it when it joins the line of a bar.
+data Finish
+  = Matte
+  -- Dry to the touch.
+
+  | Satin
+
+  -- Somewhere between the two.
+
+  | Gloss
+
+-- A Haddock belongs to its constructor, and no empty line goes around it.
+data Kiln
+  = Electric
+
+  -- | Fired with gas, for reduction.
+
+  | Gas
+  | Wood
+
+-- The same between the constructors of a GADT.
+data Firing a where
+  Bisque :: Firing ()
+  -- The first firing, unglazed.
+
+  Glaze :: Firing Finish
+
+  -- | Fired once more, low.
+
+  Luster :: Firing Finish
diff --git a/corpora/vendored/declaration/data/comment-in-empty-deriving-brackets-out.hs b/corpora/vendored/declaration/data/comment-in-empty-deriving-brackets-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/data/comment-in-empty-deriving-brackets-out.hs
@@ -0,0 +1,15 @@
+data Node = Leaf | Branch
+  deriving ({-! CNode !-})
+
+-- * Section
+
+data Edge = Edge
+  deriving ({- nothing yet -})
+
+data Face = Face
+  deriving
+    ( -- room for classes later
+    )
+
+size :: Int
+size = 1
diff --git a/corpora/vendored/declaration/data/comment-in-empty-deriving-brackets.hs b/corpora/vendored/declaration/data/comment-in-empty-deriving-brackets.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/data/comment-in-empty-deriving-brackets.hs
@@ -0,0 +1,13 @@
+data Node = Leaf | Branch
+  deriving ({-! CNode !-})
+
+-- * Section
+
+data Edge = Edge
+  deriving ({- nothing yet -})
+
+data Face = Face deriving ( -- room for classes later
+  )
+
+size :: Int
+size = 1
diff --git a/corpora/vendored/declaration/data/comment-in-record-braces-out.hs b/corpora/vendored/declaration/data/comment-in-record-braces-out.hs
--- a/corpora/vendored/declaration/data/comment-in-record-braces-out.hs
+++ b/corpora/vendored/declaration/data/comment-in-record-braces-out.hs
@@ -1,6 +1,5 @@
 data Empty = Empty
-  {
-    -- room for fields later
+  { -- room for fields later
   }
 
 data One = One
diff --git a/corpora/vendored/declaration/type/comment-between-a-haddock-and-its-argument-out.hs b/corpora/vendored/declaration/type/comment-between-a-haddock-and-its-argument-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/type/comment-between-a-haddock-and-its-argument-out.hs
@@ -0,0 +1,19 @@
+module Shape.Draw where
+
+draw ::
+  -- | How thick the lines are.
+  Double ->
+  -- | What to draw.
+
+  -- Shapes are drawn in the order given.
+  [Shape] ->
+  IO ()
+draw _ _ = pure ()
+
+class Drawable a where
+  render ::
+    -- | The thing to render.
+
+    -- It is rendered at the origin.
+    a ->
+    String
diff --git a/corpora/vendored/declaration/type/comment-between-a-haddock-and-its-argument.hs b/corpora/vendored/declaration/type/comment-between-a-haddock-and-its-argument.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/type/comment-between-a-haddock-and-its-argument.hs
@@ -0,0 +1,19 @@
+module Shape.Draw where
+
+draw ::
+  -- | How thick the lines are.
+  Double ->
+  -- | What to draw.
+
+  -- Shapes are drawn in the order given.
+  [Shape] ->
+  IO ()
+draw _ _ = pure ()
+
+class Drawable a where
+  render ::
+    -- | The thing to render.
+
+    -- It is rendered at the origin.
+    a ->
+    String
diff --git a/corpora/vendored/declaration/type/comment-in-operator-chain-out.hs b/corpora/vendored/declaration/type/comment-in-operator-chain-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/type/comment-in-operator-chain-out.hs
@@ -0,0 +1,8 @@
+{-# LANGUAGE TypeOperators #-}
+
+-- An operator written at the end of a line goes to the start of the next,
+-- and a comment written after it stays with the operand it follows.
+type Shape =
+  Circle -- round
+    :+: Square -- angular
+    :+: Segment -- and flat
diff --git a/corpora/vendored/declaration/type/comment-in-operator-chain.hs b/corpora/vendored/declaration/type/comment-in-operator-chain.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/type/comment-in-operator-chain.hs
@@ -0,0 +1,7 @@
+{-# LANGUAGE TypeOperators #-}
+
+-- An operator written at the end of a line goes to the start of the next,
+-- and a comment written after it stays with the operand it follows.
+type Shape = Circle :+: -- round
+             Square :+: -- angular
+             Segment -- and flat
diff --git a/corpora/vendored/declaration/value/comment-after-a-guard-bar-out.hs b/corpora/vendored/declaration/value/comment-after-a-guard-bar-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/value/comment-after-a-guard-bar-out.hs
@@ -0,0 +1,8 @@
+module Tariff.Discount where
+
+discount :: Int -> Bool -> Int
+discount age student
+  | -- children travel free
+    age < 12 = 0
+  | {- students -} student = 50
+  | otherwise = 100
diff --git a/corpora/vendored/declaration/value/comment-after-a-guard-bar.hs b/corpora/vendored/declaration/value/comment-after-a-guard-bar.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/value/comment-after-a-guard-bar.hs
@@ -0,0 +1,8 @@
+module Tariff.Discount where
+
+discount :: Int -> Bool -> Int
+discount age student
+  | -- children travel free
+    age < 12 = 0
+  | {- students -} student = 50
+  | otherwise = 100
diff --git a/corpora/vendored/declaration/value/comment-carried-on-out.hs b/corpora/vendored/declaration/value/comment-carried-on-out.hs
--- a/corpora/vendored/declaration/value/comment-carried-on-out.hs
+++ b/corpora/vendored/declaration/value/comment-carried-on-out.hs
@@ -35,6 +35,17 @@
 codeAfterTheComment =
   g
     (a {- said once -} + b)
-  -- and this is about something else
+    -- and this is about something else
   where
     h = 1
+
+-- An empty line under the remark still separates what it trails from what
+-- comes next.
+gapUnderTheRemark = a ++ b
+  where
+    a =
+      [1]
+        ++ [2] -- said once
+        -- and never twice
+
+    b = []
diff --git a/corpora/vendored/declaration/value/comment-carried-on.hs b/corpora/vendored/declaration/value/comment-carried-on.hs
--- a/corpora/vendored/declaration/value/comment-carried-on.hs
+++ b/corpora/vendored/declaration/value/comment-carried-on.hs
@@ -36,3 +36,14 @@
       -- and this is about something else
   where
     h = 1
+
+-- An empty line under the remark still separates what it trails from what
+-- comes next.
+gapUnderTheRemark = a ++ b
+  where
+    a =
+      [1]
+        ++ [2] -- said once
+        -- and never twice
+
+    b = []
diff --git a/corpora/vendored/declaration/value/comment-in-operator-chain-out.hs b/corpora/vendored/declaration/value/comment-in-operator-chain-out.hs
--- a/corpora/vendored/declaration/value/comment-in-operator-chain-out.hs
+++ b/corpora/vendored/declaration/value/comment-in-operator-chain-out.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE PatternSynonyms #-}
+
 everyOperandAnnotated =
   base -- what we started from
     + delta -- what was added
@@ -18,3 +20,34 @@
   first
     `mappend` second
     `mappend` third -- and no further
+
+-- An operator written at the end of a line goes to the start of the next,
+-- and a comment written after it stays with the operand it follows.
+operatorsAtLineEnds =
+  base -- what we started from
+    + delta -- what was added
+    - refund -- and what came back
+
+-- The same, one level of precedence down.
+tighterOperatorAtLineEnd =
+  base
+    + rate -- per unit
+      * units
+
+-- The same, for a constructor in a pattern.
+headOf
+  ( x -- the one we want
+      :| _
+    ) = x
+
+-- The same, for a pattern synonym.
+pattern x -- the head
+  :< xs =
+  (x, xs)
+
+-- A comment written on a line of its own between such an operator and its
+-- operand comes before the operator.
+remarkUnderAnOperatorAtLineEnd =
+  base
+    -- what is added
+    ++ extra
diff --git a/corpora/vendored/declaration/value/comment-in-operator-chain.hs b/corpora/vendored/declaration/value/comment-in-operator-chain.hs
--- a/corpora/vendored/declaration/value/comment-in-operator-chain.hs
+++ b/corpora/vendored/declaration/value/comment-in-operator-chain.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE PatternSynonyms #-}
+
 everyOperandAnnotated =
   base -- what we started from
     + delta -- what was added
@@ -20,3 +22,27 @@
   first
     `mappend` second
     `mappend` third -- and no further
+
+-- An operator written at the end of a line goes to the start of the next,
+-- and a comment written after it stays with the operand it follows.
+operatorsAtLineEnds = base + -- what we started from
+  delta - -- what was added
+  refund -- and what came back
+
+-- The same, one level of precedence down.
+tighterOperatorAtLineEnd = base + rate * -- per unit
+  units
+
+-- The same, for a constructor in a pattern.
+headOf (x :| -- the one we want
+  _) = x
+
+-- The same, for a pattern synonym.
+pattern x :< -- the head
+  xs = (x, xs)
+
+-- A comment written on a line of its own between such an operator and its
+-- operand comes before the operator.
+remarkUnderAnOperatorAtLineEnd = base ++
+  -- what is added
+  extra
diff --git a/corpora/vendored/declaration/value/comment-under-the-last-guard-out.hs b/corpora/vendored/declaration/value/comment-under-the-last-guard-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/value/comment-under-the-last-guard-out.hs
@@ -0,0 +1,20 @@
+module Tariff.Zone where
+
+zoneOf :: Double -> Int
+zoneOf distance = case distance of
+  d
+    | d > 10 -> 3
+    | d > 5 -> 2
+  -- short trips are all zone 1
+  _ -> 1
+
+fare :: Int -> Int
+fare zone
+  | zone > 2 = 4
+  | otherwise =
+      let base = 2
+       in base + zone
+  -- the base fare has not changed since the last review
+
+surcharge :: Int
+surcharge = 1
diff --git a/corpora/vendored/declaration/value/comment-under-the-last-guard.hs b/corpora/vendored/declaration/value/comment-under-the-last-guard.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/value/comment-under-the-last-guard.hs
@@ -0,0 +1,20 @@
+module Tariff.Zone where
+
+zoneOf :: Double -> Int
+zoneOf distance = case distance of
+   d
+     | d > 10    -> 3
+     | d > 5     -> 2
+       -- short trips are all zone 1
+   _ -> 1
+
+fare :: Int -> Int
+fare zone
+    | zone > 2  = 4
+    | otherwise =
+        let base = 2
+         in base + zone
+    -- the base fare has not changed since the last review
+
+surcharge :: Int
+surcharge = 1
diff --git a/corpora/vendored/declaration/value/comments-before-the-equals-sign-out.hs b/corpora/vendored/declaration/value/comments-before-the-equals-sign-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/value/comments-before-the-equals-sign-out.hs
@@ -0,0 +1,12 @@
+-- Block comments written between what is defined and its equals sign stay
+-- there, however many of them there are.
+summarized {- options -} {- tree -} =
+  foldr step []
+
+applied x {- before -} {- the sign -} =
+  x
+
+oneLine {- first -} {- second -} = 0
+
+several {- one -} {- two -} {- three -} =
+  ()
diff --git a/corpora/vendored/declaration/value/comments-before-the-equals-sign.hs b/corpora/vendored/declaration/value/comments-before-the-equals-sign.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/value/comments-before-the-equals-sign.hs
@@ -0,0 +1,12 @@
+-- Block comments written between what is defined and its equals sign stay
+-- there, however many of them there are.
+summarized {- options -} {- tree -} =
+  foldr step []
+
+applied x {- before -} {- the sign -} =
+  x
+
+oneLine {- first -} {- second -} = 0
+
+several {- one -} {- two -} {- three -} =
+  ()
diff --git a/corpora/vendored/declaration/value/do-block-after-a-guard-out.hs b/corpora/vendored/declaration/value/do-block-after-a-guard-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/value/do-block-after-a-guard-out.hs
@@ -0,0 +1,46 @@
+greet :: Maybe String -> IO ()
+greet name
+  | Just n <- name,
+    not (null n) = do
+      putStrLn "Hello,"
+      putStrLn n
+  | otherwise = pure ()
+
+describe :: Maybe Int -> IO ()
+describe x = case x of
+  Just n
+    | n > 0 -> do
+        print n
+        print (n * 2)
+  _ -> pure ()
+
+classify :: Int -> String
+classify n
+  | n > 0 = case n of
+      1 -> "one"
+      _ -> "many"
+  | otherwise = "none"
+
+withRemark :: Int -> IO ()
+withRemark n
+  | n > 0 = do -- only positive ones
+      print n
+      print n
+  | otherwise = pure ()
+
+withNote :: Int -> IO ()
+withNote n
+  | n > 0 =
+      -- only positive ones
+      do
+        print n
+        print n
+  | otherwise = pure ()
+
+withTwoRemarks :: Int -> IO ()
+withTwoRemarks n
+  | n > 0 = -- only positive ones
+      do -- twice
+        print n
+        print n
+  | otherwise = pure ()
diff --git a/corpora/vendored/declaration/value/do-block-after-a-guard.hs b/corpora/vendored/declaration/value/do-block-after-a-guard.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/value/do-block-after-a-guard.hs
@@ -0,0 +1,46 @@
+greet :: Maybe String -> IO ()
+greet name
+  | Just n <- name
+  , not (null n)
+  = do putStrLn "Hello,"
+       putStrLn n
+  | otherwise = pure ()
+
+describe :: Maybe Int -> IO ()
+describe x = case x of
+  Just n
+    | n > 0
+    -> do print n
+          print (n * 2)
+  _ -> pure ()
+
+classify :: Int -> String
+classify n
+  | n > 0
+  = case n of
+      1 -> "one"
+      _ -> "many"
+  | otherwise = "none"
+
+withRemark :: Int -> IO ()
+withRemark n
+  | n > 0    -- only positive ones
+  = do print n
+       print n
+  | otherwise = pure ()
+
+withNote :: Int -> IO ()
+withNote n
+  | n > 0
+  -- only positive ones
+  = do print n
+       print n
+  | otherwise = pure ()
+
+withTwoRemarks :: Int -> IO ()
+withTwoRemarks n
+  | n > 0    -- only positive ones
+  = do       -- twice
+       print n
+       print n
+  | otherwise = pure ()
diff --git a/corpora/vendored/declaration/value/do-block-after-a-leading-dollar-out.hs b/corpora/vendored/declaration/value/do-block-after-a-leading-dollar-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/value/do-block-after-a-leading-dollar-out.hs
@@ -0,0 +1,19 @@
+textRoundtrip :: IO ()
+textRoundtrip =
+  fmap id $
+    withConnection $ do
+      encode
+      decode
+
+roundtrip :: IO ()
+roundtrip =
+  withConnection $ do
+    encode
+    decode
+
+withRemark :: IO ()
+withRemark =
+  withConnection $ -- a fresh connection
+    do
+      encode
+      decode
diff --git a/corpora/vendored/declaration/value/do-block-after-a-leading-dollar.hs b/corpora/vendored/declaration/value/do-block-after-a-leading-dollar.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/value/do-block-after-a-leading-dollar.hs
@@ -0,0 +1,21 @@
+textRoundtrip :: IO ()
+textRoundtrip =
+  fmap id
+    $ withConnection
+    $ do
+      encode
+      decode
+
+roundtrip :: IO ()
+roundtrip =
+  withConnection
+    $ do
+      encode
+      decode
+
+withRemark :: IO ()
+withRemark =
+  withConnection    -- a fresh connection
+    $ do
+      encode
+      decode
diff --git a/corpora/vendored/declaration/value/function/arrow/comment-in-a-command-chain-out.hs b/corpora/vendored/declaration/value/function/arrow/comment-in-a-command-chain-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/value/function/arrow/comment-in-a-command-chain-out.hs
@@ -0,0 +1,9 @@
+{-# LANGUAGE Arrows #-}
+
+module Cache.Lookup where
+
+-- An operator written at the end of a line goes to the start of the next,
+-- and a comment written after it stays with the operand it follows.
+fetch local remote = proc key ->
+  (local -< key) -- cheap when it hits
+    <+> (remote -< key)
diff --git a/corpora/vendored/declaration/value/function/arrow/comment-in-a-command-chain.hs b/corpora/vendored/declaration/value/function/arrow/comment-in-a-command-chain.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/value/function/arrow/comment-in-a-command-chain.hs
@@ -0,0 +1,8 @@
+{-# LANGUAGE Arrows #-}
+
+module Cache.Lookup where
+
+-- An operator written at the end of a line goes to the start of the next,
+-- and a comment written after it stays with the operand it follows.
+fetch local remote = proc key -> (local -< key) <+> -- cheap when it hits
+  (remote -< key)
diff --git a/corpora/vendored/declaration/value/function/do-block-before-an-operator-out.hs b/corpora/vendored/declaration/value/function/do-block-before-an-operator-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/value/function/do-block-before-an-operator-out.hs
@@ -0,0 +1,19 @@
+module Spec where
+
+spec :: IO ()
+spec = do
+  it "adds" $ do
+    sum $ do
+      [1, 2]
+    `shouldBe` 3
+
+  it "adds, written broken" $
+    do
+      sum $ do
+        [1, 2]
+      `shouldBe` 3
+
+recovered :: IO ()
+recovered = when ready $ do
+  run
+  `catch` handler
diff --git a/corpora/vendored/declaration/value/function/do-block-before-an-operator.hs b/corpora/vendored/declaration/value/function/do-block-before-an-operator.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/value/function/do-block-before-an-operator.hs
@@ -0,0 +1,19 @@
+module Spec where
+
+spec :: IO ()
+spec = do
+  it "adds" $ do
+    sum $ do
+      [1, 2]
+    `shouldBe` 3
+
+  it "adds, written broken" $
+    do
+      sum $ do
+        [1, 2]
+      `shouldBe` 3
+
+recovered :: IO ()
+recovered = when ready $ do
+  run
+  `catch` handler
diff --git a/corpora/vendored/declaration/value/function/let-chain-out.hs b/corpora/vendored/declaration/value/function/let-chain-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/value/function/let-chain-out.hs
@@ -0,0 +1,16 @@
+module Kiln.Glaze where
+
+-- A let ending its line with in, and followed by another let, keeps that
+-- line, and the next let goes under it; the last one is laid out as usual.
+glaze :: Int -> (Int, Int)
+glaze x =
+  -- Count the first one:
+  let a = x + 1 in
+  let b = a * 2; c = b + 1 in
+  -- Then the second:
+  let d = c - 1
+   in (a, d)
+
+-- Written all on one line, the chain stays on it.
+fire :: Int -> Int
+fire x = let a = x + 1 in let b = a * 2 in a + b
diff --git a/corpora/vendored/declaration/value/function/let-chain.hs b/corpora/vendored/declaration/value/function/let-chain.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/value/function/let-chain.hs
@@ -0,0 +1,16 @@
+module Kiln.Glaze where
+
+-- A let ending its line with in, and followed by another let, keeps that
+-- line, and the next let goes under it; the last one is laid out as usual.
+glaze :: Int -> (Int, Int)
+glaze x =
+  -- Count the first one:
+  let a = x + 1 in
+  let b = a * 2; c = b + 1 in
+  -- Then the second:
+  let d = c - 1 in
+  (a, d)
+
+-- Written all on one line, the chain stays on it.
+fire :: Int -> Int
+fire x = let a = x + 1 in let b = a * 2 in a + b
diff --git a/corpora/vendored/declaration/value/signature-for-several-names-out.hs b/corpora/vendored/declaration/value/signature-for-several-names-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/value/signature-for-several-names-out.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+
+module Gears.Shift where
+
+shiftUp, shiftDown, skipUp, skipDown ::
+  forall n. Int -> n -> Int -> n
+shiftUp = undefined
+shiftDown = undefined
+skipUp = undefined
+skipDown = undefined
+
+lowGear,
+  highGear ::
+    Int
+lowGear = 1
+highGear = 5
+
+class Gearbox g where
+  engage, release ::
+    g -> g
+
+pattern Neutral, Reverse ::
+  Int
+pattern Neutral = 0
+pattern Reverse = -1
diff --git a/corpora/vendored/declaration/value/signature-for-several-names.hs b/corpora/vendored/declaration/value/signature-for-several-names.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/declaration/value/signature-for-several-names.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+
+module Gears.Shift where
+
+shiftUp, shiftDown, skipUp, skipDown
+  :: forall n . Int -> n -> Int -> n
+shiftUp = undefined
+shiftDown = undefined
+skipUp = undefined
+skipDown = undefined
+
+lowGear,
+  highGear
+  :: Int
+lowGear = 1
+highGear = 5
+
+class Gearbox g where
+  engage, release
+    :: g -> g
+
+pattern Neutral, Reverse
+  :: Int
+pattern Neutral = 0
+pattern Reverse = -1
diff --git a/corpora/vendored/import/block-comment-in-a-one-line-list-out.hs b/corpora/vendored/import/block-comment-in-a-one-line-list-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/block-comment-in-a-one-line-list-out.hs
@@ -0,0 +1,6 @@
+module Inventory.Count where
+
+import Data.Map.Strict (Map, {- strict in the counts -} insertWith)
+
+bump :: String -> Map String Int -> Map String Int
+bump item = insertWith (+) item 1
diff --git a/corpora/vendored/import/block-comment-in-a-one-line-list.hs b/corpora/vendored/import/block-comment-in-a-one-line-list.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/block-comment-in-a-one-line-list.hs
@@ -0,0 +1,6 @@
+module Inventory.Count where
+
+import Data.Map.Strict (Map, {- strict in the counts -} insertWith)
+
+bump :: String -> Map String Int -> Map String Int
+bump item = insertWith (+) item 1
diff --git a/corpora/vendored/import/comment-above-the-first-import-out.hs b/corpora/vendored/import/comment-above-the-first-import-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/comment-above-the-first-import-out.hs
@@ -0,0 +1,9 @@
+module Survey.Tally where
+
+import Data.Map.Strict (Map)
+import qualified Data.Map.Strict as Map
+-- answers arrive as text and are counted per question
+import Survey.Answer (Answer, answerText)
+
+tally :: [Answer] -> Map String Int
+tally = foldr (\a -> Map.insertWith (+) (answerText a) 1) Map.empty
diff --git a/corpora/vendored/import/comment-above-the-first-import-with-no-module-line-out.hs b/corpora/vendored/import/comment-above-the-first-import-with-no-module-line-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/comment-above-the-first-import-with-no-module-line-out.hs
@@ -0,0 +1,9 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+import Data.Text (Text)
+import qualified Data.Text.IO as Text
+-- the report is written to standard output, one question per line
+import System.IO (stdout)
+
+main :: IO ()
+main = Text.hPutStrLn stdout ("questions" :: Text)
diff --git a/corpora/vendored/import/comment-above-the-first-import-with-no-module-line.hs b/corpora/vendored/import/comment-above-the-first-import-with-no-module-line.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/comment-above-the-first-import-with-no-module-line.hs
@@ -0,0 +1,9 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+-- the report is written to standard output, one question per line
+import System.IO (stdout)
+import Data.Text (Text)
+import qualified Data.Text.IO as Text
+
+main :: IO ()
+main = Text.hPutStrLn stdout ("questions" :: Text)
diff --git a/corpora/vendored/import/comment-above-the-first-import.hs b/corpora/vendored/import/comment-above-the-first-import.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/comment-above-the-first-import.hs
@@ -0,0 +1,9 @@
+module Survey.Tally where
+
+-- answers arrive as text and are counted per question
+import Survey.Answer (Answer, answerText)
+import Data.Map.Strict (Map)
+import qualified Data.Map.Strict as Map
+
+tally :: [Answer] -> Map String Int
+tally = foldr (\a -> Map.insertWith (+) (answerText a) 1) Map.empty
diff --git a/corpora/vendored/import/comment-in-import-list-out.hs b/corpora/vendored/import/comment-in-import-list-out.hs
--- a/corpora/vendored/import/comment-in-import-list-out.hs
+++ b/corpora/vendored/import/comment-in-import-list-out.hs
@@ -1,6 +1,5 @@
 import Alpha
-  (
-    -- nothing taken yet
+  ( -- nothing taken yet
   )
 import Beta
   ( one,
diff --git a/corpora/vendored/import/comment-set-apart-from-the-first-import-out.hs b/corpora/vendored/import/comment-set-apart-from-the-first-import-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/comment-set-apart-from-the-first-import-out.hs
@@ -0,0 +1,11 @@
+module Survey.Export where
+
+--------------------------------------------------------------------------------
+-- the answers go out as CSV; nothing here touches the database
+
+import Data.List (intercalate)
+import qualified Data.Map.Strict as Map
+import Survey.Answer (Answer, answerText)
+
+row :: [Answer] -> String
+row = intercalate "," . fmap answerText
diff --git a/corpora/vendored/import/comment-set-apart-from-the-first-import-with-no-module-line-out.hs b/corpora/vendored/import/comment-set-apart-from-the-first-import-with-no-module-line-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/comment-set-apart-from-the-first-import-with-no-module-line-out.hs
@@ -0,0 +1,10 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+-- Copyright the survey's authors. Released under the BSD3 licence.
+
+import Data.Text (Text)
+import qualified Data.Text.IO as Text
+import System.IO (stdout)
+
+main :: IO ()
+main = Text.hPutStrLn stdout ("questions" :: Text)
diff --git a/corpora/vendored/import/comment-set-apart-from-the-first-import-with-no-module-line.hs b/corpora/vendored/import/comment-set-apart-from-the-first-import-with-no-module-line.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/comment-set-apart-from-the-first-import-with-no-module-line.hs
@@ -0,0 +1,10 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+-- Copyright the survey's authors. Released under the BSD3 licence.
+
+import System.IO (stdout)
+import Data.Text (Text)
+import qualified Data.Text.IO as Text
+
+main :: IO ()
+main = Text.hPutStrLn stdout ("questions" :: Text)
diff --git a/corpora/vendored/import/comment-set-apart-from-the-first-import.hs b/corpora/vendored/import/comment-set-apart-from-the-first-import.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/comment-set-apart-from-the-first-import.hs
@@ -0,0 +1,11 @@
+module Survey.Export where
+
+--------------------------------------------------------------------------------
+-- the answers go out as CSV; nothing here touches the database
+
+import Survey.Answer (Answer, answerText)
+import Data.List (intercalate)
+import qualified Data.Map.Strict as Map
+
+row :: [Answer] -> String
+row = intercalate "," . fmap answerText
diff --git a/corpora/vendored/import/comments-over-and-on-top-of-the-first-import-out.hs b/corpora/vendored/import/comments-over-and-on-top-of-the-first-import-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/comments-over-and-on-top-of-the-first-import-out.hs
@@ -0,0 +1,11 @@
+module Survey.Weights where
+
+-- weights are read once and kept for the whole run
+
+import Data.IORef (IORef, newIORef)
+import Data.Map.Strict (Map)
+-- answers are matched to their questions by position
+import Survey.Answer (Answer)
+
+weights :: IO (IORef (Map Int Double))
+weights = newIORef mempty
diff --git a/corpora/vendored/import/comments-over-and-on-top-of-the-first-import.hs b/corpora/vendored/import/comments-over-and-on-top-of-the-first-import.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/comments-over-and-on-top-of-the-first-import.hs
@@ -0,0 +1,11 @@
+module Survey.Weights where
+
+-- weights are read once and kept for the whole run
+
+-- answers are matched to their questions by position
+import Survey.Answer (Answer)
+import Data.IORef (IORef, newIORef)
+import Data.Map.Strict (Map)
+
+weights :: IO (IORef (Map Int Double))
+weights = newIORef mempty
diff --git a/corpora/vendored/import/hiding-a-name-beside-its-constructors-out.hs b/corpora/vendored/import/hiding-a-name-beside-its-constructors-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/hiding-a-name-beside-its-constructors-out.hs
@@ -0,0 +1,10 @@
+module Studio.Palette where
+
+import Studio.Colour (Colour (Green))
+import Studio.Colour hiding (Colour, Colour (Blue, Red), Shade, Shade (..))
+import Studio.Paint hiding (Paint, Paint (..))
+
+data Swatch = Colour | Shade
+
+swatch :: Swatch
+swatch = Colour
diff --git a/corpora/vendored/import/hiding-a-name-beside-its-constructors.hs b/corpora/vendored/import/hiding-a-name-beside-its-constructors.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/hiding-a-name-beside-its-constructors.hs
@@ -0,0 +1,11 @@
+module Studio.Palette where
+
+import Studio.Colour hiding (Colour (Red), Colour, Colour (Blue), Shade, Shade (..))
+import Studio.Colour (Colour, Colour (Green))
+import Studio.Paint
+  hiding (Paint (..), Paint)
+
+data Swatch = Colour | Shade
+
+swatch :: Swatch
+swatch = Colour
diff --git a/corpora/vendored/import/hiding-written-on-a-line-of-its-own-out.hs b/corpora/vendored/import/hiding-written-on-a-line-of-its-own-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/hiding-written-on-a-line-of-its-own-out.hs
@@ -0,0 +1,11 @@
+module Inventory.Search where
+
+import Data.Map hiding (filter, map)
+import Data.Set hiding
+  ( filter,
+    map,
+  )
+import qualified Data.Text as T hiding (null)
+
+matching :: (k -> Bool) -> Map k v -> [k]
+matching p = Prelude.filter p . keys
diff --git a/corpora/vendored/import/hiding-written-on-a-line-of-its-own.hs b/corpora/vendored/import/hiding-written-on-a-line-of-its-own.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/hiding-written-on-a-line-of-its-own.hs
@@ -0,0 +1,13 @@
+module Inventory.Search where
+
+import Data.Map
+  hiding (filter, map)
+import Data.Set hiding
+  ( filter,
+    map
+  )
+import qualified Data.Text as T
+  hiding (null)
+
+matching :: (k -> Bool) -> Map k v -> [k]
+matching p = Prelude.filter p . keys
diff --git a/corpora/vendored/import/line-comment-between-hiding-and-its-list-out.hs b/corpora/vendored/import/line-comment-between-hiding-and-its-list-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/line-comment-between-hiding-and-its-list-out.hs
@@ -0,0 +1,9 @@
+module Inventory.Index where
+
+import Data.Map hiding -- the Prelude's are the ones meant below
+  ( filter,
+    map,
+  )
+
+index :: [(String, Int)] -> Map String Int
+index = fromList . map id . filter ((> 0) . snd)
diff --git a/corpora/vendored/import/line-comment-between-hiding-and-its-list.hs b/corpora/vendored/import/line-comment-between-hiding-and-its-list.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/line-comment-between-hiding-and-its-list.hs
@@ -0,0 +1,7 @@
+module Inventory.Index where
+
+import Data.Map hiding -- the Prelude's are the ones meant below
+  (filter, map)
+
+index :: [(String, Int)] -> Map String Int
+index = fromList . map id . filter ((> 0) . snd)
diff --git a/corpora/vendored/import/list-written-across-lines-out.hs b/corpora/vendored/import/list-written-across-lines-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/list-written-across-lines-out.hs
@@ -0,0 +1,22 @@
+module Inventory.Ledger where
+
+import Data.Map.Strict
+  ( Map,
+    insertWith,
+  )
+import Data.Sequence
+  ( Seq,
+    empty,
+    fromList,
+  )
+import Data.Text
+  ( Text,
+    pack,
+  )
+import Data.Time
+  ( UTCTime,
+    getCurrentTime,
+  )
+
+record :: Text -> Int -> Map Text Int -> Map Text Int
+record = insertWith (+)
diff --git a/corpora/vendored/import/list-written-across-lines.hs b/corpora/vendored/import/list-written-across-lines.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/list-written-across-lines.hs
@@ -0,0 +1,16 @@
+module Inventory.Ledger where
+
+import Data.Map.Strict
+  ( Map,
+    insertWith
+  )
+import Data.Sequence (Seq, empty,
+  fromList)
+import Data.Text (Text, pack
+  )
+import Data.Time
+  (
+    UTCTime, getCurrentTime)
+
+record :: Text -> Int -> Map Text Int -> Map Text Int
+record = insertWith (+)
diff --git a/corpora/vendored/import/list-written-on-one-line-out.hs b/corpora/vendored/import/list-written-on-one-line-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/list-written-on-one-line-out.hs
@@ -0,0 +1,9 @@
+module Inventory.Stock where
+
+import Data.List (sortOn)
+import Data.Map.Strict (Map, adjust, findWithDefault)
+import qualified Data.Set as Set (Set, member)
+import Data.Text (Text)
+
+inStock :: Text -> Map Text Int -> Bool
+inStock item = (> 0) . findWithDefault 0 item
diff --git a/corpora/vendored/import/list-written-on-one-line.hs b/corpora/vendored/import/list-written-on-one-line.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/list-written-on-one-line.hs
@@ -0,0 +1,12 @@
+module Inventory.Stock where
+
+import Data.List
+  (sortOn)
+import Data.Map.Strict
+  (Map, adjust, findWithDefault)
+import qualified Data.Set as Set
+  (Set, member)
+import Data.Text (Text)
+
+inStock :: Text -> Map Text Int -> Bool
+inStock item = (> 0) . findWithDefault 0 item
diff --git a/corpora/vendored/import/merging-a-list-written-across-lines-out.hs b/corpora/vendored/import/merging-a-list-written-across-lines-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/merging-a-list-written-across-lines-out.hs
@@ -0,0 +1,21 @@
+module Billing.Tax where
+
+import Billing.Rate
+  ( Rate,
+    rateFor,
+    rateName,
+  )
+import Billing.Region
+  ( Region,
+    regionCode,
+    regionName,
+  )
+import Data.Map
+  ( Map,
+    empty,
+    lookup,
+    member,
+  )
+
+tax :: Region -> Double
+tax _ = 0
diff --git a/corpora/vendored/import/merging-a-list-written-across-lines.hs b/corpora/vendored/import/merging-a-list-written-across-lines.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/merging-a-list-written-across-lines.hs
@@ -0,0 +1,21 @@
+module Billing.Tax where
+
+import Billing.Rate (Rate)
+import Billing.Rate
+  ( rateFor,
+    rateName
+  )
+import Billing.Region
+  ( Region,
+    regionCode
+  )
+import Billing.Region (regionName)
+import Data.Map (Map)
+import Data.Map
+  ( lookup,
+    member
+  )
+import Data.Map (empty)
+
+tax :: Region -> Double
+tax _ = 0
diff --git a/corpora/vendored/import/merging-an-import-with-an-empty-list-out.hs b/corpora/vendored/import/merging-an-import-with-an-empty-list-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/merging-an-import-with-an-empty-list-out.hs
@@ -0,0 +1,9 @@
+module Billing.Currency where
+
+import Data.Map (Map)
+import Data.Set
+import Data.Set (Set)
+import Data.Text ()
+
+rates :: Map String Double
+rates = mempty
diff --git a/corpora/vendored/import/merging-an-import-with-an-empty-list.hs b/corpora/vendored/import/merging-an-import-with-an-empty-list.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/merging-an-import-with-an-empty-list.hs
@@ -0,0 +1,11 @@
+module Billing.Currency where
+
+import Data.Map ()
+import Data.Map (Map)
+import Data.Set
+import Data.Set (Set)
+import Data.Text ()
+import Data.Text ()
+
+rates :: Map String Double
+rates = mempty
diff --git a/corpora/vendored/import/merging-entries-naming-one-type-out.hs b/corpora/vendored/import/merging-entries-naming-one-type-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/merging-entries-naming-one-type-out.hs
@@ -0,0 +1,7 @@
+module Billing.Payment where
+
+import Billing.Method (Card (..), Method (Cash))
+import Billing.Status (Status (Due, Paid), settle)
+
+pay :: Method -> Status
+pay _ = Paid
diff --git a/corpora/vendored/import/merging-entries-naming-one-type.hs b/corpora/vendored/import/merging-entries-naming-one-type.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/merging-entries-naming-one-type.hs
@@ -0,0 +1,10 @@
+module Billing.Payment where
+
+import Billing.Method (Method, Card (Visa))
+import Billing.Method (Method (Cash), Card (..))
+import Billing.Status (Status (Paid))
+import Billing.Status (Status (Due, Paid), settle, settle)
+import Billing.Status (settle)
+
+pay :: Method -> Status
+pay _ = Paid
diff --git a/corpora/vendored/import/merging-imports-hiding-a-name-and-its-constructors-out.hs b/corpora/vendored/import/merging-imports-hiding-a-name-and-its-constructors-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/merging-imports-hiding-a-name-and-its-constructors-out.hs
@@ -0,0 +1,10 @@
+module Studio.Mixer where
+
+import Studio.Colour hiding (Colour)
+import Studio.Colour hiding (Colour, Colour (..))
+import Studio.Colour hiding (Colour (..))
+
+data Tint = Colour
+
+mix :: Tint
+mix = Colour
diff --git a/corpora/vendored/import/merging-imports-hiding-a-name-and-its-constructors.hs b/corpora/vendored/import/merging-imports-hiding-a-name-and-its-constructors.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/merging-imports-hiding-a-name-and-its-constructors.hs
@@ -0,0 +1,11 @@
+module Studio.Mixer where
+
+import Studio.Colour hiding (Colour (..), Colour)
+import Studio.Colour hiding (Colour (..))
+import Studio.Colour hiding (Colour, Colour (..))
+import Studio.Colour hiding (Colour)
+
+data Tint = Colour
+
+mix :: Tint
+mix = Colour
diff --git a/corpora/vendored/import/merging-imports-that-hide-names-out.hs b/corpora/vendored/import/merging-imports-that-hide-names-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/merging-imports-that-hide-names-out.hs
@@ -0,0 +1,15 @@
+module Library.Catalogue where
+
+import Data.Map.Strict (delete, insert)
+import Data.Map.Strict hiding (delete)
+import Data.Map.Strict hiding (insert)
+import qualified Data.Set as Set hiding
+  ( filter,
+    map,
+  )
+import Data.Text (Text)
+import Library.Shelf hiding (Shelf (Bottom, Top), shelfName)
+import Library.Shelf hiding (Shelf (Top), shelfName)
+
+shelve :: Text -> Map Text Int -> Map Text Int
+shelve title = insert title 1 . delete title
diff --git a/corpora/vendored/import/merging-imports-that-hide-names.hs b/corpora/vendored/import/merging-imports-that-hide-names.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/merging-imports-that-hide-names.hs
@@ -0,0 +1,20 @@
+module Library.Catalogue where
+
+import Data.Map.Strict hiding (insert)
+import Data.Text (Text)
+import Data.Map.Strict hiding (delete)
+import Data.Map.Strict (insert)
+import qualified Data.Set as Set hiding (map, filter)
+import Data.Map.Strict (delete)
+import qualified Data.Set as Set hiding
+  ( filter,
+    map,
+    map
+  )
+import Library.Shelf hiding (Shelf (Top), shelfName)
+import Library.Shelf hiding (shelfName, Shelf (Bottom, Top))
+import Library.Shelf hiding (Shelf (Top, Bottom), shelfName)
+import Data.Map.Strict hiding (insert)
+
+shelve :: Text -> Map Text Int -> Map Text Int
+shelve title = insert title 1 . delete title
diff --git a/corpora/vendored/import/merging-keeps-a-comment-above-the-block-out.hs b/corpora/vendored/import/merging-keeps-a-comment-above-the-block-out.hs
--- a/corpora/vendored/import/merging-keeps-a-comment-above-the-block-out.hs
+++ b/corpora/vendored/import/merging-keeps-a-comment-above-the-block-out.hs
@@ -1,10 +1,7 @@
 module Telemetry.Report where
 
 -- both halves of a sink live in the one module
-import Telemetry.Sink
-  ( sinkFlush,
-    sinkName,
-  )
+import Telemetry.Sink (sinkFlush, sinkName)
 
 describe :: Sink -> String
 describe = sinkName
diff --git a/corpora/vendored/import/merging-lists-written-on-one-line-out.hs b/corpora/vendored/import/merging-lists-written-on-one-line-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/merging-lists-written-on-one-line-out.hs
@@ -0,0 +1,8 @@
+module Billing.Invoice where
+
+import Data.Map.Strict (Map, empty, insert)
+import qualified Data.Set as Set (Set, fromList)
+import Data.Text (Text)
+
+lines' :: Map Text Int
+lines' = insert "total" 0 empty
diff --git a/corpora/vendored/import/merging-lists-written-on-one-line.hs b/corpora/vendored/import/merging-lists-written-on-one-line.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/merging-lists-written-on-one-line.hs
@@ -0,0 +1,10 @@
+module Billing.Invoice where
+
+import Data.Map.Strict (Map)
+import Data.Text (Text)
+import Data.Map.Strict (insert, empty)
+import qualified Data.Set as Set (Set)
+import qualified Data.Set as Set (fromList)
+
+lines' :: Map Text Int
+lines' = insert "total" 0 empty
diff --git a/corpora/vendored/import/merging-names-of-a-type-written-across-lines-out.hs b/corpora/vendored/import/merging-names-of-a-type-written-across-lines-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/merging-names-of-a-type-written-across-lines-out.hs
@@ -0,0 +1,13 @@
+module Billing.Refund where
+
+import Billing.Status
+  ( Status
+      ( Disputed,
+        Paid,
+        Refunded
+      ),
+    refund,
+  )
+
+undo :: Status -> Status
+undo _ = Refunded
diff --git a/corpora/vendored/import/merging-names-of-a-type-written-across-lines.hs b/corpora/vendored/import/merging-names-of-a-type-written-across-lines.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/merging-names-of-a-type-written-across-lines.hs
@@ -0,0 +1,10 @@
+module Billing.Refund where
+
+import Billing.Status (Status (Paid), refund)
+import Billing.Status
+  ( Status (Refunded,
+      Disputed)
+  )
+
+undo :: Status -> Status
+undo _ = Refunded
diff --git a/corpora/vendored/import/merging-only-imports-that-agree-out.hs b/corpora/vendored/import/merging-only-imports-that-agree-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/merging-only-imports-that-agree-out.hs
@@ -0,0 +1,15 @@
+{-# LANGUAGE PackageImports #-}
+{-# LANGUAGE Trustworthy #-}
+
+module Billing.Report where
+
+import Data.Text (Text, lines)
+import Data.Text hiding (map)
+import qualified Data.Text (toUpper)
+import qualified Data.Text as T (pack, unpack)
+import qualified Data.Text as Text (pack)
+import safe Data.Text (strip)
+import "text" Data.Text (unpack, words)
+
+title :: Text -> Text
+title = T.pack . T.unpack
diff --git a/corpora/vendored/import/merging-only-imports-that-agree.hs b/corpora/vendored/import/merging-only-imports-that-agree.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/merging-only-imports-that-agree.hs
@@ -0,0 +1,18 @@
+{-# LANGUAGE PackageImports #-}
+{-# LANGUAGE Trustworthy #-}
+
+module Billing.Report where
+
+import qualified Data.Text as Text (pack)
+import Data.Text (Text)
+import "text" Data.Text (unpack)
+import qualified Data.Text as T (pack)
+import Data.Text hiding (map)
+import safe Data.Text (strip)
+import qualified Data.Text (toUpper)
+import qualified Data.Text as T (unpack)
+import "text" Data.Text (words)
+import Data.Text (lines)
+
+title :: Text -> Text
+title = T.pack . T.unpack
diff --git a/corpora/vendored/import/names-of-a-type-on-the-next-line-out.hs b/corpora/vendored/import/names-of-a-type-on-the-next-line-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/names-of-a-type-on-the-next-line-out.hs
@@ -0,0 +1,14 @@
+module Shapes.Area where
+
+import Data.Either
+  ( Either (Left, Right),
+    either,
+  )
+import Shapes.Kind
+  ( Shape (Circle, Square),
+    Unit (..),
+    area,
+  )
+
+describe :: Shape -> Either String Double
+describe s = Right (area s)
diff --git a/corpora/vendored/import/names-of-a-type-on-the-next-line.hs b/corpora/vendored/import/names-of-a-type-on-the-next-line.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/names-of-a-type-on-the-next-line.hs
@@ -0,0 +1,14 @@
+module Shapes.Area where
+
+import Data.Either (Either
+  (Left, Right), either)
+import Shapes.Kind
+  ( Shape
+      (Circle, Square),
+    Unit
+      (..),
+    area
+  )
+
+describe :: Shape -> Either String Double
+describe s = Right (area s)
diff --git a/corpora/vendored/import/names-of-a-type-written-across-lines-out.hs b/corpora/vendored/import/names-of-a-type-written-across-lines-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/names-of-a-type-written-across-lines-out.hs
@@ -0,0 +1,16 @@
+module Shapes.Perimeter where
+
+import Shapes.Kind
+  ( Shape
+      ( Circle,
+        Square
+      ),
+    Side
+      ( Bottom,
+        Top
+      ),
+    perimeter,
+  )
+
+total :: [Shape] -> Double
+total = sum . fmap perimeter
diff --git a/corpora/vendored/import/names-of-a-type-written-across-lines.hs b/corpora/vendored/import/names-of-a-type-written-across-lines.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/names-of-a-type-written-across-lines.hs
@@ -0,0 +1,14 @@
+module Shapes.Perimeter where
+
+import Shapes.Kind
+  ( Shape
+      ( Circle,
+        Square
+      ),
+    Side (Top,
+      Bottom),
+    perimeter
+  )
+
+total :: [Shape] -> Double
+total = sum . fmap perimeter
diff --git a/corpora/vendored/import/sorting-imports-at-different-levels-out.hs b/corpora/vendored/import/sorting-imports-at-different-levels-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/sorting-imports-at-different-levels-out.hs
@@ -0,0 +1,10 @@
+{-# LANGUAGE ExplicitLevelImports #-}
+
+module Weather.Splices where
+
+import Weather.Syntax (rain)
+import splice Weather.Syntax (snow, sun)
+import quote Weather.Syntax (hail, wind)
+
+forecast :: String
+forecast = "fair"
diff --git a/corpora/vendored/import/sorting-imports-at-different-levels.hs b/corpora/vendored/import/sorting-imports-at-different-levels.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/sorting-imports-at-different-levels.hs
@@ -0,0 +1,12 @@
+{-# LANGUAGE ExplicitLevelImports #-}
+
+module Weather.Splices where
+
+import quote Weather.Syntax (wind)
+import Weather.Syntax (rain)
+import splice Weather.Syntax (sun)
+import splice Weather.Syntax (snow)
+import quote Weather.Syntax (hail)
+
+forecast :: String
+forecast = "fair"
diff --git a/corpora/vendored/import/sorting-imports-out.hs b/corpora/vendored/import/sorting-imports-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/sorting-imports-out.hs
@@ -0,0 +1,17 @@
+{-# LANGUAGE PackageImports #-}
+
+module Weather.Station where
+
+import Control.Monad (forM_)
+import Data.Char (toUpper)
+import Data.Map (lookup)
+import qualified Data.Map as Map
+import Data.Map.Strict (Map)
+import Weather.Reading (Reading)
+import "base" Data.List (sort)
+import "containers" Data.Set (Set)
+import "this" Weather.Units (Celsius)
+import Prelude hiding (lookup)
+
+readings :: Map String Reading
+readings = mempty
diff --git a/corpora/vendored/import/sorting-imports.hs b/corpora/vendored/import/sorting-imports.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/sorting-imports.hs
@@ -0,0 +1,17 @@
+{-# LANGUAGE PackageImports #-}
+
+module Weather.Station where
+
+import Prelude hiding (lookup)
+import "this" Weather.Units (Celsius)
+import Data.Map.Strict (Map)
+import "containers" Data.Set (Set)
+import Control.Monad (forM_)
+import qualified Data.Map as Map
+import Data.Map (lookup)
+import "base" Data.List (sort)
+import Weather.Reading (Reading)
+import Data.Char (toUpper)
+
+readings :: Map String Reading
+readings = mempty
diff --git a/corpora/vendored/import/sorting-names-by-namespace-out.hs b/corpora/vendored/import/sorting-names-by-namespace-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/sorting-names-by-namespace-out.hs
@@ -0,0 +1,9 @@
+{-# LANGUAGE ExplicitNamespaces #-}
+{-# LANGUAGE PatternSynonyms #-}
+
+module Weather.Gusts where
+
+import Weather.Level (Measured (measure), gust, pattern Squall, type Gust, data Calm, data Gale)
+
+strongest :: Gust -> Gale
+strongest = measure
diff --git a/corpora/vendored/import/sorting-names-by-namespace.hs b/corpora/vendored/import/sorting-names-by-namespace.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/sorting-names-by-namespace.hs
@@ -0,0 +1,9 @@
+{-# LANGUAGE ExplicitNamespaces #-}
+{-# LANGUAGE PatternSynonyms #-}
+
+module Weather.Gusts where
+
+import Weather.Level (data Gale, type Gust, pattern Squall, Measured (measure), data Calm, gust, data Gale)
+
+strongest :: Gust -> Gale
+strongest = measure
diff --git a/corpora/vendored/import/sorting-names-in-a-list-out.hs b/corpora/vendored/import/sorting-names-in-a-list-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/sorting-names-in-a-list-out.hs
@@ -0,0 +1,20 @@
+{-# LANGUAGE ExplicitNamespaces #-}
+{-# LANGUAGE PatternSynonyms #-}
+
+module Weather.Alert where
+
+import Weather.Level
+  ( Alert,
+    Level (Calm, Warning, (:>)),
+    lower,
+    raise,
+    (!),
+    (<+>),
+    pattern Breeze,
+    pattern Storm,
+    type (:*:),
+    type (~>),
+  )
+
+alert :: Level -> Alert
+alert = raise
diff --git a/corpora/vendored/import/sorting-names-in-a-list.hs b/corpora/vendored/import/sorting-names-in-a-list.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/sorting-names-in-a-list.hs
@@ -0,0 +1,20 @@
+{-# LANGUAGE ExplicitNamespaces #-}
+{-# LANGUAGE PatternSynonyms #-}
+
+module Weather.Alert where
+
+import Weather.Level
+  ( (<+>),
+    type (~>),
+    raise,
+    pattern Storm,
+    Level ((:>), Warning, Calm),
+    lower,
+    (!),
+    Alert,
+    pattern Breeze,
+    type (:*:)
+  )
+
+alert :: Level -> Alert
+alert = raise
diff --git a/corpora/vendored/import/sorting-the-prelude-without-implicit-prelude-out.hs b/corpora/vendored/import/sorting-the-prelude-without-implicit-prelude-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/sorting-the-prelude-without-implicit-prelude-out.hs
@@ -0,0 +1,11 @@
+{-# LANGUAGE NoImplicitPrelude #-}
+
+module Weather.Forecast where
+
+import Control.Monad (when)
+import Data.List (foldl')
+import Prelude (Double, (+))
+import Weather.Reading (Reading)
+
+warmer :: Double -> Double
+warmer = (+ 1)
diff --git a/corpora/vendored/import/sorting-the-prelude-without-implicit-prelude.hs b/corpora/vendored/import/sorting-the-prelude-without-implicit-prelude.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/import/sorting-the-prelude-without-implicit-prelude.hs
@@ -0,0 +1,11 @@
+{-# LANGUAGE NoImplicitPrelude #-}
+
+module Weather.Forecast where
+
+import Weather.Reading (Reading)
+import Prelude (Double, (+))
+import Data.List (foldl')
+import Control.Monad (when)
+
+warmer :: Double -> Double
+warmer = (+ 1)
diff --git a/corpora/vendored/other/block-comment-after-a-trailing-comma-out.hs b/corpora/vendored/other/block-comment-after-a-trailing-comma-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/block-comment-after-a-trailing-comma-out.hs
@@ -0,0 +1,4 @@
+module Terminal.Keys (Key, keys {- modifiers -}) where
+
+import Data.Array (Array, bounds, (!) {- assocs -})
+import Data.List (nub, sortOn {- group -})
diff --git a/corpora/vendored/other/block-comment-after-a-trailing-comma.hs b/corpora/vendored/other/block-comment-after-a-trailing-comma.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/block-comment-after-a-trailing-comma.hs
@@ -0,0 +1,4 @@
+module Terminal.Keys (Key, keys, {- modifiers -}) where
+
+import Data.Array (Array, (!), bounds, {- assocs -})
+import Data.List (sortOn, nub,{- group -})
diff --git a/corpora/vendored/other/block-comment-before-a-closing-bracket-out.hs b/corpora/vendored/other/block-comment-before-a-closing-bracket-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/block-comment-before-a-closing-bracket-out.hs
@@ -0,0 +1,15 @@
+module Terminal.Keys where
+
+import Data.ByteString.Char8 ({- IsString -})
+import Data.List hiding (sort {- the local one -})
+
+recordKey :: Key -> IO (Bool {- already bound -}, Int)
+recordKey = undefined
+
+modifiers = (shift {- left or right -}, control {- either -})
+
+arrows = [up, down, left, right {- and no others -}]
+
+pressed = bind (key {- as reported -}) action
+
+pending = [{- none yet -}]
diff --git a/corpora/vendored/other/block-comment-before-a-closing-bracket.hs b/corpora/vendored/other/block-comment-before-a-closing-bracket.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/block-comment-before-a-closing-bracket.hs
@@ -0,0 +1,15 @@
+module Terminal.Keys where
+
+import Data.ByteString.Char8 ({- IsString -})
+import Data.List hiding (sort {- the local one -})
+
+recordKey :: Key -> IO (Bool {- already bound -}, Int)
+recordKey = undefined
+
+modifiers = (shift {- left or right -}, control {- either -})
+
+arrows = [up, down, left, right {- and no others -}]
+
+pressed = bind (key {- as reported -}) action
+
+pending = [{- none yet -}]
diff --git a/corpora/vendored/other/comment-above-the-in-keyword-out.hs b/corpora/vendored/other/comment-above-the-in-keyword-out.hs
--- a/corpora/vendored/other/comment-above-the-in-keyword-out.hs
+++ b/corpora/vendored/other/comment-above-the-in-keyword-out.hs
@@ -3,6 +3,5 @@
 total :: Int -> Int
 total stops =
   let each = 12
-   in
       -- the sum every caller ends up wanting
-      each * stops
+   in each * stops
diff --git a/corpora/vendored/other/comment-after-opening-bracket-out.hs b/corpora/vendored/other/comment-after-opening-bracket-out.hs
--- a/corpora/vendored/other/comment-after-opening-bracket-out.hs
+++ b/corpora/vendored/other/comment-after-opening-bracket-out.hs
@@ -1,37 +1,31 @@
 import Data.List
-  (
-    -- on a line of its own
+  ( -- on a line of its own
     sort,
   )
 
 parenthesised =
-  (
-    -- on a line of its own
+  ( -- on a line of its own
     value
   )
 
 listed =
-  [
-    -- on a line of its own
+  [ -- on a line of its own
     first,
     second
   ]
 
 typed ::
-  (
-    -- on a line of its own
+  ( -- on a line of its own
     Int
   )
 typed = 0
 
 data Colour
   = Red
-  |
-    -- on a line of its own
+  | -- on a line of its own
     Green
 
 data Shape = Circle
-  {
-    -- on a line of its own
+  { -- on a line of its own
     radius :: Int
   }
diff --git a/corpora/vendored/other/comment-at-the-column-after-a-closing-bracket-out.hs b/corpora/vendored/other/comment-at-the-column-after-a-closing-bracket-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/comment-at-the-column-after-a-closing-bracket-out.hs
@@ -0,0 +1,19 @@
+module Loom.Warp where
+
+warpThreads :: Int
+warpThreads = (count 1)
+-- leaves out the selvedge
+
+weftThreads :: [Int]
+weftThreads = [count 2]
+-- the same in a list
+
+shedHeight :: Int
+shedHeight =
+  lift
+    treadle
+    (count 3)
+-- and in the last argument
+
+reedDents :: Int
+reedDents = 12
diff --git a/corpora/vendored/other/comment-at-the-column-after-a-closing-bracket.hs b/corpora/vendored/other/comment-at-the-column-after-a-closing-bracket.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/comment-at-the-column-after-a-closing-bracket.hs
@@ -0,0 +1,19 @@
+module Loom.Warp where
+
+warpThreads :: Int
+warpThreads = (count 1)
+                       -- leaves out the selvedge
+
+weftThreads :: [Int]
+weftThreads = [count 2]
+                       -- the same in a list
+
+shedHeight :: Int
+shedHeight =
+  lift
+    treadle
+    (count 3)
+             -- and in the last argument
+
+reedDents :: Int
+reedDents = 12
diff --git a/corpora/vendored/other/comment-at-the-let-column-above-the-in-keyword-out.hs b/corpora/vendored/other/comment-at-the-let-column-above-the-in-keyword-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/comment-at-the-let-column-above-the-in-keyword-out.hs
@@ -0,0 +1,7 @@
+module Route.Return where
+
+fare :: Int -> Int
+fare single =
+  let outward = single
+      -- the way back costs the same
+   in outward * 2
diff --git a/corpora/vendored/other/comment-at-the-let-column-above-the-in-keyword.hs b/corpora/vendored/other/comment-at-the-let-column-above-the-in-keyword.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/comment-at-the-let-column-above-the-in-keyword.hs
@@ -0,0 +1,7 @@
+module Route.Return where
+
+fare :: Int -> Int
+fare single =
+  let outward = single
+  -- the way back costs the same
+  in outward * 2
diff --git a/corpora/vendored/other/comment-before-closing-bracket-out.hs b/corpora/vendored/other/comment-before-closing-bracket-out.hs
--- a/corpora/vendored/other/comment-before-closing-bracket-out.hs
+++ b/corpora/vendored/other/comment-before-closing-bracket-out.hs
@@ -21,3 +21,21 @@
       -- innermost
     ]
   ]
+
+comprehension =
+  [ x | x <- xs
+  -- and only those
+  ]
+    ++ rest
+
+comprehensionAlone =
+  [ x | x <- xs
+  -- and nothing after it
+  ]
+
+openSequence =
+  [ first
+    ..
+    -- and on from there
+  ]
+    ++ rest
diff --git a/corpora/vendored/other/comment-before-closing-bracket.hs b/corpora/vendored/other/comment-before-closing-bracket.hs
--- a/corpora/vendored/other/comment-before-closing-bracket.hs
+++ b/corpora/vendored/other/comment-before-closing-bracket.hs
@@ -15,3 +15,15 @@
     -- innermost
     ]
   ]
+
+comprehension = [ x | x <- xs
+  -- and only those
+  ] ++ rest
+
+comprehensionAlone = [ x | x <- xs
+  -- and nothing after it
+  ]
+
+openSequence = [ first ..
+  -- and on from there
+  ] ++ rest
diff --git a/corpora/vendored/other/comment-before-closing-quote-out.hs b/corpora/vendored/other/comment-before-closing-quote-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/comment-before-closing-quote-out.hs
@@ -0,0 +1,21 @@
+{-# LANGUAGE TemplateHaskell #-}
+
+-- A comment before the bracket that closes a quote stays inside the quote.
+expression =
+  [|
+    lookup key table
+    -- or a default, when the key is missing
+    |]
+    ++ fallbacks
+
+typed =
+  [||
+  width * height
+  -- in pixels
+  ||]
+
+declarations =
+  [d|
+    answer = 42
+    -- and that is all
+    |]
diff --git a/corpora/vendored/other/comment-before-closing-quote.hs b/corpora/vendored/other/comment-before-closing-quote.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/comment-before-closing-quote.hs
@@ -0,0 +1,14 @@
+{-# LANGUAGE TemplateHaskell #-}
+
+-- A comment before the bracket that closes a quote stays inside the quote.
+expression = [| lookup key table
+  -- or a default, when the key is missing
+  |] ++ fallbacks
+
+typed = [|| width * height
+  -- in pixels
+  ||]
+
+declarations = [d| answer = 42
+  -- and that is all
+  |]
diff --git a/corpora/vendored/other/comment-carried-on-under-a-displaced-remark-out.hs b/corpora/vendored/other/comment-carried-on-under-a-displaced-remark-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/comment-carried-on-under-a-displaced-remark-out.hs
@@ -0,0 +1,10 @@
+-- Where an operator joins its operand, their remarks are for one line. The
+-- second goes on a line of its own, and what carries it on goes with it.
+guess =
+  catA
+    [ isBinaryDoc
+        >>> constA isoLatin1, -- 0. guess
+        -- the content
+        -- this handling
+      getChildren -- 1. guess
+    ]
diff --git a/corpora/vendored/other/comment-carried-on-under-a-displaced-remark.hs b/corpora/vendored/other/comment-carried-on-under-a-displaced-remark.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/comment-carried-on-under-a-displaced-remark.hs
@@ -0,0 +1,8 @@
+-- Where an operator joins its operand, their remarks are for one line. The
+-- second goes on a line of its own, and what carries it on goes with it.
+guess = catA [ isBinaryDoc
+               >>>                    -- 0. guess
+               constA isoLatin1       -- the content
+                                      -- this handling
+             , getChildren            -- 1. guess
+             ]
diff --git a/corpora/vendored/other/comment-carried-on-under-a-remark-out.hs b/corpora/vendored/other/comment-carried-on-under-a-remark-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/comment-carried-on-under-a-remark-out.hs
@@ -0,0 +1,18 @@
+-- A comment lined up under the remark that ends the line above carries that
+-- remark on, and stays under it.
+data Directive
+  = Wrapper String -- use this wrapper
+  | ActionType String -- type signature of actions,
+                      -- with optional typeclasses
+  | TypeClass String
+
+data Record = Record
+  { actionType :: String, -- type signature of actions,
+                          -- with optional typeclasses
+    typeClass :: String
+  }
+
+carriedOn = a + b -- said once
+                  -- and never twice
+
+nextOne = 1
diff --git a/corpora/vendored/other/comment-carried-on-under-a-remark.hs b/corpora/vendored/other/comment-carried-on-under-a-remark.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/comment-carried-on-under-a-remark.hs
@@ -0,0 +1,17 @@
+-- A comment lined up under the remark that ends the line above carries that
+-- remark on, and stays under it.
+data Directive
+  = Wrapper String  -- use this wrapper
+  | ActionType String  -- type signature of actions,
+                       -- with optional typeclasses
+  | TypeClass String
+
+data Record = Record
+  { actionType :: String  -- type signature of actions,
+                          -- with optional typeclasses
+  , typeClass :: String
+  }
+
+carriedOn = a + b  -- said once
+                   -- and never twice
+nextOne = 1
diff --git a/corpora/vendored/other/comment-under-a-declaration-before-a-directive-out.hs b/corpora/vendored/other/comment-under-a-declaration-before-a-directive-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/comment-under-a-declaration-before-a-directive-out.hs
@@ -0,0 +1,15 @@
+{-# LANGUAGE CPP #-}
+
+-- An empty line next to a directive is the preprocessor support's to
+-- place: it goes under the #endif, and the comment stays under the
+-- declaration it was written under.
+module Kiln.Firing where
+
+#if MIN_VERSION_base(4,0,0)
+firingTemperature :: Int
+firingTemperature = 1280
+-- Cone 10, for stoneware.
+#endif
+
+coolingRate :: Int
+coolingRate = 100
diff --git a/corpora/vendored/other/comment-under-a-declaration-before-a-directive.hs b/corpora/vendored/other/comment-under-a-declaration-before-a-directive.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/comment-under-a-declaration-before-a-directive.hs
@@ -0,0 +1,15 @@
+{-# LANGUAGE CPP #-}
+
+-- An empty line next to a directive is the preprocessor support's to
+-- place: it goes under the #endif, and the comment stays under the
+-- declaration it was written under.
+module Kiln.Firing where
+
+#if MIN_VERSION_base(4,0,0)
+firingTemperature :: Int
+firingTemperature = 1280
+-- Cone 10, for stoneware.
+
+#endif
+coolingRate :: Int
+coolingRate = 100
diff --git a/corpora/vendored/other/comment-under-a-declaration-out.hs b/corpora/vendored/other/comment-under-a-declaration-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/comment-under-a-declaration-out.hs
@@ -0,0 +1,55 @@
+-- A comment written right under a declaration, with an empty line after
+-- it, is a remark on that declaration and stays with it.
+module Kiln.Firing where
+
+firingTemperature :: Int
+firingTemperature = 1280
+-- Cone 10, for stoneware.
+
+coolingRate :: Int
+coolingRate = 100
+-- Per hour, down to 600.
+
+-- Then left to cool on its own.
+soakMinutes :: Int
+soakMinutes = 30
+
+-- The same in a class and in an instance.
+class Glazed a where
+  glaze :: a -> String
+  -- Applied before the bisque firing.
+
+  coats :: a -> Int
+
+instance Glazed Int where
+  glaze _ = "celadon"
+  -- Thin, so that it pools in the carving.
+
+  coats _ = 2
+
+-- After a trailing comment as well.
+shelves :: Int
+shelves = 4 -- of silicon carbide
+-- Kiln wash on the top side only.
+
+posts :: Int
+posts = 12
+
+-- With no empty line under it, a comment is about what follows, and an
+-- empty line still goes between the two declarations.
+cones :: Int
+cones = 3
+
+-- Witness cones, one per shelf.
+coneHeight :: Int
+coneHeight = 2
+
+-- An empty line inside a block comment is no empty line between them.
+reduction :: Bool
+reduction = True
+
+{- Reduction starts at cone 010,
+
+   and ends with the firing. -}
+oxidation :: Bool
+oxidation = False
diff --git a/corpora/vendored/other/comment-under-a-declaration.hs b/corpora/vendored/other/comment-under-a-declaration.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/comment-under-a-declaration.hs
@@ -0,0 +1,53 @@
+-- A comment written right under a declaration, with an empty line after
+-- it, is a remark on that declaration and stays with it.
+module Kiln.Firing where
+
+firingTemperature :: Int
+firingTemperature = 1280
+-- Cone 10, for stoneware.
+
+coolingRate :: Int
+coolingRate = 100
+-- Per hour, down to 600.
+
+-- Then left to cool on its own.
+soakMinutes :: Int
+soakMinutes = 30
+
+-- The same in a class and in an instance.
+class Glazed a where
+  glaze :: a -> String
+  -- Applied before the bisque firing.
+
+  coats :: a -> Int
+
+instance Glazed Int where
+  glaze _ = "celadon"
+  -- Thin, so that it pools in the carving.
+
+  coats _ = 2
+
+-- After a trailing comment as well.
+shelves :: Int
+shelves = 4 -- of silicon carbide
+-- Kiln wash on the top side only.
+
+posts :: Int
+posts = 12
+
+-- With no empty line under it, a comment is about what follows, and an
+-- empty line still goes between the two declarations.
+cones :: Int
+cones = 3
+-- Witness cones, one per shelf.
+coneHeight :: Int
+coneHeight = 2
+
+-- An empty line inside a block comment is no empty line between them.
+reduction :: Bool
+reduction = True
+{- Reduction starts at cone 010,
+
+   and ends with the firing. -}
+oxidation :: Bool
+oxidation = False
diff --git a/corpora/vendored/other/comment-under-a-hoisted-pragma-after-another-out.hs b/corpora/vendored/other/comment-under-a-hoisted-pragma-after-another-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/comment-under-a-hoisted-pragma-after-another-out.hs
@@ -0,0 +1,9 @@
+--------------------
+
+{-# OPTIONS_GHC -Wall #-}
+
+-- | The module.
+
+-- a remark
+
+module T where
diff --git a/corpora/vendored/other/comment-under-a-hoisted-pragma-after-another.hs b/corpora/vendored/other/comment-under-a-hoisted-pragma-after-another.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/comment-under-a-hoisted-pragma-after-another.hs
@@ -0,0 +1,7 @@
+-- | The module.
+--------------------
+
+{-# OPTIONS_GHC -Wall #-}
+-- a remark
+
+module T where
diff --git a/corpora/vendored/other/comment-under-a-right-hand-side-above-the-in-keyword-out.hs b/corpora/vendored/other/comment-under-a-right-hand-side-above-the-in-keyword-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/comment-under-a-right-hand-side-above-the-in-keyword-out.hs
@@ -0,0 +1,7 @@
+module Route.Clamp where
+
+stops :: Int -> Int -> Int
+stops wanted total =
+  let served = min wanted total
+      -- never more than the line has
+   in served + 1
diff --git a/corpora/vendored/other/comment-under-a-right-hand-side-above-the-in-keyword.hs b/corpora/vendored/other/comment-under-a-right-hand-side-above-the-in-keyword.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/comment-under-a-right-hand-side-above-the-in-keyword.hs
@@ -0,0 +1,7 @@
+module Route.Clamp where
+
+stops :: Int -> Int -> Int
+stops wanted total =
+  let served = min wanted total
+        -- never more than the line has
+   in served + 1
diff --git a/corpora/vendored/other/comment-under-a-right-hand-side-out.hs b/corpora/vendored/other/comment-under-a-right-hand-side-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/comment-under-a-right-hand-side-out.hs
@@ -0,0 +1,41 @@
+module Alternatives where
+
+main :: IO ()
+main = do
+  let value =
+        one <|> two
+        -- Alt one two
+  print value
+
+combined =
+  one <|> two
+  -- Alt one two
+
+next = 1
+
+local = value
+  where
+    value =
+      one <|> two
+      -- Alt one two
+      -- and nothing else
+    other = 1
+
+apart = do
+  let value =
+        one <|> two
+  -- about what follows
+  print value
+
+bound = do
+  x <-
+    one <|> two
+    -- Alt one two
+  print x
+
+instance Semigroup Meta where
+  Meta a <> Meta b = Meta (b <> a)
+  -- the second one wins
+
+instance Monoid Meta where
+  mempty = Meta mempty
diff --git a/corpora/vendored/other/comment-under-a-right-hand-side.hs b/corpora/vendored/other/comment-under-a-right-hand-side.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/comment-under-a-right-hand-side.hs
@@ -0,0 +1,40 @@
+module Alternatives where
+
+main :: IO ()
+main = do
+  let value =
+        one <|> two
+        -- Alt one two
+  print value
+
+combined =
+  one <|> two
+  -- Alt one two
+next = 1
+
+local = value
+  where
+    value =
+      one <|> two
+      -- Alt one two
+      -- and nothing else
+    other = 1
+
+apart = do
+  let value =
+        one <|> two
+  -- about what follows
+  print value
+
+bound = do
+  x <-
+    one <|> two
+    -- Alt one two
+  print x
+
+instance Semigroup Meta where
+  Meta a <> Meta b = Meta (b <> a)
+  -- the second one wins
+
+instance Monoid Meta where
+  mempty = Meta mempty
diff --git a/corpora/vendored/other/comment-under-the-last-part-of-a-construct-out.hs b/corpora/vendored/other/comment-under-the-last-part-of-a-construct-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/comment-under-the-last-part-of-a-construct-out.hs
@@ -0,0 +1,52 @@
+-- A comment lined up with the last line of a construct, and not with what
+-- follows the construct, stays inside it.
+module Loom.Warp where
+
+import Control.Applicative ((<|>))
+
+threads ::
+  Int ->
+  Int
+  -- counted across the whole width
+threads ends = ends * 2
+
+tension :: Int
+tension = pull 3 4
+  where
+    pull ::
+      Int ->
+      -- \^ Weight on the beam
+      Int ->
+      -- \^ Turns of the brake
+      Int
+      -- \^ What the warp takes
+    pull weight turns = weight * turns
+
+data Shed
+  = Plain Int
+  | Twill
+      Int
+      -- Shafts raised
+      Int
+      -- Shafts lowered
+  deriving (Show)
+
+sett :: Maybe Int
+sett =
+  id
+    ( Just 12
+        <|> Just 16
+    )
+    -- ends per centimetre
+
+reed :: Int
+reed = 60
+
+selvedge :: String
+selvedge =
+  "doubled"
+    <> " ends"
+  -- on both sides
+
+beam :: Int
+beam = 2
diff --git a/corpora/vendored/other/comment-under-the-last-part-of-a-construct.hs b/corpora/vendored/other/comment-under-the-last-part-of-a-construct.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/comment-under-the-last-part-of-a-construct.hs
@@ -0,0 +1,47 @@
+-- A comment lined up with the last line of a construct, and not with what
+-- follows the construct, stays inside it.
+module Loom.Warp where
+
+import Control.Applicative ((<|>))
+
+threads
+  :: Int
+  -> Int
+  -- counted across the whole width
+threads ends = ends * 2
+
+tension :: Int
+tension = pull 3 4
+  where
+    pull
+      :: Int
+      -- ^ Weight on the beam
+      -> Int
+      -- ^ Turns of the brake
+      -> Int
+      -- ^ What the warp takes
+    pull weight turns = weight * turns
+
+data Shed
+  = Plain Int
+  | Twill
+      Int
+      -- Shafts raised
+      Int
+      -- Shafts lowered
+        deriving (Show)
+
+sett :: Maybe Int
+sett = id (Just 12
+            <|> Just 16)
+            -- ends per centimetre
+
+reed :: Int
+reed = 60
+
+selvedge :: String
+selvedge = "doubled"
+  <> " ends"
+  -- on both sides
+beam :: Int
+beam = 2
diff --git a/corpora/vendored/other/cpp/argument-at-the-end-behind-a-conditional-out.hs b/corpora/vendored/other/cpp/argument-at-the-end-behind-a-conditional-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/argument-at-the-end-behind-a-conditional-out.hs
@@ -0,0 +1,14 @@
+{-# LANGUAGE CPP #-}
+
+module Storage.Open (openFor) where
+
+import Storage.Handle
+
+openFor :: FilePath -> Mode -> IO Handle
+openFor path mode =
+  openWith
+    path
+    mode
+#if MIN_VERSION_storage(0,2,0)
+    closeOnExec
+#endif
diff --git a/corpora/vendored/other/cpp/argument-at-the-end-behind-a-conditional.hs b/corpora/vendored/other/cpp/argument-at-the-end-behind-a-conditional.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/argument-at-the-end-behind-a-conditional.hs
@@ -0,0 +1,12 @@
+{-# LANGUAGE CPP #-}
+
+module Storage.Open (openFor) where
+
+import Storage.Handle
+
+openFor :: FilePath -> Mode -> IO Handle
+openFor path mode  =
+  openWith path  mode
+#if MIN_VERSION_storage(0,2,0)
+    closeOnExec
+#endif
diff --git a/corpora/vendored/other/cpp/argument-behind-a-conditional-out.hs b/corpora/vendored/other/cpp/argument-behind-a-conditional-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/argument-behind-a-conditional-out.hs
@@ -0,0 +1,13 @@
+{-# LANGUAGE CPP #-}
+
+module Records.Process (process) where
+
+import Language.Haskell.TH
+
+process :: [Stmt] -> Exp -> Exp
+process statements result =
+  DoE
+#if MIN_VERSION_template_haskell(2,17,0)
+    Nothing
+#endif
+    (statements ++ [NoBindS result])
diff --git a/corpora/vendored/other/cpp/argument-behind-a-conditional.hs b/corpora/vendored/other/cpp/argument-behind-a-conditional.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/argument-behind-a-conditional.hs
@@ -0,0 +1,13 @@
+{-# LANGUAGE CPP #-}
+
+module Records.Process (process) where
+
+import Language.Haskell.TH
+
+process :: [Stmt] -> Exp -> Exp
+process statements result  =
+  DoE
+#if MIN_VERSION_template_haskell(2,17,0)
+    Nothing
+#endif
+    (statements  ++  [NoBindS result])
diff --git a/corpora/vendored/other/cpp/arguments-at-the-end-behind-alternatives-out.hs b/corpora/vendored/other/cpp/arguments-at-the-end-behind-alternatives-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/arguments-at-the-end-behind-alternatives-out.hs
@@ -0,0 +1,17 @@
+{-# LANGUAGE CPP #-}
+
+module Storage.Create (createFor) where
+
+import Storage.Handle
+
+createFor :: FilePath -> Mode -> IO Handle
+createFor path mode =
+  createWith
+    path
+    mode
+#if MIN_VERSION_storage(0,3,0)
+    closeOnExec
+    inheritable
+#elif MIN_VERSION_storage(0,2,0)
+    closeOnExec
+#endif
diff --git a/corpora/vendored/other/cpp/arguments-at-the-end-behind-alternatives.hs b/corpora/vendored/other/cpp/arguments-at-the-end-behind-alternatives.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/arguments-at-the-end-behind-alternatives.hs
@@ -0,0 +1,14 @@
+{-# LANGUAGE CPP #-}
+
+module Storage.Create (createFor) where
+
+import Storage.Handle
+
+createFor :: FilePath -> Mode -> IO Handle
+createFor path mode  =
+  createWith path  mode
+#if MIN_VERSION_storage(0,3,0)
+    closeOnExec  inheritable
+#elif MIN_VERSION_storage(0,2,0)
+    closeOnExec
+#endif
diff --git a/corpora/vendored/other/cpp/arguments-behind-alternatives-out.hs b/corpora/vendored/other/cpp/arguments-behind-alternatives-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/arguments-behind-alternatives-out.hs
@@ -0,0 +1,15 @@
+{-# LANGUAGE CPP #-}
+
+module Completion.Names (fromName) where
+
+import GHC
+
+fromName :: RdrName -> HsExpr GhcPs
+fromName name =
+#if __GLASGOW_HASKELL__ >= 806
+  HsVar
+    NoExt
+#else
+  HsVar
+#endif
+    (L noSrcSpan name)
diff --git a/corpora/vendored/other/cpp/arguments-behind-alternatives.hs b/corpora/vendored/other/cpp/arguments-behind-alternatives.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/arguments-behind-alternatives.hs
@@ -0,0 +1,14 @@
+{-# LANGUAGE CPP #-}
+
+module Completion.Names (fromName) where
+
+import GHC
+
+fromName :: RdrName -> HsExpr GhcPs
+fromName name  =
+#if __GLASGOW_HASKELL__ >= 806
+  HsVar NoExt
+#else
+  HsVar
+#endif
+    (L noSrcSpan  name)
diff --git a/corpora/vendored/other/cpp/bind-statement-begun-in-each-branch-out.hs b/corpora/vendored/other/cpp/bind-statement-begun-in-each-branch-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/bind-statement-begun-in-each-branch-out.hs
@@ -0,0 +1,20 @@
+{-# LANGUAGE CPP #-}
+
+module T where
+
+f :: Int -> IO Int
+f x = do
+#if MIN_VERSION_base(4,0,0)
+  y <-
+    g
+      (h x)
+      a
+      b
+#else
+  y <-
+    k
+      (h x)
+      a
+      b
+#endif
+  pure y
diff --git a/corpora/vendored/other/cpp/bind-statement-begun-in-each-branch.hs b/corpora/vendored/other/cpp/bind-statement-begun-in-each-branch.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/bind-statement-begun-in-each-branch.hs
@@ -0,0 +1,12 @@
+{-# LANGUAGE CPP #-}
+module T where
+
+f :: Int -> IO Int
+f x = do
+#if MIN_VERSION_base(4,0,0)
+  y <- g (h x)
+#else
+  y <- k (h x)
+#endif
+         a b
+  pure y
diff --git a/corpora/vendored/other/cpp/bind-statement-finished-after-a-conditional-out.hs b/corpora/vendored/other/cpp/bind-statement-finished-after-a-conditional-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/bind-statement-finished-after-a-conditional-out.hs
@@ -0,0 +1,13 @@
+{-# LANGUAGE CPP #-}
+
+module T where
+
+f :: Int -> IO Int
+f x = do
+#if MIN_VERSION_base(4,0,0)
+  (y, _) <-
+#else
+  y <-
+#endif
+    g x
+  pure y
diff --git a/corpora/vendored/other/cpp/bind-statement-finished-after-a-conditional.hs b/corpora/vendored/other/cpp/bind-statement-finished-after-a-conditional.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/bind-statement-finished-after-a-conditional.hs
@@ -0,0 +1,12 @@
+{-# LANGUAGE CPP #-}
+module T where
+
+f :: Int -> IO Int
+f x = do
+#if MIN_VERSION_base(4,0,0)
+  (y, _) <-
+#else
+  y <-
+#endif
+    g x
+  pure y
diff --git a/corpora/vendored/other/cpp/branch-holding-only-a-comment-out.hs b/corpora/vendored/other/cpp/branch-holding-only-a-comment-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/branch-holding-only-a-comment-out.hs
@@ -0,0 +1,13 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Features where
+
+supportsColour :: Bool
+supportsColour = True
+
+#ifdef WINDOWS
+-- The console has no bracketed paste mode.
+#endif
+
+supportsPaste :: Bool
+supportsPaste = True
diff --git a/corpora/vendored/other/cpp/branch-holding-only-a-comment.hs b/corpora/vendored/other/cpp/branch-holding-only-a-comment.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/branch-holding-only-a-comment.hs
@@ -0,0 +1,13 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Features where
+
+supportsColour :: Bool
+supportsColour  =  True
+
+#ifdef WINDOWS
+-- The console has no bracketed paste mode.
+#endif
+
+supportsPaste :: Bool
+supportsPaste  =  True
diff --git a/corpora/vendored/other/cpp/branch-holding-only-an-error-out.hs b/corpora/vendored/other/cpp/branch-holding-only-an-error-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/branch-holding-only-an-error-out.hs
@@ -0,0 +1,17 @@
+{-# LANGUAGE CPP #-}
+
+module Word (wordSize) where
+
+#if !defined(__GLASGOW_HASKELL__)
+#error "Only GHC is supported."
+#endif
+
+wordSize :: Int
+wordSize =
+#if WORD_SIZE_IN_BITS == 64
+  64
+#elif WORD_SIZE_IN_BITS == 32
+  32
+#else
+#error "Unsupported word size."
+#endif
diff --git a/corpora/vendored/other/cpp/branch-holding-only-an-error.hs b/corpora/vendored/other/cpp/branch-holding-only-an-error.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/branch-holding-only-an-error.hs
@@ -0,0 +1,17 @@
+{-# LANGUAGE CPP #-}
+
+module Word (wordSize) where
+
+#if !defined(__GLASGOW_HASKELL__)
+#error "Only GHC is supported."
+#endif
+
+wordSize :: Int
+wordSize =
+#if WORD_SIZE_IN_BITS == 64
+  64
+#elif WORD_SIZE_IN_BITS == 32
+  32
+#else
+#error "Unsupported word size."
+#endif
diff --git a/corpora/vendored/other/cpp/branch-opening-a-bracket-it-does-not-close.hs b/corpora/vendored/other/cpp/branch-opening-a-bracket-it-does-not-close.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/branch-opening-a-bracket-it-does-not-close.hs
@@ -0,0 +1,8 @@
+{-# LANGUAGE CPP #-}
+
+module M where
+
+#ifdef FOO
+f = (1
+#endif
+  + 2)
diff --git a/corpora/vendored/other/cpp/branches-ending-a-body-differently-out.hs b/corpora/vendored/other/cpp/branches-ending-a-body-differently-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/branches-ending-a-body-differently-out.hs
@@ -0,0 +1,14 @@
+{-# LANGUAGE CPP #-}
+
+module Console.Encoding where
+
+unicodeSupported :: Handle -> IO Bool
+unicodeSupported h = do
+#ifndef __MHS__
+  (== Just "UTF-8") . fmap show <$> hGetEncoding h
+#else
+  return True
+
+canonicalize :: FilePath -> IO FilePath
+canonicalize = return
+#endif
diff --git a/corpora/vendored/other/cpp/branches-ending-a-body-differently.hs b/corpora/vendored/other/cpp/branches-ending-a-body-differently.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/branches-ending-a-body-differently.hs
@@ -0,0 +1,14 @@
+{-# LANGUAGE CPP #-}
+
+module Console.Encoding where
+
+unicodeSupported :: Handle -> IO Bool
+unicodeSupported h = do
+#ifndef __MHS__
+  (== Just "UTF-8") . fmap show <$> hGetEncoding h
+#else
+  return True
+
+canonicalize :: FilePath -> IO FilePath
+canonicalize = return
+#endif
diff --git a/corpora/vendored/other/cpp/branches-of-different-lengths-out.hs b/corpora/vendored/other/cpp/branches-of-different-lengths-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/branches-of-different-lengths-out.hs
@@ -0,0 +1,15 @@
+{-# LANGUAGE CPP #-}
+
+module M where
+
+before = 1
+
+#ifdef FOO
+mid = case x of
+  A -> 1
+  B -> 2
+#else
+mid = 3
+#endif
+
+after = 4
diff --git a/corpora/vendored/other/cpp/branches-of-different-lengths.hs b/corpora/vendored/other/cpp/branches-of-different-lengths.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/branches-of-different-lengths.hs
@@ -0,0 +1,15 @@
+{-# LANGUAGE CPP #-}
+
+module M where
+
+before = 1
+
+#ifdef FOO
+mid = case x of
+  A -> 1
+  B -> 2
+#else
+mid = 3
+#endif
+
+after = 4
diff --git a/corpora/vendored/other/cpp/branches-saying-the-same-thing-out.hs b/corpora/vendored/other/cpp/branches-saying-the-same-thing-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/branches-saying-the-same-thing-out.hs
@@ -0,0 +1,9 @@
+{-# LANGUAGE CPP #-}
+
+module M where
+
+#ifdef FOO
+mid = 2
+#else
+mid = 2
+#endif
diff --git a/corpora/vendored/other/cpp/branches-saying-the-same-thing.hs b/corpora/vendored/other/cpp/branches-saying-the-same-thing.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/branches-saying-the-same-thing.hs
@@ -0,0 +1,9 @@
+{-# LANGUAGE CPP #-}
+
+module M where
+
+#ifdef FOO
+mid = 2
+#else
+mid  =  2
+#endif
diff --git a/corpora/vendored/other/cpp/comma-after-a-conditional-inside-an-item-out.hs b/corpora/vendored/other/cpp/comma-after-a-conditional-inside-an-item-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comma-after-a-conditional-inside-an-item-out.hs
@@ -0,0 +1,14 @@
+{-# LANGUAGE CPP #-}
+
+module Options where
+
+data Options = Options
+  { optionsLevel ::
+      Maybe
+#if MIN_VERSION_base(4,18,0)
+        Natural,
+#else
+        Int,
+#endif
+    optionsName :: Text
+  }
diff --git a/corpora/vendored/other/cpp/comma-after-a-conditional-inside-an-item.hs b/corpora/vendored/other/cpp/comma-after-a-conditional-inside-an-item.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comma-after-a-conditional-inside-an-item.hs
@@ -0,0 +1,13 @@
+{-# LANGUAGE CPP #-}
+
+module Options where
+
+data Options = Options
+  { optionsLevel :: Maybe
+#if MIN_VERSION_base(4,18,0)
+      Natural
+#else
+      Int
+#endif
+  , optionsName :: Text
+  }
diff --git a/corpora/vendored/other/cpp/comma-after-a-varying-item-out.hs b/corpora/vendored/other/cpp/comma-after-a-varying-item-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comma-after-a-varying-item-out.hs
@@ -0,0 +1,16 @@
+{-# LANGUAGE CPP #-}
+
+module Records.Info where
+
+data RecordInfo = RecordInfo
+  { name :: Name,
+    constraints :: Cxt,
+#if MIN_VERSION_template_haskell(2,21,0)
+    typeVarBinders :: [TyVarBndr BndrVis],
+#elif MIN_VERSION_template_haskell(2,17,0)
+    typeVarBinders :: [TyVarBndr ()],
+#else
+    typeVarBinders :: [TyVarBndr],
+#endif
+    kind :: Maybe Kind
+  }
diff --git a/corpora/vendored/other/cpp/comma-after-a-varying-item.hs b/corpora/vendored/other/cpp/comma-after-a-varying-item.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comma-after-a-varying-item.hs
@@ -0,0 +1,16 @@
+{-# LANGUAGE CPP #-}
+
+module Records.Info where
+
+data RecordInfo = RecordInfo
+  { name :: Name
+  , constraints :: Cxt
+#if MIN_VERSION_template_haskell(2,21,0)
+  , typeVarBinders :: [TyVarBndr BndrVis]
+#elif MIN_VERSION_template_haskell(2,17,0)
+  , typeVarBinders :: [TyVarBndr ()]
+#else
+  , typeVarBinders :: [TyVarBndr]
+#endif
+  , kind :: Maybe Kind
+  }
diff --git a/corpora/vendored/other/cpp/comma-after-nested-conditionals-out.hs b/corpora/vendored/other/cpp/comma-after-nested-conditionals-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comma-after-nested-conditionals-out.hs
@@ -0,0 +1,18 @@
+{-# LANGUAGE CPP #-}
+
+module Flags where
+
+flags :: [Flag]
+flags =
+  [ verbose,
+#ifdef WINDOWS
+#if WORD_SIZE_IN_BITS == 64
+    wide,
+#else
+    narrow,
+#endif
+#else
+    posix,
+#endif
+    quiet
+  ]
diff --git a/corpora/vendored/other/cpp/comma-after-nested-conditionals.hs b/corpora/vendored/other/cpp/comma-after-nested-conditionals.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comma-after-nested-conditionals.hs
@@ -0,0 +1,18 @@
+{-# LANGUAGE CPP #-}
+
+module Flags where
+
+flags :: [Flag]
+flags =
+  [ verbose
+#ifdef WINDOWS
+#if WORD_SIZE_IN_BITS == 64
+  , wide
+#else
+  , narrow
+#endif
+#else
+  , posix
+#endif
+  , quiet
+  ]
diff --git a/corpora/vendored/other/cpp/comma-after-several-varying-items-out.hs b/corpora/vendored/other/cpp/comma-after-several-varying-items-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comma-after-several-varying-items-out.hs
@@ -0,0 +1,18 @@
+{-# LANGUAGE CPP #-}
+
+module Test.State where
+
+state :: State
+state =
+  MkState
+    { terminal = undefined,
+      coverageConfidence = undefined,
+#if MIN_VERSION_QuickCheck(2,15,0)
+      maxTestSize = 0,
+      replayStartSize = undefined,
+#else
+      computeSize = undefined,
+#endif
+      numTotMaxShrinks = 0,
+      expected = True
+    }
diff --git a/corpora/vendored/other/cpp/comma-after-several-varying-items.hs b/corpora/vendored/other/cpp/comma-after-several-varying-items.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comma-after-several-varying-items.hs
@@ -0,0 +1,17 @@
+{-# LANGUAGE CPP #-}
+
+module Test.State where
+
+state :: State
+state = MkState
+  { terminal = undefined
+  , coverageConfidence = undefined
+#if MIN_VERSION_QuickCheck(2,15,0)
+  , maxTestSize = 0
+  , replayStartSize = undefined
+#else
+  , computeSize = undefined
+#endif
+  , numTotMaxShrinks = 0
+  , expected = True
+  }
diff --git a/corpora/vendored/other/cpp/comma-before-varying-last-items-in-a-row-out.hs b/corpora/vendored/other/cpp/comma-before-varying-last-items-in-a-row-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comma-before-varying-last-items-in-a-row-out.hs
@@ -0,0 +1,21 @@
+{-# LANGUAGE CPP #-}
+#if __GLASGOW_HASKELL__ >= 708
+{-# LANGUAGE DataKinds #-}
+#endif
+
+module Shapes.Generic where
+
+-- Where the module is formatted once per answer to a question, items under
+-- that question come last in one answer and are followed by more in the
+-- other. The items before them still come out once, as written.
+data Shape = Circle | Square
+  deriving
+    ( Eq,
+      Ord
+#if __GLASGOW_HASKELL__ >= 704
+      , Generic
+#endif
+#if __GLASGOW_HASKELL__ >= 708
+      , Generic1
+#endif
+    )
diff --git a/corpora/vendored/other/cpp/comma-before-varying-last-items-in-a-row.hs b/corpora/vendored/other/cpp/comma-before-varying-last-items-in-a-row.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comma-before-varying-last-items-in-a-row.hs
@@ -0,0 +1,19 @@
+{-# LANGUAGE CPP #-}
+#if __GLASGOW_HASKELL__ >= 708
+{-# LANGUAGE DataKinds #-}
+#endif
+
+module Shapes.Generic where
+
+-- Where the module is formatted once per answer to a question, items under
+-- that question come last in one answer and are followed by more in the
+-- other. The items before them still come out once, as written.
+data Shape = Circle | Square
+  deriving ( Eq, Ord
+#if __GLASGOW_HASKELL__ >= 704
+           , Generic
+#endif
+#if __GLASGOW_HASKELL__ >= 708
+           , Generic1
+#endif
+           )
diff --git a/corpora/vendored/other/cpp/comma-before-varying-last-items-out.hs b/corpora/vendored/other/cpp/comma-before-varying-last-items-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comma-before-varying-last-items-out.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE CPP #-}
+
+module Shapes.Derived where
+
+-- The comma before items that only some configurations have, where nothing
+-- follows them, goes on the line of the first of them.
+data Shape = Circle | Square
+  deriving
+    ( Eq,
+      Ord
+#ifdef WITH_SHOW
+      , Show
+#endif
+#ifdef WITH_DATA
+      , Data,
+      Typeable
+#endif
+    )
+
+palette :: [Colour]
+palette =
+  [ red,
+    green
+#ifdef WIDE_GAMUT
+    , teal
+#endif
+  ]
diff --git a/corpora/vendored/other/cpp/comma-before-varying-last-items.hs b/corpora/vendored/other/cpp/comma-before-varying-last-items.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comma-before-varying-last-items.hs
@@ -0,0 +1,22 @@
+{-# LANGUAGE CPP #-}
+
+module Shapes.Derived where
+
+-- The comma before items that only some configurations have, where nothing
+-- follows them, goes on the line of the first of them.
+data Shape = Circle | Square
+  deriving ( Eq, Ord
+#ifdef WITH_SHOW
+           , Show
+#endif
+#ifdef WITH_DATA
+           , Data, Typeable
+#endif
+           )
+
+palette :: [Colour]
+palette = [ red, green
+#ifdef WIDE_GAMUT
+          , teal
+#endif
+          ]
diff --git a/corpora/vendored/other/cpp/comment-above-a-conditional-at-the-end-of-a-branch-out.hs b/corpora/vendored/other/cpp/comment-above-a-conditional-at-the-end-of-a-branch-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comment-above-a-conditional-at-the-end-of-a-branch-out.hs
@@ -0,0 +1,19 @@
+{-# LANGUAGE CPP #-}
+
+module Route.Vehicle where
+
+data Vehicle
+  =
+#ifdef WITH_TRAMS
+  Bus
+    { busLine :: Int
+    }
+  | -- buses run on every route
+
+    Tram
+#else
+  Bus
+  { busLine :: Int
+  }
+-- buses run on every route
+#endif
diff --git a/corpora/vendored/other/cpp/comment-above-a-conditional-at-the-end-of-a-branch.hs b/corpora/vendored/other/cpp/comment-above-a-conditional-at-the-end-of-a-branch.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comment-above-a-conditional-at-the-end-of-a-branch.hs
@@ -0,0 +1,13 @@
+{-# LANGUAGE CPP #-}
+
+module Route.Vehicle where
+
+data Vehicle =
+  Bus {
+    busLine :: Int
+  }
+  -- buses run on every route
+
+#ifdef WITH_TRAMS
+  | Tram
+#endif
diff --git a/corpora/vendored/other/cpp/comment-above-a-conditional-in-a-where-clause-out.hs b/corpora/vendored/other/cpp/comment-above-a-conditional-in-a-where-clause-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comment-above-a-conditional-in-a-where-clause-out.hs
@@ -0,0 +1,20 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Format (formatOf) where
+
+import System.FilePath (takeExtension)
+import Terminal.Format.Types
+
+formatOf :: FilePath -> Format
+formatOf path = go (takeExtension path)
+  where
+    go ".txt" = Plain
+    go ".ansi" = Escaped
+#if MIN_VERSION_zlib(0,6,0)
+    go ".z" = Deflated
+#endif
+-- Only a new enough encoder knows the compressed form.
+#if MIN_VERSION_zlib(0,7,0)
+    go ".gz" = Compressed
+#endif
+    go _ = Binary -- anything else is passed through
diff --git a/corpora/vendored/other/cpp/comment-above-a-conditional-in-a-where-clause.hs b/corpora/vendored/other/cpp/comment-above-a-conditional-in-a-where-clause.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comment-above-a-conditional-in-a-where-clause.hs
@@ -0,0 +1,20 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Format (formatOf) where
+
+import System.FilePath (takeExtension)
+import Terminal.Format.Types
+
+formatOf :: FilePath -> Format
+formatOf path = go (takeExtension path)
+  where
+    go ".txt"   = Plain
+    go ".ansi"  = Escaped
+#if MIN_VERSION_zlib(0,6,0)
+    go ".z"     = Deflated
+#endif
+    -- Only a new enough encoder knows the compressed form.
+#if MIN_VERSION_zlib(0,7,0)
+    go ".gz"    = Compressed
+#endif
+    go _        = Binary  -- anything else is passed through
diff --git a/corpora/vendored/other/cpp/comment-above-a-conditional-out.hs b/corpora/vendored/other/cpp/comment-above-a-conditional-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comment-above-a-conditional-out.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Colour
+  ( -- * Colours
+    Colour (..),
+
+-- A terminal without true colour knows only the sixteen named ones.
+#ifdef TRUE_COLOUR
+    rgb,
+#else
+    named,
+
+-- The bright ones are an extension of their own.
+#ifdef BRIGHT
+    -- ** Bright
+    bright,
+#endif
+#endif
+
+    -- * Rendering
+    render,
+  )
+where
+
+import Terminal.Colour.Internal
diff --git a/corpora/vendored/other/cpp/comment-above-a-conditional.hs b/corpora/vendored/other/cpp/comment-above-a-conditional.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comment-above-a-conditional.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Colour
+  ( -- * Colours
+    Colour (..),
+
+    -- A terminal without true colour knows only the sixteen named ones.
+#ifdef TRUE_COLOUR
+    rgb,
+#else
+    named,
+
+    -- The bright ones are an extension of their own.
+#ifdef BRIGHT
+    -- ** Bright
+    bright,
+#endif
+
+#endif
+
+    -- * Rendering
+    render,
+  )
+where
+
+import Terminal.Colour.Internal
diff --git a/corpora/vendored/other/cpp/comment-above-a-directive-at-a-distance-out.hs b/corpora/vendored/other/cpp/comment-above-a-directive-at-a-distance-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comment-above-a-directive-at-a-distance-out.hs
@@ -0,0 +1,13 @@
+{-# LANGUAGE CPP #-}
+
+module Main (main) where
+
+main :: IO ()
+main = do
+  putStrLn "start"
+  -- Sockets are not available on Windows.
+
+#if !defined(mingw32_HOST_OS)
+  putStrLn "sockets"
+#endif
+  putStrLn "stop"
diff --git a/corpora/vendored/other/cpp/comment-above-a-directive-at-a-distance.hs b/corpora/vendored/other/cpp/comment-above-a-directive-at-a-distance.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comment-above-a-directive-at-a-distance.hs
@@ -0,0 +1,13 @@
+{-# LANGUAGE CPP #-}
+
+module Main (main) where
+
+main :: IO ()
+main = do
+  putStrLn "start"
+  -- Sockets are not available on Windows.
+
+#if !defined(mingw32_HOST_OS)
+  putStrLn "sockets"
+#endif
+  putStrLn "stop"
diff --git a/corpora/vendored/other/cpp/comment-above-a-heading-in-one-branch-of-many-out.hs b/corpora/vendored/other/cpp/comment-above-a-heading-in-one-branch-of-many-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comment-above-a-heading-in-one-branch-of-many-out.hs
@@ -0,0 +1,20 @@
+{-# LANGUAGE CPP #-}
+
+module M where
+
+#if MIN_VERSION_thing(9,0,0)
+#endif
+#ifdef OTHER
+#else /* OTHER */
+-- a remark
+#if MIN_VERSION_thing(9,0,0)
+-- * a heading
+#endif
+#endif /* OTHER */
+#if FLAG
+f2 = 2
+
+-- | documentation
+#else
+f1 = 1
+#endif
diff --git a/corpora/vendored/other/cpp/comment-above-a-heading-in-one-branch-of-many.hs b/corpora/vendored/other/cpp/comment-above-a-heading-in-one-branch-of-many.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comment-above-a-heading-in-one-branch-of-many.hs
@@ -0,0 +1,19 @@
+{-# LANGUAGE CPP #-}
+
+module M where
+
+#if MIN_VERSION_thing(9,0,0)
+#endif
+#ifdef OTHER
+#else /* OTHER */
+-- a remark
+#if MIN_VERSION_thing(9,0,0)
+-- * a heading
+#endif
+#endif /* OTHER */
+#if FLAG
+f2 = 2
+-- | documentation
+#else
+f1 = 1
+#endif
diff --git a/corpora/vendored/other/cpp/comment-above-a-heading-in-one-branch-out.hs b/corpora/vendored/other/cpp/comment-above-a-heading-in-one-branch-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comment-above-a-heading-in-one-branch-out.hs
@@ -0,0 +1,18 @@
+{-# LANGUAGE CPP #-}
+
+module M where
+
+#if MIN_VERSION_thing(9,0,0)
+-- * a heading
+
+f8 = 8
+#else
+-- * a heading
+#endif
+#if MIN_VERSION_thing(1,0,0)
+#else
+-- a remark
+#if MIN_VERSION_thing(9,0,0)
+-- * a heading
+#endif
+#endif
diff --git a/corpora/vendored/other/cpp/comment-above-a-heading-in-one-branch.hs b/corpora/vendored/other/cpp/comment-above-a-heading-in-one-branch.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comment-above-a-heading-in-one-branch.hs
@@ -0,0 +1,17 @@
+{-# LANGUAGE CPP #-}
+
+module M where
+
+#if MIN_VERSION_thing(9,0,0)
+-- * a heading
+f8 = 8
+#else
+-- * a heading
+#endif
+#if MIN_VERSION_thing(1,0,0)
+#else
+-- a remark
+#if MIN_VERSION_thing(9,0,0)
+-- * a heading
+#endif
+#endif
diff --git a/corpora/vendored/other/cpp/comment-above-the-haddock-of-a-constructor-behind-a-conditional-out.hs b/corpora/vendored/other/cpp/comment-above-the-haddock-of-a-constructor-behind-a-conditional-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comment-above-the-haddock-of-a-constructor-behind-a-conditional-out.hs
@@ -0,0 +1,20 @@
+{-# LANGUAGE CPP #-}
+
+module Route.Vehicle where
+
+data Vehicle
+  =
+#ifdef WITH_TRAMS
+  Bus
+    { busLine :: Int
+    }
+  | -- buses run on every route
+
+    -- | Only where there are rails.
+    Tram
+#else
+  Bus
+  { busLine :: Int
+  }
+-- buses run on every route
+#endif
diff --git a/corpora/vendored/other/cpp/comment-above-the-haddock-of-a-constructor-behind-a-conditional.hs b/corpora/vendored/other/cpp/comment-above-the-haddock-of-a-constructor-behind-a-conditional.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comment-above-the-haddock-of-a-constructor-behind-a-conditional.hs
@@ -0,0 +1,13 @@
+{-# LANGUAGE CPP #-}
+
+module Route.Vehicle where
+
+data Vehicle =
+  Bus {
+    busLine :: Int
+  }
+  -- buses run on every route
+#ifdef WITH_TRAMS
+  | Tram
+  -- ^ Only where there are rails.
+#endif
diff --git a/corpora/vendored/other/cpp/comment-above-the-in-keyword-before-a-directive-out.hs b/corpora/vendored/other/cpp/comment-above-the-in-keyword-before-a-directive-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comment-above-the-in-keyword-before-a-directive-out.hs
@@ -0,0 +1,14 @@
+{-# LANGUAGE CPP #-}
+
+module Route.Night where
+
+surcharge :: Int -> Int
+surcharge fare =
+  let base = fare + 1
+      -- night buses cost more where they run
+   in
+#ifdef NIGHT_SERVICE
+      base * 2
+#else
+      base
+#endif
diff --git a/corpora/vendored/other/cpp/comment-above-the-in-keyword-before-a-directive.hs b/corpora/vendored/other/cpp/comment-above-the-in-keyword-before-a-directive.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comment-above-the-in-keyword-before-a-directive.hs
@@ -0,0 +1,14 @@
+{-# LANGUAGE CPP #-}
+
+module Route.Night where
+
+surcharge :: Int -> Int
+surcharge fare =
+  let base = fare + 1
+  -- night buses cost more where they run
+  in
+#ifdef NIGHT_SERVICE
+     base * 2
+#else
+     base
+#endif
diff --git a/corpora/vendored/other/cpp/comment-at-the-end-of-a-branch-out.hs b/corpora/vendored/other/cpp/comment-at-the-end-of-a-branch-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comment-at-the-end-of-a-branch-out.hs
@@ -0,0 +1,14 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Timing where
+
+timeout :: Int
+#ifdef SLOW_LINK
+timeout = 30000
+-- A serial line needs a great deal longer than a pipe does.
+#else
+timeout = 250
+#endif
+
+retries :: Int
+retries = 3
diff --git a/corpora/vendored/other/cpp/comment-at-the-end-of-a-branch.hs b/corpora/vendored/other/cpp/comment-at-the-end-of-a-branch.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comment-at-the-end-of-a-branch.hs
@@ -0,0 +1,14 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Timing where
+
+timeout :: Int
+#ifdef SLOW_LINK
+timeout  =  30000
+-- A serial line needs a great deal longer than a pipe does.
+#else
+timeout  =  250
+#endif
+
+retries :: Int
+retries  =  3
diff --git a/corpora/vendored/other/cpp/comment-before-a-constructor-behind-a-conditional-out.hs b/corpora/vendored/other/cpp/comment-before-a-constructor-behind-a-conditional-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comment-before-a-constructor-behind-a-conditional-out.hs
@@ -0,0 +1,18 @@
+{-# LANGUAGE CPP #-}
+
+module Route.Vehicle where
+
+data Vehicle
+  =
+#ifdef WITH_TRAMS
+  Bus
+    { busLine :: Int
+    }
+  | -- buses run on every route
+    Tram
+#else
+  Bus
+  { busLine :: Int
+  }
+-- buses run on every route
+#endif
diff --git a/corpora/vendored/other/cpp/comment-before-a-constructor-behind-a-conditional.hs b/corpora/vendored/other/cpp/comment-before-a-constructor-behind-a-conditional.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comment-before-a-constructor-behind-a-conditional.hs
@@ -0,0 +1,12 @@
+{-# LANGUAGE CPP #-}
+
+module Route.Vehicle where
+
+data Vehicle =
+  Bus {
+    busLine :: Int
+  }
+  -- buses run on every route
+#ifdef WITH_TRAMS
+  | Tram
+#endif
diff --git a/corpora/vendored/other/cpp/comments-either-side-of-a-conditional-out.hs b/corpora/vendored/other/cpp/comments-either-side-of-a-conditional-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comments-either-side-of-a-conditional-out.hs
@@ -0,0 +1,15 @@
+{-# LANGUAGE CPP #-}
+
+module M where
+
+-- above
+before = 1 -- trailing
+
+#ifdef FOO
+mid = 2
+#else
+mid = 3
+#endif
+
+-- below
+after = 4
diff --git a/corpora/vendored/other/cpp/comments-either-side-of-a-conditional.hs b/corpora/vendored/other/cpp/comments-either-side-of-a-conditional.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/comments-either-side-of-a-conditional.hs
@@ -0,0 +1,15 @@
+{-# LANGUAGE CPP #-}
+
+module M where
+
+-- above
+before = 1 -- trailing
+
+#ifdef FOO
+mid = 2
+#else
+mid = 3
+#endif
+
+-- below
+after = 4
diff --git a/corpora/vendored/other/cpp/compiler-version-settled-by-another-out.hs b/corpora/vendored/other/cpp/compiler-version-settled-by-another-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/compiler-version-settled-by-another-out.hs
@@ -0,0 +1,21 @@
+{-# LANGUAGE CPP #-}
+#if __GLASGOW_HASKELL__ >= 800
+{-# LANGUAGE MagicHash #-}
+#endif
+
+module Unboxed where
+
+import GHC.Exts
+
+#if __GLASGOW_HASKELL__ >= 802
+unbox :: Int -> Int#
+unbox (I# n) = n
+#endif
+
+#if __GLASGOW_HASKELL__ > 900
+twice :: Int# -> Int#
+twice n = n *# 2#
+#else
+twice :: Int -> Int
+twice n = n * 2
+#endif
diff --git a/corpora/vendored/other/cpp/compiler-version-settled-by-another.hs b/corpora/vendored/other/cpp/compiler-version-settled-by-another.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/compiler-version-settled-by-another.hs
@@ -0,0 +1,20 @@
+{-# LANGUAGE CPP #-}
+#if __GLASGOW_HASKELL__ >= 800
+{-# LANGUAGE MagicHash #-}
+#endif
+module Unboxed where
+
+import GHC.Exts
+
+#if __GLASGOW_HASKELL__ >= 802
+unbox :: Int -> Int#
+unbox (I# n) = n
+#endif
+
+#if __GLASGOW_HASKELL__ > 900
+twice :: Int# -> Int#
+twice n = n *# 2#
+#else
+twice :: Int -> Int
+twice n = n*2
+#endif
diff --git a/corpora/vendored/other/cpp/conditional-extending-an-operand-out.hs b/corpora/vendored/other/cpp/conditional-extending-an-operand-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/conditional-extending-an-operand-out.hs
@@ -0,0 +1,14 @@
+{-# LANGUAGE CPP #-}
+
+module Main (main) where
+
+import qualified Properties
+import Test.QuickCheck (quickCheck)
+
+main :: IO ()
+main =
+  mapM_ quickCheck $
+    Properties.basic
+#if __GLASGOW_HASKELL__ >= 800
+      ++ Properties.nonEmpty
+#endif
diff --git a/corpora/vendored/other/cpp/conditional-extending-an-operand.hs b/corpora/vendored/other/cpp/conditional-extending-an-operand.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/conditional-extending-an-operand.hs
@@ -0,0 +1,14 @@
+{-# LANGUAGE CPP #-}
+
+module Main (main) where
+
+import qualified Properties
+import Test.QuickCheck (quickCheck)
+
+main :: IO ()
+main =
+  mapM_ quickCheck $
+    Properties.basic
+#if __GLASGOW_HASKELL__ >= 800
+      ++ Properties.nonEmpty
+#endif
diff --git a/corpora/vendored/other/cpp/conditional-from-a-where-clause-into-declarations-out.hs b/corpora/vendored/other/cpp/conditional-from-a-where-clause-into-declarations-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/conditional-from-a-where-clause-into-declarations-out.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE CPP #-}
+
+-- A conditional that begins in a where clause and goes on into the
+-- declarations after it stays one conditional.
+module Data.Witness where
+
+withWitness :: Witness a -> ((Known a) => r) -> r
+withWitness w k = go k
+  where
+    go :: ((Known a) => r) -> r
+#if MIN_VERSION_base(4,17,0)
+    go = withDict @(Known a) w
+#else
+    go r = unsafeCoerce (Wrap r) w
+
+-- the dictionary of a class with one method is that method
+#if __GLASGOW_HASKELL__ >= 810
+type Wrap :: Type -> Type -> Type
+#endif
+newtype Wrap a r = Wrap ((Known a) => r)
+#endif
+
+-- Without an #else.
+render :: Witness a -> String
+render w = label w
+  where
+    label _ = "witness"
+#if WITNESS_DEBUG
+    debug = show . Debugged
+
+#if __GLASGOW_HASKELL__ >= 810
+type Debugged :: Type -> Type
+#endif
+newtype Debugged a = Debugged (Witness a)
+  deriving (Show)
+#endif
+
+-- Bindings lined up after a let leave the conditional in two.
+trace :: Witness a -> IO ()
+trace w = do
+  let name = "witness"
+#if WITNESS_DEBUG
+      shown = show (Debugged w)
+#endif
+#if WITNESS_DEBUG
+#if __GLASGOW_HASKELL__ >= 810
+  putStrLn shown
+#endif
+#endif
+  putStrLn name
diff --git a/corpora/vendored/other/cpp/conditional-from-a-where-clause-into-declarations.hs b/corpora/vendored/other/cpp/conditional-from-a-where-clause-into-declarations.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/conditional-from-a-where-clause-into-declarations.hs
@@ -0,0 +1,49 @@
+{-# LANGUAGE CPP #-}
+
+-- A conditional that begins in a where clause and goes on into the
+-- declarations after it stays one conditional.
+module Data.Witness where
+
+withWitness :: Witness a -> ((Known a) => r) -> r
+withWitness w k = go k
+  where
+    go :: ((Known a) => r) -> r
+#if MIN_VERSION_base(4,17,0)
+    go = withDict @(Known a) w
+#else
+    go r = unsafeCoerce (Wrap r) w
+
+-- the dictionary of a class with one method is that method
+#if __GLASGOW_HASKELL__ >= 810
+type Wrap :: Type -> Type -> Type
+#endif
+newtype Wrap a r = Wrap ((Known a) => r)
+#endif
+
+-- Without an #else.
+render :: Witness a -> String
+render w = label w
+  where
+    label _ = "witness"
+#if WITNESS_DEBUG
+    debug = show . Debugged
+
+#if __GLASGOW_HASKELL__ >= 810
+type Debugged :: Type -> Type
+#endif
+newtype Debugged a = Debugged (Witness a)
+  deriving (Show)
+#endif
+
+-- Bindings lined up after a let leave the conditional in two.
+trace :: Witness a -> IO ()
+trace w = do
+  let
+    name = "witness"
+#if WITNESS_DEBUG
+    shown = show (Debugged w)
+#if __GLASGOW_HASKELL__ >= 810
+  putStrLn shown
+#endif
+#endif
+  putStrLn name
diff --git a/corpora/vendored/other/cpp/conditional-going-on-past-a-declaration-out.hs b/corpora/vendored/other/cpp/conditional-going-on-past-a-declaration-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/conditional-going-on-past-a-declaration-out.hs
@@ -0,0 +1,22 @@
+{-# LANGUAGE CPP #-}
+
+module Socket.Spec where
+
+-- | Everything the server answers.
+spec :: Spec
+spec = do
+  describe "routes" $ do
+    it "serves GET" $ get "/" `shouldRespondWith` 200
+    it "serves POST" $ post "/" "" `shouldRespondWith` 200 -- and nothing else
+#if !defined(mingw32_HOST_OS)
+  -- No unix sockets on Windows.
+  describe "sockets"
+    $ it "works with a unix socket"
+    $ withServer socketPath
+  where
+    socketPath = "/tmp/test.socket"
+
+-- | Run the server on a socket for as long as the inner action runs.
+withServer :: FilePath -> IO a -> IO a
+withServer path inner = bracket (listenOn path) close (const inner)
+#endif
diff --git a/corpora/vendored/other/cpp/conditional-going-on-past-a-declaration.hs b/corpora/vendored/other/cpp/conditional-going-on-past-a-declaration.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/conditional-going-on-past-a-declaration.hs
@@ -0,0 +1,21 @@
+{-# LANGUAGE CPP #-}
+
+module Socket.Spec where
+
+-- | Everything the server answers.
+spec :: Spec
+spec = do
+  describe "routes" $ do
+    it "serves GET" $ get "/" `shouldRespondWith` 200
+    it "serves POST" $ post "/" "" `shouldRespondWith` 200 -- and nothing else
+#if !defined(mingw32_HOST_OS)
+  -- No unix sockets on Windows.
+  describe "sockets" $
+    it "works with a unix socket" $
+      withServer socketPath
+  where socketPath = "/tmp/test.socket"
+
+-- | Run the server on a socket for as long as the inner action runs.
+withServer :: FilePath -> IO a -> IO a
+withServer path inner = bracket (listenOn path) close (const inner)
+#endif
diff --git a/corpora/vendored/other/cpp/conditional-with-no-empty-lines-around-it-out.hs b/corpora/vendored/other/cpp/conditional-with-no-empty-lines-around-it-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/conditional-with-no-empty-lines-around-it-out.hs
@@ -0,0 +1,13 @@
+{-# LANGUAGE CPP #-}
+
+module M where
+
+before = 1
+
+#ifdef FOO
+mid = 2
+#else
+mid = 3
+#endif
+
+after = 4
diff --git a/corpora/vendored/other/cpp/conditional-with-no-empty-lines-around-it.hs b/corpora/vendored/other/cpp/conditional-with-no-empty-lines-around-it.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/conditional-with-no-empty-lines-around-it.hs
@@ -0,0 +1,10 @@
+{-# LANGUAGE CPP #-}
+
+module M where
+before = 1
+#ifdef FOO
+mid = 2
+#else
+mid = 3
+#endif
+after = 4
diff --git a/corpora/vendored/other/cpp/data-or-newtype-out.hs b/corpora/vendored/other/cpp/data-or-newtype-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/data-or-newtype-out.hs
@@ -0,0 +1,20 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Cell where
+
+import Data.IORef (IORef)
+
+-- | A cell of the screen.
+#ifdef PROFILING
+data Cell = Cell
+  { cellRef :: {-# UNPACK #-} !(IORef Char),
+    cellCount :: {-# UNPACK #-} !Int
+  }
+#else
+newtype Cell = Cell
+  { cellRef :: IORef Char
+  }
+#endif
+
+blank :: Char
+blank = ' '
diff --git a/corpora/vendored/other/cpp/data-or-newtype.hs b/corpora/vendored/other/cpp/data-or-newtype.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/data-or-newtype.hs
@@ -0,0 +1,18 @@
+{-# LANGUAGE CPP #-}
+module Terminal.Cell where
+
+import Data.IORef (IORef)
+
+-- | A cell of the screen.
+#ifdef PROFILING
+data Cell = Cell
+  { cellRef :: {-# UNPACK #-} !(IORef Char)
+  , cellCount :: {-# UNPACK #-} !Int
+#else
+newtype Cell = Cell
+  { cellRef :: IORef Char
+#endif
+  }
+
+blank :: Char
+blank  =  ' '
diff --git a/corpora/vendored/other/cpp/define-between-conditionals-out.hs b/corpora/vendored/other/cpp/define-between-conditionals-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/define-between-conditionals-out.hs
@@ -0,0 +1,13 @@
+{-# LANGUAGE CPP #-}
+
+module M where
+
+-- | documentation
+#if FLAG
+-- a remark
+f9 = 9
+#endif
+#define WIDE 1
+#if FLAG
+-- a remark
+#endif
diff --git a/corpora/vendored/other/cpp/define-between-conditionals.hs b/corpora/vendored/other/cpp/define-between-conditionals.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/define-between-conditionals.hs
@@ -0,0 +1,13 @@
+{-# LANGUAGE CPP #-}
+
+module M where
+
+-- | documentation
+#if FLAG
+-- a remark
+f9 = 9
+#endif
+#define WIDE 1
+#if FLAG
+-- a remark
+#endif
diff --git a/corpora/vendored/other/cpp/define-ended-by-a-blank-line-out.hs b/corpora/vendored/other/cpp/define-ended-by-a-blank-line-out.hs
--- a/corpora/vendored/other/cpp/define-ended-by-a-blank-line-out.hs
+++ b/corpora/vendored/other/cpp/define-ended-by-a-blank-line-out.hs
@@ -8,5 +8,5 @@
 instance Described ty where { \
   }                           \
 
-describe (Int)
-describe (Bool)
+describe(Int)
+describe(Bool)
diff --git a/corpora/vendored/other/cpp/directive-after-a-define-ending-in-an-empty-line-out.hs b/corpora/vendored/other/cpp/directive-after-a-define-ending-in-an-empty-line-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/directive-after-a-define-ending-in-an-empty-line-out.hs
@@ -0,0 +1,11 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Limits where
+
+#define LIMIT \
+  80 \
+
+#include "terminal.h"
+
+width :: Int
+width = LIMIT
diff --git a/corpora/vendored/other/cpp/directive-after-a-define-ending-in-an-empty-line.hs b/corpora/vendored/other/cpp/directive-after-a-define-ending-in-an-empty-line.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/directive-after-a-define-ending-in-an-empty-line.hs
@@ -0,0 +1,11 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Limits where
+
+#define LIMIT \
+  80 \
+
+#include "terminal.h"
+
+width :: Int
+width  =  LIMIT
diff --git a/corpora/vendored/other/cpp/directive-at-the-end-of-a-branch-out.hs b/corpora/vendored/other/cpp/directive-at-the-end-of-a-branch-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/directive-at-the-end-of-a-branch-out.hs
@@ -0,0 +1,16 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Palette where
+
+#ifdef TRUE_COLOUR
+colours :: Int
+colours = 16777216
+
+#undef FALLBACK_PALETTE
+#else
+
+#define FALLBACK_PALETTE 1
+#endif
+
+palette :: [Int]
+palette = [0 .. 15]
diff --git a/corpora/vendored/other/cpp/directive-at-the-end-of-a-branch.hs b/corpora/vendored/other/cpp/directive-at-the-end-of-a-branch.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/directive-at-the-end-of-a-branch.hs
@@ -0,0 +1,16 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Palette where
+
+#ifdef TRUE_COLOUR
+colours :: Int
+colours  =  16777216
+
+#undef FALLBACK_PALETTE
+#else
+
+#define FALLBACK_PALETTE 1
+#endif
+
+palette :: [Int]
+palette  =  [0 .. 15]
diff --git a/corpora/vendored/other/cpp/directive-over-several-lines-out.hs b/corpora/vendored/other/cpp/directive-over-several-lines-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/directive-over-several-lines-out.hs
@@ -0,0 +1,12 @@
+{-# LANGUAGE CPP #-}
+
+module Build.Make (make) where
+
+-- | The make that understands our makefiles.
+make :: String
+#if defined(freebsd_HOST_OS) || defined(dragonfly_HOST_OS) \
+    || defined(openbsd_HOST_OS) || defined(netbsd_HOST_OS)
+make = "gmake"
+#else
+make = "make"
+#endif
diff --git a/corpora/vendored/other/cpp/directive-over-several-lines.hs b/corpora/vendored/other/cpp/directive-over-several-lines.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/directive-over-several-lines.hs
@@ -0,0 +1,12 @@
+{-# LANGUAGE CPP #-}
+
+module Build.Make (make) where
+
+-- | The make that understands our makefiles.
+make :: String
+#if defined(freebsd_HOST_OS) || defined(dragonfly_HOST_OS) \
+    || defined(openbsd_HOST_OS) || defined(netbsd_HOST_OS)
+make = "gmake"
+#else
+make = "make"
+#endif
diff --git a/corpora/vendored/other/cpp/directives-inside-a-block-comment-out.hs b/corpora/vendored/other/cpp/directives-inside-a-block-comment-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/directives-inside-a-block-comment-out.hs
@@ -0,0 +1,19 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Win32 where
+
+{-
+typedef struct _KEY_EVENT_RECORD {
+    BOOL bKeyDown;
+    WORD wRepeatCount;
+}
+#ifdef __GNUC__
+/* gcc's alignment is not what win32 expects */
+ PACKED
+#endif
+KEY_EVENT_RECORD;
+-}
+data KeyEvent = KeyEvent
+  { keyDown :: Bool,
+    keyRepeat :: Int
+  }
diff --git a/corpora/vendored/other/cpp/directives-inside-a-block-comment.hs b/corpora/vendored/other/cpp/directives-inside-a-block-comment.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/directives-inside-a-block-comment.hs
@@ -0,0 +1,19 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Win32 where
+
+{-
+typedef struct _KEY_EVENT_RECORD {
+    BOOL bKeyDown;
+    WORD wRepeatCount;
+}
+#ifdef __GNUC__
+/* gcc's alignment is not what win32 expects */
+ PACKED
+#endif
+KEY_EVENT_RECORD;
+-}
+data KeyEvent = KeyEvent
+  { keyDown   :: Bool
+  , keyRepeat :: Int
+  }
diff --git a/corpora/vendored/other/cpp/elif-chain-without-else-out.hs b/corpora/vendored/other/cpp/elif-chain-without-else-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/elif-chain-without-else-out.hs
@@ -0,0 +1,11 @@
+{-# LANGUAGE CPP #-}
+
+module M where
+
+#if A
+mid = 1
+#elif B
+mid = 2
+#endif
+
+after = 4
diff --git a/corpora/vendored/other/cpp/elif-chain-without-else.hs b/corpora/vendored/other/cpp/elif-chain-without-else.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/elif-chain-without-else.hs
@@ -0,0 +1,11 @@
+{-# LANGUAGE CPP #-}
+
+module M where
+
+#if A
+mid = 1
+#elif B
+mid = 2
+#endif
+
+after = 4
diff --git a/corpora/vendored/other/cpp/empty-conditional-out.hs b/corpora/vendored/other/cpp/empty-conditional-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/empty-conditional-out.hs
@@ -0,0 +1,12 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Features where
+
+supportsColour :: Bool
+supportsColour = True
+
+#if MIN_VERSION_base(4,20,0)
+#endif
+
+supportsPaste :: Bool
+supportsPaste = True
diff --git a/corpora/vendored/other/cpp/empty-conditional.hs b/corpora/vendored/other/cpp/empty-conditional.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/empty-conditional.hs
@@ -0,0 +1,13 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Features where
+
+supportsColour :: Bool
+supportsColour  =  True
+
+#if MIN_VERSION_base(4,20,0)
+#else
+#endif
+
+supportsPaste :: Bool
+supportsPaste  =  True
diff --git a/corpora/vendored/other/cpp/empty-line-under-a-directive-at-the-end-of-a-branch-out.hs b/corpora/vendored/other/cpp/empty-line-under-a-directive-at-the-end-of-a-branch-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/empty-line-under-a-directive-at-the-end-of-a-branch-out.hs
@@ -0,0 +1,9 @@
+{-# LANGUAGE CPP #-}
+
+module Route.Vehicle where
+
+#if defined(WITH_TRAMS)
+trams :: Int
+trams = 1
+#define TRAMS 1
+#endif
diff --git a/corpora/vendored/other/cpp/empty-line-under-a-directive-at-the-end-of-a-branch.hs b/corpora/vendored/other/cpp/empty-line-under-a-directive-at-the-end-of-a-branch.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/empty-line-under-a-directive-at-the-end-of-a-branch.hs
@@ -0,0 +1,10 @@
+{-# LANGUAGE CPP #-}
+
+module Route.Vehicle where
+
+#if defined(WITH_TRAMS)
+trams :: Int
+trams = 1
+#define TRAMS 1
+
+#endif
diff --git a/corpora/vendored/other/cpp/export-list-varying-after-the-name-out.hs b/corpora/vendored/other/cpp/export-list-varying-after-the-name-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/export-list-varying-after-the-name-out.hs
@@ -0,0 +1,18 @@
+{-# LANGUAGE CPP #-}
+
+-- | Things to export, or none.
+module Things
+#ifdef HIDE
+  () where
+#else
+  ( thing,
+    other,
+  )
+where
+
+thing :: Int
+thing = 1
+
+other :: Int
+other = 2
+#endif
diff --git a/corpora/vendored/other/cpp/export-list-varying-after-the-name.hs b/corpora/vendored/other/cpp/export-list-varying-after-the-name.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/export-list-varying-after-the-name.hs
@@ -0,0 +1,16 @@
+{-# LANGUAGE CPP #-}
+-- | Things to export, or none.
+module Things
+#ifdef HIDE
+  () where
+#else
+  ( thing
+  , other
+  ) where
+
+thing :: Int
+thing = 1
+
+other :: Int
+other = 2
+#endif
diff --git a/corpora/vendored/other/cpp/haddock-behind-alternatives-out.hs b/corpora/vendored/other/cpp/haddock-behind-alternatives-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/haddock-behind-alternatives-out.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE CPP #-}
+
+module Kiln.Firing where
+
+-- A Haddock that differs between the branches of a conditional is kept in
+-- each branch, before a constructor, a field and an argument.
+data Firing
+  = Bisque
+  |
+#ifdef GLAZE_ONLY
+    -- | Fired once, glazed.
+#else
+    -- | Fired twice, the second time glazed.
+#endif
+    Glaze
+
+data Kiln = Kiln
+  { temperature :: Int,
+#ifdef ELECTRIC
+    -- | Watts drawn.
+#else
+    -- | Gas burnt in an hour.
+#endif
+    draw :: Int
+  }
+
+fire ::
+  Kiln ->
+#ifdef ELECTRIC
+  -- | Minutes to cool.
+#else
+  -- | Hours to cool.
+#endif
+  Int ->
+  Firing
+fire _ _ = Glaze
+
+-- The same for one written after what it documents.
+data Cone
+  =
+#ifdef METRIC
+    -- | Below 1100 degrees.
+#else
+    -- | Below 2000 degrees.
+#endif
+    Low
+  | High
diff --git a/corpora/vendored/other/cpp/haddock-behind-alternatives.hs b/corpora/vendored/other/cpp/haddock-behind-alternatives.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/haddock-behind-alternatives.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE CPP #-}
+
+module Kiln.Firing where
+
+-- A Haddock that differs between the branches of a conditional is kept in
+-- each branch, before a constructor, a field and an argument.
+data Firing
+  = Bisque
+#ifdef GLAZE_ONLY
+  -- | Fired once, glazed.
+#else
+  -- | Fired twice, the second time glazed.
+#endif
+  | Glaze
+
+data Kiln = Kiln
+  { temperature :: Int
+#ifdef ELECTRIC
+  -- | Watts drawn.
+#else
+  -- | Gas burnt in an hour.
+#endif
+  , draw :: Int
+  }
+
+fire ::
+  Kiln ->
+#ifdef ELECTRIC
+  -- | Minutes to cool.
+#else
+  -- | Hours to cool.
+#endif
+  Int ->
+  Firing
+fire _ _ = Glaze
+
+-- The same for one written after what it documents.
+data Cone
+  = Low
+#ifdef METRIC
+  -- ^ Below 1100 degrees.
+#else
+  -- ^ Below 2000 degrees.
+#endif
+  | High
diff --git a/corpora/vendored/other/cpp/hiding-behind-a-conditional-out.hs b/corpora/vendored/other/cpp/hiding-behind-a-conditional-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/hiding-behind-a-conditional-out.hs
@@ -0,0 +1,11 @@
+{-# LANGUAGE CPP #-}
+
+module M where
+
+import Data.Maybe (catMaybes)
+import Language.Haskell.TH.Syntax
+#if MIN_VERSION_template_haskell(2,19,0)
+  hiding (makeRelativeToProject)
+#endif
+import System.Directory (doesFileExist)
+import Yesod.Core
diff --git a/corpora/vendored/other/cpp/hiding-behind-a-conditional.hs b/corpora/vendored/other/cpp/hiding-behind-a-conditional.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/hiding-behind-a-conditional.hs
@@ -0,0 +1,11 @@
+{-# LANGUAGE CPP #-}
+
+module M where
+
+import Yesod.Core
+import System.Directory (doesFileExist)
+import Language.Haskell.TH.Syntax
+#if MIN_VERSION_template_haskell(2,19,0)
+    hiding (makeRelativeToProject)
+#endif
+import Data.Maybe (catMaybes)
diff --git a/corpora/vendored/other/cpp/if-settled-by-an-ifdef-out.hs b/corpora/vendored/other/cpp/if-settled-by-an-ifdef-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/if-settled-by-an-ifdef-out.hs
@@ -0,0 +1,14 @@
+{-# LANGUAGE CPP #-}
+#ifdef USE_ST
+{-# LANGUAGE RankNTypes #-}
+#endif
+
+module Run where
+
+#if USE_ST
+run :: (forall s. s -> s) -> Int
+run f = f 1
+#endif
+
+count :: Int -> String
+count n = "count: " ++ show n
diff --git a/corpora/vendored/other/cpp/if-settled-by-an-ifdef.hs b/corpora/vendored/other/cpp/if-settled-by-an-ifdef.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/if-settled-by-an-ifdef.hs
@@ -0,0 +1,13 @@
+{-# LANGUAGE CPP #-}
+#ifdef USE_ST
+{-# LANGUAGE RankNTypes #-}
+#endif
+module Run where
+
+#if USE_ST
+run :: (forall s. s -> s) -> Int
+run f = f 1
+#endif
+
+count :: Int -> String
+count n = "count: " ++ show n
diff --git a/corpora/vendored/other/cpp/if-settled-inside-another-conditional-out.hs b/corpora/vendored/other/cpp/if-settled-inside-another-conditional-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/if-settled-inside-another-conditional-out.hs
@@ -0,0 +1,19 @@
+{-# LANGUAGE CPP #-}
+#if !defined(javascript_HOST_ARCH)
+{-# LANGUAGE CApiFFI #-}
+#endif
+
+module Clock where
+
+#ifndef mingw32_HOST_OS
+import Foreign.C
+
+#if defined(javascript_HOST_ARCH) || defined(__MHS__)
+foreign import ccall unsafe "time.h time" time :: CLong -> IO CLong
+#else
+foreign import capi unsafe "time.h time" time :: CLong -> IO CLong
+#endif
+
+now :: IO CLong
+now = time 0
+#endif
diff --git a/corpora/vendored/other/cpp/if-settled-inside-another-conditional.hs b/corpora/vendored/other/cpp/if-settled-inside-another-conditional.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/if-settled-inside-another-conditional.hs
@@ -0,0 +1,18 @@
+{-# LANGUAGE CPP #-}
+#if !defined(javascript_HOST_ARCH)
+{-# LANGUAGE CApiFFI #-}
+#endif
+module Clock where
+
+#ifndef mingw32_HOST_OS
+import Foreign.C
+
+#if defined(javascript_HOST_ARCH) || defined(__MHS__)
+foreign import ccall unsafe "time.h time" time :: CLong -> IO CLong
+#else
+foreign import capi unsafe "time.h time" time :: CLong -> IO CLong
+#endif
+
+now :: IO CLong
+now = time 0
+#endif
diff --git a/corpora/vendored/other/cpp/import-clause-in-a-branch-with-declarations-out.hs b/corpora/vendored/other/cpp/import-clause-in-a-branch-with-declarations-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/import-clause-in-a-branch-with-declarations-out.hs
@@ -0,0 +1,11 @@
+{-# LANGUAGE CPP #-}
+
+module B1 (throw) where
+
+import Control.Exception
+#ifdef X
+  hiding (throw)
+
+throw :: (Exception e) => e -> a
+throw = undefined
+#endif
diff --git a/corpora/vendored/other/cpp/import-clause-in-a-branch-with-declarations.hs b/corpora/vendored/other/cpp/import-clause-in-a-branch-with-declarations.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/import-clause-in-a-branch-with-declarations.hs
@@ -0,0 +1,10 @@
+{-# LANGUAGE CPP #-}
+module B1 (throw) where
+
+import Control.Exception
+#ifdef X
+  hiding (throw)
+
+throw :: Exception e => e -> a
+throw = undefined
+#endif
diff --git a/corpora/vendored/other/cpp/import-in-one-branch-declarations-in-the-other-out.hs b/corpora/vendored/other/cpp/import-in-one-branch-declarations-in-the-other-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/import-in-one-branch-declarations-in-the-other-out.hs
@@ -0,0 +1,18 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Sort where
+
+import Data.Char (toLower)
+
+#if MIN_VERSION_base(4,8,0)
+import Data.List (sortOn)
+#else
+sortOn :: (Ord b) => (a -> b) -> [a] -> [a]
+sortOn _ = id
+#endif
+
+byName :: [String] -> [String]
+byName = sortOn (fmap toLower)
+
+byLength :: [String] -> [String]
+byLength = sortOn length
diff --git a/corpora/vendored/other/cpp/import-in-one-branch-declarations-in-the-other.hs b/corpora/vendored/other/cpp/import-in-one-branch-declarations-in-the-other.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/import-in-one-branch-declarations-in-the-other.hs
@@ -0,0 +1,17 @@
+{-# LANGUAGE CPP #-}
+module Terminal.Sort where
+
+import Data.Char (toLower)
+
+#if MIN_VERSION_base(4,8,0)
+import Data.List (sortOn)
+#else
+sortOn   ::  Ord b => (a -> b) -> [a] -> [a]
+sortOn _  =  id
+#endif
+
+byName :: [String] -> [String]
+byName  =  sortOn (fmap toLower)
+
+byLength :: [String] -> [String]
+byLength  =  sortOn length
diff --git a/corpora/vendored/other/cpp/import-list-behind-a-conditional-out.hs b/corpora/vendored/other/cpp/import-list-behind-a-conditional-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/import-list-behind-a-conditional-out.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE ExplicitForAll #-}
+
+module Kiln.Clock where
+
+-- An import list that a conditional varies whole stays in each branch, on a
+-- line of its own.
+import Data.Word
+#if MIN_VERSION_text(2,0,0)
+  (Word8)
+#else
+  (Word16, Word32)
+#endif
+
+-- The same for the binders of a forall.
+lookupCont ::
+#if defined(__GLASGOW_HASKELL__)
+  forall r k v.
+#else
+  forall k v r.
+#endif
+  k -> (v -> r) -> r
+lookupCont = undefined
diff --git a/corpora/vendored/other/cpp/import-list-behind-a-conditional.hs b/corpora/vendored/other/cpp/import-list-behind-a-conditional.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/import-list-behind-a-conditional.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE ExplicitForAll #-}
+
+module Kiln.Clock where
+
+-- An import list that a conditional varies whole stays in each branch, on a
+-- line of its own.
+import Data.Word
+#if MIN_VERSION_text(2,0,0)
+  (Word8)
+#else
+  (Word32, Word16)
+#endif
+
+-- The same for the binders of a forall.
+lookupCont ::
+#if defined(__GLASGOW_HASKELL__)
+  forall r k v.
+#else
+  forall k v r.
+#endif
+  k -> (v -> r) -> r
+lookupCont = undefined
diff --git a/corpora/vendored/other/cpp/import-with-a-conditional-in-its-head-out.hs b/corpora/vendored/other/cpp/import-with-a-conditional-in-its-head-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/import-with-a-conditional-in-its-head-out.hs
@@ -0,0 +1,14 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Cache (empty) where
+
+import Data.Char (isSpace)
+import
+#ifdef STRICT_CACHE
+  qualified
+#endif
+  Data.Map as M
+import Text.Read (readMaybe)
+
+empty :: M.Map String String
+empty = M.empty
diff --git a/corpora/vendored/other/cpp/import-with-a-conditional-in-its-head.hs b/corpora/vendored/other/cpp/import-with-a-conditional-in-its-head.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/import-with-a-conditional-in-its-head.hs
@@ -0,0 +1,14 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Cache (empty) where
+
+import Text.Read (readMaybe)
+import
+#ifdef STRICT_CACHE
+  qualified
+#endif
+  Data.Map as M
+import Data.Char (isSpace)
+
+empty :: M.Map String String
+empty  =  M.empty
diff --git a/corpora/vendored/other/cpp/imports-around-a-conditional-holding-a-comment-out.hs b/corpora/vendored/other/cpp/imports-around-a-conditional-holding-a-comment-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/imports-around-a-conditional-holding-a-comment-out.hs
@@ -0,0 +1,12 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Size (columns) where
+
+import System.Environment (lookupEnv)
+#ifdef mingw32_HOST_OS
+{- The console size comes from the environment there as well. -}
+#endif
+import Data.Maybe (fromMaybe)
+
+columns :: IO Int
+columns = read . fromMaybe "80" <$> lookupEnv "COLUMNS"
diff --git a/corpora/vendored/other/cpp/imports-around-a-conditional-holding-a-comment.hs b/corpora/vendored/other/cpp/imports-around-a-conditional-holding-a-comment.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/imports-around-a-conditional-holding-a-comment.hs
@@ -0,0 +1,12 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Size (columns) where
+
+import System.Environment (lookupEnv)
+#ifdef mingw32_HOST_OS
+  {- The console size comes from the environment there as well. -}
+#endif
+import Data.Maybe (fromMaybe)
+
+columns :: IO Int
+columns  =  read . fromMaybe "80" <$> lookupEnv "COLUMNS"
diff --git a/corpora/vendored/other/cpp/imports-around-a-conditional-holding-a-directive-out.hs b/corpora/vendored/other/cpp/imports-around-a-conditional-holding-a-directive-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/imports-around-a-conditional-holding-a-directive-out.hs
@@ -0,0 +1,12 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Width (width) where
+
+import System.Environment (lookupEnv)
+#ifdef WIDE_TERMINALS
+#define DEFAULT_WIDTH 132
+#endif
+import Data.Maybe (fromMaybe)
+
+width :: IO Int
+width = read . fromMaybe "80" <$> lookupEnv "COLUMNS"
diff --git a/corpora/vendored/other/cpp/imports-around-a-conditional-holding-a-directive.hs b/corpora/vendored/other/cpp/imports-around-a-conditional-holding-a-directive.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/imports-around-a-conditional-holding-a-directive.hs
@@ -0,0 +1,12 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Width (width) where
+
+import System.Environment (lookupEnv)
+#ifdef WIDE_TERMINALS
+  #define DEFAULT_WIDTH 132
+#endif
+import Data.Maybe (fromMaybe)
+
+width :: IO Int
+width  =  read . fromMaybe "80" <$> lookupEnv "COLUMNS"
diff --git a/corpora/vendored/other/cpp/imports-at-an-indented-top-level-out.hs b/corpora/vendored/other/cpp/imports-at-an-indented-top-level-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/imports-at-an-indented-top-level-out.hs
@@ -0,0 +1,15 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Bell (bell) where
+
+{-
+import Terminal.Sound
+-}
+import System.IO (hFlush, stdout)
+#ifdef WITH_VISUAL_BELL
+import Terminal.Flash (flash)
+#endif
+import Control.Monad (void)
+
+bell :: IO ()
+bell = void (putStr "\a") >> hFlush stdout
diff --git a/corpora/vendored/other/cpp/imports-at-an-indented-top-level.hs b/corpora/vendored/other/cpp/imports-at-an-indented-top-level.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/imports-at-an-indented-top-level.hs
@@ -0,0 +1,14 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Bell (bell) where
+  {-
+import Terminal.Sound
+  -}
+  import System.IO (hFlush, stdout)
+#ifdef WITH_VISUAL_BELL
+  import Terminal.Flash (flash)
+#endif
+  import Control.Monad (void)
+
+  bell :: IO ()
+  bell  =  void (putStr "\a") >> hFlush stdout
diff --git a/corpora/vendored/other/cpp/imports-continued-after-a-conditional-out.hs b/corpora/vendored/other/cpp/imports-continued-after-a-conditional-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/imports-continued-after-a-conditional-out.hs
@@ -0,0 +1,17 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Lines (wrap) where
+
+import Text.Read (readMaybe)
+#ifdef WITH_TEXT
+import Data.Text
+#else
+import Data.List
+#endif
+#if MIN_VERSION_base(4,20,0)
+  hiding (lines)
+#endif
+import Data.Char (isSpace)
+
+wrap :: Int -> String -> [String]
+wrap n = map (take n) . Prelude.lines
diff --git a/corpora/vendored/other/cpp/imports-continued-after-a-conditional.hs b/corpora/vendored/other/cpp/imports-continued-after-a-conditional.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/imports-continued-after-a-conditional.hs
@@ -0,0 +1,17 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Lines (wrap) where
+
+import Text.Read (readMaybe)
+#ifdef WITH_TEXT
+import Data.Text
+#else
+import Data.List
+#endif
+#if MIN_VERSION_base(4,20,0)
+    hiding (lines)
+#endif
+import Data.Char (isSpace)
+
+wrap :: Int -> String -> [String]
+wrap n  =  map (take n) . Prelude.lines
diff --git a/corpora/vendored/other/cpp/imports-ending-in-a-conditional-before-declarations-out.hs b/corpora/vendored/other/cpp/imports-ending-in-a-conditional-before-declarations-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/imports-ending-in-a-conditional-before-declarations-out.hs
@@ -0,0 +1,11 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Width (width) where
+
+import Data.Char (isSpace)
+#ifdef WITH_WCWIDTH
+import Terminal.Wcwidth (wcwidth)
+#endif
+
+width :: String -> Int
+width = length . filter (not . isSpace)
diff --git a/corpora/vendored/other/cpp/imports-ending-in-a-conditional-before-declarations.hs b/corpora/vendored/other/cpp/imports-ending-in-a-conditional-before-declarations.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/imports-ending-in-a-conditional-before-declarations.hs
@@ -0,0 +1,10 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Width (width) where
+
+import Data.Char (isSpace)
+#ifdef WITH_WCWIDTH
+import Terminal.Wcwidth (wcwidth)
+#endif
+width :: String -> Int
+width  =  length . filter (not . isSpace)
diff --git a/corpora/vendored/other/cpp/imports-in-explicit-braces-out.hs b/corpora/vendored/other/cpp/imports-in-explicit-braces-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/imports-in-explicit-braces-out.hs
@@ -0,0 +1,12 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Title (setTitle) where
+
+import System.IO (hFlush, stdout)
+#ifdef WITH_TERMINFO
+import Terminal.Terminfo (lookupCapability)
+#endif
+import Control.Monad (void)
+
+setTitle :: String -> IO ()
+setTitle t = void (putStr ("\ESC]0;" ++ t ++ "\a")) >> hFlush stdout
diff --git a/corpora/vendored/other/cpp/imports-in-explicit-braces.hs b/corpora/vendored/other/cpp/imports-in-explicit-braces.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/imports-in-explicit-braces.hs
@@ -0,0 +1,12 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Title (setTitle) where {
+import System.IO (hFlush, stdout);
+#ifdef WITH_TERMINFO
+  import Terminal.Terminfo (lookupCapability);
+#endif
+import Control.Monad (void);
+
+setTitle :: String -> IO ();
+setTitle t  =  void (putStr ("\ESC]0;" ++ t ++ "\a")) >> hFlush stdout
+}
diff --git a/corpora/vendored/other/cpp/imports-merged-across-a-define-out.hs b/corpora/vendored/other/cpp/imports-merged-across-a-define-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/imports-merged-across-a-define-out.hs
@@ -0,0 +1,14 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Markup where
+
+import Control.Arrow (first, second)
+import Control.Monad (when)
+#define Html Markup
+#define toHtml toMarkup
+import Data.Maybe (fromMaybe)
+import Data.Text (Text)
+import Text.Blaze (Markup, toMarkup)
+
+label :: Text -> Html
+label = toHtml
diff --git a/corpora/vendored/other/cpp/imports-merged-across-a-define.hs b/corpora/vendored/other/cpp/imports-merged-across-a-define.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/imports-merged-across-a-define.hs
@@ -0,0 +1,14 @@
+{-# LANGUAGE CPP #-}
+module Terminal.Markup where
+
+import Data.Text (Text)
+import Control.Arrow (second)
+import Control.Monad (when)
+import Text.Blaze (Markup, toMarkup)
+#define Html Markup
+#define toHtml toMarkup
+import Data.Maybe (fromMaybe)
+import Control.Arrow (first)
+
+label :: Text -> Html
+label  =  toHtml
diff --git a/corpora/vendored/other/cpp/imports-only-in-one-branch-out.hs b/corpora/vendored/other/cpp/imports-only-in-one-branch-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/imports-only-in-one-branch-out.hs
@@ -0,0 +1,13 @@
+{-# LANGUAGE CPP #-}
+
+module B2 where
+
+import Data.Maybe (fromMaybe)
+#ifdef X
+import Data.List (sort)
+
+sorted :: [Int] -> [Int]
+sorted = sort
+#else
+import Data.Char (ord)
+#endif
diff --git a/corpora/vendored/other/cpp/imports-only-in-one-branch.hs b/corpora/vendored/other/cpp/imports-only-in-one-branch.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/imports-only-in-one-branch.hs
@@ -0,0 +1,12 @@
+{-# LANGUAGE CPP #-}
+module B2 where
+
+import Data.Maybe (fromMaybe)
+#ifdef X
+import Data.List (sort)
+
+sorted :: [Int] -> [Int]
+sorted = sort
+#else
+import Data.Char (ord)
+#endif
diff --git a/corpora/vendored/other/cpp/imports-written-in-different-branches-out.hs b/corpora/vendored/other/cpp/imports-written-in-different-branches-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/imports-written-in-different-branches-out.hs
@@ -0,0 +1,15 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Errors (isUnsupported) where
+
+import Control.Exception (IOException)
+#ifndef __MHS__
+import GHC.IO.Exception
+#else
+import System.IO.Error
+#endif
+  (IOErrorType (..), ioe_type)
+import Data.Bool (bool)
+
+isUnsupported :: IOError -> Bool
+isUnsupported e = ioe_type e == UnsupportedOperation
diff --git a/corpora/vendored/other/cpp/imports-written-in-different-branches.hs b/corpora/vendored/other/cpp/imports-written-in-different-branches.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/imports-written-in-different-branches.hs
@@ -0,0 +1,15 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Errors (isUnsupported) where
+
+import Control.Exception (IOException)
+#ifndef __MHS__
+import           GHC.IO.Exception
+#else
+import           System.IO.Error
+#endif
+  ( ioe_type, IOErrorType(..) )
+import Data.Bool (bool)
+
+isUnsupported :: IOError -> Bool
+isUnsupported e  =  ioe_type e == UnsupportedOperation
diff --git a/corpora/vendored/other/cpp/macro-above-a-case-out.hs b/corpora/vendored/other/cpp/macro-above-a-case-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/macro-above-a-case-out.hs
@@ -0,0 +1,16 @@
+{-# LANGUAGE CPP #-}
+
+module Bounds.Check where
+
+#if defined(ASSERTS)
+#define CHECK(i) if (i) < 0 then error "negative index" else
+#else
+#define CHECK(i)
+#endif
+
+pick :: Int -> String
+pick i =
+  CHECK(i)
+  case i of
+    0 -> "zero"
+    _ -> "more"
diff --git a/corpora/vendored/other/cpp/macro-above-a-case.hs b/corpora/vendored/other/cpp/macro-above-a-case.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/macro-above-a-case.hs
@@ -0,0 +1,16 @@
+{-# LANGUAGE CPP #-}
+
+module Bounds.Check where
+
+#if defined(ASSERTS)
+#define CHECK(i) if (i) < 0 then error "negative index" else
+#else
+#define CHECK(i)
+#endif
+
+pick :: Int -> String
+pick i =
+    CHECK(i)
+    case i of
+        0 -> "zero"
+        _ -> "more"
diff --git a/corpora/vendored/other/cpp/macro-continuing-the-line-above-out.hs b/corpora/vendored/other/cpp/macro-continuing-the-line-above-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/macro-continuing-the-line-above-out.hs
@@ -0,0 +1,13 @@
+{-# LANGUAGE CPP #-}
+
+module Queue.Chan where
+
+#define STRICT(x) {-# UNPACK #-} !(x)
+
+data Chan a
+  = Chan
+      STRICT
+      (Int)
+      STRICT
+      ([a])
+  deriving (Eq)
diff --git a/corpora/vendored/other/cpp/macro-continuing-the-line-above.hs b/corpora/vendored/other/cpp/macro-continuing-the-line-above.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/macro-continuing-the-line-above.hs
@@ -0,0 +1,9 @@
+{-# LANGUAGE CPP #-}
+
+module Queue.Chan where
+
+#define STRICT(x) {-# UNPACK #-} !(x)
+
+data Chan a = Chan STRICT(Int)
+                   STRICT([a])
+  deriving (Eq)
diff --git a/corpora/vendored/other/cpp/macro-inside-a-conditional-out.hs b/corpora/vendored/other/cpp/macro-inside-a-conditional-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/macro-inside-a-conditional-out.hs
@@ -0,0 +1,11 @@
+{-# LANGUAGE CPP #-}
+
+module Lifted.Instances where
+
+#define LIFTED(T) instance Lifted m => Lifted (T m) where lifted = lift . lifted
+LIFTED(IdentityT)
+#if !MIN_VERSION_transformers(0,6,0)
+LIFTED(ListT)
+#endif
+LIFTED(MaybeT)
+#undef LIFTED
diff --git a/corpora/vendored/other/cpp/macro-inside-a-conditional.hs b/corpora/vendored/other/cpp/macro-inside-a-conditional.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/macro-inside-a-conditional.hs
@@ -0,0 +1,11 @@
+{-# LANGUAGE CPP #-}
+
+module Lifted.Instances where
+
+#define LIFTED(T) instance Lifted m => Lifted (T m) where lifted = lift . lifted
+LIFTED(IdentityT)
+#if !MIN_VERSION_transformers(0,6,0)
+LIFTED(ListT)
+#endif
+LIFTED(MaybeT)
+#undef LIFTED
diff --git a/corpora/vendored/other/cpp/macro-inside-a-declaration-out.hs b/corpora/vendored/other/cpp/macro-inside-a-declaration-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/macro-inside-a-declaration-out.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE CPP #-}
+
+module Session.Log where
+
+#define LOG(s) trace (s) (pure ())
+#define STRICT(x) {-# UNPACK #-} !(x)
+
+data Pair = Pair Int
+  STRICT(Int)
+  deriving (Eq)
+
+open :: IO ()
+open = do
+  connect
+  LOG("opened")
+  where
+    connect = pure ()
+
+instance Session IO where
+  close = do
+    disconnect
+    LOG("closed")
+    where
+      disconnect = pure ()
diff --git a/corpora/vendored/other/cpp/macro-inside-a-declaration.hs b/corpora/vendored/other/cpp/macro-inside-a-declaration.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/macro-inside-a-declaration.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE CPP #-}
+
+module Session.Log where
+
+#define LOG(s) trace (s) (pure ())
+#define STRICT(x) {-# UNPACK #-} !(x)
+
+data Pair = Pair Int
+  STRICT(Int)
+  deriving (Eq)
+
+open :: IO ()
+open = do
+  connect
+  LOG("opened")
+  where
+    connect = pure ()
+
+instance Session IO where
+  close = do
+    disconnect
+    LOG("closed")
+    where
+      disconnect = pure ()
diff --git a/corpora/vendored/other/cpp/macro-on-a-line-of-its-own-out.hs b/corpora/vendored/other/cpp/macro-on-a-line-of-its-own-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/macro-on-a-line-of-its-own-out.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE CPP #-}
+
+module Survey.Result where
+
+#ifdef WITH_TRACE
+#define TRACE(a) , trace a
+#else
+#define TRACE(a)
+#endif
+
+data Result = Result
+  { passed :: Bool,
+    message :: String
+    TRACE(:: [String])
+  }
+
+done :: Result
+done =
+  Result
+    { passed = True,
+      message = ""
+      TRACE(= [])
+    }
diff --git a/corpora/vendored/other/cpp/macro-on-a-line-of-its-own.hs b/corpora/vendored/other/cpp/macro-on-a-line-of-its-own.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/macro-on-a-line-of-its-own.hs
@@ -0,0 +1,22 @@
+{-# LANGUAGE CPP #-}
+
+module Survey.Result where
+
+#ifdef WITH_TRACE
+#define TRACE(a) , trace a
+#else
+#define TRACE(a)
+#endif
+
+data Result = Result
+    { passed   :: Bool
+    , message  :: String
+    TRACE(:: [String])
+    }
+
+done :: Result
+done = Result
+    { passed = True
+    , message = ""
+    TRACE(= [])
+    }
diff --git a/corpora/vendored/other/cpp/macro-standing-for-a-bracket.hs b/corpora/vendored/other/cpp/macro-standing-for-a-bracket.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/macro-standing-for-a-bracket.hs
@@ -0,0 +1,6 @@
+{-# LANGUAGE CPP #-}
+
+module M where
+
+#define CLOSE )
+f = (1 CLOSE
diff --git a/corpora/vendored/other/cpp/macro-uses-at-the-top-level-out.hs b/corpora/vendored/other/cpp/macro-uses-at-the-top-level-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/macro-uses-at-the-top-level-out.hs
@@ -0,0 +1,18 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Named where
+
+class Named a where
+  name :: a -> String
+
+#define NAMED(ty, str) \
+instance Named ty where { name _ = str }
+
+#define NAMED_PAIR(a, b) \
+NAMED(a, "first") ; \
+NAMED(b, "second")
+
+NAMED(Int, "int")
+NAMED(Bool, "bool")
+
+NAMED_PAIR(Char, Double)
diff --git a/corpora/vendored/other/cpp/macro-uses-at-the-top-level.hs b/corpora/vendored/other/cpp/macro-uses-at-the-top-level.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/macro-uses-at-the-top-level.hs
@@ -0,0 +1,18 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Named where
+
+class Named a where
+  name :: a -> String
+
+#define NAMED(ty, str) \
+instance Named ty where { name _ = str }
+
+#define NAMED_PAIR(a, b) \
+NAMED(a, "first") ; \
+NAMED(b, "second")
+
+NAMED(Int, "int")
+NAMED(Bool, "bool")
+
+NAMED_PAIR(Char, Double)
diff --git a/corpora/vendored/other/cpp/method-moving-to-an-instance-of-its-own-out.hs b/corpora/vendored/other/cpp/method-moving-to-an-instance-of-its-own-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/method-moving-to-an-instance-of-its-own-out.hs
@@ -0,0 +1,20 @@
+{-# LANGUAGE CPP #-}
+
+module Report.Summary where
+
+-- | How many examples ran, and how many of them failed.
+data Summary = Summary Int Int
+
+-- Combining summaries.
+instance Monoid Summary where
+  mempty = Summary 0 0
+
+#if MIN_VERSION_base(4,11,0)
+instance Semigroup Summary where
+  Summary x1 x2 `mappend` Summary y1 y2 = Summary (x1 + y1) (x2 + y2)
+#else
+  Summary x1 x2 `mappend` Summary y1 y2 = Summary (x1 + y1) (x2 + y2)
+#endif
+
+isSuccess :: Summary -> Bool
+isSuccess (Summary _ failures) = failures == 0
diff --git a/corpora/vendored/other/cpp/method-moving-to-an-instance-of-its-own.hs b/corpora/vendored/other/cpp/method-moving-to-an-instance-of-its-own.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/method-moving-to-an-instance-of-its-own.hs
@@ -0,0 +1,17 @@
+{-# LANGUAGE CPP #-}
+
+module Report.Summary where
+
+-- | How many examples ran, and how many of them failed.
+data Summary = Summary Int Int
+
+-- Combining summaries.
+instance Monoid Summary where
+  mempty = Summary 0 0
+#if MIN_VERSION_base(4,11,0)
+instance Semigroup Summary where
+#endif
+  Summary x1 x2 `mappend` Summary y1 y2 = Summary (x1 + y1) (x2 + y2)
+
+isSuccess :: Summary -> Bool
+isSuccess (Summary _ failures) = failures == 0
diff --git a/corpora/vendored/other/cpp/names-of-a-list-behind-a-conditional-out.hs b/corpora/vendored/other/cpp/names-of-a-list-behind-a-conditional-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/names-of-a-list-behind-a-conditional-out.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Signals where
+
+import Data.List
+  ( nub,
+    sortOn,
+#if MIN_VERSION_base(4,8,0)
+    foldl1,
+#endif
+    group,
+  )
+import System.Posix.Signals
+  ( Handler (..),
+    installHandler,
+#if MIN_VERSION_unix(2,7,0)
+    raiseSignal,
+    sigINT,
+#if MIN_VERSION_unix(2,8,0)
+    sigWINCH,
+#endif
+#else
+    sigTERM,
+    signalProcess,
+#endif
+    blockSignals,
+    emptySignalSet,
+  )
diff --git a/corpora/vendored/other/cpp/names-of-a-list-behind-a-conditional.hs b/corpora/vendored/other/cpp/names-of-a-list-behind-a-conditional.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/names-of-a-list-behind-a-conditional.hs
@@ -0,0 +1,22 @@
+{-# LANGUAGE CPP #-}
+module Terminal.Signals where
+
+import Data.List
+    ( sortOn, nub
+#if MIN_VERSION_base(4,8,0)
+    , foldl1
+#endif
+    , group
+    )
+import System.Posix.Signals
+    ( installHandler, Handler(..)
+#if MIN_VERSION_unix(2,7,0)
+    , raiseSignal, sigINT
+#if MIN_VERSION_unix(2,8,0)
+    , sigWINCH
+#endif
+#else
+    , signalProcess, sigTERM
+#endif
+    , emptySignalSet, blockSignals
+    )
diff --git a/corpora/vendored/other/cpp/nested-conditional-in-an-import-sorted-down-out.hs b/corpora/vendored/other/cpp/nested-conditional-in-an-import-sorted-down-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/nested-conditional-in-an-import-sorted-down-out.hs
@@ -0,0 +1,16 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Mask where
+
+import qualified Control.Concurrent as C
+import Control.Exception hiding
+  ( throwIO,
+#if MIN_VERSION_base(4,3,0)
+    mask,
+#if MIN_VERSION_base(4,4,0)
+    allowInterrupt,
+#endif
+#else
+    block,
+#endif
+  )
diff --git a/corpora/vendored/other/cpp/nested-conditional-in-an-import-sorted-down.hs b/corpora/vendored/other/cpp/nested-conditional-in-an-import-sorted-down.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/nested-conditional-in-an-import-sorted-down.hs
@@ -0,0 +1,15 @@
+{-# LANGUAGE CPP #-}
+module Terminal.Mask where
+
+import Control.Exception hiding
+    ( throwIO
+#if MIN_VERSION_base(4,3,0)
+    , mask
+#if MIN_VERSION_base(4,4,0)
+    , allowInterrupt
+#endif
+#else
+    , block
+#endif
+    )
+import qualified Control.Concurrent as C
diff --git a/corpora/vendored/other/cpp/one-guard-asked-in-imports-and-in-a-declaration-out.hs b/corpora/vendored/other/cpp/one-guard-asked-in-imports-and-in-a-declaration-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/one-guard-asked-in-imports-and-in-a-declaration-out.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Keymap where
+
+import Data.Maybe (fromMaybe)
+
+#ifdef ORDERED
+lookupKey :: Int -> [(Int, String)] -> String
+lookupKey k = fromMaybe "" . lookup k
+#else
+import qualified Data.IntMap as IntMap
+
+lookupKey :: Int -> [(Int, String)] -> String
+lookupKey k = fromMaybe "" . IntMap.lookup k . IntMap.fromList
+#endif
+
+defaultKey :: Int
+defaultKey = 13
+
+backend :: String
+#ifdef ORDERED
+backend = "list"
+#else
+backend = "intmap"
+#endif
diff --git a/corpora/vendored/other/cpp/one-guard-asked-in-imports-and-in-a-declaration.hs b/corpora/vendored/other/cpp/one-guard-asked-in-imports-and-in-a-declaration.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/one-guard-asked-in-imports-and-in-a-declaration.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE CPP #-}
+module Terminal.Keymap where
+
+import Data.Maybe (fromMaybe)
+
+#ifdef ORDERED
+lookupKey :: Int -> [(Int, String)] -> String
+lookupKey k  =  fromMaybe "" . lookup k
+#else
+import qualified Data.IntMap as IntMap
+
+lookupKey :: Int -> [(Int, String)] -> String
+lookupKey k  =  fromMaybe "" . IntMap.lookup k . IntMap.fromList
+#endif
+
+defaultKey :: Int
+defaultKey  =  13
+
+backend :: String
+#ifdef ORDERED
+backend  =  "list"
+#else
+backend  =  "intmap"
+#endif
diff --git a/corpora/vendored/other/cpp/one-guard-asked-of-a-pragma-an-import-and-an-equation-out.hs b/corpora/vendored/other/cpp/one-guard-asked-of-a-pragma-an-import-and-an-equation-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/one-guard-asked-of-a-pragma-an-import-and-an-equation-out.hs
@@ -0,0 +1,20 @@
+{-# LANGUAGE CPP #-}
+#ifdef FAST
+{-# LANGUAGE MagicHash #-}
+#endif
+
+module Terminal.Same (same) where
+
+#ifdef FAST
+import GHC.Exts (isTrue#, reallyUnsafePtrEquality#)
+#endif
+
+same :: a -> a -> Bool
+#ifdef FAST
+same x y = isTrue# (reallyUnsafePtrEquality# x y)
+#else
+same _ _ = False
+#endif
+{-# INLINE same #-}
+
+infix 4 `same`
diff --git a/corpora/vendored/other/cpp/one-guard-asked-of-a-pragma-an-import-and-an-equation.hs b/corpora/vendored/other/cpp/one-guard-asked-of-a-pragma-an-import-and-an-equation.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/one-guard-asked-of-a-pragma-an-import-and-an-equation.hs
@@ -0,0 +1,16 @@
+{-# LANGUAGE CPP #-}
+#ifdef FAST
+{-# LANGUAGE MagicHash #-}
+#endif
+module Terminal.Same (same) where
+#ifdef FAST
+import GHC.Exts ( isTrue#, reallyUnsafePtrEquality# )
+#endif
+same :: a -> a -> Bool
+#ifdef FAST
+same x y  =  isTrue# (reallyUnsafePtrEquality# x y)
+#else
+same _ _  =  False
+#endif
+{-# INLINE same #-}
+infix 4 `same`
diff --git a/corpora/vendored/other/cpp/one-guard-asked-twice-out.hs b/corpora/vendored/other/cpp/one-guard-asked-twice-out.hs
--- a/corpora/vendored/other/cpp/one-guard-asked-twice-out.hs
+++ b/corpora/vendored/other/cpp/one-guard-asked-twice-out.hs
@@ -6,20 +6,14 @@
 module Terminal.Key
   ( Key (..),
     keyCode,
-#if defined(HAVE_PATTERNS)
 #ifndef NO_NAMES
     keyName,
     keyLabel,
+#if defined(HAVE_PATTERNS)
     pattern Escape,
     pattern Enter,
-    keyGlyph,
 #endif
-#else
-#ifndef NO_NAMES
-    keyName,
-    keyLabel,
     keyGlyph,
-#endif
 #endif
   )
 where
diff --git a/corpora/vendored/other/cpp/one-question-asked-twice-with-a-comment-between-out.hs b/corpora/vendored/other/cpp/one-question-asked-twice-with-a-comment-between-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/one-question-asked-twice-with-a-comment-between-out.hs
@@ -0,0 +1,14 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Console (isConsole) where
+
+#ifdef WINDOWS
+import System.Win32.Console (getConsoleMode)
+#endif
+
+-- Everything below works the same everywhere.
+
+#ifdef WINDOWS
+isConsole :: Handle -> IO Bool
+isConsole h = (/= 0) <$> getConsoleMode h
+#endif
diff --git a/corpora/vendored/other/cpp/one-question-asked-twice-with-a-comment-between.hs b/corpora/vendored/other/cpp/one-question-asked-twice-with-a-comment-between.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/one-question-asked-twice-with-a-comment-between.hs
@@ -0,0 +1,14 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Console (isConsole) where
+
+#ifdef WINDOWS
+import System.Win32.Console (getConsoleMode)
+#endif
+
+-- Everything below works the same everywhere.
+
+#ifdef WINDOWS
+isConsole :: Handle -> IO Bool
+isConsole h = (/= 0) <$> getConsoleMode h
+#endif
diff --git a/corpora/vendored/other/cpp/operand-differing-across-branches-out.hs b/corpora/vendored/other/cpp/operand-differing-across-branches-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/operand-differing-across-branches-out.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE CPP #-}
+
+module Main (main) where
+
+main :: IO ()
+main = do
+  when (verbosity >= 4)
+#if MIN_VERSION_base(4,10,0)
+    $
+      let dump = putStrLn . render
+            where
+              render = show
+       in liftIO $ dump settings
+#elif MIN_VERSION_base(4,9,0)
+    $
+      let dump = print
+       in liftIO $ dump settings
+#else
+    $ liftIO
+    $ dump settings
+#endif
+
+  when (verbosity >= 3) $ do
+    putStrLn "done"
diff --git a/corpora/vendored/other/cpp/operand-differing-across-branches.hs b/corpora/vendored/other/cpp/operand-differing-across-branches.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/operand-differing-across-branches.hs
@@ -0,0 +1,19 @@
+{-# LANGUAGE CPP #-}
+
+module Main (main) where
+
+main :: IO ()
+main = do
+  when (verbosity >= 4) $
+#if MIN_VERSION_base(4,10,0)
+        let dump = putStrLn . render
+                where render = show
+        in
+#elif MIN_VERSION_base(4,9,0)
+        let dump = print
+        in
+#endif
+        liftIO $ dump settings
+
+  when (verbosity >= 3) $ do
+        putStrLn "done"
diff --git a/corpora/vendored/other/cpp/operator-continuing-a-statement-after-a-conditional-out.hs b/corpora/vendored/other/cpp/operator-continuing-a-statement-after-a-conditional-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/operator-continuing-a-statement-after-a-conditional-out.hs
@@ -0,0 +1,14 @@
+{-# LANGUAGE CPP #-}
+
+module Lens.Classy where
+
+makeClassy :: Name -> Q [Dec]
+makeClassy name = do
+  methods <- classMethods name
+#if MIN_VERSION_template_haskell(2,21,0)
+  classD (cxt []) name [] [] [] methods $
+#else
+  classD (cxt []) name [] [] methods $
+#endif
+    sigD (mkName "lensOf") (conT name)
+      : fmap pure methods
diff --git a/corpora/vendored/other/cpp/operator-continuing-a-statement-after-a-conditional.hs b/corpora/vendored/other/cpp/operator-continuing-a-statement-after-a-conditional.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/operator-continuing-a-statement-after-a-conditional.hs
@@ -0,0 +1,14 @@
+{-# LANGUAGE CPP #-}
+
+module Lens.Classy where
+
+makeClassy :: Name -> Q [Dec]
+makeClassy name = do
+  methods <- classMethods name
+#if MIN_VERSION_template_haskell(2,21,0)
+  classD (cxt []) name [] [] [] methods
+#else
+  classD (cxt []) name [] [] methods
+#endif
+    $ sigD (mkName "lensOf") (conT name)
+    : fmap pure methods
diff --git a/corpora/vendored/other/cpp/overlap-pragma-behind-a-conditional-out.hs b/corpora/vendored/other/cpp/overlap-pragma-behind-a-conditional-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/overlap-pragma-behind-a-conditional-out.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE StandaloneDeriving #-}
+
+module Route.Stop where
+
+class Describe a where
+  describe :: a -> String
+
+instance
+#if __GLASGOW_HASKELL__ >= 710
+  {-# OVERLAPPABLE #-}
+#endif
+  (Show a) => Describe [a] where
+  describe = unwords . map show
+
+newtype Stop = Stop Int
+
+deriving instance
+#ifdef WITH_OVERLAPS
+  {-# OVERLAPPING #-}
+#endif
+  Show Stop
diff --git a/corpora/vendored/other/cpp/overlap-pragma-behind-a-conditional.hs b/corpora/vendored/other/cpp/overlap-pragma-behind-a-conditional.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/overlap-pragma-behind-a-conditional.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE StandaloneDeriving #-}
+
+module Route.Stop where
+
+class Describe a where
+  describe :: a -> String
+
+instance
+#if __GLASGOW_HASKELL__ >= 710
+    {-# OVERLAPPABLE #-}
+#endif
+    (Show a) => Describe [a] where
+  describe = unwords . map show
+
+newtype Stop = Stop Int
+
+deriving instance
+#ifdef WITH_OVERLAPS
+    {-# OVERLAPPING #-}
+#endif
+    Show Stop
diff --git a/corpora/vendored/other/cpp/pragma-and-import-in-a-conditional-with-no-header-out.hs b/corpora/vendored/other/cpp/pragma-and-import-in-a-conditional-with-no-header-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/pragma-and-import-in-a-conditional-with-no-header-out.hs
@@ -0,0 +1,10 @@
+{-# LANGUAGE CPP #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE DeriveDataTypeable #-}
+
+import Control.Applicative ((<$>))
+#endif
+import Data.Int
+
+main :: IO ()
+main = pure ()
diff --git a/corpora/vendored/other/cpp/pragma-and-import-in-a-conditional-with-no-header.hs b/corpora/vendored/other/cpp/pragma-and-import-in-a-conditional-with-no-header.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/pragma-and-import-in-a-conditional-with-no-header.hs
@@ -0,0 +1,11 @@
+{-# LANGUAGE CPP #-}
+
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE DeriveDataTypeable #-}
+import Control.Applicative ((<$>))
+#endif
+
+import Data.Int
+
+main :: IO ()
+main  =  pure ()
diff --git a/corpora/vendored/other/cpp/pragma-behind-a-question-asked-again-inside-out.hs b/corpora/vendored/other/cpp/pragma-behind-a-question-asked-again-inside-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/pragma-behind-a-question-asked-again-inside-out.hs
@@ -0,0 +1,15 @@
+{-# LANGUAGE CPP #-}
+#ifdef USE_MAGIC_PROXY
+{-# LANGUAGE MagicHash #-}
+#endif
+
+module Data.Map.Internal where
+
+import Data.Maybe (fromMaybe)
+#if __GLASGOW_HASKELL__
+import GHC.Exts (build, lazy)
+#ifdef USE_MAGIC_PROXY
+import GHC.Exts (Proxy#, proxy#)
+#endif
+import Data.Coerce
+#endif
diff --git a/corpora/vendored/other/cpp/pragma-behind-a-question-asked-again-inside.hs b/corpora/vendored/other/cpp/pragma-behind-a-question-asked-again-inside.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/pragma-behind-a-question-asked-again-inside.hs
@@ -0,0 +1,15 @@
+{-# LANGUAGE CPP #-}
+#ifdef USE_MAGIC_PROXY
+{-# LANGUAGE MagicHash #-}
+#endif
+
+module Data.Map.Internal where
+
+import Data.Maybe (fromMaybe)
+#if __GLASGOW_HASKELL__
+import GHC.Exts (build, lazy)
+#  ifdef USE_MAGIC_PROXY
+import GHC.Exts (Proxy#, proxy#)
+#  endif
+import Data.Coerce
+#endif
diff --git a/corpora/vendored/other/cpp/qualified-imports-written-in-different-branches-out.hs b/corpora/vendored/other/cpp/qualified-imports-written-in-different-branches-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/qualified-imports-written-in-different-branches-out.hs
@@ -0,0 +1,15 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Text (strip) where
+
+import Text.Read (readMaybe)
+#ifdef WITH_LAZY_TEXT
+import qualified Data.Text.Lazy as T
+#else
+import qualified Data.Text as T
+#endif
+  hiding (lines)
+import Data.Char (isSpace)
+
+strip :: T.Text -> T.Text
+strip = T.strip
diff --git a/corpora/vendored/other/cpp/qualified-imports-written-in-different-branches.hs b/corpora/vendored/other/cpp/qualified-imports-written-in-different-branches.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/qualified-imports-written-in-different-branches.hs
@@ -0,0 +1,15 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Text (strip) where
+
+import Text.Read (readMaybe)
+#ifdef WITH_LAZY_TEXT
+import qualified Data.Text.Lazy as T
+#else
+import qualified Data.Text as T
+#endif
+    hiding (lines)
+import Data.Char (isSpace)
+
+strip :: T.Text -> T.Text
+strip  =  T.strip
diff --git a/corpora/vendored/other/cpp/record-closed-in-each-branch-out.hs b/corpora/vendored/other/cpp/record-closed-in-each-branch-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/record-closed-in-each-branch-out.hs
@@ -0,0 +1,15 @@
+{-# LANGUAGE CPP #-}
+
+module Network.Address where
+
+data Address = Address
+  { -- | @www.haskell.org@
+    addressHost :: String,
+    -- | @42@
+    addressPort :: Int
+  }
+#if __GLASGOW_HASKELL__ >= 702
+  deriving (Eq, Ord, Show, Generic)
+#else
+  deriving (Eq, Ord, Show)
+#endif
diff --git a/corpora/vendored/other/cpp/record-closed-in-each-branch.hs b/corpora/vendored/other/cpp/record-closed-in-each-branch.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/record-closed-in-each-branch.hs
@@ -0,0 +1,12 @@
+{-# LANGUAGE CPP #-}
+
+module Network.Address where
+
+data Address = Address
+    { addressHost   :: String  -- ^ @www.haskell.org@
+    , addressPort   :: Int     -- ^ @42@
+#if __GLASGOW_HASKELL__ >= 702
+    } deriving (Eq, Ord, Show, Generic)
+#else
+    } deriving (Eq, Ord, Show)
+#endif
diff --git a/corpora/vendored/other/cpp/ruled-out-branch-holding-nothing-out.hs b/corpora/vendored/other/cpp/ruled-out-branch-holding-nothing-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/ruled-out-branch-holding-nothing-out.hs
@@ -0,0 +1,12 @@
+{-# LANGUAGE CPP #-}
+
+module M where
+
+#if FLAG
+g = 1
+#else
+#if FLAG
+#else
+f = 1
+#endif
+#endif
diff --git a/corpora/vendored/other/cpp/ruled-out-branch-holding-nothing.hs b/corpora/vendored/other/cpp/ruled-out-branch-holding-nothing.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/ruled-out-branch-holding-nothing.hs
@@ -0,0 +1,12 @@
+{-# LANGUAGE CPP #-}
+
+module M where
+
+#if FLAG
+g = 1
+#else
+#if FLAG
+#else
+f = 1
+#endif
+#endif
diff --git a/corpora/vendored/other/cpp/section-headings-among-comments-out.hs b/corpora/vendored/other/cpp/section-headings-among-comments-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/section-headings-among-comments-out.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE CPP #-}
+
+module Inventory where
+
+#ifdef STRICT
+count = 0
+#else
+count = 1
+#endif
+
+-- Plan:
+--
+-- * Count what comes in. Count what goes
+--   out as well.
+--
+-- * Never count twice.
+
+----------------------------------------------------------------------------
+-- * Making items
+----------------------------------------------------------------------------
+
+-- | One thing on a shelf.
+data Item = Item
diff --git a/corpora/vendored/other/cpp/section-headings-among-comments.hs b/corpora/vendored/other/cpp/section-headings-among-comments.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/section-headings-among-comments.hs
@@ -0,0 +1,22 @@
+{-# LANGUAGE CPP #-}
+module Inventory where
+
+#ifdef STRICT
+count = 0
+#else
+count = 1
+#endif
+
+-- Plan:
+--
+-- * Count what comes in. Count what goes
+--   out as well.
+--
+-- * Never count twice.
+
+----------------------------------------------------------------------------
+-- * Making items
+----------------------------------------------------------------------------
+
+-- | One thing on a shelf.
+data Item = Item
diff --git a/corpora/vendored/other/cpp/settled-in-imports-and-in-declarations-out.hs b/corpora/vendored/other/cpp/settled-in-imports-and-in-declarations-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/settled-in-imports-and-in-declarations-out.hs
@@ -0,0 +1,37 @@
+{-# LANGUAGE CPP #-}
+#if __GLASGOW_HASKELL__
+{-# LANGUAGE DeriveLift #-}
+{-# LANGUAGE StandaloneDeriving #-}
+{-# LANGUAGE TemplateHaskellQuotes #-}
+#endif
+#ifdef USE_ST
+{-# LANGUAGE RankNTypes #-}
+#endif
+
+module Graph where
+
+import Data.List (sort)
+#ifdef __GLASGOW_HASKELL__
+import Language.Haskell.TH.Syntax (Lift (..))
+#endif
+
+data SCC v = AcyclicSCC v
+
+#ifdef __GLASGOW_HASKELL__
+deriving instance (Show v) => Show (SCC v)
+
+#if MIN_VERSION_template_haskell(2,15,0)
+deriving instance (Lift v) => Lift (SCC v)
+#else
+instance (Lift v) => Lift (SCC v) where
+  lift (AcyclicSCC v) = [|AcyclicSCC v|]
+#endif
+#endif
+
+#if USE_ST
+run :: (forall s. s -> s) -> Int
+run f = f 1
+#endif
+
+f :: Int
+f = 1
diff --git a/corpora/vendored/other/cpp/settled-in-imports-and-in-declarations.hs b/corpora/vendored/other/cpp/settled-in-imports-and-in-declarations.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/settled-in-imports-and-in-declarations.hs
@@ -0,0 +1,38 @@
+{-# LANGUAGE CPP #-}
+#if __GLASGOW_HASKELL__
+{-# LANGUAGE StandaloneDeriving #-}
+{-# LANGUAGE DeriveLift #-}
+{-# LANGUAGE TemplateHaskellQuotes #-}
+#endif
+#ifdef USE_ST
+{-# LANGUAGE RankNTypes #-}
+#endif
+module Graph where
+
+import Data.List (sort)
+
+#ifdef __GLASGOW_HASKELL__
+import Language.Haskell.TH.Syntax (Lift(..))
+#endif
+
+data SCC v = AcyclicSCC v
+
+#ifdef __GLASGOW_HASKELL__
+deriving instance Show v => Show (SCC v)
+
+#if MIN_VERSION_template_haskell(2,15,0)
+deriving instance Lift v => Lift (SCC v)
+#else
+instance Lift v => Lift (SCC v) where
+  lift (AcyclicSCC v) = [| AcyclicSCC v |]
+#endif
+
+#endif
+
+#if USE_ST
+run :: (forall s. s -> s) -> Int
+run f = f 1
+#endif
+
+f :: Int
+f = 1
diff --git a/corpora/vendored/other/cpp/text-after-else-and-endif-out.hs b/corpora/vendored/other/cpp/text-after-else-and-endif-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/text-after-else-and-endif-out.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Features
+  ( supportsColour,
+#ifndef NO_PASTE
+    supportsPaste,
+#endif /* NO_PASTE */
+  )
+where
+
+#ifdef WINDOWS /* the console */
+supportsColour :: Bool
+supportsColour = False
+#else /* a terminal */
+supportsColour :: Bool
+supportsColour = True
+#endif /* WINDOWS */
+
+#if MIN_VERSION_base(4,20,0)
+#else   /* nothing to add */
+#endif  // MIN_VERSION_base
+
+#ifndef NO_PASTE
+supportsPaste :: Bool
+supportsPaste = True
+#else /* NO_PASTE */
+#endif
diff --git a/corpora/vendored/other/cpp/text-after-else-and-endif.hs b/corpora/vendored/other/cpp/text-after-else-and-endif.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/text-after-else-and-endif.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE CPP #-}
+
+module Terminal.Features
+  ( supportsColour,
+#ifndef NO_PASTE
+    supportsPaste,
+#endif /* NO_PASTE */
+  )
+where
+
+#ifdef WINDOWS /* the console */
+supportsColour :: Bool
+supportsColour  =  False
+#else /* a terminal */
+supportsColour :: Bool
+supportsColour  =  True
+#endif /* WINDOWS */
+
+#if MIN_VERSION_base(4,20,0)
+#else   /* nothing to add */
+#endif  // MIN_VERSION_base
+
+#ifndef NO_PASTE
+supportsPaste :: Bool
+supportsPaste  =  True
+#else /* NO_PASTE */
+#endif
diff --git a/corpora/vendored/other/cpp/trailing-comment-above-a-directive-out.hs b/corpora/vendored/other/cpp/trailing-comment-above-a-directive-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/trailing-comment-above-a-directive-out.hs
@@ -0,0 +1,18 @@
+{-# LANGUAGE CPP #-}
+
+module Settings (settings) where
+
+import Options (Options (..), defaultOptions)
+
+settings :: Options
+settings =
+  defaultOptions
+    { optionA = True,
+-- Highlighting is on by default, as it was
+-- in earlier releases.
+#if MIN_VERSION_base(4,20,0)
+      optionB = True
+#else
+      optionB = False
+#endif
+    }
diff --git a/corpora/vendored/other/cpp/trailing-comment-above-a-directive.hs b/corpora/vendored/other/cpp/trailing-comment-above-a-directive.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/trailing-comment-above-a-directive.hs
@@ -0,0 +1,18 @@
+{-# LANGUAGE CPP #-}
+
+module Settings (settings) where
+
+import Options (Options (..), defaultOptions)
+
+settings :: Options
+settings =
+  defaultOptions
+    { optionA = True
+    , -- Highlighting is on by default, as it was
+      -- in earlier releases.
+#if MIN_VERSION_base(4,20,0)
+      optionB = True
+#else
+      optionB = False
+#endif
+    }
diff --git a/corpora/vendored/other/cpp/triple-dash-under-a-haddock-out.hs b/corpora/vendored/other/cpp/triple-dash-under-a-haddock-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/triple-dash-under-a-haddock-out.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE CPP #-}
+
+module Data.Window where
+
+#if MIN_VERSION_base(4,8,0)
+import Data.List (sort)
+#endif
+
+-- | Give a window over a list. GHC ends it at a line beginning with three
+-- dashes, so nothing needs to hold the lines from there on off it.
+--
+-- @
+-- window4
+---  :: [Int]
+--   -> [Int]
+-- window4 = window
+-- @
+window :: [Int] -> [Int]
+window = id
+
+-- | All the windows.
+---------------------------------------------------------------------------
+windows :: [[Int]]
+windows = []
diff --git a/corpora/vendored/other/cpp/triple-dash-under-a-haddock.hs b/corpora/vendored/other/cpp/triple-dash-under-a-haddock.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/triple-dash-under-a-haddock.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE CPP #-}
+
+module Data.Window where
+
+#if MIN_VERSION_base(4,8,0)
+import Data.List (sort)
+#endif
+
+-- | Give a window over a list. GHC ends it at a line beginning with three
+-- dashes, so nothing needs to hold the lines from there on off it.
+--
+-- @
+-- window4
+---  :: [Int]
+--   -> [Int]
+-- window4 = window
+-- @
+window :: [Int] -> [Int]
+window = id
+
+-- | All the windows.
+---------------------------------------------------------------------------
+windows :: [[Int]]
+windows = []
diff --git a/corpora/vendored/other/cpp/two-conditionals-changing-one-run-of-space-out.hs b/corpora/vendored/other/cpp/two-conditionals-changing-one-run-of-space-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/two-conditionals-changing-one-run-of-space-out.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE CPP #-}
+
+-- Taking the #else of the first conditional and the branch of the second,
+-- each adds to the space between the first Haddock and the heading, the
+-- second nearer the Haddock, which documents what it adds.
+module Codec.Frame where
+
+#if FAST
+#else
+-- | Decoding a frame.
+#if MIN_VERSION_bytestring(0,11,0)
+#else
+-- | Decoding a frame, copying it first.
+#endif
+#endif
+#if FAST
+#if MIN_VERSION_bytestring(0,11,0)
+#else
+decode = copy
+#endif
+#endif
+
+-- * Encoding
diff --git a/corpora/vendored/other/cpp/two-conditionals-changing-one-run-of-space.hs b/corpora/vendored/other/cpp/two-conditionals-changing-one-run-of-space.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/two-conditionals-changing-one-run-of-space.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE CPP #-}
+
+-- Taking the #else of the first conditional and the branch of the second,
+-- each adds to the space between the first Haddock and the heading, the
+-- second nearer the Haddock, which documents what it adds.
+module Codec.Frame where
+
+#if FAST
+#else
+-- | Decoding a frame.
+#if MIN_VERSION_bytestring(0,11,0)
+#else
+-- | Decoding a frame, copying it first.
+#endif
+#endif
+#if FAST
+
+#if MIN_VERSION_bytestring(0,11,0)
+#else
+decode = copy
+#endif
+#endif
+-- * Encoding
diff --git a/corpora/vendored/other/cpp/two-conditionals-in-one-expression-out.hs b/corpora/vendored/other/cpp/two-conditionals-in-one-expression-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/two-conditionals-in-one-expression-out.hs
@@ -0,0 +1,12 @@
+{-# LANGUAGE CPP #-}
+
+module M where
+
+f =
+  a
+#if X
+    + b
+#endif
+#if Y
+    + c
+#endif
diff --git a/corpora/vendored/other/cpp/two-conditionals-in-one-expression.hs b/corpora/vendored/other/cpp/two-conditionals-in-one-expression.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/two-conditionals-in-one-expression.hs
@@ -0,0 +1,12 @@
+{-# LANGUAGE CPP #-}
+
+module M where
+
+f =
+  a
+#if X
+    + b
+#endif
+#if Y
+    + c
+#endif
diff --git a/corpora/vendored/other/cpp/version-range-settled-by-its-bound-out.hs b/corpora/vendored/other/cpp/version-range-settled-by-its-bound-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/version-range-settled-by-its-bound-out.hs
@@ -0,0 +1,21 @@
+{-# LANGUAGE CPP #-}
+#if MIN_VERSION_base(4,10,0)
+{-# LANGUAGE MagicHash #-}
+#endif
+
+module Raise (raiseIt, sorted) where
+
+import Control.Exception
+#if MIN_VERSION_base(4,10,0) && !MIN_VERSION_base(4,12,0)
+  hiding (throw)
+import GHC.Exts (raise#)
+#endif
+import Data.List (sort)
+
+#if MIN_VERSION_base(4,10,0)
+raiseIt :: SomeException -> a
+raiseIt = raise#
+#endif
+
+sorted :: [Int] -> [Int]
+sorted = sort
diff --git a/corpora/vendored/other/cpp/version-range-settled-by-its-bound.hs b/corpora/vendored/other/cpp/version-range-settled-by-its-bound.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/version-range-settled-by-its-bound.hs
@@ -0,0 +1,20 @@
+{-# LANGUAGE CPP #-}
+#if MIN_VERSION_base(4,10,0)
+{-# LANGUAGE MagicHash #-}
+#endif
+module Raise (raiseIt, sorted) where
+
+import Control.Exception
+#if MIN_VERSION_base(4,10,0) && !MIN_VERSION_base(4,12,0)
+  hiding (throw)
+import GHC.Exts (raise#)
+#endif
+import Data.List (sort)
+
+#if MIN_VERSION_base(4,10,0)
+raiseIt :: SomeException -> a
+raiseIt = raise#
+#endif
+
+sorted :: [Int] -> [Int]
+sorted = sort
diff --git a/corpora/vendored/other/cpp/version-settled-by-an-older-version-out.hs b/corpora/vendored/other/cpp/version-settled-by-an-older-version-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/version-settled-by-an-older-version-out.hs
@@ -0,0 +1,18 @@
+{-# LANGUAGE CPP #-}
+#if MIN_VERSION_base(4,10,0)
+{-# LANGUAGE MagicHash #-}
+#endif
+
+module Words where
+
+#if MIN_VERSION_base(4,11,0)
+import GHC.Exts (Int (I#), (+#))
+#endif
+
+#if MIN_VERSION_base(4,11,0)
+plusOne :: Int -> Int
+plusOne (I# n) = I# (n +# 1#)
+#else
+plusOne :: Int -> Int
+plusOne n = n + 1
+#endif
diff --git a/corpora/vendored/other/cpp/version-settled-by-an-older-version.hs b/corpora/vendored/other/cpp/version-settled-by-an-older-version.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/version-settled-by-an-older-version.hs
@@ -0,0 +1,17 @@
+{-# LANGUAGE CPP #-}
+#if MIN_VERSION_base(4,10,0)
+{-# LANGUAGE MagicHash #-}
+#endif
+module Words where
+
+#if MIN_VERSION_base(4,11,0)
+import GHC.Exts (Int (I#), (+#))
+#endif
+
+#if MIN_VERSION_base(4,11,0)
+plusOne :: Int -> Int
+plusOne (I# n) = I# (n +# 1#)
+#else
+plusOne :: Int -> Int
+plusOne n = n+1
+#endif
diff --git a/corpora/vendored/other/cpp/version-settled-holding-every-declaration-out.hs b/corpora/vendored/other/cpp/version-settled-holding-every-declaration-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/version-settled-holding-every-declaration-out.hs
@@ -0,0 +1,14 @@
+{-# LANGUAGE CPP #-}
+#if MIN_VERSION_base(4,10,0)
+{-# LANGUAGE MagicHash #-}
+#endif
+
+module Words where
+
+import Data.Bits (shiftL)
+#if MIN_VERSION_base(4,11,0)
+import GHC.Exts (Int (I#), uncheckedIShiftL#)
+
+double :: Int -> Int
+double (I# n) = I# (uncheckedIShiftL# n 1#)
+#endif
diff --git a/corpora/vendored/other/cpp/version-settled-holding-every-declaration.hs b/corpora/vendored/other/cpp/version-settled-holding-every-declaration.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/version-settled-holding-every-declaration.hs
@@ -0,0 +1,13 @@
+{-# LANGUAGE CPP #-}
+#if MIN_VERSION_base(4,10,0)
+{-# LANGUAGE MagicHash #-}
+#endif
+module Words where
+
+import Data.Bits (shiftL)
+#if MIN_VERSION_base(4,11,0)
+import GHC.Exts (Int (I#), uncheckedIShiftL#)
+
+double :: Int -> Int
+double (I# n) = I# (uncheckedIShiftL# n 1#)
+#endif
diff --git a/corpora/vendored/other/cpp/version-settled-where-answers-read-alike-out.hs b/corpora/vendored/other/cpp/version-settled-where-answers-read-alike-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/version-settled-where-answers-read-alike-out.hs
@@ -0,0 +1,22 @@
+{-# LANGUAGE CPP #-}
+
+-- No answer turns an extension on, but taking no branch of the first
+-- conditional and the branch of the second leaves a comma with nothing
+-- before it.
+module Data.Compat
+  (
+#if !(MIN_VERSION_base(4,16,0))
+    Solo (..),
+#endif
+#if !(MIN_VERSION_base(4,14,0))
+    Pair (..),
+#endif
+  )
+where
+
+#if !(MIN_VERSION_base(4,16,0))
+newtype Solo a = Solo a
+#endif
+#if !(MIN_VERSION_base(4,14,0))
+data Pair a = Pair a a
+#endif
diff --git a/corpora/vendored/other/cpp/version-settled-where-answers-read-alike.hs b/corpora/vendored/other/cpp/version-settled-where-answers-read-alike.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/version-settled-where-answers-read-alike.hs
@@ -0,0 +1,21 @@
+{-# LANGUAGE CPP #-}
+
+-- No answer turns an extension on, but taking no branch of the first
+-- conditional and the branch of the second leaves a comma with nothing
+-- before it.
+module Data.Compat
+  (
+#if !(MIN_VERSION_base(4,16,0))
+    Solo (..)
+#endif
+#if !(MIN_VERSION_base(4,14,0))
+  , Pair (..)
+#endif
+  ) where
+
+#if !(MIN_VERSION_base(4,16,0))
+newtype Solo a = Solo a
+#endif
+#if !(MIN_VERSION_base(4,14,0))
+data Pair a = Pair a a
+#endif
diff --git a/corpora/vendored/other/cpp/where-clause-after-the-branches-out.hs b/corpora/vendored/other/cpp/where-clause-after-the-branches-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/where-clause-after-the-branches-out.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE CPP #-}
+
+-- A where clause written once, after the branches of an equation, stays
+-- there rather than going into each of them.
+module Cache.Evict where
+
+evict :: Int -> Int
+#if MIN_VERSION_base(4,16,0)
+evict n = keep (n - 1)
+#else
+evict n = keep n
+#endif
+  where
+    keep = max 0
+
+-- Guards in one branch and not the other.
+shrink :: Int -> Int
+#if MIN_VERSION_base(4,16,0)
+shrink n
+  | n > limit = limit
+  | otherwise = n
+#else
+shrink n = min n limit
+#endif
+  where
+    limit = 64
+
+-- The same for an alternative of a case.
+stale :: Maybe Int -> Int
+stale m = case m of
+#if MIN_VERSION_base(4,16,0)
+  Just n -> age n
+#else
+  Just n -> age (n + 1)
+#endif
+    where
+      age = subtract 1
+  Nothing -> 0
+
+-- A where clause in each branch stays in each.
+expire :: Int -> Int
+#if MIN_VERSION_base(4,16,0)
+expire n = ttl n
+  where
+    ttl = (* 2)
+#else
+expire n = ttl n
+  where
+    ttl = id
+#endif
diff --git a/corpora/vendored/other/cpp/where-clause-after-the-branches.hs b/corpora/vendored/other/cpp/where-clause-after-the-branches.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/cpp/where-clause-after-the-branches.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE CPP #-}
+
+-- A where clause written once, after the branches of an equation, stays
+-- there rather than going into each of them.
+module Cache.Evict where
+
+evict :: Int -> Int
+#if MIN_VERSION_base(4,16,0)
+evict n = keep (n - 1)
+#else
+evict n = keep n
+#endif
+  where
+    keep = max 0
+
+-- Guards in one branch and not the other.
+shrink :: Int -> Int
+#if MIN_VERSION_base(4,16,0)
+shrink n
+  | n > limit = limit
+  | otherwise = n
+#else
+shrink n = min n limit
+#endif
+  where
+    limit = 64
+
+-- The same for an alternative of a case.
+stale :: Maybe Int -> Int
+stale m = case m of
+#if MIN_VERSION_base(4,16,0)
+  Just n -> age n
+#else
+  Just n -> age (n + 1)
+#endif
+    where
+      age = subtract 1
+  Nothing -> 0
+
+-- A where clause in each branch stays in each.
+expire :: Int -> Int
+#if MIN_VERSION_base(4,16,0)
+expire n = ttl n
+  where
+    ttl = (* 2)
+#else
+expire n = ttl n
+  where
+    ttl = id
+#endif
diff --git a/corpora/vendored/other/haddock-holding-only-a-space-out.hs b/corpora/vendored/other/haddock-holding-only-a-space-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/haddock-holding-only-a-space-out.hs
@@ -0,0 +1,26 @@
+{- | -}
+module Kiln.Glaze where
+
+-- A Haddock that holds nothing but a space, as the one above the header
+-- does, would lose it at the end of its line and hold nothing, so it comes
+-- out as a block comment. The same goes before a constructor, a field and
+-- an argument.
+data Finish
+  = {- | -}
+    Matte
+  | Gloss
+
+data Kiln = Kiln
+  { {- | -} temperature :: Int
+  }
+
+fire ::
+  {- | -} Int ->
+  Kiln
+fire = Kiln
+
+-- One with nothing after its trigger stays as it is.
+
+-- |
+glaze :: Finish
+glaze = Matte
diff --git a/corpora/vendored/other/haddock-holding-only-a-space.hs b/corpora/vendored/other/haddock-holding-only-a-space.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/haddock-holding-only-a-space.hs
@@ -0,0 +1,28 @@
+-- | 
+module Kiln.Glaze where
+
+-- A Haddock that holds nothing but a space, as the one above the header
+-- does, would lose it at the end of its line and hold nothing, so it comes
+-- out as a block comment. The same goes before a constructor, a field and
+-- an argument.
+data Finish
+  = -- | 
+    Matte
+  | Gloss
+
+data Kiln = Kiln
+  { -- | 
+    temperature :: Int
+  }
+
+fire ::
+  -- | 
+  Int ->
+  Kiln
+fire = Kiln
+
+-- One with nothing after its trigger stays as it is.
+
+-- |
+glaze :: Finish
+glaze = Matte
diff --git a/corpora/vendored/other/haddock-that-documents-nothing-out.hs b/corpora/vendored/other/haddock-that-documents-nothing-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/haddock-that-documents-nothing-out.hs
@@ -0,0 +1,42 @@
+-- A Haddock in a local signature documents nothing, so it comes out as
+-- ordinary comments, a comment for each of its lines.
+twoLines :: Int
+twoLines = g 1 2
+  where
+    g ::
+      Int -> -- \^ a
+      Int -> -- \^ b, which goes
+             --   on to a second line
+      Int
+    g = (+)
+
+-- The same over three lines, the last of them lined up with the code.
+threeLines :: Int
+threeLines = g 1 2
+  where
+    g ::
+      Int -> -- \^ a, which goes
+             --   on to a second line
+      --   and a third
+      Int ->
+      Int
+    g = (+)
+
+-- One on the lines above a local binding.
+above :: Int
+above = g
+  where
+    -- \| What g is,
+    -- over two lines.
+    g = 1
+
+-- A block one stays one comment.
+block :: Int
+block = g 1
+  where
+    g ::
+      Int {- \^ a, which goes
+               on to a second line -}
+      ->
+      Int
+    g = id
diff --git a/corpora/vendored/other/haddock-that-documents-nothing.hs b/corpora/vendored/other/haddock-that-documents-nothing.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/haddock-that-documents-nothing.hs
@@ -0,0 +1,41 @@
+-- A Haddock in a local signature documents nothing, so it comes out as
+-- ordinary comments, a comment for each of its lines.
+twoLines :: Int
+twoLines = g 1 2
+  where
+    g
+      :: Int -- ^ a
+      -> Int -- ^ b, which goes
+             --   on to a second line
+      -> Int
+    g = (+)
+
+-- The same over three lines, the last of them lined up with the code.
+threeLines :: Int
+threeLines = g 1 2
+  where
+    g
+      :: Int -- ^ a, which goes
+             --   on to a second line
+      --   and a third
+      -> Int
+      -> Int
+    g = (+)
+
+-- One on the lines above a local binding.
+above :: Int
+above = g
+  where
+    -- | What g is,
+    -- over two lines.
+    g = 1
+
+-- A block one stays one comment.
+block :: Int
+block = g 1
+  where
+    g
+      :: Int {- ^ a, which goes
+                  on to a second line -}
+      -> Int
+    g = id
diff --git a/corpora/vendored/other/haddock-without-a-space-after-its-trigger-out.hs b/corpora/vendored/other/haddock-without-a-space-after-its-trigger-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/haddock-without-a-space-after-its-trigger-out.hs
@@ -0,0 +1,18 @@
+module Options where
+
+data Options = Options
+  { -- | Recover from errors.
+    --
+    --  Invalid input is taken literally.
+    recover :: Bool,
+    strict :: Bool
+  }
+
+parse ::
+  -- | Options to parse with.
+  --
+  --  Strict ones reject what others let through.
+  Options ->
+  String ->
+  Maybe Int
+parse _ _ = Nothing
diff --git a/corpora/vendored/other/haddock-without-a-space-after-its-trigger.hs b/corpora/vendored/other/haddock-without-a-space-after-its-trigger.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/haddock-without-a-space-after-its-trigger.hs
@@ -0,0 +1,18 @@
+module Options where
+
+data Options = Options
+  { recover :: Bool
+    -- ^Recover from errors.
+    --
+    -- Invalid input is taken literally.
+  , strict :: Bool
+  }
+
+parse ::
+  Options ->
+  -- ^Options to parse with.
+  --
+  -- Strict ones reject what others let through.
+  String ->
+  Maybe Int
+parse _ _ = Nothing
diff --git a/corpora/vendored/other/module-pragma-on-a-line-of-its-own-out.hs b/corpora/vendored/other/module-pragma-on-a-line-of-its-own-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/module-pragma-on-a-line-of-its-own-out.hs
@@ -0,0 +1,5 @@
+module Tutorial
+  {-# DEPRECATED "Use something else" #-}
+where
+
+x = 1
diff --git a/corpora/vendored/other/module-pragma-on-a-line-of-its-own.hs b/corpora/vendored/other/module-pragma-on-a-line-of-its-own.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/module-pragma-on-a-line-of-its-own.hs
@@ -0,0 +1,5 @@
+module Tutorial
+    {-# DEPRECATED "Use something else" #-}
+    where
+
+x = 1
diff --git a/corpora/vendored/other/module-pragma-on-the-line-of-the-name-out.hs b/corpora/vendored/other/module-pragma-on-the-line-of-the-name-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/module-pragma-on-the-line-of-the-name-out.hs
@@ -0,0 +1,3 @@
+module Tutorial {-# WARNING "Use something else" #-} where
+
+x = 1
diff --git a/corpora/vendored/other/module-pragma-on-the-line-of-the-name.hs b/corpora/vendored/other/module-pragma-on-the-line-of-the-name.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/module-pragma-on-the-line-of-the-name.hs
@@ -0,0 +1,4 @@
+module Tutorial {-# WARNING "Use something else" #-}
+    where
+
+x = 1
diff --git a/corpora/vendored/other/names-of-a-type-in-an-export-list-out.hs b/corpora/vendored/other/names-of-a-type-in-an-export-list-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/names-of-a-type-in-an-export-list-out.hs
@@ -0,0 +1,17 @@
+module Shapes.Kind
+  ( Shape (Circle, Square),
+    Side
+      ( Top,
+        Bottom
+      ),
+    area,
+  )
+where
+
+data Shape = Circle Double | Square Double
+
+data Side = Top | Bottom
+
+area :: Shape -> Double
+area (Circle r) = pi * r * r
+area (Square a) = a * a
diff --git a/corpora/vendored/other/names-of-a-type-in-an-export-list.hs b/corpora/vendored/other/names-of-a-type-in-an-export-list.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/names-of-a-type-in-an-export-list.hs
@@ -0,0 +1,17 @@
+module Shapes.Kind
+  ( Shape
+      (Circle, Square),
+    Side
+      ( Top,
+        Bottom
+      ),
+    area
+  ) where
+
+data Shape = Circle Double | Square Double
+
+data Side = Top | Bottom
+
+area :: Shape -> Double
+area (Circle r) = pi * r * r
+area (Square a) = a * a
diff --git a/corpora/vendored/other/options-in-written-order-out.hs b/corpora/vendored/other/options-in-written-order-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/options-in-written-order-out.hs
@@ -0,0 +1,15 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE TypeOperators #-}
+{-# OPTIONS_GHC -Wall #-}
+{-# OPTIONS_GHC -Wno-unused-imports #-}
+{-# OPTIONS_GHC -Wall #-}
+{-# OPTIONS_GHC -fplugin=GHC.TypeLits.Normalise #-}
+{-# OPTIONS_GHC -fplugin=GHC.TypeLits.KnownNat.Solver #-}
+
+module Kiln.Glaze where
+
+-- GHC reads the flags of the options pragmas in the order they are written,
+-- a later one overriding an earlier one, so they keep that order, and only a
+-- pragma written twice in a row is written once.
+glaze :: Int
+glaze = 1
diff --git a/corpora/vendored/other/options-in-written-order.hs b/corpora/vendored/other/options-in-written-order.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/options-in-written-order.hs
@@ -0,0 +1,16 @@
+{-# OPTIONS_GHC -Wall #-}
+{-# LANGUAGE TypeOperators #-}
+{-# OPTIONS_GHC -Wno-unused-imports #-}
+{-# OPTIONS_GHC -Wall #-}
+{-# OPTIONS_GHC -Wall #-}
+{-# LANGUAGE DataKinds #-}
+{-# OPTIONS_GHC -fplugin=GHC.TypeLits.Normalise #-}
+{-# OPTIONS_GHC -fplugin=GHC.TypeLits.KnownNat.Solver #-}
+
+module Kiln.Glaze where
+
+-- GHC reads the flags of the options pragmas in the order they are written,
+-- a later one overriding an earlier one, so they keep that order, and only a
+-- pragma written twice in a row is written once.
+glaze :: Int
+glaze = 1
diff --git a/corpora/vendored/other/section-headings-among-comments-out.hs b/corpora/vendored/other/section-headings-among-comments-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/section-headings-among-comments-out.hs
@@ -0,0 +1,30 @@
+module Inventory
+  ( -- * Items
+    -- in the order they come in
+    Item,
+    newItem,
+  )
+where
+
+count = 0
+
+-- Plan:
+--
+-- * Count what comes in. Count what goes
+--   out as well.
+--
+-- * Never count twice.
+
+-- | One thing on a shelf.
+data Item = Item
+
+----------------------------------------------------------------------------
+-- * Making items
+----------------------------------------------------------------------------
+
+newItem :: Item
+newItem = Item
+
+-- * Checking items
+-- once there is something to check
+check = True
diff --git a/corpora/vendored/other/section-headings-among-comments.hs b/corpora/vendored/other/section-headings-among-comments.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/section-headings-among-comments.hs
@@ -0,0 +1,30 @@
+module Inventory
+  ( -- * Items
+    -- in the order they come in
+    Item,
+    newItem,
+  )
+where
+
+count = 0
+
+-- Plan:
+--
+-- * Count what comes in. Count what goes
+--   out as well.
+--
+-- * Never count twice.
+
+-- | One thing on a shelf.
+data Item = Item
+
+----------------------------------------------------------------------------
+-- * Making items
+----------------------------------------------------------------------------
+
+newItem :: Item
+newItem = Item
+
+-- * Checking items
+-- once there is something to check
+check = True
diff --git a/corpora/vendored/other/trailing-comment-above-comments-under-a-right-hand-side-out.hs b/corpora/vendored/other/trailing-comment-above-comments-under-a-right-hand-side-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/trailing-comment-above-comments-under-a-right-hand-side-out.hs
@@ -0,0 +1,15 @@
+module Matching where
+
+matches :: Int -> Int -> Bool
+matches a b = a == b -- quick test
+              -- and not the full one
+
+instance Eq Ledger where
+  a == b = name a == name b -- names only
+           -- the rest follows from them
+
+render :: Int -> [Int]
+render x = case x of
+  0 -> [1] -- a zero-width space
+       -- to avoid an empty box
+  _ -> []
diff --git a/corpora/vendored/other/trailing-comment-above-comments-under-a-right-hand-side.hs b/corpora/vendored/other/trailing-comment-above-comments-under-a-right-hand-side.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/trailing-comment-above-comments-under-a-right-hand-side.hs
@@ -0,0 +1,15 @@
+module Matching where
+
+matches :: Int -> Int -> Bool
+matches a b = a == b -- quick test
+              -- and not the full one
+
+instance Eq Ledger where
+  a == b = name a == name b  -- names only
+           -- the rest follows from them
+
+render :: Int -> [Int]
+render x = case x of
+   0   -> [1]  -- a zero-width space
+          -- to avoid an empty box
+   _ -> []
diff --git a/corpora/vendored/other/triple-dash-under-a-haddock-out.hs b/corpora/vendored/other/triple-dash-under-a-haddock-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/triple-dash-under-a-haddock-out.hs
@@ -0,0 +1,18 @@
+module Data.Window where
+
+-- | Give a window over a list. GHC ends it at a line beginning with three
+-- dashes, so nothing needs to hold the lines from there on off it.
+--
+-- @
+-- window4
+---  :: [Int]
+--   -> [Int]
+-- window4 = window
+-- @
+window :: [Int] -> [Int]
+window = id
+
+-- | All the windows.
+---------------------------------------------------------------------------
+windows :: [[Int]]
+windows = []
diff --git a/corpora/vendored/other/triple-dash-under-a-haddock.hs b/corpora/vendored/other/triple-dash-under-a-haddock.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/triple-dash-under-a-haddock.hs
@@ -0,0 +1,18 @@
+module Data.Window where
+
+-- | Give a window over a list. GHC ends it at a line beginning with three
+-- dashes, so nothing needs to hold the lines from there on off it.
+--
+-- @
+-- window4
+---  :: [Int]
+--   -> [Int]
+-- window4 = window
+-- @
+window :: [Int] -> [Int]
+window = id
+
+-- | All the windows.
+---------------------------------------------------------------------------
+windows :: [[Int]]
+windows = []
diff --git a/corpora/vendored/other/unrecognised-pragma-under-a-hoisted-pragma-out.hs b/corpora/vendored/other/unrecognised-pragma-under-a-hoisted-pragma-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/unrecognised-pragma-under-a-hoisted-pragma-out.hs
@@ -0,0 +1,13 @@
+-------------------------------------------------------------------------
+
+{-# LANGUAGE Trustworthy #-}
+{-# OPTIONS_GHC -Wno-unrecognised-pragmas #-}
+
+-------------------------------------------------------------------------
+
+-- |
+-- Module      : T
+
+{-# HLINT ignore "Avoid restricted function" #-}
+
+module T where
diff --git a/corpora/vendored/other/unrecognised-pragma-under-a-hoisted-pragma.hs b/corpora/vendored/other/unrecognised-pragma-under-a-hoisted-pragma.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/unrecognised-pragma-under-a-hoisted-pragma.hs
@@ -0,0 +1,11 @@
+-------------------------------------------------------------------------
+-- |
+-- Module      : T
+-------------------------------------------------------------------------
+
+{-# LANGUAGE Trustworthy #-}
+
+{-# OPTIONS_GHC -Wno-unrecognised-pragmas #-}
+{-# HLINT ignore "Avoid restricted function" #-}
+
+module T where
diff --git a/corpora/vendored/other/warning-pragmas-that-name-nothing-out.hs b/corpora/vendored/other/warning-pragmas-that-name-nothing-out.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/warning-pragmas-that-name-nothing-out.hs
@@ -0,0 +1,10 @@
+module Kiln.Glaze where
+
+-- A DEPRECATED or WARNING pragma that names nothing is a declaration of its
+-- own, and is kept.
+{-# DEPRECATED #-}
+
+{-# WARNING #-}
+
+glaze :: Int
+glaze = 1
diff --git a/corpora/vendored/other/warning-pragmas-that-name-nothing.hs b/corpora/vendored/other/warning-pragmas-that-name-nothing.hs
new file mode 100644
--- /dev/null
+++ b/corpora/vendored/other/warning-pragmas-that-name-nothing.hs
@@ -0,0 +1,9 @@
+module Kiln.Glaze where
+
+-- A DEPRECATED or WARNING pragma that names nothing is a declaration of its
+-- own, and is kept.
+{-# DEPRECATED #-}
+{-# warning #-}
+
+glaze :: Int
+glaze = 1
diff --git a/src/Tilia/Cabal/Package.hs b/src/Tilia/Cabal/Package.hs
--- a/src/Tilia/Cabal/Package.hs
+++ b/src/Tilia/Cabal/Package.hs
@@ -24,16 +24,19 @@
 where
 
 import Data.ByteString qualified as BS
+import Data.Generics.Schemes (listify)
 import Data.IORef
 import Data.List (isSuffixOf, sortOn)
 import Data.List.NonEmpty qualified as NE
 import Data.Map.Strict (Map)
 import Data.Map.Strict qualified as Map
+import Data.Maybe (fromMaybe)
 import Data.Ord (Down (..))
 import Data.Set (Set)
 import Data.Set qualified as Set
 import Data.Text (Text)
 import Data.Text qualified as T
+import Distribution.Compiler (CompilerFlavor (..))
 import Distribution.Fields.ParseResult (runParseResult)
 import Distribution.ModuleName qualified as ModuleName
 import Distribution.PackageDescription
@@ -42,19 +45,25 @@
     BuildInfo (..),
     CondBranch (..),
     CondTree (..),
+    ConfVar (..),
     Executable (..),
     GenericPackageDescription (..),
     Library (..),
+    PackageFlag (..),
     TestSuite (..),
     TestSuiteInterface (..),
   )
 import Distribution.PackageDescription.Parsec (parseGenericPackageDescription)
-import Distribution.Parsec (showPError)
+import Distribution.Parsec (showPError, simpleParsec)
+import Distribution.System (buildArch, buildOS)
+import Distribution.Types.BuildInfo (usedExtensions)
+import Distribution.Types.CondTree (mapTreeConstrs, simplifyCondTree)
 #if MIN_VERSION_Cabal_syntax(3, 14, 0)
 import Distribution.Utils.Path (SymbolicPathX, getSymbolicPath)
 #else
 import Distribution.Utils.Path (getSymbolicPath)
 #endif
+import Distribution.Version (Version, withinRange)
 import GHC.Driver.Session qualified as GHC
 import GHC.LanguageExtensions.Type (Extension)
 import Language.Haskell.Extension qualified as Cabal
@@ -70,6 +79,7 @@
     (</>),
   )
 import Tilia.Pragma (lookupExtension)
+import Tilia.Process (readProgramOutput)
 import Tilia.Utils (attempted, quietly)
 
 -- | Why a file's extensions could not be settled.
@@ -105,17 +115,24 @@
 newPackageReader = do
   covering <- newIORef Map.empty
   described <- newIORef Map.empty
+  asked <- newIORef Nothing
+  let compiler =
+        readIORef asked >>= \case
+          Just version -> pure version
+          Nothing -> do
+            version <- compilerVersion
+            version <$ writeIORef asked (Just version)
   pure $ \path -> quietly (Left NoPackageFile) $ do
     file <- canonicalizePath path
     from <- startingDirectory file
     findCabalFile covering from >>= \case
       Nothing -> pure (Left NoPackageFile)
       Just cabalFile ->
-        componentsOf described cabalFile >>= \case
+        componentsOf compiler described cabalFile >>= \case
           Left problem -> pure (Left problem)
           Right components
             | equalFilePath file (takeDirectory cabalFile </> setupScript) ->
-                pure (Right (extensionsInForce mempty))
+                pure (Right (GHC.languageExtensions Nothing))
             | otherwise -> pure $ case claiming file components of
                 Just c -> Right (componentExtensions c)
                 Nothing -> Left (FileUnclaimed cabalFile)
@@ -202,10 +219,11 @@
 
 -- | What a @.cabal@ file amounts to.
 componentsOf ::
+  IO (Maybe Version) ->
   IORef (Map FilePath (Either PackageProblem [ComponentBranch])) ->
   FilePath ->
   IO (Either PackageProblem [ComponentBranch])
-componentsOf ref cabalFile = do
+componentsOf compiler ref cabalFile = do
   known <- readIORef ref
   case Map.lookup cabalFile known of
     Just answer -> pure answer
@@ -221,13 +239,45 @@
           case snd (runParseResult (parseGenericPackageDescription bytes)) of
             Left (_, complaints) ->
               pure (Left (PackageMalformed cabalFile (fmap said (NE.toList complaints))))
-            Right description ->
+            Right description -> do
+              valueOf <- conditionValues compiler description
               Right
                 <$> traverse
                   (componentBranch (takeDirectory cabalFile))
-                  (sectionsInForce description)
+                  (sectionsInForce valueOf description)
     said = T.pack . showPError cabalFile
 
+-- | The value a build of a package on this platform gives each variable its
+-- conditions ask about.
+conditionValues ::
+  -- | The compiler's version, asked for only where a condition names it.
+  IO (Maybe Version) ->
+  -- | The package, whose flags take their defaults.
+  GenericPackageDescription ->
+  IO (ConfVar -> Either ConfVar Bool)
+conditionValues compiler described = do
+  version <-
+    if null (listify namesCompiler described)
+      then pure Nothing
+      else compiler
+  pure $ \case
+    OS os -> Right (os == buildOS)
+    Arch arch -> Right (arch == buildArch)
+    v@(PackageFlag name) -> maybe (Left v) Right (lookup name defaults)
+    v@(Impl GHC range) -> maybe (Left v) (Right . (`withinRange` range)) version
+    Impl _ _ -> Right False
+  where
+    namesCompiler = \case
+      Impl _ _ -> True
+      _ -> False
+    defaults = [(flagName f, flagDefault f) | f <- genPackageFlags described]
+
+-- | The version of the @ghc@ on the path, which builds the package.
+compilerVersion :: IO (Maybe Version)
+compilerVersion =
+  (simpleParsec . T.unpack . T.strip =<<)
+    <$> readProgramOutput "ghc" ["--numeric-version"]
+
 -- | One branch, with its directories resolved and its extensions settled.
 componentBranch :: FilePath -> ComponentSection -> IO ComponentBranch
 componentBranch root ComponentSection{..} = do
@@ -248,9 +298,18 @@
 
 -- | What is in force in each branch of every component, in the order they
 -- are declared.
-sectionsInForce :: GenericPackageDescription -> [ComponentSection]
-sectionsInForce described =
-  (\BranchSections{..} -> inheritedSection <> ownSection)
+sectionsInForce ::
+  -- | The value the build gives each variable a condition asks about.
+  (ConfVar -> Either ConfVar Bool) ->
+  -- | The package.
+  GenericPackageDescription ->
+  [ComponentSection]
+sectionsInForce valueOf described =
+  ( \BranchSections{..} ->
+      inheritedSection
+        <> ownSection
+        <> ComponentSection (builtSettings valueOf) [] []
+  )
     <$> concat
       [ foldMap libraryBranches (condLibrary described),
         concatMap (libraryBranches . snd) (condSubLibraries described),
@@ -283,21 +342,24 @@
   { -- | What it inherits from the branches around it.
     inheritedSection :: ComponentSection,
     -- | What it declares itself.
-    ownSection :: ComponentSection
+    ownSection :: ComponentSection,
+    -- | The build settings of its component in a build, given the value the
+    -- build gives each variable a condition asks about.
+    builtSettings :: (ConfVar -> Either ConfVar Bool) -> BuildInfo
   }
 
 -- | Every branch of a library.
-libraryBranches :: CondTree v c Library -> [BranchSections]
+libraryBranches :: CondTree ConfVar c Library -> [BranchSections]
 libraryBranches = branchesOf $ \l ->
   declaring (libBuildInfo l) (exposedModules l <> signatures l) []
 
 -- | Every branch of an executable.
-executableBranches :: CondTree v c Executable -> [BranchSections]
+executableBranches :: CondTree ConfVar c Executable -> [BranchSections]
 executableBranches = branchesOf $ \e ->
   declaring (buildInfo e) [] [entryPoint (modulePath e)]
 
 -- | Every branch of a test suite.
-suiteBranches :: CondTree v c TestSuite -> [BranchSections]
+suiteBranches :: CondTree ConfVar c TestSuite -> [BranchSections]
 suiteBranches = branchesOf $ \s ->
   case testInterface s of
     TestSuiteExeV10 _ path -> declaring (testBuildInfo s) [] [entryPoint path]
@@ -305,19 +367,26 @@
     _ -> declaring (testBuildInfo s) [] []
 
 -- | Every branch of a benchmark.
-benchmarkBranches :: CondTree v c Benchmark -> [BranchSections]
+benchmarkBranches :: CondTree ConfVar c Benchmark -> [BranchSections]
 benchmarkBranches = branchesOf $ \b ->
   case benchmarkInterface b of
     BenchmarkExeV10 _ path -> declaring (benchmarkBuildInfo b) [] [entryPoint path]
     _ -> declaring (benchmarkBuildInfo b) [] []
 
 -- | Every branch of a component.
-branchesOf :: (a -> ComponentSection) -> CondTree v c a -> [BranchSections]
-branchesOf f = go mempty
+branchesOf ::
+  (Semigroup a) =>
+  (a -> ComponentSection) ->
+  CondTree ConfVar c a ->
+  [BranchSections]
+branchesOf f root = go mempty root
   where
+    built valueOf =
+      sectionInfo . f . snd $
+        simplifyCondTree valueOf (mapTreeConstrs (const ()) root)
     go inherited node =
       let own = f (condTreeData node)
-       in BranchSections inherited own
+       in BranchSections inherited own built
             : concatMap (branches (inherited <> own)) (condTreeComponents node)
     branches inherited (CondBranch _ yes no) =
       go inherited yes <> foldMap (go inherited) no
@@ -399,9 +468,9 @@
 -- | The extensions a component puts in force, before any module's pragmas.
 extensionsInForce :: BuildInfo -> [Extension]
 extensionsInForce bi =
-  foldl apply (GHC.languageExtensions edition) (defaultExtensions bi)
+  foldl apply (GHC.languageExtensions edition) (usedExtensions bi)
   where
-    edition = ghcLanguage =<< defaultLanguage bi
+    edition = ghcLanguage (fromMaybe Cabal.Haskell98 (defaultLanguage bi))
     apply acc = \case
       Cabal.EnableExtension e
         | Just on <- named e, on `notElem` acc -> acc <> [on]
diff --git a/src/Tilia/Cabal/Target.hs b/src/Tilia/Cabal/Target.hs
--- a/src/Tilia/Cabal/Target.hs
+++ b/src/Tilia/Cabal/Target.hs
@@ -30,7 +30,6 @@
 import Data.Text (Text)
 import Data.Text qualified as T
 import Data.Text.Encoding qualified as T
-import Data.Text.IO qualified as T
 import Distribution.Fields.Field (Field (..), FieldLine (..), Name (..))
 import Distribution.Fields.ParseResult (runParseResult)
 import Distribution.Fields.Parser (readFields)
@@ -48,7 +47,6 @@
   ( dropExtension,
     dropTrailingPathSeparator,
     normalise,
-    splitDirectories,
     takeDirectory,
     takeExtension,
     (</>),
@@ -66,6 +64,7 @@
   )
 import Tilia.Cabal.Project (Marker (..), ProjectRoot (..), markerFile)
 import Tilia.Fixity.Plan (PlanComponent (..))
+import Tilia.Ignore (belowRoot, ignoreFilesAbove, isIgnored)
 import Tilia.Utils (attempted, quietly)
 
 -- | Which components a run was asked for.
@@ -246,13 +245,18 @@
     T.intercalate ":" (foldMap pure package <> [spellKind kind, name])
 
 -- | Every Haskell file a set of components holds, each named once, less
--- the ones the project's @.tiliaignore@ excludes.
+-- the ones the project's @.tiliaignore@ files exclude.
 filesOfComponents :: ProjectRoot -> [Component] -> IO [FilePath]
 filesOfComponents root components = do
-  ignored <- ignoredPaths (prPath root)
-  let excluded path = any (`isPrefixOf` splitDirectories path) ignored
-  sort . filter (not . excluded) . concat
-    <$> traverse present (Map.toList directories)
+  candidates <- concat <$> traverse present (Map.toList directories)
+  let inProject =
+        [ (path, below)
+        | path <- candidates,
+          Just below <- [belowRoot (prPath root) path]
+        ]
+  ignoreFiles <- ignoreFilesAbove (prPath root) (fmap snd inProject)
+  let excluded = Set.fromList [path | (path, below) <- inProject, isIgnored ignoreFiles below]
+  pure (sort (filter (`Set.notMember` excluded) candidates))
   where
     directories =
       Map.unionsWith
@@ -265,22 +269,6 @@
       filterM
         (quietly False . doesFileExist)
         [joined directory entry | entry <- entries, admits wanted entry]
-
--- | What a project's @.tiliaignore@ excludes, each path as its segments.
---
--- An entry is a literal file or directory path relative to the project
--- root, and a directory stands for everything below it. Blank lines and
--- lines beginning with @#@ are ignored.
-ignoredPaths :: FilePath -> IO [[FilePath]]
-ignoredPaths root = do
-  exists <- doesFileExist file
-  if exists
-    then fmap entryPath . filter meant . fmap T.strip . T.lines <$> T.readFile file
-    else pure []
-  where
-    file = root </> ".tiliaignore"
-    meant entry = not (T.null entry) && not ("#" `T.isPrefixOf` entry)
-    entryPath = splitDirectories . normalise . (root </>) . T.unpack
 
 -- | A directory spelled so that a path can be appended to it without
 -- further normalisation.
diff --git a/src/Tilia/Comments.hs b/src/Tilia/Comments.hs
--- a/src/Tilia/Comments.hs
+++ b/src/Tilia/Comments.hs
@@ -7,15 +7,20 @@
     CommentStyle (..),
     Above (..),
     commentsOf,
+    transcendentComment,
     renderComment,
     closesItself,
     bracketed,
     commentTrailing,
     singleLine,
+    holdsOff,
+    continuesHaddock,
+    carriedOnFrom,
     widenTrigger,
-    escapeTrigger,
+    asOrdinary,
     triggerEscaped,
     opensHaddock,
+    opensSectionHeading,
     commentsWithin,
     Pragma (..),
     commentPragma,
@@ -23,19 +28,16 @@
 where
 
 import Data.Char (isSpace)
-import Data.Generics.Schemes (listify)
-import Data.List (sortOn)
+import Data.IntMap.Strict qualified as IntMap
 import Data.List.NonEmpty (NonEmpty (..))
 import Data.List.NonEmpty qualified as NE
-import Data.Maybe (isJust, mapMaybe)
+import Data.Maybe (isJust, listToMaybe, mapMaybe)
 import Data.Text (Text)
 import Data.Text qualified as T
-import GHC.Hs (HsModule)
-import GHC.Hs.Extension (GhcPs)
 import GHC.Parser.Annotation qualified as GHC
 import GHC.Types.SrcLoc qualified as GHC
-import Tilia.Source.Lines (Lines, blankAt, lineAt, lineTexts)
-import Tilia.Span (Span, endPoint, startPoint)
+import Tilia.Source.Lines (Lines, blankAt, directiveOnLine, lineAt, lineTexts)
+import Tilia.Span (Span (..), endPoint, startPoint)
 import Tilia.Span.Ghc (spanOfReal)
 
 -- | One comment.
@@ -53,13 +55,18 @@
     -- past the last character of that code, or 'Nothing' when the comment
     -- had the line to itself.
     commentCodeBeforeStopsAt :: Maybe Int,
+    -- | Whether that code ends with an opening bracket.
+    commentFirstInBrackets :: Bool,
     -- | Whether anything other than whitespace follows it on its closing
     -- line.
     commentFollowed :: Bool,
     -- | Whether to leave an empty line above it when it is printed.
     commentGapAbove :: Bool,
     -- | Whether to leave an empty line below it when it is printed.
-    commentGapBelow :: Bool
+    commentGapBelow :: Bool,
+    -- | Where the first line under it that is neither empty nor a directive
+    -- begins, if there is one.
+    commentNextLine :: Maybe (Int, Int)
   }
   deriving (Eq, Show)
 
@@ -88,68 +95,88 @@
 commentsOf ::
   -- | The module's lines, which every comment is read against.
   Lines ->
-  -- | Comments the tree does not carry.
+  -- | The module's comments, in source order.
   [GHC.LEpaComment] ->
-  -- | Parsed module.
-  HsModule GhcPs ->
   [Comment]
-commentsOf ls loose hsModule =
-  fmap (uncurry (mkComment ls))
-    . dedupeOnSpan
-    . sortOn (GHC.realSrcSpanStart . fst)
-    . mapMaybe located
-    $ loose <> concatMap annComments (listify anyAnnComments hsModule)
+commentsOf ls = fmap (uncurry (mkComment ls)) . mapMaybe located
   where
-    dedupeOnSpan = \case
-      (x : y : rest) | fst x == fst y -> dedupeOnSpan (x : rest)
-      (x : rest) -> x : dedupeOnSpan rest
-      [] -> []
-    anyAnnComments :: GHC.EpAnnComments -> Bool
-    anyAnnComments _ = True
-    annComments = \case
-      GHC.EpaComments xs -> xs
-      GHC.EpaCommentsBalanced xs ys -> xs <> ys
     located (GHC.L anchor (GHC.EpaComment tok _)) = case anchor of
       GHC.EpaSpan (GHC.RealSrcSpan s _) -> Just (s, tok)
       _ -> Nothing
 
 -- | Build a comment from a token and the span it occupied.
 mkComment :: Lines -> GHC.RealSrcSpan -> GHC.EpaCommentTok -> Comment
-mkComment ls spn tok =
+mkComment ls spn tok = case tok of
+  GHC.EpaLineComment t -> commentAt ls s LineComment (T.pack t)
+  GHC.EpaBlockComment t -> commentAt ls s BlockComment (T.pack t)
+  GHC.EpaDocComment _ -> commentAt ls s DocComment (sliceSpan (lineTexts ls) s)
+  GHC.EpaDocOptions t -> commentAt ls s LineComment (T.pack t)
+  where
+    s = spanOfReal spn
+
+-- | Build a comment of this style from the span it occupied and its text.
+commentAt :: Lines -> Span -> CommentStyle -> Text -> Comment
+commentAt ls spn style raw =
   Comment
-    { commentSpan = spanOfReal spn,
+    { commentSpan = spn,
       commentBody = normalizeBody startColumn style raw,
       commentStyle = style,
       commentAbove = above,
       commentCodeBeforeStopsAt = codeBeforeStopsAt,
+      commentFirstInBrackets = any ((`T.elem` "([{") . snd) (T.unsnoc before'),
       commentFollowed = followed,
       commentGapAbove = above == BlankLine,
-      commentGapBelow = blankAt (GHC.srcSpanEndLine spn + 1) ls
+      commentGapBelow = blankAt (spanEndLine spn + 1) ls,
+      commentNextLine = nextLine
     }
   where
-    (style, raw) = case tok of
-      GHC.EpaLineComment s -> (LineComment, T.pack s)
-      GHC.EpaBlockComment s -> (BlockComment, T.pack s)
-      GHC.EpaDocComment _ -> (DocComment, sliceSpan (lineTexts ls) spn)
-      GHC.EpaDocOptions s -> (LineComment, T.pack s)
-    startColumn = maybe 0 (`offsetOf` GHC.srcSpanStartCol spn) openingLine
-    openingLine = lineAt (GHC.srcSpanStartLine spn) ls
+    startColumn = maybe 0 (`offsetOf` spanStartColumn spn) openingLine
+    openingLine = lineAt (spanStartLine spn) ls
     lineAbove
-      | GHC.srcSpanStartLine spn <= 1 = Nothing
-      | otherwise = lineAt (GHC.srcSpanStartLine spn - 1) ls
+      | spanStartLine spn <= 1 = Nothing
+      | otherwise = lineAt (spanStartLine spn - 1) ls
     above = case lineAbove of
       Nothing -> TopOfFile
       Just l
         | T.all isSpace l -> BlankLine
-        | otherwise -> ContentAt (columnOf l (T.length (T.takeWhile isSpace l)))
+        | otherwise -> ContentAt (contentStart l)
+    before' = maybe T.empty (T.stripEnd . T.take startColumn) openingLine
     codeBeforeStopsAt = do
       l <- openingLine
-      let before' = T.stripEnd (T.take startColumn l)
       if T.null before' then Nothing else Just (columnOf l (T.length before'))
-    followed = case lineAt (GHC.srcSpanEndLine spn) ls of
-      Just l -> not (T.all isSpace (T.drop (offsetOf l (GHC.srcSpanEndCol spn)) l))
+    nextLine =
+      listToMaybe
+        [ (n, contentStart l)
+        | (n, Just l) <-
+            takeWhile
+              (isJust . snd)
+              [(n, lineAt n ls) | n <- [spanEndLine spn + 1 ..]],
+          not (T.all isSpace l || isJust (directiveOnLine l))
+        ]
+    contentStart l = columnOf l (T.length (T.takeWhile isSpace l))
+    followed = case lineAt (spanEndLine spn) ls of
+      Just l -> not (T.all isSpace (T.drop (offsetOf l (spanEndColumn spn)) l))
       Nothing -> False
 
+-- | A comment, with its text read from the module as written rather than
+-- from the configuration it was found in.
+--
+-- The two differ for a block comment with a conditional inside it: the
+-- preprocessor does not know what a Haskell comment is, so each
+-- configuration has the comment with only its own branch left in.
+transcendentComment :: Lines -> Comment -> Comment
+transcendentComment ls c = case commentStyle c of
+  BlockComment ->
+    c
+      { commentBody =
+          normalizeBody startColumn BlockComment (sliceSpan (lineTexts ls) s)
+      }
+  _ -> c
+  where
+    s = commentSpan c
+    startColumn =
+      maybe 0 (`offsetOf` spanStartColumn s) (lineAt (spanStartLine s) ls)
+
 -- | Apply the normalizations, in the only order that works: dedent before
 -- stripping, since a line of nothing but spaces has to still count as
 -- indented when the common indentation is measured.
@@ -177,7 +204,7 @@
       | otherwise -> "-- " <> rest
 
 -- | The text a span covers.
-sliceSpan :: [Text] -> GHC.RealSrcSpan -> Text
+sliceSpan :: [Text] -> Span -> Text
 sliceSpan sourceLines spn =
   T.intercalate "\n" (zipWith clip [startLine ..] covered)
   where
@@ -187,10 +214,10 @@
       (if n == startLine then T.drop (offsetOf l startCol) else id)
         . (if n == endLine then T.take (offsetOf l endCol) else id)
         $ l
-    startLine = GHC.srcSpanStartLine spn
-    endLine = GHC.srcSpanEndLine spn
-    startCol = GHC.srcSpanStartCol spn
-    endCol = GHC.srcSpanEndCol spn
+    startLine = spanStartLine spn
+    endLine = spanEndLine spn
+    startCol = spanStartColumn spn
+    endCol = spanEndColumn spn
 
 -- | Put a comment back together as it will appear in the output.
 renderComment :: Comment -> Text
@@ -208,12 +235,65 @@
 commentTrailing :: Comment -> Bool
 commentTrailing = isJust . commentCodeBeforeStopsAt
 
+-- | Is this a Haddock written as @--@ lines that can go on past its first
+-- line, so that a comment written against it is held off from it?
+holdsOff :: Comment -> Bool
+holdsOff c =
+  commentStyle c == DocComment
+    && not (bracketed c)
+    && not (opensSectionHeading (NE.head (commentBody c)))
+
+-- | Would the lexer read this comment as more of a Haddock written as @--@
+-- lines right above it?
+continuesHaddock :: Comment -> Bool
+continuesHaddock c =
+  not (bracketed c) && not ("---" `T.isPrefixOf` NE.head (commentBody c))
+
 -- | Is this comment a single line?
 singleLine :: Comment -> Bool
 singleLine c = case commentBody c of
   (_ :| []) -> True
   _ -> False
 
+-- | The line whose trailing comment a comment with the line to itself
+-- carries on, by being lined up under that line or that comment, or under
+-- comments that carry it on in turn, and the column that comment begins at.
+carriedOnFrom :: [Comment] -> Comment -> Maybe (Int, Int)
+carriedOnFrom cs = \c ->
+  if commentTrailing c
+    then Nothing
+    else
+      go
+        (spanStartColumn (commentSpan c))
+        (spanStartLine (commentSpan c) - 1)
+        (commentAbove c)
+  where
+    remarks =
+      IntMap.fromList
+        [ (spanEndLine s, spanStartColumn s)
+        | c <- cs,
+          commentTrailing c,
+          not (commentFollowed c),
+          let s = commentSpan c
+        ]
+    ownLineComments =
+      IntMap.fromList
+        [ (spanStartLine s, (spanStartColumn s, commentAbove c))
+        | c <- cs,
+          not (commentTrailing c),
+          not (commentFollowed c),
+          let s = commentSpan c
+        ]
+    go column line above
+      | Just remark <- IntMap.lookup line remarks,
+        above == ContentAt column || remark == column =
+          Just (line, remark)
+      | Just (col, above') <- IntMap.lookup line ownLineComments,
+        col == column,
+        above == ContentAt column =
+          go column (line - 1) above'
+      | otherwise = Nothing
+
 -- | Put a space between a doc comment's trigger and the text after it, so
 -- that @-- |Foo@ comes out as @-- | Foo@.
 --
@@ -244,13 +324,10 @@
   DocComment ->
     c
       { commentBody = fmap escape (commentBody c),
-        commentStyle = ordinaryStyle
+        commentStyle = if bracketed c then BlockComment else LineComment
       }
   _ -> c
   where
-    ordinaryStyle
-      | "{-" `T.isPrefixOf` NE.head (commentBody c) = BlockComment
-      | otherwise = LineComment
     escape l = case openerWidth l of
       Just n
         | (gap, rest) <- T.span (== ' ') (T.drop n l),
@@ -258,8 +335,39 @@
             T.take n l <> (if T.null gap then " " else gap) <> "\\" <> rest
       _ -> l
 
--- | Has this comment been through 'escapeTrigger'?
+-- | A doc comment the compiler did not attach to anything, as the ordinary
+-- comments the next pass reads once its trigger is escaped.
 --
+-- Nothing joins the lines of a @--@ one any more, so each line is a comment
+-- of its own, placed on its own account.
+asOrdinary :: Lines -> Comment -> [Comment]
+asOrdinary ls c
+  | commentStyle c == DocComment,
+    not (bracketed c),
+    not (singleLine c) =
+      fmap escapeTrigger (mapMaybe lineOf [spanStartLine s .. spanEndLine s])
+  | otherwise = [escapeTrigger c]
+  where
+    s = commentSpan c
+    lineOf n = do
+      l <- lineAt n ls
+      let piece =
+            Span
+              { spanStartLine = n,
+                spanStartColumn =
+                  if n == spanStartLine s
+                    then spanStartColumn s
+                    else columnOf l (T.length (T.takeWhile isSpace l)),
+                spanEndLine = n,
+                spanEndColumn =
+                  if n == spanEndLine s
+                    then spanEndColumn s
+                    else columnOf l (T.length l)
+              }
+      pure (commentAt ls piece DocComment (sliceSpan (lineTexts ls) piece))
+
+-- | Has 'asOrdinary' escaped this comment's trigger?
+--
 -- What it was written as cannot be read off the comment any more—that is
 -- the point of escaping—so anything wanting to know whether a comment
 -- started life as a Haddock has to ask this.
@@ -281,6 +389,10 @@
 -- | Does this line open a Haddock?
 opensHaddock :: Text -> Bool
 opensHaddock = isJust . splitTrigger
+
+-- | Does this line open a Haddock section heading, @-- *@?
+opensSectionHeading :: Text -> Bool
+opensSectionHeading = maybe False (T.isSuffixOf "*" . fst) . splitTrigger
 
 -- | Split a doc comment's opening line into everything up to and including
 -- its trigger, and whatever follows.
diff --git a/src/Tilia/Comments/Attach.hs b/src/Tilia/Comments/Attach.hs
--- a/src/Tilia/Comments/Attach.hs
+++ b/src/Tilia/Comments/Attach.hs
@@ -7,30 +7,92 @@
 -- other, and from then on nothing distinguishes it.
 module Tilia.Comments.Attach
   ( attachComments,
+    attachScopedComments,
+    Margin (..),
+    noMargin,
   )
 where
 
+import Control.Applicative ((<|>))
 import Data.Bifunctor (first, second)
-import Data.List (mapAccumL, unsnoc)
+import Data.List (unsnoc)
 import Data.List.NonEmpty qualified as NE
+import Data.Map.Strict (Map)
+import Data.Map.Strict qualified as Map
 import Data.Maybe (listToMaybe)
+import Data.Monoid (First (..))
+import Data.Set qualified as Set
 import Data.Text (Text)
 import Tilia.Comments
 import Tilia.Comments.Place
 import Tilia.Doc.Combinators
-import Tilia.Doc.Internal (Doc (..))
+import Tilia.Doc.Internal (Doc (..), Spill (..), foldChildren)
 import Tilia.Span
 
--- | Attache comments to a 'Doc'.
+-- | Attach comments to a 'Doc'.
 attachComments :: [Comment] -> Doc -> Doc
-attachComments cs doc = written <> closingComments (unplaced left)
+attachComments = attachScopedComments noMargin (const ())
+
+-- | What parts of a comment go at the margin.
+data Margin = Margin
+  { -- | A line of a comment, as a preprocessor directive written in one has
+    -- to: the preprocessor reads directives out of comments as well.
+    marginLine :: Text -> Bool,
+    -- | A comment that goes to the margin when it comes out right above a
+    -- preprocessor directive, which it then documents.
+    marginComment :: Comment -> Bool
+  }
+
+-- | Nothing at the margin that the indentation does not put there.
+noMargin :: Margin
+noMargin = Margin (const False) (const False)
+
+-- | Attach comments to a 'Doc', each only to a region in the same scope as
+-- itself.
+--
+-- A scope is a part of the input a comment may not be carried out of, such
+-- as one branch of a conditional: a comment written in a branch has to stay
+-- among what that branch holds, and one written outside it must not end up
+-- inside. Placement never looks past a comment's own scope, so where it
+-- goes is decided among the regions it could be printed next to in every
+-- configuration it is in.
+attachScopedComments ::
+  (Ord k) =>
+  -- | What goes at the margin.
+  Margin ->
+  -- | The scope of what was written at a span.
+  (Span -> k) ->
+  -- | The comments to attach.
+  [Comment] ->
+  -- | The document to attach them to.
+  Doc ->
+  Doc
+attachScopedComments margin scopeOf cs doc =
+  written <> closingComments margin (unplaced left)
   where
-    (written, left) = walk (placeComments regions fences cs) doc
+    (written, left) = walk margin placements doc
     (regions, fences) = markedSpans doc
+    leads = leadingRegions doc
+    placements =
+      foldMap
+        ( \k ->
+            placeComments (inScope k rs) leads (inScope k fs) (inScope k xs)
+        )
+        (Set.toList (Map.keysSet rs <> Map.keysSet fs <> Map.keysSet xs))
+    rs = byScope id regions
+    fs = byScope id fences
+    xs = byScope commentSpan cs
+    byScope f ys = reverse <$> Map.fromListWith (<>) [(scopeOf (f y), [y]) | y <- ys]
+    inScope = Map.findWithDefault []
 
 -- | The comments nothing came to collect, written after everything.
-closingComments :: [Comment] -> Doc
-closingComments = \case
+closingComments ::
+  -- | What goes at the margin.
+  Margin ->
+  -- | The comments.
+  [Comment] ->
+  Doc
+closingComments margin = \case
   [] -> mempty
   (opening : rest) -> placeOne True opening <> foldMap (placeOne False) rest
   where
@@ -38,7 +100,7 @@
       commentDoc c $
         closeLine
           <> includeWhen (opensTheRun || commentGapAbove c) blankLine
-          <> commentText c
+          <> commentText margin c
           <> closeLine
 
 -- | The spans of every 'DLocated' in the document, and of every 'DFence',
@@ -47,26 +109,52 @@
 markedSpans = \case
   DLocated s d -> first (s :) (markedSpans d)
   DFence s d -> second (s :) (markedSpans d)
-  DCat a b -> markedSpans a <> markedSpans b
-  DNest _ d -> markedSpans d
-  DAlign d -> markedSpans d
-  DGroup _ d -> markedSpans d
-  DVariant a _ -> markedSpans a
-  DCppChoice bs e -> foldMap (markedSpans . snd) bs <> markedSpans e
-  _ -> ([], [])
+  d -> foldChildren markedSpans d
 
+-- | The innermost region each region prints first, where that one was
+-- written above it, as the Haddock of a constructor, a field or an argument
+-- is.
+leadingRegions :: Doc -> Map Span Span
+leadingRegions = \case
+  DLocated s d
+    | Just h <- firstRegion d,
+      startPoint h < startPoint s ->
+        Map.insert s h (leadingRegions d)
+  d -> foldChildren leadingRegions d
+
+-- | The innermost region a document prints first.
+firstRegion :: Doc -> Maybe Span
+firstRegion = getFirst . go
+  where
+    go = \case
+      DLocated s d -> First (firstRegion d <|> Just s)
+      d -> foldChildren go d
+
 -- | Write the placed comments into the document, each one around the region
 -- it was given to. Taking is destructive: the 'Placements' is threaded
 -- through the walk and a region's comments are removed as they are written,
 -- so a span that occurs twice is served once. The two sides of a 'DVariant'
 -- are the exception—they are one piece of code laid out two ways, so both
 -- are walked from the same 'Placements' and both come out holding the
--- comment, and only one of them is ever printed. What is still unwritten
--- when the walk ends is returned next to the resulting 'Doc'.
-walk :: Placements -> Doc -> (Doc, Placements)
-walk = go
+-- comment, and only one of them is ever printed. So are the alternatives of
+-- a 'DCppChoice', for the same reason: no configuration prints two of them,
+-- and a region the merge wrote into several of them is printed once in each
+-- configuration, comments and all. What is still unwritten when the walk
+-- ends is returned next to the resulting 'Doc'.
+walk ::
+  -- | What goes at the margin.
+  Margin ->
+  -- | Where each comment goes.
+  Placements ->
+  -- | The document to write them into.
+  Doc ->
+  (Doc, Placements)
+walk margin = go
   where
-    go p = \case
+    go p d
+      | nothingPlaced p = (d, p)
+      | otherwise = step p d
+    step p = \case
       DCat a b ->
         let (a', p') = go p a
             (b', p'') = go p' b
@@ -74,23 +162,31 @@
       DLocated s d ->
         let (mine, p') = claimPlaced s p
             (d', p'') = go p' d
-            write position cs =
-              foldMap (writtenAs (isEmptyAnchor s) position) cs
-            before' = heldOffFrom d [c | (q, c) <- mine, q == Before]
-            after' = [c | (q, c) <- mine, q == After]
-         in (write Before before' <> DLocated s d' <> write After after', p'')
+            write = foldMap (uncurry (writtenAs margin (isEmptyAnchor s)))
+            before' =
+              (Before,) <$> heldOffFrom d [c | (Before, c) <- mine]
+            after' =
+              [(q, c) | (q, c) <- mine, q /= Before, q /= Under ByTheRegion]
+            under' = [(q, c) | (q, c) <- mine, q == Under ByTheRegion]
+            withUnder
+              | null under' = id
+              | otherwise = \x -> DAlign (x <> write under')
+         in ( write before' <> withUnder (DLocated s d' <> write after'),
+              p''
+            )
       DFence s d -> first (DFence s) (go p d)
-      DCppChoice bs e ->
-        let branch q (c, d) = let (d', q') = go q d in (q', (c, d'))
-            (p', bs') = mapAccumL branch p bs
-            (e', p'') = go p' e
-         in (DCppChoice bs' e', p'')
+      DCppChoice cs bs e ->
+        let bs' = [(c, go p d) | (c, d) <- bs]
+            (e', pe) = go p e
+         in ( DCppChoice cs [(c, d') | (c, (d', _)) <- bs'] e',
+              foldr (unclaimedByEither . snd . snd) pe bs'
+            )
       DNest n d -> first (DNest n) (go p d)
       DAlign d -> first DAlign (go p d)
       DGroup l d -> first (DGroup l) (go p d)
       DVariant a b ->
-        let (a', p') = go p a
-            (b', _) = go p b
+        let (a', _) = go p a
+            (b', p') = go p b
          in (DVariant a' b', p')
       d -> (d, p)
 
@@ -107,9 +203,12 @@
         earlier <> [c{commentGapBelow = True}]
   _ -> cs
 
--- | Does this region begin its first line with a Haddock?
+-- | Does this region begin its first line with a Haddock other than a
+-- section heading?
 opensWithHaddock :: Doc -> Bool
-opensWithHaddock = maybe False opensHaddock . listToMaybe . fst . firstLine Broken
+opensWithHaddock d = case listToMaybe (fst (firstLine Broken d)) of
+  Just l -> opensHaddock l && not (opensSectionHeading l)
+  Nothing -> False
   where
     firstLine layout = \case
       DText t -> ([t], False)
@@ -124,6 +223,7 @@
       DVariant a b -> firstLine layout (case layout of Flat -> a; Broken -> b)
       DHardBreak -> ([], True)
       DCloseLine -> ([], True)
+      DCloseLineUnlessAfterOpener _ -> ([], True)
       DBreak -> ([], layout == Broken)
       DSoftBreak -> ([], layout == Broken)
       _ -> ([], False)
@@ -135,6 +235,8 @@
 
 -- | Render one 'Comment' where it was placed.
 writtenAs ::
+  -- | What goes at the margin.
+  Margin ->
   -- | Does what follows only mark where the construct ends?
   Bool ->
   -- | Comment position.
@@ -142,16 +244,20 @@
   -- | The comment to render.
   Comment ->
   Doc
-writtenAs atTheEnd position c = commentDoc c $ case shapeOf position c of
+writtenAs margin atTheEnd position c = commentDoc c $ case shapeOf position c of
   InPlace -> case position of
-    Before -> includeWhen (not (commentTrailing c)) space <> body <> space
-    After -> space <> body <> space
+    Before -> includeUnless glued space <> body <> includeUnless atTheEnd space
+    _ -> space <> body
   EndsTheLine -> space <> body <> closeLine <> gapBelow
-  HeldBack -> holdBack (renderComment c)
-  OnItsOwnLines -> gapAbove <> closeLine <> body <> closeLine <> gapBelow
+  HeldBack spill -> holdBack spill (renderComment c)
+  OnItsOwnLines ->
+    closeLineUnlessAfterOpener (commentGapAbove c)
+      <> body
+      <> closeLine
+      <> gapBelow
   where
-    body = commentText c
-    gapAbove = includeWhen (commentGapAbove c) (closeLine <> blankLine)
+    glued = commentTrailing c && (not atTheEnd || commentFirstInBrackets c)
+    body = commentText margin c
     gapBelow = includeWhen (commentGapBelow c && not atTheEnd) blankLine
 
 -- | A comment, and the spacing that goes with it, as one region.
@@ -159,18 +265,33 @@
 commentDoc = located . commentSpan
 
 -- | The text of a comment, laid out as it was written.
-commentText :: Comment -> Doc
-commentText c =
-  align $
-    sepBy
-      (verbatimBreak AtIndent TrimWhitespace)
-      (fmap txt (NE.toList (commentBody c)))
+commentText ::
+  -- | What goes at the margin.
+  Margin ->
+  -- | The comment.
+  Comment ->
+  Doc
+commentText margin c = note . align $ case NE.toList (commentBody c) of
+  [] -> mempty
+  l : ls -> txt l <> foldMap (\x -> breakBefore x <> txt x) ls
+  where
+    breakBefore x
+      | marginLine margin x = verbatimBreak AtMargin TrimWhitespace
+      | otherwise = verbatimBreak AtIndent TrimWhitespace
+    note
+      | marginComment margin c = cppMarginNote
+      | otherwise = id
 
 -- | Put this text at the end of the line this position falls on.
-holdBack :: Text -> Doc
+holdBack :: Spill -> Text -> Doc
 holdBack = DHoldBack
 
 -- | End the current line and leave a mark so that a line break that follows
 -- it immediately (if any) will have no effect.
 closeLine :: Doc
 closeLine = DCloseLine
+
+-- | 'closeLine', with an empty line under it if told to, unless the line
+-- ends with an opening bracket, a bar or an equals sign.
+closeLineUnlessAfterOpener :: Bool -> Doc
+closeLineUnlessAfterOpener = DCloseLineUnlessAfterOpener
diff --git a/src/Tilia/Comments/Place.hs b/src/Tilia/Comments/Place.hs
--- a/src/Tilia/Comments/Place.hs
+++ b/src/Tilia/Comments/Place.hs
@@ -1,39 +1,57 @@
 -- | Determine the placement of each 'Comment'.
 module Tilia.Comments.Place
   ( Position (..),
+    Alignment (..),
     Shape (..),
     shapeOf,
     Placements,
     placeComments,
     claimPlaced,
+    unclaimedByEither,
     unplaced,
+    nothingPlaced,
   )
 where
 
+import Control.Applicative ((<|>))
+import Control.Monad (guard)
 import Data.IntMap.Strict qualified as IntMap
-import Data.IntSet qualified as IntSet
-import Data.List (sortOn)
+import Data.List (minimumBy, sortOn)
+import Data.List.NonEmpty (NonEmpty (..))
+import Data.List.NonEmpty qualified as NE
 import Data.Map.Strict (Map)
 import Data.Map.Strict qualified as Map
-import Data.Ord (Down (..))
+import Data.Ord (Down (..), comparing)
 import Data.Set qualified as Set
 import Tilia.Comments
   ( Above (..),
     Comment (..),
+    carriedOnFrom,
     closesItself,
     commentTrailing,
     singleLine,
   )
+import Tilia.Doc.Internal (Spill (..))
 import Tilia.Span
 
--- | Which side of its region a comment is emitted on.
+-- | Where a comment is emitted in relation to its region.
 data Position
   = -- | Before the region.
     Before
-  | -- | After the region.
-    After
+  | -- | After the region, on the line it ends on.
+    After Spill
+  | -- | On lines of its own under the region.
+    Under Alignment
   deriving (Eq, Show)
 
+-- | What a comment on lines of its own under a region is lined up with.
+data Alignment
+  = -- | The column the region begins at.
+    ByTheRegion
+  | -- | The indentation in force after the region.
+    ByTheIndentation
+  deriving (Eq, Show)
+
 -- | How a comment is printed in relation to the region carrying it.
 data Shape
   = -- | Spliced where the region prints, with code able to follow it on the
@@ -43,7 +61,7 @@
     EndsTheLine
   | -- | Held back to the end of whatever line of output it lands on,
     -- however much of that line is still to be written.
-    HeldBack
+    HeldBack Spill
   | -- | On lines of its own, keeping the empty lines the author left around
     -- it.
     OnItsOwnLines
@@ -56,27 +74,44 @@
     | closesItself c && commentFollowed c -> InPlace
     | commentTrailing c -> EndsTheLine
     | otherwise -> OnItsOwnLines
-  After
+  After spill
     | closesItself c -> InPlace
-    | singleLine c -> HeldBack
+    | singleLine c -> HeldBack spill
     | otherwise -> EndsTheLine
+  Under _ -> OnItsOwnLines
 
--- | Comment placements.
+-- | Comment placements not yet written: all of them when placement is
+-- decided, fewer as a walk writes them.
 data Placements = Placements
-  { placedAt :: Map Span [(Position, Comment)],
+  { -- | The comments to write around each region.
+    placedAt :: Map Span [(Position, Comment)],
+    -- | The comments no region was found for.
     placedNowhere :: [Comment]
   }
 
+instance Semigroup Placements where
+  a <> b =
+    Placements
+      { placedAt = Map.unionWith (<>) (placedAt a) (placedAt b),
+        placedNowhere = placedNowhere a <> placedNowhere b
+      }
+
+instance Monoid Placements where
+  mempty = Placements Map.empty []
+
 -- | Determine comment placements.
 placeComments ::
   -- | The regions a comment may be given to.
   [Span] ->
+  -- | The innermost region each region prints first, where that one was
+  -- written above it.
+  Map Span Span ->
   -- | The boundaries a comment printed in place may not be carried across.
   [Span] ->
   -- | The comments to place.
   [Comment] ->
   Placements
-placeComments regions fences comments =
+placeComments regions leads fences comments =
   Placements
     { placedAt = Map.fromListWith (flip (<>)) [(r, [(p, c)]) | (Just (r, p), c) <- decided],
       placedNowhere = [c | (Nothing, c) <- decided]
@@ -84,32 +119,7 @@
   where
     decided = [(against c, c) | c <- comments]
 
-    linesEndingInAComment =
-      IntSet.fromList
-        [ spanEndLine (commentSpan c)
-        | c <- comments,
-          commentTrailing c,
-          not (commentFollowed c)
-        ]
-
-    ownLineComments =
-      IntMap.fromList
-        [ (spanStartLine s, (spanStartColumn s, commentAbove c))
-        | c <- comments,
-          not (commentTrailing c),
-          not (commentFollowed c),
-          let s = commentSpan c
-        ]
-
-    carriedOnFrom column = go
-      where
-        go line
-          | IntSet.member line linesEndingInAComment = Just line
-          | Just (col, above) <- IntMap.lookup line ownLineComments,
-            col == column,
-            above == ContentAt column =
-              go (line - 1)
-          | otherwise = Nothing
+    carriedOn = carriedOnFrom comments
 
     regionsByEndLine =
       IntMap.fromListWith (<>) [(spanEndLine r, [r]) | r <- regions]
@@ -122,57 +132,143 @@
         wider a b = if endPoint a >= endPoint b then a else b
 
     against c
-      | commentTrailing c, Just r <- trailed = Just (r, After)
-      | not (commentTrailing c), Just r <- continues = Just (r, After)
-      | Just r <- next = Just (r, Before)
+      | Just placed@(_, After _) <- asCommentBefore = Just placed
+      | commentTrailing c,
+        Just r <- trailed =
+          Just (r, After SpillAtIndentation)
+      | Just placed <- continues = Just placed
+      | Just placed <- under = Just placed
+      | Just r <- next =
+          Just (maybe (r, Before) (,Under ByTheRegion) (Map.lookup r leads))
       | otherwise = Nothing
       where
         here = commentSpan c
+        asCommentBefore = against =<< (`Map.lookup` commentsByEndPoint) =<< stopsAt
         trailed
-          | writtenAgainst || not (commentFollowed c) = endingOn (spanStartLine here)
+          | writtenAgainst || not (commentFollowed c) =
+              linedUpUnder <|> endingOn (spanStartLine here)
           | otherwise = Nothing
+        linedUpUnder = do
+          (top, _) <- IntMap.lookup (spanStartLine here + 1) runs
+          (r, Under ByTheRegion) <- against top
+          r <$ guard (candidate r)
         endingOn line =
           nearest (\r -> (Down (endPoint r), startPoint r)) (filter candidate onThatLine)
           where
             onThatLine = IntMap.findWithDefault [] line regionsByEndLine
-            candidate r = endPoint r <= startPoint here && not (fencedOff r)
+        candidate r =
+          endPoint r <= startPoint here
+            && startPoint r /= endPoint r
+            && not (fencedOff r)
 
         writtenAgainst = maybe False (`Set.member` regionEndPoints) stopsAt
         stopsAt = (,) (spanStartLine here) <$> commentCodeBeforeStopsAt c
 
-        enclosingRegions = filter (here `inside`) regions
-        enclosingFences = filter (here `inside`) fences
-
-        fencedOff r = outside enclosingRegions || (printedInPlace && outside enclosingFences)
+        fencedOff r =
+          outside (Map.lookup here enclosingRegions)
+            || (printedInPlace && outside (Map.lookup here enclosingFences))
           where
-            outside = any (not . (r `inside`))
+            outside = maybe False (\(from, to) -> not (from <= startPoint r && endPoint r <= to))
 
-        printedInPlace = shapeOf After c == InPlace
+        printedInPlace = shapeOf (After SpillAtIndentation) c == InPlace
 
         next = snd <$> Map.lookupGE (endPoint here) regionsByStartPoint
 
         continues
-          | ContentAt column <- commentAbove c,
-            column == spanStartColumn here,
-            nothingBelowItLinesUp,
-            Just anchor <- carriedOnFrom column (spanStartLine here - 1) =
-              endingOn anchor
+          | nothingBelowItLinesUp,
+            Just (anchor, remark) <- carriedOn c =
+              (,linedUpWith remark) <$> endingOn anchor
           | otherwise = Nothing
 
+        linedUpWith remark
+          | remark == spanStartColumn here = After SpillUnderPrevious
+          | otherwise = After SpillAtIndentation
+
         nothingBelowItLinesUp =
           all (\r -> spanStartColumn r < spanStartColumn here) next
 
-    nearest :: (Ord k) => (Span -> k) -> [Span] -> Maybe Span
-    nearest key = fmap fst . foldl' closer Nothing
+        under
+          | Just (top, bottom) <- IntMap.lookup (spanStartLine here) runs,
+            Just (line, column) <- commentNextLine bottom,
+            column /= spanStartColumn here,
+            any ((<= (line, column)) . startPoint) next =
+              lineOfCode top
+          | otherwise = Nothing
+
+        lineOfCode top = do
+          r <- nearest (Down . startPoint) (filter linedUp onThatLine)
+          guard (any (larger r) onThatLine)
+          pure (r, Under (alignedBy r))
+          where
+            line = spanStartLine (commentSpan top) - 1
+            onThatLine = IntMap.findWithDefault [] line regionsByEndLine
+            lineEnd = maximum (fmap endPoint onThatLine)
+            linedUp r =
+              startPoint r /= endPoint r
+                && endPoint r == lineEnd
+                && (startsUnderIt r || holdsTheLine r)
+                && not (fencedOff r)
+            startsUnderIt r =
+              spanStartColumn r == spanStartColumn here
+                && (spanStartLine r == line || startsItsLine r)
+            holdsTheLine r =
+              commentAbove top == ContentAt (spanStartColumn here)
+                && startPoint r <= (line, spanStartColumn here)
+            alignedBy r
+              | startsUnderIt r = ByTheRegion
+              | otherwise = ByTheIndentation
+            startsItsLine r =
+              maybe True ((< spanStartLine r) . fst . fst) $
+                Map.lookupLT (startPoint r) regionsByStartPoint
+            larger r o = startPoint o < startPoint r && endPoint o == lineEnd
+
+    commentsByEndPoint = Map.fromList [(endPoint (commentSpan c), c) | c <- comments]
+
+    runs =
+      IntMap.fromList
+        [ (spanStartLine (commentSpan c), (NE.head run, NE.last run))
+        | run <- foldr joined [] (sortOn (startPoint . commentSpan) comments),
+          c <- NE.toList run
+        ]
       where
-        closer best s = case best of
-          Just (_, k) | k <= key s -> best
-          _ -> Just (s, key s)
+        joined c rest
+          | commentTrailing c || commentFollowed c = rest
+          | (d :| ds) : rest' <- rest, continuedBy c d = (c :| d : ds) : rest'
+          | otherwise = (c :| []) : rest
+        continuedBy c d =
+          spanStartLine below == spanEndLine above + 1
+            && spanStartColumn below == spanStartColumn above
+          where
+            above = commentSpan c
+            below = commentSpan d
 
--- | Does the first region fall within the second?
-inside :: Span -> Span -> Bool
-inside a b = startPoint b <= startPoint a && endPoint a <= endPoint b
+    enclosingRegions = enclosures regions (fmap commentSpan comments)
+    enclosingFences = enclosures fences (fmap commentSpan comments)
 
+    nearest :: (Ord k) => (Span -> k) -> [Span] -> Maybe Span
+    nearest key = fmap (minimumBy (comparing key)) . NE.nonEmpty
+
+-- | For each inner span that outer spans enclose, the latest start and the
+-- earliest end among them.
+enclosures :: [Span] -> [Span] -> Map Span ((Int, Int), (Int, Int))
+enclosures outer inner =
+  Map.fromList (go (sortOn startPoint outer) Map.empty Set.empty (sortOn startPoint inner))
+  where
+    go _ _ _ [] = []
+    go os latest ends (i : is) =
+      let (opened, later) = span ((<= startPoint i) . startPoint) os
+          latest' = foldl' admit latest opened
+          ends' = foldl' (flip (Set.insert . endPoint)) ends opened
+          bounds = do
+            (_, from) <- Map.lookupGE (endPoint i) latest'
+            to <- Set.lookupGE (endPoint i) ends'
+            pure (i, (from, to))
+       in maybe id (:) bounds (go later latest' ends' is)
+    -- A span opened later starts no earlier, so it supersedes those that end
+    -- no later than it does.
+    admit latest o =
+      Map.insert (endPoint o) (startPoint o) (Map.dropWhileAntitone (<= endPoint o) latest)
+
 -- | Claim the comments that belong to the given 'Span'.
 claimPlaced :: Span -> Placements -> ([(Position, Comment)], Placements)
 claimPlaced s p = case Map.updateLookupWithKey forget s (placedAt p) of
@@ -180,8 +276,20 @@
   where
     forget _ _ = Nothing
 
+-- | The placements neither of two walks from the same placements claimed.
+unclaimedByEither ::
+  Placements ->
+  Placements ->
+  Placements
+unclaimedByEither a b =
+  a{placedAt = Map.intersection (placedAt a) (placedAt b)}
+
 -- | The comments no region ever came to collect.
 unplaced :: Placements -> [Comment]
 unplaced p =
   sortOn (startPoint . commentSpan) $
     placedNowhere p <> foldMap (fmap snd) (placedAt p)
+
+-- | Is there nothing left for a region to collect?
+nothingPlaced :: Placements -> Bool
+nothingPlaced = Map.null . placedAt
diff --git a/src/Tilia/Cpp.hs b/src/Tilia/Cpp.hs
--- a/src/Tilia/Cpp.hs
+++ b/src/Tilia/Cpp.hs
@@ -12,1200 +12,722 @@
     usesCpp,
     blankCpp,
     withoutRuledOut,
-    CppError (..),
-    describeCppError,
-
-    -- * Splitting
-    Guard (..),
-    Configurations (..),
-    configurations,
-    leaves,
-    branchLeaves,
-    correspondingBranches,
-    linearLeaves,
-    countLeaves,
-    answeredLeaves,
-    answeredLinearLeaves,
-
-    -- * Diagnostics
-    regions,
-  )
-where
-
-import Data.List (maximumBy, sortOn, transpose, unsnoc)
-import Data.Map.Strict (Map)
-import Data.Map.Strict qualified as Map
-import Data.Maybe (isJust, listToMaybe)
-import Data.Ord (comparing)
-import Data.Text (Text)
-import Data.Text qualified as T
-import Tilia.Cpp.Directives
-import Tilia.Doc (defaultRenderOptions, printDoc)
-import Tilia.Doc.Combinators qualified as Doc
-import Tilia.Doc.Internal (Doc (..), Layout (..))
-import Tilia.Parser
-  ( ParserConfig,
-    parseConfiguration,
-  )
-import Tilia.Render (RenderConfig (..), renderModule)
-import Tilia.Source
-  ( Lines,
-    Written (..),
-    directiveOnLine,
-    dropping,
-    lineTexts,
-    linesOf,
-  )
-import Tilia.Span
-  ( Span,
-    covers,
-    meets,
-    spanEndLine,
-    spanStartLine,
-  )
-
-----------------------------------------------------------------------------
--- Formatting
-
--- | Format a module which uses the C preprocessor.
---
--- Each configuration is formatted by the ordinary printer. The resulting
--- documents are then merged.
-formatWithCpp ::
-  -- | What to parse each configuration with.
-  ParserConfig ->
-  -- | What to print each configuration with.
-  RenderConfig ->
-  -- | The file this is, for the positions in an error.
-  FilePath ->
-  -- | The module, directives and all.
-  Text ->
-  -- | The formatted module, or why not.
-  Either CppError Text
-formatWithCpp parser render path source =
-  printDoc defaultRenderOptions . fst
-    <$> formatAllConfigs
-      parser
-      (knowing render)
-      path
-      (noAnswers source)
-      configurationBudget
-      source
-  where
-    knowing c =
-      c{rcImportBarriers = maybe [] (fmap dLine) (scanDirectives source)}
-
--- | Format every configuration of a module, and merge them into one
--- document.
-formatAllConfigs ::
-  -- | What to parse a configuration with.
-  ParserConfig ->
-  -- | What to print it with.
-  RenderConfig ->
-  -- | The file this is, for the positions in a parse error.
-  FilePath ->
-  -- | How this configuration was reached.
-  Reached ->
-  -- | Formattings left to spend.
-  Int ->
-  -- | Input text.
-  Text ->
-  Either CppError (Doc, Int)
-formatAllConfigs parser render path reached budget source =
-  case variations source of
-    Nothing
-      | any isDirective (T.lines left) ->
-          Left (UnhandledDirective (unhandledIn left))
-      | budget <= 0 -> Left TooManyConfigurations
-      | otherwise -> do
-          document <-
-            formatSingleConfig
-              parser
-              render
-              path
-              reached
-              left
-          (,budget - 1)
-            <$> replacing
-              (reachedLines reached)
-              (reachedAnswers reached)
-              opaque
-              document
-      where
-        opaque = opaqueDirectives source
-        left = withoutOpaque source
-    Just apart -> case linearly apart of
-      Right built -> Right built
-      Left (Refused TooManyConfigurations, _) ->
-        Left TooManyConfigurations
-      Left (_, left')
-        | Right many <- countLeaves source,
-          many > configurationsWorthTrying ->
-            Left TooManyConfigurations
-        | otherwise ->
-            maybe
-              (Left UnsplittableConditional)
-              (together parser render path reached left')
-              (configurations source)
-  where
-    linearly v =
-      case separately parser render path reached budget v of
-        Left why -> Left (Refused why, budget)
-        Right (baseDoc, merged, budget') ->
-          case combine Broken baseDoc (zip (fmap cfgWholes (vaGroups v)) merged) of
-            Just d -> Right (d, budget')
-            Nothing -> Left (InOneConstruct, budget')
-
--- | Why the linear form did not work.
-data Linearly
-  = -- | A configuration under it was refused, and this is what for.
-    Refused CppError
-  | -- | The merge came back a bare choice, so the conditionals' differences
-    -- land on one construct and cannot be put back one at a time.
-    InOneConstruct
-
--- | A single variation.
-data Variation = Variation
-  { -- | Every question answered with its first branch.
-    vaBaseline :: Text,
-    -- | The line ranges that answer leaves out.
-    vaBaselineDropped :: [(Int, Int)],
-    -- | One question varied, with all the others held at the baseline.
-    vaGroups :: [Configurations]
-  }
-
--- | Split a module on every conditional at its top level, one at a time.
-variations :: Text -> Maybe Variation
-variations source = do
-  ds <- scanDirectives source
-  specs <- traverse groupSpec (groupsAtLevel 0 ds)
-  case [[gs] | gs <- specs] of
-    [] -> Nothing
-    dimensions ->
-      let blanked at =
-            concat
-              [ blankingFor g (at k)
-              | (k, dim) <-
-                  zip [0 :: Int ..] dimensions,
-                g <- dim
-              ]
-          gone at =
-            concat
-              [ droppedFor g (at k)
-              | (k, dim) <-
-                  zip [0 :: Int ..] dimensions,
-                g <- dim
-              ]
-          held at = blanking (blanked at) source
-       in Just
-            Variation
-              { vaBaseline = held (const 0),
-                vaBaselineDropped = gone (const 0),
-                vaGroups =
-                  [ Configurations
-                      { cfgGuards = gsGuards gs,
-                        cfgTexts =
-                          [ held (\j -> if j == k then i else 0)
-                          | i <- [0 .. gsCount gs - 1]
-                          ],
-                        cfgDropped =
-                          [ gone (\j -> if j == k then i else 0)
-                          | i <- [0 .. gsCount gs - 1]
-                          ],
-                        cfgWholes = Varied (fmap gsWhole dim)
-                      }
-                  | (k, dim@(gs : _)) <- zip [0 :: Int ..] dimensions
-                  ]
-              }
-
--- | Vary each conditional on its own, holding the others at their first
--- branch.
-separately ::
-  -- | What to parse a configuration with.
-  ParserConfig ->
-  -- | What to print it with.
-  RenderConfig ->
-  -- | The file this is, for the positions in a parse error.
-  FilePath ->
-  -- | How this configuration was reached.
-  Reached ->
-  -- | Formattings left to spend.
-  Int ->
-  -- | The conditionals to vary, and the baseline to hold them against.
-  Variation ->
-  Either CppError (Doc, [Doc], Int)
-separately parser render path reached budget v = do
-  (baseDoc, spent) <-
-    formatAllConfigs
-      parser
-      render
-      path
-      (without (vaBaselineDropped v) reached)
-      budget
-      (vaBaseline v)
-  (merged, left) <- eachGroup baseDoc spent (vaGroups v)
-  pure (baseDoc, merged, left)
-  where
-    free = freeOf reached
-
-    eachGroup _ b [] = Right ([], b)
-    eachGroup baseDoc b (c : cs) = do
-      (docs, b') <- eachBranch c baseDoc b (zip [0 ..] (cfgTexts c))
-      (rest, b'') <- eachGroup baseDoc b' cs
-      pure (merge free (cfgGuards c) (cfgWholes c) docs : rest, b'')
-
-    eachBranch _ _ b [] = Right ([], b)
-    eachBranch c baseDoc b ((i, t) : ts) = do
-      (d, b') <-
-        if t == vaBaseline v
-          then Right (baseDoc, b)
-          else formatAllConfigs parser render path (answering c i reached) b t
-      (ds, b'') <- eachBranch c baseDoc b' ts
-      pure (d : ds, b'')
-
--- | Vary the conditionals together, one group at a time.
-together ::
-  -- | What to parse a configuration with.
-  ParserConfig ->
-  -- | What to print it with.
-  RenderConfig ->
-  -- | The file this is, for the positions in a parse error.
-  FilePath ->
-  -- | How this configuration was reached.
-  Reached ->
-  -- | Formattings left to spend.
-  Int ->
-  -- | The group to split on, and the branch texts to split it into.
-  Configurations ->
-  Either CppError (Doc, Int)
-together parser render path reached budget c = do
-  (formatted, budget') <- eachBranch budget (zip [0 ..] (cfgTexts c))
-  docs <- traverse (complete formatted) (zip [0 ..] (cfgTexts c))
-  pure (merge (freeOf reached) (cfgGuards c) (cfgWholes c) docs, budget')
-  where
-    inside = reached
-    eachBranch b [] = Right ([], b)
-    eachBranch b ((_, t) : ts) | not (null (unconditionalErrors t)) = eachBranch b ts
-    eachBranch b ((i, t) : ts) = do
-      (d, b') <- formatAllConfigs parser render path (answering c i inside) b t
-      (ds, b'') <- eachBranch b' ts
-      pure ((i, d) : ds, b'')
-    complete formatted (i, t) = case lookup i formatted of
-      Just d -> Right d
-      Nothing -> case listToMaybe formatted >>= errorBranch (cfgWholes c) t . snd of
-        Just d -> Right d
-        Nothing -> Left UnsplittableConditional
-
--- | Preserve an error-only alternative without asking the Haskell parser to
--- parse its missing expression or declaration. A successful sibling supplies
--- the surrounding syntax; only nodes wholly inside the conditional are
--- replaced. More complicated aborting alternatives are left unsupported.
-errorBranch :: Varied -> Text -> Doc -> Maybe Doc
-errorBranch (Varied ranges) source reference = foldl step (Just reference) ranges
-  where
-    sourceLines' = zip [1 ..] (T.lines source)
-    errors = unconditionalErrors source
-    step acc (from, to) = do
-      doc <- acc
-      let inside n = from <= n && n <= to
-          here = filter (inside . opLine) errors
-          errorLine n = any (\d -> opLine d <= n && n <= opLastLine d) here
-          onlyErrors =
-            all
-              (\(n, l) -> not (inside n) || errorLine n || T.null (T.strip l))
-              sourceLines'
-          body = mconcat [DCppDirective (opSpan d) (opText d) | d <- here]
-          contained s = inside (spanStartLine s) && inside (spanEndLine s)
-          walk seen d = case d of
-            DLocated s _ | contained s -> (True, if seen then mempty else body)
-            DCppDirective s _ | contained s -> (True, if seen then mempty else body)
-            DLocated s x -> fmap (DLocated s) (walk seen x)
-            DFence s x -> fmap (DFence s) (walk seen x)
-            DNest k x -> fmap (DNest k) (walk seen x)
-            DAlign x -> fmap DAlign (walk seen x)
-            DGroup l x -> fmap (DGroup l) (walk seen x)
-            DVariant a b ->
-              let (sa, a') = walk seen a; (sb, b') = walk seen b
-               in (sa || sb, DVariant a' b')
-            DCat a b ->
-              let (sa, a') = walk seen a; (sb, b') = walk sa b
-               in (sb, a' <> b')
-            _ -> (seen, d)
-          (placed, result) = walk False doc
-      if not (null here) && onlyErrors && placed then Just result else Nothing
-
--- | Format one configuration with the ordinary printer.
-formatSingleConfig ::
-  -- | What to parse it with.
-  ParserConfig ->
-  -- | What to print it with.
-  RenderConfig ->
-  -- | The file this is, for the positions in a parse error.
-  FilePath ->
-  -- | How this configuration was reached.
-  Reached ->
-  -- | The configuration itself, with no directives left in it.
-  Text ->
-  Either CppError Doc
-formatSingleConfig parser render path reached text =
-  case parseConfiguration parser path (reachedLines reached) text of
-    Left e -> Left (ConfigurationNotParsed (reachedAnswers reached) e)
-    Right parsed -> Right (renderModule render parsed)
-
--- | How a configuration was reached, and what to call it.
-data Reached = Reached
-  { -- | Which branch each question was answered with, outermost first.
-    reachedAnswers :: [([Guard], Int)],
-    -- | Every line the author wrote, except for those written inside a
-    -- branch this configuration did not take.
-    reachedLines :: Lines
-  }
-
--- | The configuration nothing has been decided about yet.
-noAnswers :: Text -> Reached
-noAnswers source =
-  Reached
-    { reachedAnswers = [],
-      reachedLines = linesOf (Written source)
-    }
-
--- | Answer one group's question with the branch at the given index.
-answering :: Configurations -> Int -> Reached -> Reached
-answering c i reached =
-  reached
-    { reachedAnswers = reachedAnswers reached <> [(cfgGuards c, i)],
-      reachedLines =
-        dropping
-          (concat (take 1 (drop i (cfgDropped c))))
-          (reachedLines reached)
-    }
-
--- | Leave out the branches a baseline does not take, without answering
--- anything: the baseline is every question taken at its first branch, and
--- which question is being varied is not settled until 'answering'.
-without :: [(Int, Int)] -> Reached -> Reached
-without gone reached =
-  reached{reachedLines = dropping gone (reachedLines reached)}
-
--- | How many whole formattings of a module one call may spend.
-configurationBudget :: Int
-configurationBudget = 64
-
--- | How many configurations a module may have and still be worth trying the
--- product on.
-configurationsWorthTrying :: Integer
-configurationsWorthTrying = 4096
-
--- | Put the directives that do not introduce new configurations back where
--- they were written.
-replacing :: Lines -> [([Guard], Int)] -> [Opaque] -> Doc -> Either CppError Doc
-replacing written answers opaque doc = foldl step (Right doc) opaque
-  where
-    step acc d
-      | reproducedAt n doc = Left (DirectiveInQuotedText answers (keyword t))
-      | otherwise =
-          acc
-            >>= maybe (Left (DirectiveUnplaceable answers (keyword t))) Right
-              . place d
-      where
-        n = opLine d
-        t = opText d
-    keyword = T.takeWhile (/= ' ')
-    reproducedAt n = any inside . located
-      where
-        inside (s, x) =
-          spanStartLine s < n && n <= spanEndLine s && reproduced x
-
-    located = \case
-      DLocated s x -> (s, x) : located x
-      DFence s x -> (s, x) : located x
-      DNest _ x -> located x
-      DAlign x -> located x
-      DGroup _ x -> located x
-      DVariant _ b -> located b
-      DCat a b -> located a <> located b
-      _ -> []
-
-    reproduced = \case
-      DVerbatimBreak _ _ -> True
-      DNest _ x -> reproduced x
-      DAlign x -> reproduced x
-      DGroup _ x -> reproduced x
-      DVariant _ b -> reproduced b
-      DCat a b -> reproduced a || reproduced b
-      _ -> False
-
-    place directive = go
-      where
-        n = opLine directive
-
-        body =
-          DCppDirective (opSpan directive) (opText directive)
-            <> if gapUnder written directive then Doc.blankLine else mempty
-
-        go d = case d of
-          DNest k x -> DNest k <$> go x
-          DAlign x -> DAlign <$> go x
-          DGroup l x -> DGroup l <$> go x
-          DVariant a b -> DVariant <$> go a <*> go b
-          DLocated s x | spanEndLine s >= n -> DLocated s <$> go x
-          DFence s x | spanEndLine s >= n -> DFence s <$> go x
-          DCat _ _ -> inSpine (spine d)
-          _ -> Nothing
-
-        inSpine parts = case break startsAfter parts of
-          (before, after)
-            | Just (earlier, holder, spacing) <- holding before,
-              maybe False (>= n) (endOf holder) ->
-                (\x -> mconcat (earlier <> [x] <> spacing <> after)) <$> go holder
-            | Just (printed, anchor, spacing) <- tight before,
-              Just from <- endOf anchor,
-              not (gapWritten written (from + 1) (n - 1)) ->
-                Just (mconcat (printed <> [anchor, body] <> spacing <> after))
-            | otherwise -> Just (mconcat (before <> [body] <> after))
-          where
-            startsAfter x = maybe False (>= n) (startOf x)
-
-        holding ds = case break (isJust . endOf) (reverse ds) of
-          (spacing, holder : earlier) -> Just (reverse earlier, holder, reverse spacing)
-          _ -> Nothing
-
-        tight ds = case break (isJust . endOf) (reverse ds) of
-          (spacing, anchor : earlier) -> Just (reverse earlier, anchor, reverse spacing)
-          _ -> Nothing
-
-    startOf = fmap fst . boundsOf
-    endOf = fmap snd . boundsOf
-    boundsOf = \case
-      DLocated s _ -> Just (spanStartLine s, spanEndLine s)
-      DFence s _ -> Just (spanStartLine s, spanEndLine s)
-      DCppDirective s _ -> Just (spanStartLine s, spanEndLine s)
-      DNest _ x -> boundsOf x
-      DAlign x -> boundsOf x
-      DGroup _ x -> boundsOf x
-      DVariant _ b -> boundsOf b
-      DCat a b -> case (boundsOf a, boundsOf b) of
-        (Just (from, _), Just (_, to)) -> Just (from, to)
-        (found, Nothing) -> found
-        (Nothing, found) -> found
-      _ -> Nothing
-
--- | Merge the documents one conditional's branches printed to.
---
--- A structural walk that keeps what they all agree on and puts a choice
--- where they part.
-merge :: [(Span, Text)] -> [Guard] -> Varied -> [Doc] -> Doc
-merge free guards varied = go Broken
-  where
-    go _ [] = mempty
-    go layout ds@(d : rest)
-      | all (agree varied layout d) rest = d
-      | Just xs <- traverse only spines = alongside layout xs
-      | otherwise = factored layout spines
-      where
-        spines = fmap (spineAt layout) ds
-
-    alongside _ [] = mempty
-    alongside layout xs@(x : _) = case x of
-      DLocated s _
-        | Just tds <- every (\case DLocated t d -> Just (t, d); _ -> Nothing),
-          all (meets s . fst) tds ->
-            case go layout (fmap snd tds) of
-              DCppChoice _ _
-                | Just opened <- unwrapping layout (fmap fst tds) xs -> opened
-              descended -> DLocated (hull s tds) descended
-      DFence s _
-        | Just tds <- every (\case DFence t d -> Just (t, d); _ -> Nothing),
-          all (meets s . fst) tds ->
-            DFence (hull s tds) (go layout (fmap snd tds))
-      DNest n _ | Just ds <- every (\case DNest m d | m == n -> Just d; _ -> Nothing) -> DNest n (go layout ds)
-      DGroup _ _
-        | Just ls <- every (\case DGroup l _ -> Just l; _ -> Nothing),
-          Just ds@(d : rest) <- every (\case DGroup _ d -> Just d; _ -> Nothing) ->
-            let inside = if Broken `elem` ls then Broken else Flat
-                merged = go inside ds
-             in case merged of
-                  DCppChoice _ _
-                    | not (all (== inside) ls),
-                      not (all (agree varied inside d) rest) ->
-                        choice xs
-                  _ -> DGroup inside merged
-      DAlign _ | Just ds <- every (\case DAlign d -> Just d; _ -> Nothing) -> DAlign (go layout ds)
-      _ -> choice xs
-      where
-        every f = traverse f xs
-
-    unwrapping layout spans xs = do
-      inside <- sole [i | (i, s) <- zip [0 :: Int ..] spans, all (covers s) spans]
-      wrapper <- listToMaybe (drop inside xs)
-      if opens layout wrapper then Just (openedAgainst layout inside wrapper) else Nothing
-      where
-        sole [i] = Just i
-        sole _ = Nothing
-
-        openedAgainst l inside' d = case d of
-          DLocated s x -> DLocated s (openedAgainst l inside' x)
-          DFence s x -> DFence s (openedAgainst l inside' x)
-          DNest n x -> DNest n (openedAgainst l inside' x)
-          DAlign x -> DAlign (openedAgainst l inside' x)
-          DGroup m x -> DGroup m (openedAgainst m inside' x)
-          _ -> case spineAt l d of
-            parts@(_ : _ : _) ->
-              factored l [if k == inside' then parts else [e] | (k, e) <- zip [0 :: Int ..] xs]
-            _ -> choice xs
-
-    opens layout = \case
-      DLocated _ x -> opens layout x
-      DFence _ x -> opens layout x
-      DNest _ x -> opens layout x
-      DAlign x -> opens layout x
-      DGroup l x -> opens l x
-      d -> case spineAt layout d of
-        _ : _ : _ -> True
-        _ -> False
-
-    factored layout ss =
-      let exposed = fmap (exposing (filter split' (sharedDirectives ss))) ss
-          split' d = d `elem` free && any (holds d) ss && not (all (holds d) ss)
-          holds d = any (isNamed d)
-          lining = alignable varied layout
-          shared = foldl1 (lcs lining) exposed
-          cut = fmap (segments (anchored lining) shared) exposed
-          stretches = transpose (fmap fst cut)
-          anchors = transpose (fmap snd cut)
-       in mconcat (woven layout stretches (fmap (go layout) anchors))
-
-    woven layout (s : ss) (c : cs) = varying layout s : c : woven layout ss cs
-    woven layout ss [] = fmap (varying layout) ss
-    woven _ [] _ = []
-
-    varying layout ss =
-      let (opening, ss1) = sharedStart layout ss
-          (ss2, closing) = sharedEnd layout ss1
-          (lead, ss3, trail) = hoisted layout ss2
-       in mconcat opening
-            <> mconcat lead
-            <> middle layout ss3
-            <> mconcat trail
-            <> mconcat closing
-
-    sharedStart layout ss
-      | Just (h : hs) <- traverse listToMaybe ss,
-        all (agree varied layout h) hs =
-          let (c, ss') = sharedStart layout (fmap (drop 1) ss) in (h : c, ss')
-      | otherwise = ([], ss)
-
-    sharedEnd layout ss =
-      let (c, ss') = sharedStart layout (fmap reverse ss)
-       in (fmap reverse ss', reverse c)
-
-    middle _ [] = mempty
-    middle layout ss@(s : rest)
-      | all (alike layout s) rest = mconcat s
-      | Just xs <- traverse only ss = go layout xs
-      | Just merged <- alongsideHeads layout ss,
-        weigh layout merged < weigh layout apart =
-          merged
-      | otherwise = apart
-      where
-        apart = choice (fmap mconcat ss)
-
-    alongsideHeads layout ss = do
-      heads <- traverse listToMaybe ss
-      let tails = fmap (drop 1) ss
-      case heads of
-        (h : hs)
-          | all (sameKind h) hs,
-            all breaksFirst tails ->
-              Just (joined (go layout heads) (middle layout tails))
-        _ -> Nothing
-      where
-        breaksFirst t = case dropWhile ((== 0) . weigh layout) t of
-          [] -> True
-          (d : _) -> opensWithBreak layout d
-
-    joined before after = case (endingChoice before, startingChoice after) of
-      (Just (opening, bs, e, gap), Just (gap', cs, e', closing))
-        | fmap fst bs == fmap fst cs ->
-            opening
-              <> Doc.cppChoice
-                [(g, x <> between <> y) | ((g, x), (_, y)) <- zip bs cs]
-                (e <> between <> e')
-              <> closing
-        where
-          between = gap <> gap'
-      _ -> before <> after
-
-    sameKind x y = case (x, y) of
-      (DLocated s t, DLocated u v) -> meets s u && bothWritten t v
-      (DFence s t, DFence u v) -> meets s u && bothWritten t v
-      (DNest n t, DNest m v) -> n == m && bothWritten t v
-      (DGroup _ t, DGroup _ v) -> bothWritten t v
-      (DAlign t, DAlign v) -> bothWritten t v
-      _ -> False
-      where
-        bothWritten t v = not (empty' t) && not (empty' v)
-        empty' DEmpty = True
-        empty' _ = False
-
-    alike layout xs ys =
-      length xs == length ys && and (zipWith (agree varied layout) xs ys)
-
-    hoisted layout ss = case filter (not . null . middleOf) peeled of
-      [] ->
-        ( widest [l | (l, _, _) <- peeled],
-          fmap (const []) ss,
-          widest [r | (_, _, r) <- peeled]
-        )
-      speaking ->
-        ( widest [l | (l, _, _) <- speaking],
-          fmap middleOf peeled,
-          widest [r | (_, _, r) <- speaking]
-        )
-      where
-        peeled = fmap peel ss
-        middleOf (_, m, _) = m
-        widest = \case
-          [] -> []
-          runs -> maximumBy (comparing (spaceOf layout)) runs
-
-    peel ds =
-      let (l, rest) = span spacing ds
-          (r, m) = span spacing (reverse rest)
-       in (l, reverse m, reverse r)
-
-    spacing = \case
-      DEmpty -> True
-      DBreak -> True
-      DSoftBreak -> True
-      DHardBreak -> True
-      DCloseLine -> True
-      _ -> False
-
-    choice ds = case unsnoc ds of
-      Just (branches, fallback) -> Doc.cppChoice (zip (fmap guardText guards) branches) fallback
-      Nothing -> mempty
-
-    only [d] = Just d
-    only _ = Nothing
-
--- | 'freeDirectives' of the module as its author wrote it.
-freeOf :: Reached -> [(Span, Text)]
-freeOf = freeDirectives . T.unlines . lineTexts . reachedLines
-
--- | The opaque directives written outside every conditional.
-freeDirectives :: Text -> [(Span, Text)]
-freeDirectives source =
-  [ (opSpan d, opText d)
-  | d <- opaqueDirectives source,
-    Map.findWithDefault 0 (opLine d) depths == (0 :: Int)
-  ]
-  where
-    depths = Map.fromList (zip [1 ..] (scanl step 0 (T.lines source)))
-    step depth l = case directiveOnLine l of
-      Just (keyword, _)
-        | keyword `elem` ["if", "ifdef", "ifndef"] -> depth + 1
-        | keyword == "endif" -> max 0 (depth - 1)
-      _ -> depth
-
--- | Is this spine element the named directive itself, bare?
-isNamed :: (Span, Text) -> Doc -> Bool
-isNamed (s, t) = \case
-  DCppDirective u v -> u == s && v == t
-  _ -> False
-
--- | The directives every one of these spines holds.
-sharedDirectives :: [[Doc]] -> [(Span, Text)]
-sharedDirectives = \case
-  [] -> []
-  s : ss -> foldl (\acc t -> filter (`elem` namesIn t) acc) (namesIn s) ss
-  where
-    namesIn = concatMap named
-
--- | The directives a document holds, as far down as one may be brought out
--- from.
-named :: Doc -> [(Span, Text)]
-named = \case
-  DCppDirective s t -> [(s, t)]
-  DCat a b -> named a <> named b
-  DNest _ x -> named x
-  DAlign x -> named x
-  DGroup _ x -> named x
-  DVariant _ b -> named b
-  _ -> []
-
--- | Bring the given directives out to the top of the spine.
-exposing :: [(Span, Text)] -> [Doc] -> [Doc]
-exposing wanted
-  | null wanted = id
-  | otherwise = concatMap out
-  where
-    out d
-      | not (any here (named d)) = [d]
-      | otherwise = case d of
-          DCat a b -> out a <> out b
-          DNest k x -> split (DNest k) (out x)
-          DAlign x -> split DAlign (out x)
-          DGroup l x -> split (DGroup l) (out x)
-          DVariant a b -> varied (out a) (out b)
-          _ -> [d]
-
-    here (s, t) = (s, t) `elem` wanted
-
-    bare = \case
-      DCppDirective s t -> here (s, t)
-      _ -> False
-
-    split w ps = case break bare ps of
-      (before, []) -> [w (mconcat before) | not (null before)]
-      (before, x : rest) ->
-        [w (mconcat before) | not (null before)] <> [x] <> split w rest
-
-    varied as bs =
-      let (xs, ds) = chunk as
-          (ys, es) = chunk bs
-       in if ds == es && length xs == length ys
-            then interleave xs ys ds
-            else [DVariant (mconcat as) (mconcat bs)]
-
-    chunk ps = case break bare ps of
-      (before, []) -> ([mconcat before], [])
-      (before, x : rest) ->
-        let (cs, ds) = chunk rest in (mconcat before : cs, x : ds)
-
-    interleave (x : xs) (y : ys) ds = case ds of
-      [] -> [DVariant x y]
-      z : zs -> DVariant x y : z : interleave xs ys zs
-    interleave _ _ _ = []
-
--- | Would these two documents print the same, laid out like this?
-agree :: Varied -> Layout -> Doc -> Doc -> Bool
-agree varied layout a b = alike (chunked (spineAt layout a)) (chunked (spineAt layout b))
-  where
-    alike (Left s : xs) (Left t : ys) = s == t && alike xs ys
-    alike (Right x : xs) (Right y : ys) = here x y && alike xs ys
-    alike [] [] = True
-    alike _ _ = False
-    chunked ds =
-      let (space, rest) = span isSpace' ds
-       in Left (spaceOf layout space) : case rest of
-            [] -> []
-            x : more -> Right x : chunked more
-    isSpace' = \case
-      DEmpty -> True
-      DSpace -> True
-      DBreak -> True
-      DSoftBreak -> True
-      DHardBreak -> True
-      DCloseLine -> True
-      _ -> False
-    inside x y = agree varied layout x y
-    here x y = case (x, y) of
-      (DGroup l x', DGroup m y') -> l == m && agree varied l x' y'
-      (DNest n x', DNest m y') -> n == m && inside x' y'
-      (DAlign x', DAlign y') -> inside x' y'
-      (DLocated s x', DLocated t y') ->
-        s == t && (untouched varied s || inside x' y')
-      (DFence s x', DFence t y') -> s == t && inside x' y'
-      (DCppChoice bs x', DCppChoice cs y') ->
-        length bs == length cs
-          && and [g == h && inside p q | ((g, p), (h, q)) <- zip bs cs]
-          && inside x' y'
-      (DText s, DText t) -> s == t
-      (DCppDirective s u, DCppDirective t v) -> s == t && u == v
-      (DHoldBack s, DHoldBack t) -> s == t
-      (DVerbatimBreak r e, DVerbatimBreak q f) -> r == q && e == f
-      (DSpace, DSpace) -> True
-      (DBreak, DBreak) -> True
-      (DSoftBreak, DSoftBreak) -> True
-      (DHardBreak, DHardBreak) -> True
-      (DCloseLine, DCloseLine) -> True
-      _ -> False
-
--- | What a run of space comes to on the page.
-data Space = Space !Int !Bool
-  deriving (Eq, Ord)
-
--- | Read a run of space, the way 'Tilia.Doc.Internal.breakLine' does.
-spaceOf :: Layout -> [Doc] -> Space
-spaceOf layout = go 0 False False
-  where
-    go ended closed apart = \case
-      [] -> Space (min 2 ended) (apart && ended == 0)
-      d : ds -> case d of
-        DSpace -> go ended closed True ds
-        DCloseLine
-          | closed -> go ended closed apart ds
-          | otherwise -> go (ended + 1) True apart ds
-        DHardBreak -> broke ds
-        DBreak
-          | layout == Broken -> broke ds
-          | otherwise -> go ended closed True ds
-        DSoftBreak
-          | layout == Broken -> broke ds
-          | otherwise -> go ended closed apart ds
-        _ -> go ended closed apart ds
-        where
-          broke rest
-            | closed = go ended False apart rest
-            | otherwise = go (ended + 1) False apart rest
-
--- | Put several documents' differences from a baseline into one document.
---
--- Each of them is the baseline except inside one conditional's lines, and
--- those lines do not overlap, so their differences can be applied side by
--- side rather than chosen between. Which is what makes varying the
--- conditionals one at a time add up to varying them together, and so what
--- makes the cost linear.
-combine :: Layout -> Doc -> [(Varied, Doc)] -> Maybe Doc
-combine layout base ds = case filter (\(v, d) -> not (agree v layout base d)) ds of
-  [] -> Just base
-  [(_, only)] -> Just only
-  many -> case (spineAt layout base, [(v, spineAt layout d) | (v, d) <- many]) of
-    ([b], ss) | Just xs <- traverse (\(v, s) -> (,) v <$> single s) ss -> descend b xs
-    (bs, ss) -> spliced bs ss
-  where
-    single [d] = Just d
-    single _ = Nothing
-
-    descend b xs = case b of
-      DLocated s i
-        | Just tds <- every (\case DLocated t d -> Just (t, d); _ -> Nothing),
-          all (meets s . fst . snd) tds ->
-            DLocated (hull s (fmap snd tds)) <$> combine layout i (inner tds)
-      DFence s i
-        | Just tds <- every (\case DFence t d -> Just (t, d); _ -> Nothing),
-          all (meets s . fst . snd) tds ->
-            DFence (hull s (fmap snd tds)) <$> combine layout i (inner tds)
-      DNest n i | Just is <- every (\case DNest m d | m == n -> Just d; _ -> Nothing) -> DNest n <$> combine layout i is
-      DAlign i | Just is <- every (\case DAlign d -> Just d; _ -> Nothing) -> DAlign <$> combine layout i is
-      DGroup l i
-        | Just ls <- every (\case DGroup m _ -> Just m; _ -> Nothing),
-          Just is <- every (\case DGroup _ d -> Just d; _ -> Nothing) ->
-            let inside = if Broken `elem` (l : fmap snd ls) then Broken else Flat
-             in DGroup inside <$> combine inside i is
-      _ -> Nothing
-      where
-        every f = traverse (\(v, d) -> (,) v <$> f d) xs
-        inner tds = [(v, d) | (v, (_, d)) <- tds]
-
-    spliced bs ss = do
-      clustered <-
-        traverse
-          (cluster bs)
-          ( overlapping
-              ( sortOn
-                  chFrom
-                  ( concat
-                      [ changesAgainst v (alignable v layout) (agree v layout) bs s
-                      | (v, s) <- ss
-                      ]
-                  )
-              )
-          )
-      pure (mconcat (applied bs clustered))
-
-    cluster _ [c] = Just c
-    cluster bs cs
-      | to - from == 1,
-        Just xs <- traverse (\c -> (,) (chVaried c) <$> single (chWith c)) cs,
-        (b : _) <- drop from bs =
-          ( \d ->
-              Change
-                { chFrom = from,
-                  chTo = to,
-                  chWith = [d],
-                  chVaried = Varied (concatMap (variedLines . chVaried) cs)
-                }
-          )
-            <$> combine layout b xs
-      | otherwise = Nothing
-      where
-        from = minimum (fmap chFrom cs)
-        to = maximum (fmap chTo cs)
-
-    applied bs = go 0
-      where
-        go i [] = drop i bs
-        go i (c : cs) =
-          take (chFrom c - i) (drop i bs) <> chWith c <> go (chTo c) cs
-
--- | The smallest span covering a node's own and those of everything merged
--- into it.
-hull :: Span -> [(Span, Doc)] -> Span
-hull = foldr ((<>) . fst)
-
--- | A stretch of the baseline, and what one document put there instead.
-data Change = Change
-  { -- | Where the stretch begins, as an index into the baseline.
-    chFrom :: !Int,
-    -- | Where it ends, one past the last element replaced.
-    chTo :: !Int,
-    -- | What the document put there instead.
-    chWith :: [Doc],
-    -- | The lines the conditional this change came from could have reached.
-    -- Carried so that a cluster of two of them can be combined without
-    -- losing which conditional each half belongs to. See 'Varied'.
-    chVaried :: Varied
-  }
-
--- | What one document changed about the baseline, as the stretches it
--- replaced and what it put in each of their places.
-changesAgainst ::
-  Varied ->
-  -- | Whether two elements stand for the same thing, which lines the spines up.
-  (Doc -> Doc -> Bool) ->
-  -- | Whether two elements print the same, which says nothing changed.
-  (Doc -> Doc -> Bool) ->
-  [Doc] ->
-  [Doc] ->
-  [Change]
-changesAgainst varied lining plain bs xs = go 0 bs xs (lcs lining bs xs)
-  where
-    anchor = anchored lining
-
-    go i b x [] = between i b x
-    go i b x (c : cs) =
-      let (b', b'') = break (anchor c) b
-          (x', x'') = break (anchor c) x
-          j = i + length b'
-       in between i b' x'
-            <> held j (listToMaybe b'') (listToMaybe x'')
-            <> go (j + 1) (drop 1 b'') (drop 1 x'') cs
-
-    held j (Just b') (Just x')
-      | not (plain b' x') =
-          [Change{chFrom = j, chTo = j + 1, chWith = [x'], chVaried = varied}]
-    held _ _ _ = []
-
-    between i b x =
-      [ Change
-          { chFrom = i + shared,
-            chTo = i + shared + length b',
-            chWith = x',
-            chVaried = varied
-          }
-      | not (null b' && null x')
-      ]
-      where
-        shared = length (takeWhile id (zipWith plain b x))
-        atEnd = length (takeWhile id (zipWith plain (reverse b) (reverse x)))
-        kept = min atEnd (min (length b) (length x) - shared)
-        b' = take (length b - kept - shared) (drop shared b)
-        x' = take (length x - kept - shared) (drop shared x)
-
--- | Group changes that reach the same stretch of the baseline.
---
--- Ones that merely touch are left apart: a change ending where the next
--- begins has not reached into it.
-overlapping :: [Change] -> [[Change]]
-overlapping [] = []
-overlapping (c : cs) = go [c] (chTo c) cs
-  where
-    go acc _ [] = [reverse acc]
-    go acc end (x : xs)
-      | chFrom x < end = go (x : acc) (max end (chTo x)) xs
-      | otherwise = reverse acc : go [x] (chTo x) xs
-
--- | What a document prints before its final choice, and that choice.
-endingChoice :: Doc -> Maybe (Doc, [(Text, Doc)], Doc, Doc)
-endingChoice d = case span onlySpacing (reverse (spine d)) of
-  (trailing, x : earlier) ->
-    let opening = mconcat (reverse earlier)
-        gap = mconcat (reverse trailing)
-        around w (o, bs, e, g) =
-          (opening <> w o, fmap (fmap w) bs, w e, w g <> gap)
-     in case x of
-          DCppChoice bs e -> Just (opening, bs, e, gap)
-          DGroup l y -> around (DGroup l) <$> endingChoice y
-          DNest n y -> around (DNest n) <$> endingChoice y
-          DLocated s y -> around (DLocated s) <$> endingChoice y
-          DFence s y -> around (DFence s) <$> endingChoice y
-          _ -> Nothing
-  _ -> Nothing
-
--- | The mirror of 'endingChoice': a document's opening choice, and the rest.
-startingChoice :: Doc -> Maybe (Doc, [(Text, Doc)], Doc, Doc)
-startingChoice d = case span onlySpacing (spine d) of
-  (leading, x : later) ->
-    let gap = mconcat leading
-        closing = mconcat later
-        around w (g, bs, e, c) =
-          (gap <> w g, fmap (fmap w) bs, w e, w c <> closing)
-     in case x of
-          DCppChoice bs e -> Just (gap, bs, e, closing)
-          DGroup l y -> around (DGroup l) <$> startingChoice y
-          DNest n y -> around (DNest n) <$> startingChoice y
-          DLocated s y -> around (DLocated s) <$> startingChoice y
-          DFence s y -> around (DFence s) <$> startingChoice y
-          _ -> Nothing
-  _ -> Nothing
-
--- | Nothing but the whitespace that separates one thing from the next.
-onlySpacing :: Doc -> Bool
-onlySpacing = \case
-  DEmpty -> True
-  DSpace -> True
-  DBreak -> True
-  DSoftBreak -> True
-  DHardBreak -> True
-  DCloseLine -> True
-  _ -> False
-
--- | Does the first thing this document puts on the page end a line?
-opensWithBreak :: Layout -> Doc -> Bool
-opensWithBreak layout d = case dropWhile quiet (spineAt layout d) of
-  (x : _) -> case x of
-    DNest _ y -> opensWithBreak layout y
-    DAlign y -> opensWithBreak layout y
-    DGroup l y -> opensWithBreak l y
-    DLocated _ y -> opensWithBreak layout y
-    DFence _ y -> opensWithBreak layout y
-    DHardBreak -> True
-    DCloseLine -> True
-    DBreak -> layout == Broken
-    DSoftBreak -> layout == Broken
-    DCppDirective _ _ -> True
-    DCppChoice _ _ -> True
-    _ -> False
-  [] -> False
-  where
-    quiet = \case
-      DEmpty -> True
-      DSpace -> True
-      _ -> False
-
--- | How much text this document holds, counting what a choice repeats once
--- for each alternative that repeats it.
-weigh :: Layout -> Doc -> Int
-weigh layout = go
-  where
-    go = \case
-      DCat a b -> go a + go b
-      DNest _ d -> go d
-      DAlign d -> go d
-      DGroup l d -> weigh l d
-      DVariant flatD brokenD ->
-        go (case layout of Flat -> flatD; Broken -> brokenD)
-      DLocated _ d -> go d
-      DFence _ d -> go d
-      DCppChoice bs e -> sum (fmap (go . snd) bs) + go e
-      DText t -> T.length t
-      DCppDirective _ t -> T.length t
-      DHoldBack t -> T.length t
-      _ -> 0
-
--- | A document as the sequence of things it concatenates.
-spine :: Doc -> [Doc]
-spine = \case
-  DEmpty -> []
-  DCat a b -> spine a <> spine b
-  d -> [d]
-
--- | 'spine', with the variants resolved the way this layout will print them.
-spineAt :: Layout -> Doc -> [Doc]
-spineAt layout = go
-  where
-    go = \case
-      DEmpty -> []
-      DCat a b -> go a <> go b
-      DVariant flatD brokenD ->
-        go (case layout of Flat -> flatD; Broken -> brokenD)
-      d -> [d]
-
--- | The longest run of elements two spines have in common, in order,
--- allowing for anything either of them has that the other does not.
-lcs :: (Doc -> Doc -> Bool) -> [Doc] -> [Doc] -> [Doc]
-lcs same xs ys =
-  filter anchoring opening <> table middleX middleY <> filter anchoring closing
-  where
-    agreeing as bs = length (takeWhile id (zipWith same as bs))
-
-    ahead = agreeing xs ys
-    (opening, xs1) = splitAt ahead xs
-    ys1 = drop ahead ys
-    behind = agreeing (reverse xs1) (reverse ys1)
-    (middleX, closing) = splitAt (length xs1 - behind) xs1
-    middleY = take (length ys1 - behind) ys1
-
-    table [] _ = []
-    table _ [] = []
-    table as bs = reverse (snd (last (foldl' (row bs) (start bs) as)))
-      where
-        start cs = replicate (length cs + 1) (0 :: Int, [])
-        row cs previous x = cells 0 [] (zip3 cs previous (drop 1 previous))
-          where
-            cells !n acc rest =
-              (n, acc) : case rest of
-                [] -> []
-                ((y, (dn, ds), (an, as')) : more)
-                  | anchoring x, same x y -> cells (dn + 1) (x : ds) more
-                  | n >= an -> cells n acc more
-                  | otherwise -> cells an as' more
-
--- | Do these two documents stand for the same thing?
-alignable :: Varied -> Layout -> Doc -> Doc -> Bool
-alignable = agree
-
--- | Only let something that was printed line two spines up.
-anchored :: (Doc -> Doc -> Bool) -> Doc -> Doc -> Bool
-anchored same a b = anchoring a && same a b
-
--- | Could this element hold two spines together, if it turned up in both?
-anchoring :: Doc -> Bool
-anchoring = \case
-  DEmpty -> False
-  DSpace -> False
-  DBreak -> False
-  DSoftBreak -> False
-  DHardBreak -> False
-  DCloseLine -> False
-  DVerbatimBreak _ _ -> False
-  _ -> True
-
--- | A spine cut at the elements it shares with the others: one stretch
--- before each of them, and one after the last, and the elements themselves.
---
--- The matched elements come back rather than being dropped because the
--- caller cannot assume they are interchangeable: what lined them up is
--- 'alignable', and only 'agree' would say they print the same.
-segments ::
-  -- | Whether an element of the spine is the shared one being looked for.
-  (Doc -> Doc -> Bool) ->
-  -- | The shared elements, in order, to cut at.
-  [Doc] ->
-  -- | The spine to cut.
-  [Doc] ->
-  -- | The stretches between the cuts, and the elements cut at.
-  ([[Doc]], [Doc])
-segments same = go
-  where
-    go [] s = ([s], [])
-    go (c : cs) s = case break (same c) s of
-      (before', matched : rest) -> keeping before' matched (go cs rest)
-      (before', []) -> keeping before' c (go cs [])
-      where
-        keeping before' matched (stretches, anchors) =
-          (before' : stretches, matched : anchors)
-
-----------------------------------------------------------------------------
--- Diagnostics
-
--- | Every region a document records provenance for, with what was printed
--- there.
---
--- The outermost wins where a span appears twice, which is the one 'walk'
--- would have given a comment to.
-regions :: Doc -> Map Span Doc
-regions = Map.fromListWith (\_ outer -> outer) . go
-  where
-    go = \case
-      DLocated s d -> (s, d) : go d
-      DFence _ d -> go d
-      DCat a b -> go a <> go b
-      DNest _ d -> go d
-      DAlign d -> go d
-      DGroup _ d -> go d
-      DVariant a _ -> go a
-      DCppChoice bs e -> foldMap (go . snd) bs <> go e
-      _ -> []
+    everyBranch,
+    CppError (..),
+    describeCppError,
+
+    -- * Splitting
+    Guard (..),
+    Configurations (..),
+    configurations,
+    leaves,
+    branchLeaves,
+    correspondingBranches,
+    linearLeaves,
+    countLeaves,
+    answeredLeaves,
+    answeredLinearLeaves,
+
+    -- * Diagnostics
+    regions,
+  )
+where
+
+import Control.Applicative ((<|>))
+import Control.Monad (join, when)
+import Control.Monad.Trans.Class (lift)
+import Control.Monad.Trans.Except (ExceptT, catchE, except, runExceptT, throwE)
+import Control.Monad.Trans.State.Strict (State, evalState, get, put)
+import Data.Foldable (traverse_)
+import Data.IntMap.Strict qualified as IntMap
+import Data.List (sort)
+import Data.List.NonEmpty (NonEmpty, nonEmpty)
+import Data.Map.Strict (Map)
+import Data.Map.Strict qualified as Map
+import Data.Maybe (catMaybes, fromMaybe, isNothing, listToMaybe, mapMaybe, maybeToList)
+import Data.Monoid (Any (..))
+import Data.Set qualified as Set
+import Data.Text (Text)
+import Data.Text qualified as T
+import Data.Traversable (for)
+import GHC.Conc (par)
+import Tilia.Cpp.Directives
+import Tilia.Cpp.Fragment (bodyOf, fragmentText, fragmentsOf, linesHeld, reassembled)
+import Tilia.Cpp.Merge (Settled (..), combine, merge)
+import Tilia.Cpp.Place (CommentSummary, restoreUnprinted, summarizeComments)
+import Tilia.Doc (defaultRenderOptions, printDoc)
+import Tilia.Doc.Internal
+  ( Doc (..),
+    Layout (..),
+    conditionalRange,
+    foldChildren,
+    mapChildren,
+    printedFrom,
+  )
+import Tilia.Parser
+  ( ParsedModule,
+    ParserConfig,
+    importLayout,
+    parseConfiguration,
+    parseModule,
+    pmSource,
+    readAlike,
+  )
+import Tilia.Render (RenderConfig (..), renderConfiguration)
+import Tilia.Source
+  ( Lines,
+    Written (..),
+    blankAt,
+    comments,
+    dropping,
+    linesOf,
+  )
+import Tilia.Span
+  ( Span,
+    spanEndLine,
+    spanStartLine,
+  )
+
+----------------------------------------------------------------------------
+-- Formatting
+
+-- | Format a module which uses the C preprocessor.
+--
+-- Each configuration's code is formatted by the ordinary printer, and the
+-- resulting documents are merged. The conditionals, the comments, and the
+-- directives are then injected into the merged document.
+formatWithCpp ::
+  -- | What to parse each configuration with.
+  ParserConfig ->
+  -- | What to print each configuration with.
+  RenderConfig ->
+  -- | The file this is, for the positions in an error.
+  FilePath ->
+  -- | The module, directives and all.
+  Text ->
+  -- | The formatted module, or why not.
+  Either CppError Text
+formatWithCpp parser render path source = do
+  traverse_ (Left . RuledOutBranch) (ruledOutBranch source)
+  (document, found) <-
+    evalState
+      ( runExceptT
+          ( formatAllConfigs
+              parser
+              known
+              path
+              (reading parser known path (noAnswers source) source)
+          )
+      )
+      (configurationBudget * linesHeld source)
+  formatted <-
+    printDoc defaultRenderOptions
+      <$> restoreUnprinted source found document
+  formatted <$ traverse_ (Left . RuledOutBranch) (ruledOutBranch formatted)
+  where
+    known =
+      render
+        { rcImportBarriers = maybe [] (importBarriers parser source) groups,
+          rcNameBarriers = maybe [] (sort . concatMap gsOwnLines) groups
+        }
+    groups = allGroups <$> scanConditionals source
+
+-- | A module's branches, parsed: as one module where they parse together,
+-- and otherwise as the branch leaves that parse.
+everyBranch ::
+  -- | What to parse with.
+  ParserConfig ->
+  -- | The file this is, for the positions in a parse error.
+  FilePath ->
+  -- | The module, directives and all.
+  Text ->
+  -- | 'Nothing' where nothing parses.
+  Maybe (NonEmpty ParsedModule)
+everyBranch parser path source =
+  case parseModule parser path (blankCpp source) of
+    Right whole -> Just (pure whole)
+    Left _ ->
+      nonEmpty
+        [ parsed
+        | Right texts <- [branchLeaves source],
+          Right parsed <- fmap (parseModule parser path) texts
+        ]
+
+-- | The lines imports must not be sorted across: the directives of every
+-- conditional but one that only continues the item above it, such as a
+-- @hiding@ clause written behind a condition.
+importBarriers ::
+  -- | What to read the module with.
+  ParserConfig ->
+  -- | The module, directives and all.
+  Text ->
+  -- | Every conditional of the module, nested ones included.
+  [GroupSpec] ->
+  [Int]
+importBarriers parser source groups =
+  sort [l | g <- groups, not (continuesAnItem g), l <- gsOwnLines g]
+  where
+    starts = fromMaybe IntMap.empty (importLayout parser (blankCpp source))
+    continuesAnItem g =
+      let (from, to) = gsWhole g
+          held =
+            IntMap.elems $
+              fst (IntMap.split to (snd (IntMap.split from starts)))
+       in not (null held) && not (or held)
+
+-- | Formatting that spends the lines it formats out of the budget left, or
+-- fails with a 'CppError'.
+type Spending = ExceptT CppError (State Int)
+
+-- | Give up on formatting the module.
+refuse :: CppError -> Spending a
+refuse = throwE
+
+-- | Take lines out of the budget, or give up where fewer are left.
+spend :: Int -> Spending ()
+spend n = do
+  budget <- lift get
+  when (budget < n) (refuse TooManyConfigurations)
+  lift (put (budget - n))
+
+-- | What formatting comes to, or 'Nothing' where it fails for a reason
+-- other than the budget running out. What it spent stays spent.
+attempt :: Spending a -> Spending (Maybe a)
+attempt formatting =
+  (Just <$> formatting) `catchE` \case
+    TooManyConfigurations -> refuse TooManyConfigurations
+    _ -> pure Nothing
+
+-- | A configuration, with what its conditionals come to worked out once
+-- for everything that asks.
+data Reading = Reading
+  { -- | How it was reached.
+    readingReached :: Reached,
+    -- | Its text.
+    readingSource :: Text,
+    -- | Its conditionals.
+    readingForest :: Either CppError [GroupSpec],
+    -- | Its conditionals split one at a time, with the reading of the
+    -- baseline they are varied against, where it has any.
+    readingApart :: Maybe (Variation, Reading),
+    -- | The conditional to split on first, where one holds a pragma that
+    -- changes how the rest is parsed.
+    readingPragma :: Maybe GroupSpec,
+    -- | What it comes to formatted as it is, where it holds no conditional.
+    readingFormatted :: Either CppError (Doc, CommentSummary)
+  }
+
+-- | Read a configuration.
+reading ::
+  -- | What to parse a configuration with.
+  ParserConfig ->
+  -- | What to print it with.
+  RenderConfig ->
+  -- | The file this is, for the positions in a parse error.
+  FilePath ->
+  -- | How this configuration was reached.
+  Reached ->
+  -- | Input text.
+  Text ->
+  Reading
+reading parser render path reached source =
+  Reading
+    { readingReached = reached,
+      readingSource = source,
+      readingForest = forest,
+      readingApart = do
+        apart <- withForest (`variations` source)
+        let baseline = without (vaBaselineDropped apart) reached
+        pure (apart, reading parser render path baseline (vaBaseline apart)),
+      readingPragma = withForest (\f -> splitOnPragma parser f source),
+      readingFormatted =
+        formatSingleConfig parser render path reached (withoutOpaque source)
+    }
+  where
+    forest = readConditionals source
+    withForest f = either (const Nothing) f forest
+
+-- | What the first configuration 'formatAllConfigs' formats comes to, where
+-- it is sure to start with the one every question is answered in with its
+-- first branch.
+firstFormatted :: Reading -> Maybe (Either CppError (Doc, CommentSummary))
+firstFormatted r = case (readingForest r, readingApart r) of
+  (Left _, _) -> Nothing
+  (Right _, Nothing) -> Just (readingFormatted r)
+  (Right _, Just (_, baseline))
+    | isNothing (readingPragma r) -> firstFormatted baseline
+    | otherwise -> Nothing
+
+-- | Start working out on the side, as far as its outermost constructor,
+-- what each configuration formats first.
+aheadOf :: [Reading] -> a -> a
+aheadOf readings x = foldr par x (mapMaybe firstFormatted readings)
+
+-- | Format every configuration of a module, and merge them into one
+-- document, with what they found besides their code.
+formatAllConfigs ::
+  -- | What to parse a configuration with.
+  ParserConfig ->
+  -- | What to print it with.
+  RenderConfig ->
+  -- | The file this is, for the positions in a parse error.
+  FilePath ->
+  -- | The configuration.
+  Reading ->
+  Spending (Doc, CommentSummary)
+formatAllConfigs parser render path r = do
+  forest <- except (readingForest r)
+  case readingApart r of
+    Nothing -> do
+      spend (linesHeld source)
+      except (readingFormatted r)
+    Just (apart, baseline) -> do
+      budget <- lift get
+      let pragma = readingPragma r
+          least = max 1 (linesHeld (blanking (fmap gsWhole forest) source))
+          affordable = linearCost (budget `div` least) forest source * least <= budget
+      base <-
+        if isNothing pragma || affordable
+          then
+            attempt (formatAllConfigs parser render path baseline)
+          else pure Nothing
+      fragmented <- case (pragma, base) of
+        (Nothing, Just b) -> join <$> attempt (inFragments parser render path reached forest source b)
+        _ -> pure Nothing
+      linear <- case (fragmented, base) of
+        (Nothing, Just b) | affordable -> oneAtATime apart b
+        _ -> pure Nothing
+      case fragmented <|> linear of
+        Just found -> pure found
+        Nothing -> case maybeToList pragma <> forest of
+          g : _ -> together parser render path reached (configurationsOn g forest source)
+          [] -> error "Tilia: a module that varies has a conditional to split on"
+  where
+    reached = readingReached r
+    source = readingSource r
+    oneAtATime apart base = do
+      varied <- attempt (separately parser render path reached apart base)
+      pure $ do
+        (merged, found) <- varied
+        d <- combine Broken (fst base) (zip (fmap cfgWholes (vaGroups apart)) merged)
+        pure (d, found)
+
+-- | How many formattings varying a module's conditionals one at a time
+-- takes at the least, counted as far as one past the given number.
+linearCost :: Int -> [GroupSpec] -> Text -> Int
+linearCost limit forest source = go forest
+  where
+    written = linesOf (Written source)
+    go = \case
+      [] -> 1
+      gss ->
+        upTo
+          0
+          ( go (concatMap (`nestedIn` 0) gss)
+              : [ if holdsNothing r && all holdsNothing (take 1 (gsBranches gs))
+                    then 0
+                    else go (nestedIn gs i <> concatMap (`nestedIn` 0) others)
+                | (k, gs) <- zip [0 :: Int ..] gss,
+                  let others = [o | (j, o) <- zip [0 ..] gss, j /= k],
+                  (i, r) <-
+                    zip
+                      [1 ..]
+                      ( drop 1 (gsBranches gs)
+                          <> [ (1, 0)
+                             | not (gsHasElse gs)
+                             ]
+                      )
+                ]
+          )
+    holdsNothing (from, to) = all (`blankAt` written) [from .. to]
+    upTo acc = \case
+      _ | acc > limit -> acc
+      [] -> acc
+      x : xs -> upTo (acc + x) xs
+
+-- | A single variation.
+data Variation = Variation
+  { -- | Every question answered with its first branch.
+    vaBaseline :: Text,
+    -- | The line ranges that answer leaves out.
+    vaBaselineDropped :: [(Int, Int)],
+    -- | One question varied, with all the others held at the baseline.
+    vaGroups :: [Configurations]
+  }
+
+-- | Split a module on every conditional at its top level, one at a time.
+variations :: [GroupSpec] -> Text -> Maybe Variation
+variations forest source
+  | null forest = Nothing
+  | otherwise =
+      Just
+        Variation
+          { vaBaseline = held (const 0),
+            vaBaselineDropped = gone (const 0),
+            vaGroups =
+              [ Configurations
+                  { cfgGuards = gsGuards gs,
+                    cfgTexts = [held (varying k i) | i <- [0 .. gsCount gs - 1]],
+                    cfgDropped = [gone (varying k i) | i <- [0 .. gsCount gs - 1]],
+                    cfgWholes = Varied [gsWhole gs],
+                    cfgConditionals = [gsConditional gs]
+                  }
+              | (k, gs) <- zip [0 ..] forest
+              ]
+          }
+  where
+    held at = blanking (concat [blankingFor gs (at k) | (k, gs) <- zip [0 :: Int ..] forest]) source
+    gone at = concat [droppedFor gs (at k) | (k, gs) <- zip [0 :: Int ..] forest]
+    varying k i j = if j == k then i else 0
+
+-- | Vary each conditional on its own, holding the others at their first
+-- branch.
+separately ::
+  -- | What to parse a configuration with.
+  ParserConfig ->
+  -- | What to print it with.
+  RenderConfig ->
+  -- | The file this is, for the positions in a parse error.
+  FilePath ->
+  -- | How this configuration was reached.
+  Reached ->
+  -- | The conditionals to vary, and the baseline to hold them against.
+  Variation ->
+  -- | What the baseline was formatted to.
+  (Doc, CommentSummary) ->
+  Spending ([Doc], CommentSummary)
+separately parser render path reached v (baseDoc, baseFound) = do
+  groups <-
+    aheadOf (catMaybes (concat readings)) . for readings . traverse $
+      maybe (pure (baseDoc, mempty)) (formatAllConfigs parser render path)
+  let merged =
+        zipWith
+          (mergeOf (reachedLines reached))
+          (vaGroups v)
+          (fmap (fmap fst) groups)
+  pure (foldr par merged merged, baseFound <> foldMap (foldMap snd) groups)
+  where
+    readings =
+      [ [ if t == vaBaseline v
+            then Nothing
+            else Just (reading parser render path (answering c i reached) t)
+        | (i, t) <- zip [0 ..] (cfgTexts c)
+        ]
+      | c <- vaGroups v
+      ]
+
+-- | Format each fragment of declarations the outermost conditionals reach
+-- on its own, and put the results into what the baseline was formatted to.
+--
+-- 'Nothing' where the module cannot be taken apart like that.
+inFragments ::
+  -- | What to parse a configuration with.
+  ParserConfig ->
+  -- | What to print it with.
+  RenderConfig ->
+  -- | The file this is, for the positions in a parse error.
+  FilePath ->
+  -- | How this configuration was reached.
+  Reached ->
+  -- | The outermost conditionals.
+  [GroupSpec] ->
+  -- | Input text.
+  Text ->
+  -- | What the baseline was formatted to.
+  (Doc, CommentSummary) ->
+  Spending (Maybe (Doc, CommentSummary))
+inFragments parser render path reached forest source (baseDoc, baseFound) =
+  case parts of
+    Nothing -> pure Nothing
+    Just (body, ps) -> do
+      let readings =
+            [ reading parser render path (without gone reached) t
+            | (_, (t, gone)) <- ps
+            ]
+      formatted <-
+        aheadOf readings $
+          traverse (formatAllConfigs parser render path) readings
+      pure $ do
+        doc <- reassembled body (zip (fmap fst ps) (fmap fst formatted))
+        pure (doc, baseFound <> foldMap snd formatted)
+  where
+    parts = do
+      body <- bodyOf baseDoc
+      ps <-
+        traverse
+          (\f -> (,) f <$> fragmentText body forest source f)
+          (fragmentsOf body forest)
+      pure (body, ps)
+
+-- | The outermost conditional around a @LANGUAGE@ or @OPTIONS@ pragma that
+-- changes how the rest of the module is parsed, if there is one.
+--
+-- Formatting a fragment on its own takes the rest of the module to be
+-- parsed alike in every configuration.
+splitOnPragma :: ParserConfig -> [GroupSpec] -> Text -> Maybe GroupSpec
+splitOnPragma parser forest source =
+  listToMaybe
+    [ o
+    | g <- groups,
+      holdsPragma g,
+      any (not . readAlike parser baseline . answered g) [1 .. gsCount g - 1],
+      o <- forest,
+      fst (gsWhole o) <= fst (gsWhole g),
+      snd (gsWhole g) <= snd (gsWhole o)
+    ]
+  where
+    groups = allGroups forest
+    baseline = blanking (concatMap (`blankingFor` 0) groups) source
+    answered g i =
+      blanking
+        (blankingFor g i <> concat [blankingFor h 0 | h <- groups, gsWhole h /= gsWhole g])
+        source
+    written = T.lines source
+    holdsPragma g =
+      let (from, to) = gsWhole g
+       in any pragma (take (to - from + 1) (drop (from - 1) written))
+    pragma l =
+      let u = T.toUpper l
+       in "{-#" `T.isInfixOf` u
+            && ("LANGUAGE" `T.isInfixOf` u || "OPTIONS" `T.isInfixOf` u)
+
+-- | Vary the conditionals together, one group at a time.
+together ::
+  -- | What to parse a configuration with.
+  ParserConfig ->
+  -- | What to print it with.
+  RenderConfig ->
+  -- | The file this is, for the positions in a parse error.
+  FilePath ->
+  -- | How this configuration was reached.
+  Reached ->
+  -- | The group to split on, and the branch texts to split it into.
+  Configurations ->
+  Spending (Doc, CommentSummary)
+together parser render path reached c = do
+  (found, blind) <-
+    formatted differentlyRead `catchE` \case
+      ConfigurationNotParsed answers _
+        | not differentlyRead,
+          isNothing (implied answers) ->
+            formatted True
+      e -> refuse e
+  if blind then fst <$> formatted False else pure found
+  where
+    readingOf = reading parser render path
+    differentlyRead =
+      or (zipWith (\a b -> not (readAlike parser a b)) texts (drop 1 texts))
+    texts = cfgTexts c
+    formatted settle = do
+      let (settledBy, answers) =
+            unzip . (if settle then settling else fmap ((,) [])) $
+              [(answering c i reached, t) | (i, t) <- zip [0 ..] texts]
+      found <- fmap catMaybes . for (zip [0 ..] answers) $ \(i, (r, t)) ->
+        if null (unconditionalErrors t)
+          then
+            Just . (,) i
+              <$> formatAllConfigs parser render path (readingOf r t)
+          else pure Nothing
+      docs <-
+        except (traverse (complete (fmap (fmap fst) found)) (zip [0 ..] texts))
+      let settledIn i
+            | Just _ <- lookup i found = settledBy !! i
+            | otherwise = foldMap ((settledBy !!) . fst) (listToMaybe found)
+          settled = settledAcross (fmap settledIn [0 .. length answers - 1])
+          ranges = mapMaybe (conditionalRange . settledConditional) settled
+          varied = Varied (variedLines (cfgWholes c) <> ranges)
+          merged =
+            merge
+              (reachedLines reached)
+              (cfgConditionals c)
+              (cfgGuards c)
+              varied
+              settled
+              docs
+      pure ((merged, foldMap (snd . snd) found), blindOver ranges merged)
+    blindOver ranges d = case d of
+      DCppChoice [] bs _
+        | fmap fst bs == fmap guardText (cfgGuards c),
+          any (\(a, b) -> any (\(from, to) -> a <= to && from <= b) ranges) $
+            printedFrom d ->
+            True
+      _ -> getAny (foldChildren (Any . blindOver ranges) d)
+    complete found (i, t) = case lookup i found of
+      Just d -> Right d
+      Nothing -> case listToMaybe found >>= errorBranch (cfgWholes c) t . snd of
+        Just d -> Right d
+        Nothing ->
+          Left
+            . AbortingAlternative
+            . maybe 0 dLine
+            . listToMaybe
+            . unconditionalErrors
+            $ t
+
+-- | Preserve an error-only alternative without asking the Haskell parser to
+-- parse its missing expression or declaration. A successful sibling supplies
+-- the surrounding syntax, with the nodes wholly inside the conditional taken
+-- out; the @#error@ is put back into the space they leave with every other
+-- directive. More complicated aborting alternatives are left unsupported.
+errorBranch :: Varied -> Text -> Doc -> Maybe Doc
+errorBranch (Varied ranges) source reference = foldl step (Just reference) ranges
+  where
+    sourceLines' = zip [1 ..] (T.lines source)
+    errors = unconditionalErrors source
+    step acc (from, to) = do
+      doc <- acc
+      let inside n = from <= n && n <= to
+          here = filter (inside . dLine) errors
+          errorLine n = any (\d -> dLine d <= n && n <= dLastLine d) here
+          onlyErrors =
+            all
+              (\(n, l) -> not (inside n) || errorLine n || T.null (T.strip l))
+              sourceLines'
+          contained s = inside (spanStartLine s) && inside (spanEndLine s)
+          outside d = case d of
+            DLocated s _ | contained s -> mempty
+            DCppChoice{}
+              | lines'@(_ : _) <- printedFrom d,
+                all (\(a, b) -> inside a && inside b) lines' ->
+                  mempty
+              | otherwise -> d
+            _ -> mapChildren outside d
+      if not (null here) && onlyErrors then Just (outside doc) else Nothing
+
+-- | Format one configuration's code with the ordinary printer, and gather
+-- what else it holds.
+formatSingleConfig ::
+  -- | What to parse it with.
+  ParserConfig ->
+  -- | What to print it with.
+  RenderConfig ->
+  -- | The file this is, for the positions in a parse error.
+  FilePath ->
+  -- | How this configuration was reached.
+  Reached ->
+  -- | The configuration itself, with no directives left in it.
+  Text ->
+  Either CppError (Doc, CommentSummary)
+formatSingleConfig parser render path reached text =
+  case parseConfiguration parser path (reachedLines reached) text of
+    Left e -> Left (ConfigurationNotParsed (reachedAnswers reached) e)
+    Right parsed ->
+      let (document, loose) = renderConfiguration render parsed
+       in Right (document, summarizeComments loose (comments (pmSource parsed)))
+
+-- | How a configuration was reached, and what to call it.
+data Reached = Reached
+  { -- | Which branch each question was answered with, outermost first.
+    reachedAnswers :: [([Guard], Int)],
+    -- | Every line the author wrote, except for those written inside a
+    -- branch this configuration did not take.
+    reachedLines :: Lines
+  }
+
+-- | The configuration nothing has been decided about yet.
+noAnswers :: Text -> Reached
+noAnswers source =
+  Reached
+    { reachedAnswers = [],
+      reachedLines = linesOf (Written source)
+    }
+
+-- | Answer one group's question with the branch at the given index.
+answering :: Configurations -> Int -> Reached -> Reached
+answering c i reached =
+  reached
+    { reachedAnswers = reachedAnswers reached <> [(cfgGuards c, i)],
+      reachedLines =
+        dropping
+          (concat (take 1 (drop i (cfgDropped c))))
+          (reachedLines reached)
+    }
+
+-- | Leave out the branches a baseline does not take, without answering
+-- anything: the baseline is every question taken at its first branch, and
+-- which question is being varied is not settled until 'answering'.
+without :: [(Int, Int)] -> Reached -> Reached
+without gone reached =
+  reached{reachedLines = dropping gone (reachedLines reached)}
+
+-- | Take, in every conditional the answers to one question settle, the
+-- branch they settle it on, as the preprocessor would, where an answer
+-- leaving it open prints its other branches.
+settling ::
+  -- | Each answer, and the configuration it gives.
+  [(Reached, Text)] ->
+  -- | Each answer's settled conditionals and its configuration with them
+  -- taken.
+  [([(GroupSpec, Int)], (Reached, Text))]
+settling given =
+  [ (settled, (reached', blanking (concatMap (uncurry blankingFor) settled) t))
+  | ((reached, t), (candidates, _)) <- zip given found,
+    let settled = [s | s@(gs, _) <- candidates, Set.member (gsWhole gs) open],
+    let reached' =
+          reached
+            { reachedAnswers =
+                reachedAnswers reached
+                  <> [(gsGuards gs, k) | (gs, k) <- settled],
+              reachedLines =
+                dropping
+                  (concatMap (uncurry droppedFor) settled)
+                  (reachedLines reached)
+            }
+  ]
+  where
+    found =
+      [ if null (unconditionalErrors t)
+          then walk (implied (reachedAnswers r)) (scanConditionals t)
+          else ([], [])
+      | (r, t) <- given
+      ]
+    open = Set.fromList (concatMap snd found)
+    walk (Just known) (Just forest) = foldMap (visit known) forest
+    walk _ _ = ([], [])
+    visit known gs = case settledBranch known gs of
+      Just k -> ([(gs, k)], []) <> foldMap (visit known) (nestedIn gs k)
+      Nothing ->
+        ([], [gsWhole gs]) <> foldMap (foldMap (visit known)) (gsNested gs)
+
+-- | The conditionals some answer settles, given what each answer settles.
+settledAcross :: [[(GroupSpec, Int)]] -> [Settled]
+settledAcross perAnswer =
+  [ Settled
+      { settledConditional = gsConditional gs,
+        settledBranches =
+          [ lookup (gsWhole gs) [(gsWhole g, k) | (g, k) <- ss]
+          | ss <- perAnswer
+          ]
+      }
+  | gs <- Map.elems (Map.fromList [(gsWhole g, g) | (g, _) <- concat perAnswer])
+  ]
+
+-- | How many times over one call may format the lines of a module.
+configurationBudget :: Int
+configurationBudget = 64
+
+-- | Merge the documents one group's configurations printed to.
+mergeOf :: Lines -> Configurations -> [Doc] -> Doc
+mergeOf written c =
+  merge
+    written
+    (cfgConditionals c)
+    (cfgGuards c)
+    (cfgWholes c)
+    []
+
+----------------------------------------------------------------------------
+-- Diagnostics
+
+-- | Every region a document records provenance for, with what was printed
+-- there.
+--
+-- The outermost wins where a span appears twice, which is the one 'walk'
+-- would have given a comment to.
+regions :: Doc -> Map Span Doc
+regions = Map.fromListWith (\_ outer -> outer) . go
+  where
+    go = \case
+      DLocated s d -> (s, d) : go d
+      DVariant a _ -> go a
+      d -> foldChildren go d
diff --git a/src/Tilia/Cpp/Directives.hs b/src/Tilia/Cpp/Directives.hs
--- a/src/Tilia/Cpp/Directives.hs
+++ b/src/Tilia/Cpp/Directives.hs
@@ -9,18 +9,22 @@
     withoutRuledOut,
     withoutOpaque,
     CppError (..),
+    Malformation (..),
     describeCppError,
-    unhandledIn,
 
     -- * Splitting
     Guard (..),
     Configurations (..),
     configurations,
+    configurationsOn,
     Varied (..),
     untouched,
     leaves,
     branchLeaves,
+    implied,
+    settledBranch,
     correspondingBranches,
+    ruledOutBranch,
     unconditionalErrors,
     linearLeaves,
     countLeaves,
@@ -30,41 +34,36 @@
 
     -- * The directives themselves
     Directive (..),
-    scanDirectives,
+    dSpan,
+    readConditionals,
+    scanConditionals,
     isDirective,
     GroupSpec (..),
-    groupSpec,
+    gsOwnLines,
     gsCount,
+    nestedIn,
     allGroups,
-    groupsAtLevel,
     blanking,
     blankingFor,
     droppedFor,
-    Opaque (..),
     opaqueDirectives,
-    opSpan,
-    gapUnder,
-    gapWritten,
+    macroLines,
   )
 where
 
-import Data.Char (isSpace)
-import Data.List (unsnoc)
+import Data.Char (isAlphaNum, isSpace)
+import Data.List (sortOn, tails)
 import Data.Map.Strict (Map)
 import Data.Map.Strict qualified as Map
-import Data.Maybe (fromMaybe, listToMaybe, maybeToList)
+import Data.Maybe (fromMaybe, isJust, listToMaybe, maybeToList)
+import Data.Set qualified as Set
 import Data.Text (Text)
 import Data.Text qualified as T
 import GHC.LanguageExtensions.Type (Extension (..))
-import Tilia.Cpp.Macros (Macros, guardHolds)
+import Tilia.Cpp.Macros (Macros, guardHolds, impliedBy)
+import Tilia.Doc.Internal (Conditional (..))
 import Tilia.Parser (ParseError, describeParseError)
-import Tilia.Source
-  ( Lines,
-    blankAt,
-    blankBelow,
-    closesABranch,
-    directiveOnLine,
-  )
+import Tilia.Source (directiveOnLine)
 import Tilia.Span
   ( Span,
     mkSpan,
@@ -82,24 +81,20 @@
 
 -- | Blank out the directive lines, keeping every branch.
 blankCpp :: Text -> Text
-blankCpp = T.unlines . go False . T.lines
-  where
-    go _ [] = []
-    go continuing (l : ls)
-      | continuing || isDirective l = "" : go (runsOn l) ls
-      | otherwise = l : go False ls
-    runsOn = T.isSuffixOf "\\" . T.stripEnd
+blankCpp source =
+  blanking
+    ([(dLine d, dLastLine d) | d <- directives source] <> [(n, n) | (n, _) <- macroLines source])
+    source
 
 -- | Blank out every branch the macros rule out, and the conditionals that
 -- ask about them.
 withoutRuledOut :: Macros -> Text -> Text
-withoutRuledOut macros source = case scanDirectives source of
+withoutRuledOut macros source = case scanConditionals source of
   Nothing -> source
-  Just ds ->
+  Just forest ->
     blanking
       [ range
-      | group <- allGroups ds,
-        Just gs <- [groupSpec group],
+      | gs <- allGroups forest,
         Just taken <- [branchTaken macros gs],
         range <- blankingFor gs taken
       ]
@@ -107,45 +102,81 @@
 
 -- | Which branch of a conditional the macros settle on.
 branchTaken :: Macros -> GroupSpec -> Maybe Int
-branchTaken macros = go 0 . gsGuards
+branchTaken macros = branchFor (guardHolds macros . guardText)
+
+-- | Which branch of a conditional is taken, given which of its guards hold
+-- where that is settled.
+branchFor :: (Guard -> Maybe Bool) -> GroupSpec -> Maybe Int
+branchFor holds = go 0 . gsGuards
   where
     go i = \case
       [] -> Just i
-      g : rest -> case guardHolds macros (guardText g) of
+      g : rest -> case holds g of
         Just True -> Just i
         Just False -> go (i + 1) rest
         Nothing -> Nothing
 
--- | A module with the opaque directives blanked out.
+-- | A module with the opaque directives and the lines using its macros
+-- blanked out.
 withoutOpaque :: Text -> Text
 withoutOpaque source =
-  blanking [(opLine d, opLastLine d) | d <- opaqueDirectives source] source
+  blanking
+    ([(dLine d, dLastLine d) | d <- opaqueDirectives source] <> [(n, n) | (n, _) <- macroLines source])
+    source
 
 -- | Why a module using the preprocessor could not be formatted.
 data CppError
-  = -- | A directive we do not handle, and its keyword.
-    UnhandledDirective Text
-  | -- | Conditionals that do not nest, or an @#else@ out of place.
-    UnsplittableConditional
+  = -- | A conditional that does not make sense: the line and the keyword of
+    -- the directive that gives it away, and what is wrong with it.
+    MalformedConditional Int Text Malformation
   | -- | More configurations than 'configurationBudget' allows.
     TooManyConfigurations
   | -- | A configuration the parser rejected, and which one it was.
     ConfigurationNotParsed [([Guard], Int)] ParseError
-  | -- | A directive whose place in the document could not be found.
-    DirectiveUnplaceable [([Guard], Int)] Text
-  | -- | A directive written inside a quasiquote or other verbatim text.
-    DirectiveInQuotedText [([Guard], Int)] Text
+  | -- | A directive written inside a quasi-quote or a multi-line string, its
+    -- line, and its keyword.
+    DirectiveInQuotedText Int Text
+  | -- | A line using a macro written inside a quasi-quote or a multi-line
+    -- string, its line, and what is written on it.
+    MacroInQuotedText Int Text
+  | -- | A branch holding something that a conditional around it, asking the
+    -- same question, rules out, and the line of the directive opening it.
+    RuledOutBranch Int
+  | -- | An alternative that aborts with @#error@ that cannot be formatted
+    -- without parsing it, and the line of the @#error@.
+    AbortingAlternative Int
 
+-- | What is wrong with a conditional directive.
+data Malformation
+  = -- | It opens a conditional that nothing closes.
+    NeverClosed
+  | -- | It continues or closes a conditional where none is open.
+    NothingOpen
+  | -- | It continues a conditional after its @#else@.
+    AfterElse
+
 -- | Say what went wrong, in one line. The edge of the system.
 describeCppError :: CppError -> Text
 describeCppError = \case
-  UnhandledDirective k -> "a #" <> k <> " directive, which we do not handle"
-  UnsplittableConditional -> "conditionals that do not nest, or an #else out of place"
+  MalformedConditional n k m ->
+    "the #" <> k <> " at line " <> T.pack (show n) <> case m of
+      NeverClosed -> " is never closed"
+      NothingOpen -> " has no conditional to belong to"
+      AfterElse -> " comes after the #else of its conditional"
   TooManyConfigurations -> "too many configurations to format"
   ConfigurationNotParsed c e -> describeParseError e <> inConfiguration c
-  DirectiveUnplaceable c k -> "nowhere to put the #" <> k <> inConfiguration c
-  DirectiveInQuotedText c k ->
-    "a #" <> k <> " inside something quoted verbatim" <> inConfiguration c
+  DirectiveInQuotedText n k ->
+    "the #" <> k <> " at line " <> T.pack (show n) <> " is inside a quasi-quote or a multi-line string"
+  MacroInQuotedText n t ->
+    t <> " at line " <> T.pack (show n) <> " is inside a quasi-quote or a multi-line string"
+  RuledOutBranch n ->
+    "the branch at line "
+      <> T.pack (show n)
+      <> " is ruled out by a conditional around it that asks the same question"
+  AbortingAlternative n ->
+    "the alternative that the #error at line "
+      <> T.pack (show n)
+      <> " aborts cannot be formatted without parsing it"
 
 -- | Which configuration, in words. Empty where there is only one.
 inConfiguration :: [([Guard], Int)] -> Text
@@ -158,17 +189,6 @@
       ([], g : _) -> "no branch of #" <> guardText g
       ([], []) -> "no branch"
 
--- | The keyword of the first directive here that we do not handle.
-unhandledIn :: Text -> Text
-unhandledIn source =
-  case [ k
-       | l <- T.lines source,
-         Just (k, _) <- [directiveOnLine l],
-         k `elem` directiveKeywords
-       ] of
-    k : _ -> k
-    [] -> ""
-
 ----------------------------------------------------------------------------
 -- Splitting
 
@@ -186,7 +206,9 @@
     -- | What each of those branches leaves out, in the same order.
     cfgDropped :: [[(Int, Int)]],
     -- | From each tied group's @#if@ to its @#endif@, inclusive.
-    cfgWholes :: Varied
+    cfgWholes :: Varied,
+    -- | Each tied group as its author wrote it, in the same order.
+    cfgConditionals :: [Conditional]
   }
   deriving (Eq, Show)
 
@@ -194,29 +216,38 @@
 -- one written behind the same directives, wherever in the module it sits.
 configurations :: Text -> Maybe Configurations
 configurations source = do
-  ds <- scanDirectives source
-  gs <- groupSpec =<< listToMaybe (groupsAtLevel 0 ds)
-  let tied = sameGuard gs ds
-  pure
-    Configurations
-      { cfgGuards = gsGuards gs,
-        cfgTexts =
-          [ blanking (concatMap (`blankingFor` i) tied) source
-          | i <- [0 .. gsCount gs - 1]
-          ],
-        cfgDropped =
-          [concatMap (`droppedFor` i) tied | i <- [0 .. gsCount gs - 1]],
-        cfgWholes = Varied (fmap gsWhole tied)
-      }
+  forest <- scanConditionals source
+  gs <- listToMaybe forest
+  pure (configurationsOn gs forest source)
 
+-- | Split a module on one of its conditionals, and on every other one
+-- written behind the same directives.
+configurationsOn ::
+  -- | The conditional.
+  GroupSpec ->
+  -- | The module's conditionals.
+  [GroupSpec] ->
+  -- | The module.
+  Text ->
+  Configurations
+configurationsOn gs forest source =
+  Configurations
+    { cfgGuards = gsGuards gs,
+      cfgTexts =
+        [ blanking (concatMap (`blankingFor` i) tied) source
+        | i <- [0 .. gsCount gs - 1]
+        ],
+      cfgDropped =
+        [concatMap (`droppedFor` i) tied | i <- [0 .. gsCount gs - 1]],
+      cfgWholes = Varied (fmap gsWhole tied),
+      cfgConditionals = fmap gsConditional tied
+    }
+  where
+    tied = sameGuard gs forest
+
 -- | Every group in a module written behind the same directives as this one.
-sameGuard :: GroupSpec -> [Directive] -> [GroupSpec]
-sameGuard gs ds =
-  [ g
-  | grp <- allGroups ds,
-    Just g <- [groupSpec grp],
-    gsGuards g == gsGuards gs
-  ]
+sameGuard :: GroupSpec -> [GroupSpec] -> [GroupSpec]
+sameGuard gs forest = [g | g <- allGroups forest, gsGuards g == gsGuards gs]
 
 -- | The lines one conditional could have printed differently.
 newtype Varied = Varied{variedLines :: [(Int, Int)]}
@@ -234,58 +265,131 @@
 
 -- | One configuration for every branch of every conditional, and no more.
 branchLeaves :: Text -> Either CppError [Text]
-branchLeaves source = case scanDirectives source of
-  Nothing -> Left (UnhandledDirective (unhandledIn source))
-  Just ds -> case nesting 0 ds of
-    Nothing -> Left UnsplittableConditional
-    Just forest ->
-      traverse
-        resolved
-        ( filter
-            (null . unconditionalErrors)
-            (distinct (fmap configuration (assignments forest)))
+branchLeaves source = do
+  forest <- readConditionals source
+  traverse
+    resolved
+    ( filter
+        (null . unconditionalErrors)
+        ( distinct
+            [ configurationOf forest a source
+            | a <- branchAssignments forest,
+              possible forest (completed forest a)
+            ]
         )
+    )
   where
-    reachable = go Map.empty
-      where
-        go asked ns =
-          concat
-            [ (asked, gs)
-                : concat
-                  [ go (Map.insert (gsGuards gs) i asked) nested
-                  | (i, nested) <- zip [0 ..] branches
-                  ]
-            | Nest gs branches <- ns
-            ]
-    assignments forest =
-      Map.empty
-        : [ Map.insert (gsGuards gs) i asked
-          | (asked, gs) <- reachable forest,
-            i <- [0 .. gsCount gs - 1]
-          ]
-    configuration answers =
-      blanking
-        [ r
-        | grp <- allGroups (concat (maybeToList (scanDirectives source))),
-          Just gs <- [groupSpec grp],
-          r <- blankingFor gs (Map.findWithDefault 0 (gsGuards gs) answers)
-        ]
-        source
     distinct = Map.elems . Map.fromList . fmap (\t -> (t, t))
 
--- | A module's conditionals as a forest: each group, with the groups nested
--- inside each of its branches.
-data Nest = Nest GroupSpec [[Nest]]
+-- | The empty assignment, and then one for every branch of every
+-- conditional, which reaches the conditional and takes the branch.
+branchAssignments :: [GroupSpec] -> [Assignment]
+branchAssignments forest =
+  Map.empty
+    : [ Map.insert (gsGuards gs) i asked
+      | (asked, gs) <- reachable Map.empty forest,
+        i <- [0 .. gsCount gs - 1]
+      ]
+  where
+    reachable asked gss =
+      concat
+        [ (asked, gs)
+            : concat
+              [ reachable (Map.insert (gsGuards gs) i asked) nested
+              | (i, nested) <- zip [0 ..] (gsNested gs)
+              ]
+        | gs <- gss
+        ]
 
--- | Read the forest off the directives, refusing a group 'groupSpec' refuses.
-nesting :: Int -> [Directive] -> Maybe [Nest]
-nesting level ds = traverse one (groupsAtLevel level ds)
+-- | The configuration of a module an assignment selects, a conditional it
+-- does not mention taking the branch the assignment settles it on, or else
+-- its first.
+configurationOf :: [GroupSpec] -> Assignment -> Text -> Text
+configurationOf forest assignment =
+  blanking
+    [ r
+    | gs <- allGroups forest,
+      r <- blankingFor gs (Map.findWithDefault 0 (gsGuards gs) answers)
+    ]
   where
-    one group = do
-      gs <- groupSpec group
-      Nest gs <$> traverse (\r -> nesting (level + 1) (inside r ds)) (gsBranches gs)
-    inside (from, to) = filter (\d -> from <= dLine d && dLine d <= to)
+    answers = completed forest assignment
 
+-- | Answer every conditional a configuration reaches that an assignment
+-- does not mention with the branch the answers settle it on, or else with
+-- its first.
+completed :: [GroupSpec] -> Assignment -> Assignment
+completed forest assignment = foldl' visit assignment forest
+  where
+    visit asked gs =
+      let i = fromMaybe settled (Map.lookup (gsGuards gs) asked)
+          settled =
+            fromMaybe 0 (implied (Map.toList asked) >>= (`settledBranch` gs))
+       in foldl' visit (Map.insert (gsGuards gs) i asked) (nestedIn gs i)
+
+-- | The answers an assignment gives the conditionals a configuration
+-- reaches.
+reachedBy :: [GroupSpec] -> Assignment -> [([Guard], Int)]
+reachedBy forest assignment = concatMap reach forest
+  where
+    reach gs =
+      let i = Map.findWithDefault 0 (gsGuards gs) assignment
+       in (gsGuards gs, i) : concatMap reach (nestedIn gs i)
+
+-- | Is there a definition of the macros that answers the conditionals a
+-- configuration reaches as an assignment does?
+possible :: [GroupSpec] -> Assignment -> Bool
+possible forest = isJust . implied . reachedBy forest
+
+-- | What answering these questions as given implies about the macros, or
+-- 'Nothing' where no definition of the macros answers them so.
+implied :: [([Guard], Int)] -> Maybe Macros
+implied answers
+  | and [settledGuard known g /= Just (not h) | (g, h) <- said] = Just known
+  | otherwise = Nothing
+  where
+    said = concat [zip gs (replicate i False <> [True]) | (gs, i) <- answers]
+    known = foldMap (\(g, h) -> impliedBy h (guardText g)) said
+
+-- | Which branch of a conditional what is known about the macros settles it
+-- on, where the conditional does not settle itself.
+--
+-- An @#if 0@ is how code is put aside, and is formatted as though it asked
+-- something.
+settledBranch :: Macros -> GroupSpec -> Maybe Int
+settledBranch known = branchFor (settledGuard known)
+
+-- | Does a guard hold, where what is known settles it and the guard does
+-- not settle itself?
+settledGuard :: Macros -> Guard -> Maybe Bool
+settledGuard known (Guard written) = case guardHolds mempty written of
+  Just _ -> Nothing
+  Nothing -> guardHolds known written
+
+-- | The line of the first directive whose branch holds something although
+-- a conditional around it, asking the same question, rules that branch out.
+ruledOutBranch :: Text -> Maybe Int
+ruledOutBranch source = do
+  forest <- scanConditionals source
+  listToMaybe (go Map.empty forest)
+  where
+    written = zip [1 ..] (T.lines source)
+    holdsSomething (from, to) =
+      any (\(n, l) -> from <= n && n <= to && not (T.all isSpace l)) written
+    go asked forest =
+      concat
+        [ [ opening
+          | Just j <- [Map.lookup (gsGuards gs) asked],
+            (i, opening, r) <- zip3 [0 :: Int ..] (gsOwnLines gs) (gsBranches gs),
+            i /= j,
+            holdsSomething r
+          ]
+            <> concat
+              [ go (Map.insert (gsGuards gs) i asked) nested
+              | (i, nested) <- zip [0 ..] (gsNested gs)
+              ]
+        | gs <- forest
+        ]
+
 -- | Read both spellings under the same CPP choices.
 --
 -- Sorting or deduplicating the resulting source text separately loses the
@@ -300,41 +404,20 @@
   Text ->
   Either CppError [(Maybe Text, Maybe Text)]
 correspondingBranches before after = do
-  left <- forest before
-  right <- forest after
-  let defaults = Map.fromList [(gsGuards gs, 0) | (_, gs) <- reachable Map.empty (left <> right)]
-      choices = Map.keys (Map.fromList [(Map.union a defaults, ()) | a <- assignments left <> assignments right])
-  traverse (\a -> (,) <$> reading before a <*> reading after a) choices
-  where
-    forest source = do
-      ds <- maybe (Left (UnhandledDirective (unhandledIn source))) Right (scanDirectives source)
-      maybe (Left UnsplittableConditional) Right (nesting 0 ds)
-    reachable :: Answers -> [Nest] -> [(Answers, GroupSpec)]
-    reachable asked ns =
-      concat
-        [ (asked, gs)
-            : concat
-              [ reachable (Map.insert (gsGuards gs) i asked) nested
-              | (i, nested) <- zip [0 ..] branches
-              ]
-        | Nest gs branches <- ns
-        ]
-    assignments nodes =
-      Map.empty
-        : [ Map.insert (gsGuards gs) i asked
-          | (asked, gs) <- reachable Map.empty nodes,
-            i <- [0 .. gsCount gs - 1]
+  left <- readConditionals before
+  right <- readConditionals after
+  let forest = left <> right
+      choices =
+        Map.keys . Map.fromList $
+          [ (answers, ())
+          | a <- branchAssignments left <> branchAssignments right,
+            let answers = completed forest a,
+            possible forest answers
           ]
-    reading source answers =
-      let selected =
-            blanking
-              [ r
-              | ds <- maybeToList (scanDirectives source),
-                grp <- allGroups ds,
-                Just gs <- [groupSpec grp],
-                r <- blankingFor gs (Map.findWithDefault 0 (gsGuards gs) answers)
-              ]
-              source
+  traverse (\a -> (,) <$> reading before left a <*> reading after right a) choices
+  where
+    reading source forest assignment =
+      let selected = configurationOf forest assignment source
        in if null (unconditionalErrors selected)
             then Just <$> resolved selected
             else Right Nothing
@@ -342,35 +425,32 @@
 -- | An unconditional @#error@ means this configuration has no Haskell
 -- program to parse. Conditional errors are only considered after choosing a
 -- branch.
-unconditionalErrors :: Text -> [Opaque]
+unconditionalErrors :: Text -> [Directive]
 unconditionalErrors source =
   [ d
   | d <- opaqueDirectives source,
-    T.takeWhile (not . isSpace) (opText d) == "error",
-    not (any (encloses (opLine d)) groups)
+    dKeyword d == "error",
+    not (any (encloses (dLine d)) groups)
   ]
   where
-    groups = [gsWhole g | ds <- maybeToList (scanDirectives source), grp <- allGroups ds, Just g <- [groupSpec grp]]
+    groups = [gsWhole g | forest <- maybeToList (scanConditionals source), g <- allGroups forest]
     encloses n (from, to) = from < n && n < to
 
 -- | The configurations reached by varying one conditional at a time.
 linearLeaves :: Text -> Either CppError [Text]
 linearLeaves = fmap (fmap snd) . answeredLinearLeaves
 
--- | How many configurations a module has, without building any of them.
+-- | How many configurations a module has, without building any of them,
+-- and so counting those no definition of the macros gives.
 countLeaves :: Text -> Either CppError Integer
-countLeaves source = case scanDirectives source of
-  Nothing -> Left (UnhandledDirective (unhandledIn source))
-  Just ds -> case nesting 0 ds of
-    Nothing -> Left UnsplittableConditional
-    Just forest ->
-      Right (sum [across answers forest | answers <- combinations (afforded forest)])
+countLeaves source = do
+  forest <- readConditionals source
+  pure (sum [across answers forest | answers <- combinations (afforded forest)])
   where
     across answers = product . fmap (one answers)
-    one answers (Nest gs nested) = case lookup (gsGuards gs) answers of
-      Just i -> across answers (branch nested i)
-      Nothing -> sum [across answers (branch nested i) | i <- [0 .. gsCount gs - 1]]
-    branch nested i = concat (take 1 (drop i nested))
+    one answers gs = case lookup (gsGuards gs) answers of
+      Just i -> across answers (nestedIn gs i)
+      Nothing -> sum [across answers (nestedIn gs i) | i <- [0 .. gsCount gs - 1]]
     combinations = traverse (\(g, k) -> [(g, i) | i <- [0 .. k - 1]])
     afforded forest = go 1 (repeated forest)
       where
@@ -380,10 +460,10 @@
           | otherwise = []
 
 -- | The guards a module asks more than once, and how many answers each has.
-repeated :: [Nest] -> [([Guard], Int)]
+repeated :: [GroupSpec] -> [([Guard], Int)]
 repeated forest = distinct Map.empty [q | q@(g, _) <- asked forest, twice g]
   where
-    asked ns = concat [(gsGuards gs, gsCount gs) : asked (concat nested) | Nest gs nested <- ns]
+    asked gss = concat [(gsGuards gs, gsCount gs) : asked (concat (gsNested gs)) | gs <- gss]
     times = Map.fromListWith (+) [(g, 1 :: Int) | (g, _) <- asked forest]
     twice g = Map.findWithDefault 0 g times >= 2
 
@@ -396,9 +476,11 @@
 guardsToTie :: Integer
 guardsToTie = 4096
 
--- | Every configuration, and the answers that reach it.
-answeredLeaves :: Text -> Either CppError [(Answers, Text)]
-answeredLeaves = go Map.empty
+-- | Every configuration some definition of the macros gives, and the
+-- answers that reach it.
+answeredLeaves :: Text -> Either CppError [(Assignment, Text)]
+answeredLeaves =
+  fmap (filter (isJust . implied . Map.toList . fst)) . go Map.empty
   where
     go answers source = case configurations source of
       Nothing | not (null (unconditionalErrors source)) -> Right []
@@ -410,12 +492,13 @@
             (zip [0 ..] (cfgTexts c))
 
 -- | Which branch every question was answered with to reach a configuration.
-type Answers = Map [Guard] Int
+type Assignment = Map [Guard] Int
 
 -- | The same, labelled by the answers that reach each one, and for the same
 -- reason as 'answeredLeaves'.
-answeredLinearLeaves :: Text -> Either CppError [(Answers, Text)]
-answeredLinearLeaves = go Map.empty
+answeredLinearLeaves :: Text -> Either CppError [(Assignment, Text)]
+answeredLinearLeaves =
+  fmap (filter (isJust . implied . Map.toList . fst)) . go Map.empty
   where
     go answers source = case configurations source of
       Nothing -> (\t -> [(answers, t)]) <$> resolved source
@@ -430,61 +513,109 @@
 
 -- | The configuration in which every question still to be asked takes its
 -- first branch, and the answers that gives.
-answeredBaseline :: Answers -> Text -> Either CppError (Answers, Text)
+answeredBaseline :: Assignment -> Text -> Either CppError (Assignment, Text)
 answeredBaseline answers source = case configurations source of
   Nothing -> (answers,) <$> resolved source
   Just c -> case cfgTexts c of
     [] -> Right (answers, source)
     t : _ -> answeredBaseline (Map.insert (cfgGuards c) 0 answers) t
 
--- | A module with no conditionals left in it, or the reason it is not one.
+-- | A module with every conditional answered, and its other directives
+-- taken out, or why its conditionals do not make sense.
 resolved :: Text -> Either CppError Text
-resolved source
-  | any isDirective (T.lines left) =
-      Left (UnhandledDirective (unhandledIn left))
-  | otherwise = Right left
-  where
-    left = withoutOpaque source
+resolved source = withoutOpaque source <$ readConditionals source
 
 ----------------------------------------------------------------------------
 -- The directives themselves
 
--- | One preprocessor directive, and how deep in the conditionals it sits.
+-- | One preprocessor directive, as written.
 data Directive = Directive
   { dLine :: !Int,
+    -- | The last line the directive is written on, which is its first unless
+    -- a line of it ends in a backslash.
+    dLastLine :: !Int,
     dKeyword :: !Text,
-    dGuard :: !Guard,
-    dLevel :: !Int
+    -- | What follows its hash, on every line it is written on.
+    dText :: !Text
   }
   deriving (Eq, Show)
 
--- | Every conditional directive in a module, or 'Nothing' if its
--- conditionals do not make sense.
-scanDirectives :: Text -> Maybe [Directive]
-scanDirectives source = go 0 (zip [1 ..] (T.lines source))
+-- | The lines a directive was written on, as a span.
+dSpan :: Directive -> Span
+dSpan d = mkSpan (dLine d, 1) (dLastLine d, 1)
+
+-- | Every directive in a module, in the order they are written.
+directives :: Text -> [Directive]
+directives = go . zip [1 ..] . T.lines
   where
-    go 0 [] = Just []
-    go _ [] = Nothing -- the lines ran out inside a conditional
-    go level ((n, l) : ls)
-      | Nothing <- directiveOnLine l = go level ls
-      | keyword `elem` opensGroup = at level (level + 1)
-      | keyword `elem` continuesGroup, level > 0 = at (level - 1) level
-      | keyword == "endif", level > 0 = at (level - 1) (level - 1)
-      | keyword `notElem` conditionalKeywords = go level ls
-      | otherwise = Nothing
-      where
-        at here next =
-          ( Directive
-              { dLine = n,
-                dKeyword = keyword,
-                dGuard = Guard (T.stripEnd body),
-                dLevel = here
-              }
-              :
-          )
-            <$> go next ls
-        (keyword, body) = fromMaybe ("", "") (directiveOnLine l)
+    go = \case
+      [] -> []
+      (n, l) : ls
+        | Just (keyword, body) <- directiveOnLine l,
+          keyword `elem` directiveKeywords ->
+            let (continued, rest) = continuation l ls
+             in Directive
+                  { dLine = n,
+                    dLastLine = n + length continued,
+                    dKeyword = keyword,
+                    dText = T.intercalate "\n" (fmap T.stripEnd (body : continued))
+                  }
+                  : go rest
+        | otherwise -> go ls
+    continuation l ls
+      | T.isSuffixOf "\\" (T.stripEnd l),
+        (_, next) : rest <- ls =
+          let (more, rest') = continuation next rest in (next : more, rest')
+      | otherwise = ([], ls)
 
+-- | A module's conditionals, each with the ones inside its branches, or why
+-- they do not make sense.
+readConditionals :: Text -> Either CppError [GroupSpec]
+readConditionals = go [] [] . filter ((`elem` conditionalKeywords) . dKeyword) . directives
+  where
+    -- The groups finished where the reading is, last first, and the
+    -- conditionals open around it, innermost first.
+    go done open = \case
+      [] -> case open of
+        [] -> Right (reverse done)
+        o : _ -> Left (MalformedConditional (dLine (oOpener o)) (dKeyword (oOpener o)) NeverClosed)
+      d : ds
+        | dKeyword d `elem` opensGroup -> go [] (Open d [] [] done : open) ds
+        | dKeyword d `elem` continuesGroup -> case open of
+            [] -> malformed NothingOpen
+            o : rest
+              | any ((== "else") . dKeyword) (take 1 (oLater o)) -> malformed AfterElse
+              | otherwise ->
+                  go [] (o{oLater = d : oLater o, oEarlier = reverse done : oEarlier o} : rest) ds
+        | otherwise -> case open of
+            [] -> malformed NothingOpen
+            o : rest ->
+              let gs =
+                    groupSpec
+                      (oOpener o)
+                      (reverse (oLater o))
+                      d
+                      (reverse (reverse done : oEarlier o))
+               in go (gs : oBefore o) rest ds
+        where
+          malformed = Left . MalformedConditional (dLine d) (dKeyword d)
+
+-- | A conditional still open as the directives are read.
+data Open = Open
+  { -- | The directive that opened it.
+    oOpener :: Directive,
+    -- | The directives that continued it, last first.
+    oLater :: [Directive],
+    -- | The groups inside each of its branches read so far, last first.
+    oEarlier :: [[GroupSpec]],
+    -- | The groups before it where it is, last first.
+    oBefore :: [GroupSpec]
+  }
+
+-- | A module's conditionals, or 'Nothing' if they do not make sense.
+scanConditionals :: Text -> Maybe [GroupSpec]
+scanConditionals = either (const Nothing) Just . readConditionals
+
 -- | The directives that ask a question, and so split a module in two.
 conditionalKeywords :: [Text]
 conditionalKeywords = opensGroup <> continuesGroup <> ["endif"]
@@ -514,61 +645,71 @@
 data GroupSpec = GroupSpec
   { gsGuards :: [Guard],
     gsHasElse :: Bool,
-    gsOwnLines :: [Int],
+    gsConditional :: Conditional,
+    gsOwnRanges :: [(Int, Int)],
     gsBranches :: [(Int, Int)],
-    gsWhole :: (Int, Int)
+    gsWhole :: (Int, Int),
+    -- | The groups inside each of its branches.
+    gsNested :: [[GroupSpec]]
   }
 
--- | Read a group off its directives, refusing one that is malformed.
-groupSpec :: [Directive] -> Maybe GroupSpec
-groupSpec group = do
-  (separators, end) <- unsnoc group
-  opener <- listToMaybe separators
-  require (dKeyword opener `elem` opensGroup)
-  require (dKeyword end == "endif")
-  require (all ((`elem` continuesGroup) . dKeyword) (drop 1 separators))
-  require (all ((/= "else") . dKeyword) (drop 1 (reverse separators)))
-  pure
-    GroupSpec
-      { gsGuards = [dGuard d | d <- separators, dKeyword d /= "else"],
-        gsHasElse = any ((== "else") . dKeyword) separators,
-        gsOwnLines = fmap dLine group,
-        gsBranches = [(dLine a + 1, dLine b - 1) | (a, b) <- zip group (drop 1 group)],
-        gsWhole = (dLine opener, dLine end)
-      }
+-- | Read a group off its directives.
+groupSpec ::
+  -- | The directive opening it.
+  Directive ->
+  -- | The ones continuing it.
+  [Directive] ->
+  -- | The one closing it.
+  Directive ->
+  -- | The groups inside each of its branches.
+  [[GroupSpec]] ->
+  GroupSpec
+groupSpec opener later end nested =
+  GroupSpec
+    { gsGuards = [Guard (dText d) | d <- opener : later, dKeyword d /= "else"],
+      gsHasElse = any ((== "else") . dKeyword) later,
+      gsConditional =
+        Conditional
+          { conditionalLines = fmap dLine group,
+            conditionalElse = foldMap afterKeyword (filter ((== "else") . dKeyword) later),
+            conditionalEndif = afterKeyword end
+          },
+      gsOwnRanges = [(dLine d, dLastLine d) | d <- group],
+      gsBranches = [(dLastLine a + 1, dLine b - 1) | (a, b) <- zip group (drop 1 group)],
+      gsWhole = (dLine opener, dLastLine end),
+      gsNested = nested
+    }
   where
-    require b = if b then Just () else Nothing
+    group = opener : later <> [end]
+    afterKeyword d = T.drop (T.length (dKeyword d)) (dText d)
 
+-- | The lines of a group's directives, the @#if@ first and the @#endif@ last.
+gsOwnLines :: GroupSpec -> [Int]
+gsOwnLines = conditionalLines . gsConditional
+
 -- | How many configurations a group has: one per condition, and one more
 -- for when none of them holds.
 gsCount :: GroupSpec -> Int
 gsCount gs = length (gsGuards gs) + 1
 
--- | Every conditional in a module, at whatever depth it sits.
-allGroups :: [Directive] -> [[Directive]]
-allGroups ds = concat [groupsAtLevel l ds | l <- [0 .. deepest]]
-  where
-    deepest = maximum (0 : fmap dLevel ds)
+-- | The groups inside the branch configuration @i@ of a group takes.
+nestedIn :: GroupSpec -> Int -> [GroupSpec]
+nestedIn gs i = concat (take 1 (drop i (gsNested gs)))
 
--- | The directives at one level of nesting, split into the groups they make
--- up.
-groupsAtLevel :: Int -> [Directive] -> [[Directive]]
-groupsAtLevel level = split . filter ((== level) . dLevel)
-  where
-    split ds = case break ((== "endif") . dKeyword) ds of
-      (_, []) -> []
-      (before', end : rest) -> (before' <> [end]) : split rest
+-- | Every conditional in a module, outermost first.
+allGroups :: [GroupSpec] -> [GroupSpec]
+allGroups = concat . takeWhile (not . null) . iterate (concatMap (concat . gsNested))
 
 -- | Replace the given line ranges with empty lines, keeping every other line
 -- where it was.
 blanking :: [(Int, Int)] -> Text -> Text
-blanking ranges source =
-  T.unlines
-    [ if any (holds n) ranges then "" else l
-    | (n, l) <- zip [1 ..] (T.lines source)
-    ]
+blanking ranges = T.unlines . go (sortOn fst ranges) . zip [1 ..] . T.lines
   where
-    holds n (from, to) = from <= n && n <= to
+    go rs = \case
+      [] -> []
+      (n, l) : ls -> case dropWhile ((< n) . snd) rs of
+        rs'@((from, _) : _) | from <= n -> "" : go rs' ls
+        rs' -> l : go rs' ls
 
 -- | The lines to blank so that configuration @i@ of a group is what is left.
 --
@@ -576,7 +717,7 @@
 -- themselves: a directive belongs to no configuration, which is the whole of
 -- what separates this from 'droppedFor'.
 blankingFor :: GroupSpec -> Int -> [(Int, Int)]
-blankingFor gs i = droppedFor gs i <> [(n, n) | n <- gsOwnLines gs]
+blankingFor gs i = droppedFor gs i <> gsOwnRanges gs
 
 -- | The lines a configuration of a group is not including.
 droppedFor :: GroupSpec -> Int -> [(Int, Int)]
@@ -585,52 +726,59 @@
       [r | (k, r) <- zip [0 :: Int ..] (gsBranches gs), k /= i]
   | otherwise = gsBranches gs
 
--- | One opaque directive and what is known about it.
-data Opaque = Opaque
-  { -- | The line it was written on.
-    opLine :: Int,
-    -- | The last line it takes up, which is 'opLine' unless it was written
-    -- across several with backslashes.
-    opLastLine :: Int,
-    -- | What follows its hash, kept whole and never read.
-    opText :: Text
-  }
-  deriving (Eq, Show)
+-- | The directives that do not introduce configurations.
+opaqueDirectives :: Text -> [Directive]
+opaqueDirectives = filter ((`elem` opaqueKeywords) . dKeyword) . directives
 
--- | Directives that do not introduce configurations.
-opaqueDirectives :: Text -> [Opaque]
-opaqueDirectives source =
-  [ Opaque
-      { opLine = n,
-        opLastLine = end n,
-        opText = T.stripEnd (T.intercalate "\n" (body : fmap lineOf below))
-      }
-  | (n, l) <- numbered,
-    Just (keyword, body) <- [directiveOnLine l],
-    keyword `elem` opaqueKeywords,
-    let below = continuing n
+-- | The lines that hold nothing but a use of a function-like macro the
+-- module defines, each with what is written on it.
+--
+-- Only a use written with its parenthesis right after the name counts, since
+-- the printer never writes one so, and what formatting produces must not
+-- become such a line. A use indented other than the code under it, or than
+-- the margin at the end of the module, carries on the code above or is
+-- carried on by the code under it, which a line put back at the level of
+-- that code cannot, unless that code closes a bracket, as the printer
+-- closes a record under its fields.
+macroLines :: Text -> [(Int, Text)]
+macroLines source =
+  [ (n, T.strip l)
+  | (n, l) : below <- tails numbered,
+    not (inDirective n),
+    uses l,
+    case take 1 (filter code below) of
+      (_, l') : _ -> indentation l == indentation l' || closing l'
+      [] -> indentation l == 0
   ]
   where
     numbered = zip [1 ..] (T.lines source)
-    byLine = Map.fromList numbered
-    lineOf n = Map.findWithDefault "" n byLine
-    end n = last (n : continuing n)
-    continuing n
-      | maybe False runsOn (Map.lookup n byLine) = n + 1 : continuing (n + 1)
-      | otherwise = []
-    runsOn = T.isSuffixOf "\\" . T.stripEnd
-
--- | The lines a directive was written on, as a span.
-opSpan :: Opaque -> Span
-opSpan d = mkSpan (opLine d, 1) (opLastLine d, 1)
-
--- | Did the author leave an empty line under this directive?
-gapUnder :: Lines -> Opaque -> Bool
-gapUnder written d =
-  (blankAt n written || blankBelow n written) && not (closesABranch n written)
-  where
-    n = opLastLine d
-
--- | Did the author leave an empty line anywhere between these two lines?
-gapWritten :: Lines -> Int -> Int -> Bool
-gapWritten written from to = any (`blankAt` written) [from .. to]
+    written = directives source
+    inDirective n = any (\d -> dLine d <= n && n <= dLastLine d) written
+    code (n, l) = not (T.null (T.strip l) || inDirective n || uses l)
+    indentation = T.length . T.takeWhile isSpace
+    closing = maybe False ((`elem` ("})]" :: String)) . fst) . T.uncons . T.stripStart
+    uses l = Set.member name defined && enclosed arguments
+      where
+        (name, arguments) = T.span isNameChar (T.strip l)
+    defined =
+      Set.fromList
+        [ name
+        | d <- written,
+          dKeyword d == "define",
+          let (name, rest) = T.span isNameChar (T.stripStart (T.drop (T.length "define") (dText d))),
+          T.isPrefixOf "(" rest
+        ]
+    -- One parenthesized list of arguments, and nothing after it.
+    enclosed arguments =
+      T.isPrefixOf "(" arguments
+        && fmap snd (T.unsnoc arguments) == Just ')'
+        && all (> 0) (init depths)
+        && last depths == 0
+      where
+        depths = drop 1 (scanl deeper 0 (T.unpack arguments))
+        deeper :: Int -> Char -> Int
+        deeper k = \case
+          '(' -> k + 1
+          ')' -> k - 1
+          _ -> k
+    isNameChar c = isAlphaNum c || c == '_'
diff --git a/src/Tilia/Cpp/Fragment.hs b/src/Tilia/Cpp/Fragment.hs
new file mode 100644
--- /dev/null
+++ b/src/Tilia/Cpp/Fragment.hs
@@ -0,0 +1,252 @@
+{-# LANGUAGE LambdaCase #-}
+
+-- | Formatting the declarations a conditional reaches rather than the whole
+-- module around them.
+module Tilia.Cpp.Fragment
+  ( Body,
+    bodyOf,
+    Fragment,
+    fragmentsOf,
+    fragmentText,
+    reassembled,
+    linesHeld,
+  )
+where
+
+import Control.Monad (guard)
+import Data.List (sortOn)
+import Data.Maybe (listToMaybe, mapMaybe)
+import Data.Monoid (Any (..))
+import Data.Text (Text)
+import Data.Text qualified as T
+import Tilia.Cpp.Directives
+  ( GroupSpec (..),
+    allGroups,
+    blanking,
+    blankingFor,
+    droppedFor,
+  )
+import Tilia.Doc.Combinators (declarationsStart)
+import Tilia.Doc.Internal
+  ( Doc (..),
+    Layout (..),
+    foldChildren,
+    printedFrom,
+    spineAt,
+  )
+
+-- | A module's document, taken apart where its declarations begin.
+data Body = Body
+  { -- | The last line before the first run of declarations.
+    bodyHeadEnd :: !Int,
+    -- | Whether anything above the declarations is a choice.
+    bodyHeadVaries :: !Bool,
+    -- | The declarations and the breaks between them.
+    bodyItems :: [Doc],
+    -- | The runs of declarations the printer keeps together, in order.
+    bodyRuns :: [Run],
+    -- | The document with other declarations in place of these.
+    bodyWith :: Doc -> Doc
+  }
+
+-- | Declarations the printer keeps together, with no empty line between
+-- them.
+data Run = Run
+  { -- | The first element of the body that was printed from something.
+    runFirst :: !Int,
+    -- | The last one.
+    runLast :: !Int,
+    -- | The first line it was printed from.
+    runFrom :: !Int,
+    -- | The last one.
+    runTo :: !Int
+  }
+
+-- | Find the declarations in a module's document.
+bodyOf :: Doc -> Maybe Body
+bodyOf doc = do
+  (head', _ : items) <- Just (break (== declarationsStart) (spineAt Broken doc))
+  guard (case items of [DGroup Flat _] -> False; _ -> True)
+  let with = (mconcat (head' <> [declarationsStart]) <>)
+  runs <- runsOf items
+  pure
+    Body
+      { bodyHeadEnd = case runs of
+          r : _ -> runFrom r - 1
+          [] -> maximum (0 : fmap snd (printedFrom doc)),
+        bodyHeadVaries = choosing (with mempty),
+        bodyItems = items,
+        bodyRuns = runs,
+        bodyWith = with
+      }
+
+-- | Cut the elements of a body into runs at the empty lines between them.
+runsOf :: [Doc] -> Maybe [Run]
+runsOf items =
+  ordered (mapMaybe asRun (pieces (zip [0 ..] items)))
+  where
+    pieces xs = case break ((== DBreak) . snd) xs of
+      (piece, []) -> [piece]
+      (piece, _ : rest) -> piece : pieces rest
+    asRun piece = case [(i, e) | (i, d) <- piece, Just e <- [extent d]] of
+      [] -> Nothing
+      located@((i, _) : _) ->
+        Just
+          Run
+            { runFirst = i,
+              runLast = fst (last located),
+              runFrom = minimum (fmap (fst . snd) located),
+              runTo = maximum (fmap (snd . snd) located)
+            }
+    ordered runs
+      | and (zipWith (\a b -> runTo a < runFrom b) runs (drop 1 runs)) = Just runs
+      | otherwise = Nothing
+
+-- | The conditionals that reach one fragment of a module.
+data Fragment = Fragment
+  { -- | The conditionals, outermost ones only.
+    fragmentGroups :: [GroupSpec],
+    -- | Whether it takes in what is above the declarations.
+    fragmentAbove :: !Bool,
+    -- | The run before it, if there is one.
+    fragmentBefore :: !(Maybe Run),
+    -- | The run after it, if there is one.
+    fragmentAfter :: !(Maybe Run)
+  }
+
+-- | Split a module's outermost conditionals into fragments that can be
+-- formatted apart.
+fragmentsOf :: Body -> [GroupSpec] -> [Fragment]
+fragmentsOf body forest =
+  [ Fragment gs (any above gs) (runAt (lo - 1)) (runAt hi)
+  | (gs, (lo, hi)) <-
+      clustered . sortOn (fst . snd) $
+        [(g, reach (bodyRuns body) (gsWhole g)) | g <- forest]
+  ]
+  where
+    above = (<= bodyHeadEnd body) . fst . gsWhole
+    runAt i
+      | i < 0 = Nothing
+      | otherwise = listToMaybe (drop i (bodyRuns body))
+
+-- | The runs a conditional's lines touch, or where it falls between two of
+-- them.
+reach :: [Run] -> (Int, Int) -> (Int, Int)
+reach runs (a, b) =
+  case [i | (i, r) <- zip [0 ..] runs, runFrom r <= b, a <= runTo r] of
+    [] -> let p = length (takeWhile ((< a) . runTo) runs) in (p, p)
+    is -> (minimum is, maximum is + 1)
+
+-- | Join conditionals whose fragments would overlap once the runs either
+-- side of them are taken along.
+clustered :: [(GroupSpec, (Int, Int))] -> [([GroupSpec], (Int, Int))]
+clustered = \case
+  [] -> []
+  (g, r) : rest -> go [g] r rest
+  where
+    go gs (lo, hi) = \case
+      (g, (lo', hi')) : rest | lo' <= hi -> go (gs <> [g]) (lo, max hi hi') rest
+      rest -> (gs, (lo, hi)) : clustered rest
+
+-- | The text a fragment is formatted from, with the lines it leaves out.
+--
+-- It keeps what is above the declarations, the fragment, and a run either
+-- side of it, and takes the first branch of every other conditional. What
+-- it leaves out above the fragment is blanked, so that every line stays
+-- where it was written, and what it leaves out below is cut off. The text
+-- is 'Nothing' where that leaves out nothing.
+fragmentText ::
+  Body ->
+  -- | The module's outermost conditionals.
+  [GroupSpec] ->
+  -- | The module.
+  Text ->
+  Fragment ->
+  Maybe (Text, [(Int, Int)])
+fragmentText body forest source f
+  | linesHeld text < linesHeld source = Just (text, outside <> concatMap (`droppedFor` 0) others)
+  | otherwise = Nothing
+  where
+    text =
+      T.unlines . take to . T.lines $
+        blanking (outside <> concatMap (`blankingFor` 0) others) source
+    lineCount = length (T.lines source)
+    headEnd = bodyHeadEnd body
+    from = maybe (headEnd + 1) runFrom (fragmentBefore f)
+    to = maybe lineCount runTo (fragmentAfter f)
+    outside =
+      [(headEnd + 1, from - 1) | not (fragmentAbove f), from > headEnd + 1]
+        <> [(to + 1, lineCount) | to < lineCount]
+    others =
+      allGroups
+        [ g
+        | g <- forest,
+          gsWhole g `notElem` fmap gsWhole (fragmentGroups f)
+        ]
+
+-- | Put what each fragment was formatted to in place of what the module's
+-- body holds there, or 'Nothing' where one of them came out other than a
+-- fragment of declarations.
+reassembled ::
+  Body ->
+  -- | Each fragment, with what it was formatted to.
+  [(Fragment, Doc)] ->
+  Maybe Doc
+reassembled body formatted = do
+  placed <- traverse place formatted
+  with <- case [b | (f, b, _) <- placed, fragmentAbove f] of
+    [] -> Just (bodyWith body)
+    [b] -> Just (bodyWith b)
+    _ -> Nothing
+  let items = foldr put (bodyItems body) (sortOn (\(i, _, _) -> i) [p | (_, _, p) <- placed])
+  pure (with (mconcat items))
+  where
+    put (from, to, new) items = take from items <> new <> drop to items
+
+    -- The fragment, the body of what it was formatted to, and the
+    -- elements to put in place of the module's, with where they go.
+    place (f, d) = do
+      b <- bodyOf d
+      guard (fragmentAbove f || not (bodyHeadVaries b))
+      let indexed = zip [0 :: Int ..] (bodyItems b)
+          within r x = maybe False (\(s, e) -> runFrom r <= s && e <= runTo r) (extent x)
+      start <- case fragmentBefore f of
+        Nothing -> Just (-1)
+        Just r -> listToMaybe (reverse [i | (i, x) <- indexed, within r x])
+      end <- case fragmentAfter f of
+        Nothing -> Just (length indexed)
+        Just r -> listToMaybe [i | (i, x) <- indexed, within r x]
+      let new = [x | (i, x) <- indexed, start < i, i < end]
+          low
+            | fragmentAbove f = 0
+            | otherwise = maybe (bodyHeadEnd body) runTo (fragmentBefore f)
+          high = maybe maxBound runFrom (fragmentAfter f)
+      guard (start < end)
+      guard (all (maybe True (\(s, e) -> low < s && e < high) . extent) new)
+      pure
+        ( f,
+          b,
+          ( maybe 0 ((+ 1) . runLast) (fragmentBefore f),
+            maybe (length (bodyItems body)) runFirst (fragmentAfter f),
+            new
+          )
+        )
+
+-- | How many lines of a text hold anything, which is what formatting it
+-- costs.
+linesHeld :: Text -> Int
+linesHeld = length . filter (not . T.null . T.strip) . T.lines
+
+-- | The first and the last line a document was printed from.
+extent :: Doc -> Maybe (Int, Int)
+extent d = case printedFrom d of
+  [] -> Nothing
+  ls -> Just (minimum (fmap fst ls), maximum (fmap snd ls))
+
+-- | Is there a choice anywhere in this document?
+choosing :: Doc -> Bool
+choosing = getAny . go
+  where
+    go = \case
+      DCppChoice{} -> Any True
+      d -> foldChildren go d
diff --git a/src/Tilia/Cpp/Macros.hs b/src/Tilia/Cpp/Macros.hs
--- a/src/Tilia/Cpp/Macros.hs
+++ b/src/Tilia/Cpp/Macros.hs
@@ -2,20 +2,26 @@
 {-# LANGUAGE OverloadedStrings #-}
 
 -- | Inferences regarding CPP macros that we can make based on the build
--- plan.
+-- plan and on the answers a configuration gives.
 module Tilia.Cpp.Macros
   ( Macros (..),
     guardHolds,
+    impliedBy,
   )
 where
 
+import Control.Applicative ((<|>))
 import Data.Char (isAsciiLower, isAsciiUpper, isDigit)
+import Data.List (dropWhileEnd)
 import Data.Map.Strict (Map)
 import Data.Map.Strict qualified as Map
+import Data.Maybe (fromMaybe)
+import Data.Set (Set)
+import Data.Set qualified as Set
 import Data.Text (Text)
 import Data.Text qualified as T
 
--- | Known macro expansions.
+-- | What is known about macros.
 data Macros = Macros
   { -- | The macros that take a version apart and compare it:
     -- @MIN_VERSION_containers@ and the like, each under the version the
@@ -24,39 +30,154 @@
     macroVersions :: Map Text [Integer],
     -- | The macros that stand for a number, which is @__GLASGOW_HASKELL__@
     -- and its patch levels.
-    macroNumbers :: Map Text Integer
+    macroNumbers :: Map Text Integer,
+    -- | The macros known to be defined, though not to what.
+    macroDefined :: Set Text,
+    -- | The macros known not to be defined, such as those of the compilers
+    -- other than the one the plan is for, like @__MHS__@.
+    macroUndefined :: Set Text,
+    -- | The version, or number, each macro is known to reach, a number
+    -- being a version of one part.
+    macroAtLeast :: Map Text [Integer],
+    -- | The version, or number, each macro is known to stay below.
+    macroBelow :: Map Text [Integer]
   }
   deriving (Eq, Show)
 
+instance Semigroup Macros where
+  a <> b =
+    Macros
+      { macroVersions = macroVersions a <> macroVersions b,
+        macroNumbers = macroNumbers a <> macroNumbers b,
+        macroDefined = macroDefined a <> macroDefined b,
+        macroUndefined = macroUndefined a <> macroUndefined b,
+        macroAtLeast = Map.unionWith max (macroAtLeast a) (macroAtLeast b),
+        macroBelow = Map.unionWith min (macroBelow a) (macroBelow b)
+      }
+
+instance Monoid Macros where
+  mempty =
+    Macros
+      { macroVersions = Map.empty,
+        macroNumbers = Map.empty,
+        macroDefined = Set.empty,
+        macroUndefined = Set.empty,
+        macroAtLeast = Map.empty,
+        macroBelow = Map.empty
+      }
+
 -- | Does a conditional's guard hold, where what is known settles it?
 -- 'Nothing' is no answer rather than a negative one.
 guardHolds :: Macros -> Text -> Maybe Bool
-guardHolds macros written = case T.span isNameChar (T.stripStart written) of
-  (keyword, rest) -> case keyword of
-    "if" -> (/= 0) <$> valueOf macros rest
-    "elif" -> (/= 0) <$> valueOf macros rest
-    "ifdef" -> nameIsKnown rest
-    "elifdef" -> nameIsKnown rest
-    "ifndef" -> not <$> nameIsKnown rest
-    "elifndef" -> not <$> nameIsKnown rest
-    _ -> Nothing
+guardHolds macros written = (/= 0) <$> (valueOf macros =<< expressionOf written)
+
+-- | What a guard holding, or failing, implies about the macros.
+impliedBy :: Bool -> Text -> Macros
+impliedBy holds = maybe mempty (go holds) . expressionOf
   where
-    nameIsKnown rest = case tokensOf rest of
-      Just [Name n] | known macros n -> Just True
+    go h = \case
+      Not e -> go (not h) e
+      And a b | h -> go h a <> go h b
+      Or a b | not h -> go h a <> go h b
+      Defined n
+        | h -> mempty{macroDefined = Set.singleton n}
+        | otherwise -> mempty{macroUndefined = Set.singleton n}
+      Reaches n v
+        | h -> mempty{macroAtLeast = Map.singleton n (trimmed v)}
+        | otherwise -> mempty{macroBelow = Map.singleton n (trimmed v)}
+      Macro n | h -> mempty{macroDefined = Set.singleton n}
+      _ -> mempty
+
+-- | Whether a macro is defined, where that is known.
+isDefined :: Macros -> Text -> Maybe Bool
+isDefined macros n
+  | Map.member n (macroVersions macros)
+      || Map.member n (macroNumbers macros)
+      || Set.member n (macroDefined macros) =
+      Just True
+  | Set.member n (macroUndefined macros) = Just False
+  | otherwise = Nothing
+
+-- | The number a macro stands for, where that is known.
+numberOf :: Macros -> Text -> Maybe Integer
+numberOf macros n = case isDefined macros n of
+  Just False -> Just 0
+  _ -> Map.lookup n (macroNumbers macros)
+
+-- | Does a macro's version, or number, reach this one, where what is known
+-- settles it?
+reaches :: Macros -> Text -> [Integer] -> Maybe Bool
+reaches macros n wanted = case held of
+  Just v -> Just (trimmed v >= w)
+  Nothing
+    | any (>= w) (Map.lookup n (macroAtLeast macros)) -> Just True
+    | any (<= w) (Map.lookup n (macroBelow macros)) -> Just False
+    | otherwise -> Nothing
+  where
+    w = trimmed wanted
+    held =
+      Map.lookup n (macroVersions macros) <|> (pure <$> numberOf macros n)
+
+-- | A version without the zeros at its end, which 'compare' orders as
+-- versions are ordered.
+trimmed :: [Integer] -> [Integer]
+trimmed = dropWhileEnd (== 0)
+
+-- | The expression of a guard, where we read it.
+expressionOf :: Text -> Maybe Expr
+expressionOf written = case T.span isNameChar (T.stripStart written) of
+  (keyword, rest)
+    | keyword `elem` ["if", "elif"] -> case orExpr =<< tokensOf rest of
+        Just (e, []) -> Just e
+        _ -> Nothing
+    | keyword `elem` ["ifdef", "elifdef"] -> Defined <$> nameOf rest
+    | keyword `elem` ["ifndef", "elifndef"] -> Not . Defined <$> nameOf rest
+    | otherwise -> Nothing
+  where
+    nameOf rest = case tokensOf rest of
+      Just [Name n] -> Just n
       _ -> Nothing
 
--- | Is this a macro whose expansion we know?
-known :: Macros -> Text -> Bool
-known macros n =
-  Map.member n (macroVersions macros) || Map.member n (macroNumbers macros)
+-- | The expression of a guard.
+data Expr
+  = Or Expr Expr
+  | And Expr Expr
+  | Not Expr
+  | -- | Two expressions and the test comparing them.
+    Compared (Integer -> Integer -> Bool) Expr Expr
+  | -- | Whether a macro is defined.
+    Defined Text
+  | -- | Whether a macro's version, or number, reaches this one.
+    Reaches Text [Integer]
+  | -- | The number a macro stands for.
+    Macro Text
+  | Literal Integer
+  | -- | A call of a macro other than a version test.
+    Call
 
--- | What the expression of an @#if@ or @#elif@ evaluates to, if anything.
-valueOf :: Macros -> Text -> Maybe Integer
-valueOf macros written = case tokensOf written of
-  Nothing -> Nothing
-  Just ts -> case orExpr macros ts of
-    Just (value, []) -> value
-    _ -> Nothing
+-- | What an expression evaluates to, if anything.
+valueOf :: Macros -> Expr -> Maybe Integer
+valueOf macros = \case
+  Or a b
+    | any true [value a, value b] -> Just 1
+    | all false [value a, value b] -> Just 0
+    | otherwise -> Nothing
+  And a b
+    | any false [value a, value b] -> Just 0
+    | all true [value a, value b] -> Just 1
+    | otherwise -> Nothing
+  Not a -> fromBool . (== 0) <$> value a
+  Compared test a b -> fromBool <$> (test <$> value a <*> value b)
+  Defined n -> fromBool <$> isDefined macros n
+  Reaches n v -> fromBool <$> reaches macros n v
+  Macro n -> numberOf macros n
+  Literal n -> Just n
+  Call -> Nothing
+  where
+    value = valueOf macros
+    true = maybe False (/= 0)
+    false = maybe False (== 0)
+    fromBool b = if b then 1 else 0
 
 -- | One piece of a guard.
 data Token
@@ -89,56 +210,40 @@
     readDigits = T.foldl' (\n c -> n * 10 + toInteger (fromEnum c - fromEnum '0')) 0
 
 -- | An expression, and what is left of the tokens after it.
---
--- The outer 'Maybe' is whether it could be read at all; the inner one is
--- whether what it means is known.
-type Reading = Maybe (Maybe Integer, [Token])
+type Reading = Maybe (Expr, [Token])
 
-orExpr :: Macros -> [Token] -> Reading
-orExpr macros ts = do
-  (left, rest) <- andExpr macros ts
+orExpr :: [Token] -> Reading
+orExpr ts = do
+  (left, rest) <- andExpr ts
   more left rest
   where
     more left = \case
       Punct "||" : rest -> do
-        (right, rest') <- andExpr macros rest
-        more (either' left right) rest'
+        (right, rest') <- andExpr rest
+        more (Or left right) rest'
       rest -> Just (left, rest)
-    either' a b
-      | any true [a, b] = Just 1
-      | all false [a, b] = Just 0
-      | otherwise = Nothing
 
-andExpr :: Macros -> [Token] -> Reading
-andExpr macros ts = do
-  (left, rest) <- compared macros ts
+andExpr :: [Token] -> Reading
+andExpr ts = do
+  (left, rest) <- compared ts
   more left rest
   where
     more left = \case
       Punct "&&" : rest -> do
-        (right, rest') <- compared macros rest
-        more (both left right) rest'
+        (right, rest') <- compared rest
+        more (And left right) rest'
       rest -> Just (left, rest)
-    both a b
-      | any false [a, b] = Just 0
-      | all true [a, b] = Just 1
-      | otherwise = Nothing
 
-true, false :: Maybe Integer -> Bool
-true = maybe False (/= 0)
-false = maybe False (== 0)
-
-compared :: Macros -> [Token] -> Reading
-compared macros ts = do
-  (left, rest) <- unary macros ts
+compared :: [Token] -> Reading
+compared ts = do
+  (left, rest) <- unary ts
   case rest of
     Punct op : rest' | Just test <- comparison op -> do
-      (right, rest'') <- unary macros rest'
-      pure (fromBool . uncurry test <$> pair left right, rest'')
+      (right, rest'') <- unary rest'
+      let e = fromMaybe (Compared test left right) (reaching op left right)
+      pure (e, rest'')
     _ -> Just (left, rest)
   where
-    pair a b = (,) <$> a <*> b
-    fromBool b = if b then 1 else 0
     comparison = \case
       "==" -> Just (==)
       "!=" -> Just (/=)
@@ -148,33 +253,42 @@
       ">=" -> Just (>=)
       _ -> Nothing
 
-unary :: Macros -> [Token] -> Reading
-unary macros = \case
+-- | A macro compared with a number, as what it asks of the macro's number.
+reaching :: Text -> Expr -> Expr -> Maybe Expr
+reaching op (Macro n) (Literal m) = case op of
+  ">=" -> Just (Reaches n [m])
+  ">" -> Just (Reaches n [m + 1])
+  "<" -> Just (Not (Reaches n [m]))
+  "<=" -> Just (Not (Reaches n [m + 1]))
+  "==" -> Just exactly
+  "!=" -> Just (Not exactly)
+  _ -> Nothing
+  where
+    exactly = And (Reaches n [m]) (Not (Reaches n [m + 1]))
+reaching _ _ _ = Nothing
+
+unary :: [Token] -> Reading
+unary = \case
   Punct "!" : rest -> do
-    (value, rest') <- unary macros rest
-    pure (negated <$> value, rest')
+    (e, rest') <- unary rest
+    pure (Not e, rest')
   Punct "(" : rest -> do
-    (value, rest') <- orExpr macros rest
+    (e, rest') <- orExpr rest
     case rest' of
-      Punct ")" : rest'' -> Just (value, rest'')
+      Punct ")" : rest'' -> Just (e, rest'')
       _ -> Nothing
   Name "defined" : rest -> case rest of
-    Name n : rest' -> Just (asKnown n, rest')
-    Punct "(" : Name n : Punct ")" : rest' -> Just (asKnown n, rest')
+    Name n : rest' -> Just (Defined n, rest')
+    Punct "(" : Name n : Punct ")" : rest' -> Just (Defined n, rest')
     _ -> Nothing
   Name n : Punct "(" : rest -> do
     (arguments, rest') <- argumentList rest
-    pure (atLeast <$> Map.lookup n (macroVersions macros) <*> arguments, rest')
-  Name n : rest -> Just (Map.lookup n (macroNumbers macros), rest)
-  Number n : rest -> Just (Just n, rest)
+    pure $ case arguments of
+      Just v | "MIN_VERSION_" `T.isPrefixOf` n -> (Reaches n v, rest')
+      _ -> (Call, rest')
+  Name n : rest -> Just (Macro n, rest)
+  Number n : rest -> Just (Literal n, rest)
   _ -> Nothing
-  where
-    negated n = if n == 0 then 1 else 0
-    asKnown n = if known macros n then Just 1 else Nothing
-    atLeast held wanted = if pad held >= pad wanted then 1 else 0
-      where
-        width = max (length held) (length wanted)
-        pad v = take width (v <> repeat 0)
 
 argumentList :: [Token] -> Maybe (Maybe [Integer], [Token])
 argumentList ts = do
diff --git a/src/Tilia/Cpp/Merge.hs b/src/Tilia/Cpp/Merge.hs
new file mode 100644
--- /dev/null
+++ b/src/Tilia/Cpp/Merge.hs
@@ -0,0 +1,819 @@
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+
+-- | Merging the documents the configurations of a module printed to.
+module Tilia.Cpp.Merge
+  ( Settled (..),
+    merge,
+    combine,
+  )
+where
+
+import Control.Applicative ((<|>))
+import Control.Monad (guard)
+import Data.Char (isSpace)
+import Data.Function (on)
+import Data.List (groupBy, maximumBy, sortOn, stripPrefix, transpose, unsnoc)
+import Data.Maybe (fromMaybe, listToMaybe, mapMaybe, maybeToList)
+import Data.Ord (comparing)
+import Data.Text (Text)
+import Data.Text qualified as T
+import Tilia.Cpp.Directives (Guard (..), Varied (..), untouched)
+import Tilia.Cpp.Place (regionOf)
+import Tilia.Doc (defaultRenderOptions, printDoc)
+import Tilia.Doc.Combinators qualified as Doc
+import Tilia.Doc.Internal
+  ( Conditional (..),
+    Doc (..),
+    Layout (..),
+    Wrapper (..),
+    conditionalRange,
+    foldChildren,
+    layoutInside,
+    onlyBreaks,
+    onlySpacing,
+    printedFrom,
+    printsNothing,
+    spine,
+    spineAt,
+    unwrap,
+    wrap,
+  )
+import Tilia.Source (Lines, lineAt)
+import Tilia.Span
+  ( Span,
+    covers,
+    meets,
+    spanEndLine,
+    spanStartColumn,
+    spanStartLine,
+  )
+
+-- | A conditional other than the one asked about that answering a question
+-- settles, for some answers at least.
+data Settled = Settled
+  { -- | The conditional, as written.
+    settledConditional :: Conditional,
+    -- | The branch each answer settles it on, or 'Nothing' where it is
+    -- left open.
+    settledBranches :: [Maybe Int]
+  }
+
+-- | Merge the documents one conditional's branches printed to.
+--
+-- A structural walk that keeps what they all agree on and puts a choice
+-- where they part.
+merge ::
+  -- | The module as written.
+  Lines ->
+  -- | The conditionals asking the question, as written.
+  [Conditional] ->
+  -- | The question.
+  [Guard] ->
+  -- | The lines its answer can change.
+  Varied ->
+  -- | The other conditionals its answers settle.
+  [Settled] ->
+  -- | One document per answer.
+  [Doc] ->
+  Doc
+merge written conditionals guards varied settledOthers = go Broken
+  where
+    go _ [] = mempty
+    go layout ds@(d : rest)
+      | all (agree varied layout d) rest = d
+      | Just xs <- traverse only spines = alongside layout xs
+      | otherwise = factored layout spines
+      where
+        spines = fmap (spineAt layout) ds
+
+    alongside _ [] = mempty
+    alongside layout xs
+      | Just wds <- traverse unwrap xs,
+        Just w <- joint wds =
+          case (w, go (layoutInside layout w) (fmap snd wds)) of
+            (WLocated _, DCppChoice{})
+              | spans <- [s | (WLocated s, _) <- wds],
+                Just opened <- unwrapping layout spans xs ->
+                  opened
+            (WGroup l, DCppChoice{})
+              | not (all (== l) (layoutsOf wds)),
+                d : rest <- fmap snd wds,
+                not (all (agree varied l d) rest) ->
+                  choice xs
+            (WGroup Flat, merged)
+              | not (beginsWithChoice merged) -> choice xs
+            (_, merged) -> wrap w merged
+    alongside layout xs@(x : _) = case x of
+      DCppChoice ws bs _
+        | Just alternatives <-
+            every $ \case
+              DCppChoice ws' cs e | ws' == ws, fmap fst cs == fmap fst bs -> Just (fmap snd cs <> [e])
+              _ -> Nothing,
+          Just (merged, fallback) <- unsnoc (fmap (go layout) (transpose alternatives)) ->
+            Doc.cppChoice ws (zip (fmap fst bs) merged) fallback
+      _
+        | Just spans <- traverse regionOf xs,
+          Just opened <- unwrapping layout spans xs ->
+            opened
+        | otherwise -> choice xs
+      where
+        every f = traverse f xs
+
+    unwrapping layout spans xs = do
+      inside <- sole [i | (i, s) <- zip [0 :: Int ..] spans, all (covers s) spans]
+      openedAgainst inside layout =<< listToMaybe (drop inside xs)
+      where
+        sole [i] = Just i
+        sole _ = Nothing
+
+        openedAgainst inside l d = case unwrap d of
+          Just (w, x) -> wrap w <$> openedAgainst inside (layoutInside l w) x
+          Nothing -> case spineAt l d of
+            parts@(_ : _ : _) ->
+              Just . factored l $
+                [if k == inside then parts else [e] | (k, e) <- zip [0 ..] xs]
+            _ -> Nothing
+
+    factored layout ss =
+      let same = agree varied layout
+          shared = foldl1 (lcs anchoring same) ss
+          cut = fmap (segments (anchored same) shared) ss
+          stretches = transpose (fmap fst cut)
+          anchors = transpose (fmap snd cut)
+       in mconcat (woven layout stretches (fmap (go layout) anchors))
+
+    woven layout (s : ss) (c : cs)
+      | all (maybe False ((== DSpace) . snd) . unsnoc) s,
+        Just r <- regionOf c,
+        spanStartLine r == spanEndLine r,
+        Just (opening, ws, bs, e, gap) <- choiceAt written Last stretch,
+        not (any printsNothing (e : fmap snd bs)) =
+          opening
+            <> Doc.cppChoice
+              ws
+              [(g, b <> gap <> c) | (g, b) <- bs]
+              (e <> gap <> c)
+            : woven layout ss cs
+      | otherwise = stretch : c : woven layout ss cs
+      where
+        stretch = foldMap (varying layout) (cutAtConditionals s)
+    woven layout ss [] = fmap (foldMap (varying layout) . cutAtConditionals) ss
+    woven _ [] _ = []
+
+    -- A stretch the configurations disagree over, cut where one conditional
+    -- asking the question ends and the next begins, so that each comes out
+    -- as a choice of its own rather than one choice printing both. Only
+    -- where every element falls inside one of them, in the order they were
+    -- written; what lies between them, space aside, is the stretch's own.
+    cutAtConditionals ss
+      | _ : _ : _ <- ranges,
+        Just owners <- traverse (traverse ownerOf) ss,
+        present@(first' : _ : _) <- foldr insertOrdered [] [o | Just o <- concat owners],
+        let assigned = fmap (settled first') owners,
+        all ascending assigned =
+          [ [[x | (x, o) <- zip xs os, o == i] | (xs, os) <- zip ss assigned]
+          | i <- present
+          ]
+      | otherwise = [ss]
+      where
+        ranges =
+          mapMaybe
+            conditionalRange
+            (conditionals <> fmap settledConditional settledOthers)
+        ownerOf x = case printedFrom x of
+          [] -> Just Nothing
+          lines' -> case sortOn fst [r | r@(from, to) <- ranges, all (\(a, b) -> from <= a && b <= to) lines'] of
+            outermost : _ -> Just (Just outermost)
+            [] -> Nothing
+        settled first' os = case [o | Just o <- os] of
+          [] -> fmap (const first') os
+          o : _ -> drop 1 (scanl (\prev x -> maybe prev id x) o os)
+        insertOrdered o os
+          | o `elem` os = os
+          | otherwise = sortOn fst (o : os)
+        ascending os = and (zipWith (<=) os (drop 1 os))
+
+    varying layout ss =
+      let (opening, ss1) = sharedStart layout ss
+          (ss2, closing) = sharedEnd layout ss1
+          (lead, ss3, trail) = hoisted layout ss2
+       in mconcat opening
+            <> mconcat lead
+            <> middle layout ss3
+            <> mconcat trail
+            <> mconcat closing
+
+    sharedStart layout ss
+      | Just (h : hs) <- traverse listToMaybe ss,
+        all (agree varied layout h) hs =
+          let (c, ss') = sharedStart layout (fmap (drop 1) ss) in (h : c, ss')
+      | otherwise = ([], ss)
+
+    sharedEnd layout ss =
+      let (c, ss') = sharedStart layout (fmap reverse ss)
+          ends = fmap reverse ss'
+       in case reverse c of
+            x : closing
+              | x == Doc.comma,
+                all (maybe False (not . onlySpacing . snd) . unsnoc) ends ->
+                  (fmap (<> [x]) ends, closing)
+            closing -> (ends, closing)
+
+    middle _ [] = mempty
+    middle layout ss@(s : rest)
+      | all (alike layout s) rest = mconcat s
+      | Just xs <- traverse only ss = go layout xs
+      | Just (c, tails) <- commaLed layout ss = c <> middle layout tails
+      | Just merged <- alongsideHeads layout ss,
+        weigh layout merged < weigh layout apart =
+          merged
+      | otherwise = apart
+      where
+        apart = choice (fmap (mconcat . commaFirst) ss)
+
+    commaFirst = \case
+      x : DBreak : rest | x == Doc.comma -> x : Doc.space : rest
+      xs -> xs
+
+    commaLed layout ss = do
+      views <- traverse (ledBy layout) ss
+      let unmoved = [v | v@(_, _, False) <- views]
+      (c, _, _) : _ <- Just (if null unmoved then views else unmoved)
+      if length unmoved < length views && all (\(d, _, _) -> agree varied layout c d) views
+        then Just (c, [r | (_, r, _) <- views])
+        else Nothing
+
+    ledBy layout = \case
+      c@DCppChoice{} : r
+        | everyAlternative (\xs -> take 1 xs == [Doc.comma]) c -> Just (c, r, False)
+      x : DBreak : DCppChoice ws bs e : r
+        | x == Doc.comma,
+          following@(_ : _) <- dropWhile onlySpacing r,
+          everyAlternative (\xs -> fmap snd (unsnoc xs) == Just Doc.comma) (DCppChoice ws bs e) ->
+            Just (Doc.cppChoice ws [(g, led b) | (g, b) <- bs] (led e), x : DBreak : following, True)
+      _ -> Nothing
+      where
+        everyAlternative p = \case
+          DCppChoice _ bs e -> all (\a -> printsNothing a || p (spineAt layout a)) (e : fmap snd bs)
+          _ -> False
+        led a
+          | printsNothing a = a
+          | otherwise = mconcat (Doc.comma : Doc.space : maybe [] fst (unsnoc (spineAt layout a)))
+
+    alongsideHeads layout ss = do
+      heads <- traverse listToMaybe ss
+      let rest = fmap (drop 1) ss
+          (glued, tails) = case traverse (stripPrefix [Doc.comma]) rest of
+            Just rest' -> (endingWith Doc.comma, rest')
+            Nothing -> (id, rest)
+      case heads of
+        (h : hs)
+          | all (sameKind h) hs,
+            all (breaksFirst (lineEnding h hs)) tails ->
+              Just
+                ( joined
+                    (glued (go layout heads))
+                    (middle layout tails)
+                    (varying layout tails)
+                )
+        _ -> Nothing
+      where
+        breaksFirst l t = case dropWhile (quiet l) t of
+          [] -> True
+          (d : _) -> opensWithBreak layout d
+        quiet l d = weigh layout d == 0 && not (opensWithBreak l d)
+        lineEnding h hs
+          | all ((== printed h) . printed) hs = layout
+          | otherwise = Flat
+        printed = printDoc defaultRenderOptions
+
+    endingWith t d = fromMaybe (d <> t) (inAlternatives d)
+      where
+        inAlternatives = \case
+          DCppChoice ws bs e
+            | not (any printsNothing (e : fmap snd bs)) ->
+                Just (DCppChoice ws [(g, endingWith t b) | (g, b) <- bs] (endingWith t e))
+          DCat a b
+            | printsNothing b -> (<> b) <$> inAlternatives a
+            | otherwise -> (a <>) <$> inAlternatives b
+          y -> do
+            (w, x) <- unwrap y
+            wrap w <$> inAlternatives x
+
+    joined before after apart =
+      case (choiceAt written Last before, choiceAt written First after) of
+        (Just (opening, ws, bs, e, gap), Just (gap', ws', cs, e', closing))
+          | fmap fst bs == fmap fst cs,
+            ws == ws' || null ws || null ws',
+            (g, x) : rest <- bs,
+            (_, y) : rest' <- cs,
+            (lead, first') <- span breaking (spine (x <> between <> y)) ->
+              opening
+                <> mconcat lead
+                <> Doc.cppChoice
+                  (if null ws then ws' else ws)
+                  ( (g, mconcat first')
+                      : [ (h, z <> between <> z')
+                        | ((h, z), (_, z')) <- zip rest rest'
+                        ]
+                  )
+                  (e <> between <> e')
+                <> closing
+          where
+            between = gap <> gap'
+        _ -> before <> apart
+
+    sameKind x y = case (unwrap x, unwrap y) of
+      (Just (w, t), Just (v, u)) -> kin w v && t /= DEmpty && u /= DEmpty
+      _ -> False
+
+    alike layout xs ys =
+      length xs == length ys && and (zipWith (agree varied layout) xs ys)
+
+    hoisted layout ss =
+      ( widest [l | (l, _, _) <- speaking],
+        fmap middleOf peeled,
+        widest [r | (_, _, r) <- speaking]
+      )
+      where
+        peeled = fmap peel ss
+        speaking = case filter (not . all printsNothing . middleOf) peeled of
+          [] -> peeled
+          printing -> printing
+        middleOf (_, m, _) = m
+        widest = \case
+          [] -> []
+          runs -> maximumBy (comparing (spaceOf layout)) runs
+
+    peel ds =
+      let (l, rest) = span breaking ds
+          (r, m) = span breaking (reverse rest)
+       in (l, reverse m, reverse r)
+
+    breaking = \case
+      DDeclarationsStart -> True
+      d -> onlyBreaks d
+
+    choice ds
+      | (d : _) <- mapMaybe (settledChoice ds) settledOthers = d
+    choice ds = case unsnoc ds of
+      Just (branches, fallback) ->
+        Doc.cppChoice
+          (filter (evidenced ds) conditionals)
+          (zip (fmap guardText guards) branches)
+          fallback
+      Nothing -> mempty
+
+    settledChoice ds s = do
+      open' <- listToMaybe [d | (d, Nothing) <- zip ds (settledBranches s)]
+      (bs, e) <- case filter (not . onlySpacing) (spine open') of
+        [DCppChoice cs bs e] | settledConditional s `elem` cs -> Just (bs, e)
+        _ -> Nothing
+      let printed = maybe open' (\k -> maybe e snd (listToMaybe (drop k bs)))
+          printsAlike a b =
+            agree varied Broken a b || (printsNothing a && printsNothing b)
+      if and (zipWith (printsAlike . printed) (settledBranches s) ds)
+        then Just open'
+        else Nothing
+
+    evidenced ds c = case conditionalRange c of
+      Just (from, to) -> any (\(a, b) -> from < a && b < to) (concatMap printedFrom ds)
+      Nothing -> False
+
+    only [d] = Just d
+    only _ = Nothing
+
+-- | Would these two documents print the same, laid out like this?
+agree :: Varied -> Layout -> Doc -> Doc -> Bool
+agree varied layout a b = alike (chunked (spineAt layout a)) (chunked (spineAt layout b))
+  where
+    alike (Left s : xs) (Left t : ys) = s == t && alike xs ys
+    alike (Right x : xs) (Right y : ys) = here x y && alike xs ys
+    alike [] [] = True
+    alike _ _ = False
+    chunked ds =
+      let (space, rest) = span onlySpacing ds
+       in Left (spaceOf layout space) : case rest of
+            [] -> []
+            x : more -> Right x : chunked more
+    inside x y = agree varied layout x y
+    here x y = case (x, y) of
+      (DLocated s x', DLocated t y') ->
+        s == t
+          && ( untouched varied (reach s x') && untouched varied (reach t y')
+                 || inside x' y'
+             )
+      (DCppChoice ws bs x', DCppChoice ws' cs y') ->
+        ws == ws'
+          && length bs == length cs
+          && and [g == h && inside p q | ((g, p), (h, q)) <- zip bs cs]
+          && inside x' y'
+      _ -> case (unwrap x, unwrap y) of
+        (Just (w, x'), Just (v, y')) ->
+          w == v && agree varied (layoutInside layout w) x' y'
+        _ -> x == y
+
+-- | Does this document, laid out flat, print a choice before anything else?
+beginsWithChoice :: Doc -> Bool
+beginsWithChoice d = case filter (not . onlySpacing) (spineAt Flat d) of
+  DCppChoice{} : _ -> True
+  x : _ | Just (_, y) <- unwrap x -> beginsWithChoice y
+  _ -> False
+
+-- | A region's span, stretched over the span it prints first, which the
+-- Haddock of a constructor, a field or an argument is, written above or
+-- below it.
+reach :: Span -> Doc -> Span
+reach s d = maybe s (<> s) (firstMarked d)
+  where
+    firstMarked = \case
+      DLocated h x -> firstMarked x <|> Just h
+      DFence h x -> firstMarked x <|> Just h
+      x -> listToMaybe (foldChildren (maybeToList . firstMarked) x)
+
+-- | What a run of space comes to on the page.
+data Space = Space !Int !Bool
+  deriving (Eq, Ord)
+
+-- | Read a run of space, the way 'Tilia.Doc.Internal.breakLine' does.
+spaceOf :: Layout -> [Doc] -> Space
+spaceOf layout = go 0 False False
+  where
+    go ended closed apart = \case
+      [] -> Space (min 2 ended) (apart && ended == 0)
+      d : ds -> case d of
+        DSpace -> go ended closed True ds
+        DCloseLine
+          | closed -> go ended closed apart ds
+          | otherwise -> go (ended + 1) True apart ds
+        DCloseLineUnlessAfterOpener _
+          | closed -> go ended closed apart ds
+          | otherwise -> go (ended + 1) True apart ds
+        DHardBreak -> broke ds
+        DBreak
+          | layout == Broken -> broke ds
+          | otherwise -> go ended closed True ds
+        DSoftBreak
+          | layout == Broken -> broke ds
+          | otherwise -> go ended closed apart ds
+        _ -> go ended closed apart ds
+        where
+          broke rest
+            | closed = go ended False apart rest
+            | otherwise = go (ended + 1) False apart rest
+
+-- | Put several documents' differences from a baseline into one document.
+--
+-- Each of them is the baseline except inside one conditional's lines, and
+-- those lines do not overlap, so their differences can be applied side by
+-- side rather than chosen between. Which is what makes varying the
+-- conditionals one at a time add up to varying them together, and so what
+-- makes the cost linear.
+combine :: Layout -> Doc -> [(Varied, Doc)] -> Maybe Doc
+combine layout base ds = case filter (\(v, d) -> not (agree v layout base d)) ds of
+  [] -> Just base
+  [(_, only)] -> Just only
+  many -> case (spineAt layout base, [(v, spineAt layout d) | (v, d) <- many]) of
+    ([b], ss) | Just xs <- traverse (\(v, s) -> (,) v <$> single s) ss -> descend b xs
+    (bs, ss) -> spliced bs ss
+  where
+    single [d] = Just d
+    single _ = Nothing
+
+    descend b xs = do
+      own@(_, i) <- unwrap b
+      others <- traverse (traverse unwrap) xs
+      w <- joint (own : fmap snd others)
+      wrap w <$> combine (layoutInside layout w) i (fmap (fmap snd) others)
+
+    spliced bs ss = do
+      clustered <-
+        traverse
+          (cluster bs)
+          ( overlapping
+              ( sortOn
+                  chFrom
+                  ( concat
+                      [ changesAgainst v (agree v layout) bs s
+                      | (v, s) <- ss
+                      ]
+                  )
+              )
+          )
+      pure (mconcat (applied bs (inWrittenOrder bs clustered)))
+
+    cluster _ [c] = Just c
+    cluster bs cs
+      | to - from == 1,
+        Just xs <- traverse (\c -> (,) (chVaried c) <$> single (chWith c)) cs,
+        (b : _) <- drop from bs =
+          ( \d ->
+              Change
+                { chFrom = from,
+                  chTo = to,
+                  chWith = [d],
+                  chVaried = Varied (concatMap (variedLines . chVaried) cs)
+                }
+          )
+            <$> combine layout b xs
+      | otherwise = Nothing
+      where
+        from = minimum (fmap chFrom cs)
+        to = maximum (fmap chTo cs)
+
+    applied bs = go 0
+      where
+        go i [] = drop i bs
+        go i (c : cs) =
+          take (chFrom c - i) (drop i bs) <> chWith c <> go (chTo c) cs
+
+-- | Put what changes made to one run of space in the order it was written
+-- in.
+--
+-- Two conditionals written one after the other with nothing between them
+-- but space both change that space, and where in it each change falls is a
+-- matter of how each one's own space lined up with it, not of which came
+-- first. Nothing but space moves when the changes trade places.
+inWrittenOrder :: [Doc] -> [Change] -> [Change]
+inWrittenOrder bs = concatMap reorder . groupBy ((==) `on` gap)
+  where
+    gap c
+      | all onlySpacing (take (chTo c - chFrom c) (drop (chFrom c) bs)) =
+          Just (length (filter (not . onlySpacing) (take (chFrom c) bs)))
+      | otherwise = Nothing
+    reorder cs = case traverse firstLine cs of
+      Just ls
+        | Just _ <- gap =<< listToMaybe cs,
+          ls /= sortOn id ls ->
+            zipWith
+              (\c w -> c{chWith = chWith w, chVaried = chVaried w})
+              cs
+              (fmap snd (sortOn fst (zip ls cs)))
+      _ -> cs
+    firstLine c = case concatMap printedFrom (chWith c) of
+      [] -> Nothing
+      ls -> Just (minimum (fmap fst ls))
+
+-- | The wrapper standing for those of several documents, if each is of a
+-- kind with the first: the smallest span covering theirs for a region, and
+-- for a group broken if any that holds something is.
+joint :: [(Wrapper, Doc)] -> Maybe Wrapper
+joint wds = case fmap fst wds of
+  w : ws | all (kin w) ws -> Just $ case w of
+    WLocated s -> WLocated (foldr (<>) s [t | WLocated t <- ws])
+    WFence s -> WFence (foldr (<>) s [t | WFence t <- ws])
+    WGroup _ -> WGroup (if Broken `elem` layoutsOf wds then Broken else Flat)
+    _ -> w
+  _ -> Nothing
+
+-- | Could what these two wrappers hold be merged under one of them?
+kin :: Wrapper -> Wrapper -> Bool
+kin a b = case (a, b) of
+  (WLocated s, WLocated t) -> meets s t
+  (WFence s, WFence t) -> meets s t
+  (WGroup _, WGroup _) -> True
+  _ -> a == b
+
+-- | The layouts of the groups that hold something.
+layoutsOf :: [(Wrapper, Doc)] -> [Layout]
+layoutsOf wds = [l | (WGroup l, d) <- wds, not (printsNothing d)]
+
+-- | A stretch of the baseline, and what one document put there instead.
+data Change = Change
+  { -- | Where the stretch begins, as an index into the baseline.
+    chFrom :: !Int,
+    -- | Where it ends, one past the last element replaced.
+    chTo :: !Int,
+    -- | What the document put there instead.
+    chWith :: [Doc],
+    -- | The lines the conditional this change came from could have reached.
+    -- Carried so that a cluster of two of them can be combined without
+    -- losing which conditional each half belongs to. See 'Varied'.
+    chVaried :: Varied
+  }
+
+-- | What one document changed about the baseline, as the stretches it
+-- replaced and what it put in each of their places.
+changesAgainst ::
+  Varied ->
+  -- | Whether two elements print the same.
+  (Doc -> Doc -> Bool) ->
+  [Doc] ->
+  [Doc] ->
+  [Change]
+changesAgainst varied same bs xs = go 0 bs xs (lcs anchoring same bs xs)
+  where
+    anchor = anchored same
+
+    go i b x [] = between i b x
+    go i b x (c : cs) =
+      let (b', b'') = break (anchor c) b
+          (x', x'') = break (anchor c) x
+          j = i + length b'
+       in between i b' x'
+            <> held j (listToMaybe b'') (listToMaybe x'')
+            <> go (j + 1) (drop 1 b'') (drop 1 x'') cs
+
+    held j (Just b') (Just x')
+      | not (same b' x') =
+          [Change{chFrom = j, chTo = j + 1, chWith = [x'], chVaried = varied}]
+    held _ _ _ = []
+
+    between i b x =
+      [ Change
+          { chFrom = i + shared,
+            chTo = i + shared + length b',
+            chWith = x',
+            chVaried = varied
+          }
+      | not (null b' && null x')
+      ]
+      where
+        shared = length (takeWhile id (zipWith same b x))
+        atEnd = length (takeWhile id (zipWith same (reverse b) (reverse x)))
+        kept = min atEnd (min (length b) (length x) - shared)
+        b' = take (length b - kept - shared) (drop shared b)
+        x' = take (length x - kept - shared) (drop shared x)
+
+-- | Group changes that reach the same stretch of the baseline.
+--
+-- Ones that merely touch are left apart: a change ending where the next
+-- begins has not reached into it.
+overlapping :: [Change] -> [[Change]]
+overlapping [] = []
+overlapping (c : cs) = go [c] (chTo c) cs
+  where
+    go acc _ [] = [reverse acc]
+    go acc end (x : xs)
+      | chFrom x < end = go (x : acc) (max end (chTo x)) xs
+      | otherwise = reverse acc : go [x] (chTo x) xs
+
+-- | One end of a document.
+data Edge = First | Last
+
+-- | The choice a document has at one end, if that is where it has one: what
+-- the document prints before the choice, the choice itself, and what the
+-- document prints after it.
+choiceAt ::
+  -- | The module as written.
+  Lines ->
+  -- | The end to look at.
+  Edge ->
+  -- | The document.
+  Doc ->
+  Maybe (Doc, [Conditional], [(Text, Doc)], Doc, Doc)
+choiceAt written edge = go Flat False
+  where
+    go layout fresh d = case span onlySpacing (inward (spine d)) of
+      (outer, x : inner) ->
+        let (before, after) = case edge of
+              First -> (mconcat outer, mconcat inner)
+              Last -> (mconcat (reverse inner), mconcat (reverse outer))
+            around w v (b, ws, bs, e, a) =
+              ( before <> printed w b,
+                ws,
+                fmap (fmap (printed v)) bs,
+                printed v e,
+                printed w a <> after
+              )
+            printed w y = if printsNothing y then y else w y
+            begins = case (edge, inner) of
+              (First, _) -> False
+              (Last, []) -> fresh
+              (Last, y : _) | Space ended _ <- spaceOf layout [y] -> ended > 0
+         in case x of
+              DCppChoice ws bs e -> Just (before, ws, bs, e, after)
+              _ -> do
+                (w, y) <- unwrap x
+                guard (w /= WAlign || begins && firstOnItsLine y)
+                around (wrap w) (alternatives w)
+                  <$> go (layoutInside layout w) begins y
+      _ -> Nothing
+    inward = case edge of
+      First -> id
+      Last -> reverse
+    alternatives = \case
+      WLocated _ -> id
+      WFence _ -> id
+      w -> wrap w
+    firstOnItsLine y = case regionOf y of
+      Just s ->
+        maybe
+          False
+          (T.all isSpace . T.take (spanStartColumn s - 1))
+          (lineAt (spanStartLine s) written)
+      Nothing -> False
+
+-- | Does the first thing this document puts on the page end a line?
+opensWithBreak :: Layout -> Doc -> Bool
+opensWithBreak layout d = case dropWhile (== DSpace) (spineAt layout d) of
+  x : _
+    | Just (w, y) <- unwrap x -> opensWithBreak (layoutInside layout w) y
+    | otherwise -> case x of
+        DHardBreak -> True
+        DCloseLine -> True
+        DCloseLineUnlessAfterOpener _ -> True
+        DBreak -> layout == Broken
+        DSoftBreak -> layout == Broken
+        DCppDirective _ _ -> True
+        DCppChoice{} -> True
+        _ -> False
+  [] -> False
+
+-- | How much text this document holds, counting what a choice repeats once
+-- for each alternative that repeats it.
+weigh :: Layout -> Doc -> Int
+weigh layout = go
+  where
+    go = \case
+      DCat a b -> go a + go b
+      DVariant flatD brokenD ->
+        go (case layout of Flat -> flatD; Broken -> brokenD)
+      DCppChoice _ bs e -> sum (fmap (go . snd) bs) + go e
+      DText t -> T.length t
+      DCppDirective _ t -> T.length t
+      DHoldBack _ t -> T.length t
+      d
+        | Just (w, x) <- unwrap d -> weigh (layoutInside layout w) x
+        | otherwise -> 0
+
+-- | The longest run of elements two spines have in common, in order,
+-- allowing for anything either of them has that the other does not, of
+-- those that could hold them together.
+lcs :: (a -> Bool) -> (a -> a -> Bool) -> [a] -> [a] -> [a]
+lcs holds same xs ys =
+  filter holds opening <> table middleX middleY <> filter holds closing
+  where
+    agreeing as bs = length (takeWhile id (zipWith same as bs))
+
+    ahead = agreeing xs ys
+    (opening, xs1) = splitAt ahead xs
+    ys1 = drop ahead ys
+    behind = agreeing (reverse xs1) (reverse ys1)
+    (middleX, closing) = splitAt (length xs1 - behind) xs1
+    middleY = take (length ys1 - behind) ys1
+
+    table [] _ = []
+    table _ [] = []
+    table as bs = reverse (snd (last (foldl' (row bs) (start bs) as)))
+      where
+        start cs = replicate (length cs + 1) (0 :: Int, [])
+        row cs previous x = cells 0 [] (zip3 cs previous (drop 1 previous))
+          where
+            cells !n acc rest =
+              (n, acc) : case rest of
+                [] -> []
+                ((y, (dn, ds), (an, as')) : more)
+                  | holds x, same x y -> cells (dn + 1) (x : ds) more
+                  | n >= an -> cells n acc more
+                  | otherwise -> cells an as' more
+
+-- | Only let something that was printed line two spines up.
+anchored :: (Doc -> Doc -> Bool) -> Doc -> Doc -> Bool
+anchored same a b = anchoring a && same a b
+
+-- | Could this element hold two spines together, if it turned up in both?
+anchoring :: Doc -> Bool
+anchoring = \case
+  DVerbatimBreak _ _ -> False
+  DText "," -> False
+  DDeclarationsStart -> False
+  DNest _ d -> located d || not (printsNothing d)
+  DAlign d -> located d || not (printsNothing d)
+  DGroup _ d -> located d || not (printsNothing d)
+  d -> not (onlySpacing d)
+  where
+    located = \case
+      DLocated{} -> True
+      DFence{} -> True
+      DCat a b -> located a || located b
+      DNest _ d -> located d
+      DAlign d -> located d
+      DGroup _ d -> located d
+      _ -> False
+
+-- | A spine cut at the elements it shares with the others: one stretch
+-- before each of them, and one after the last, and the elements themselves.
+--
+-- The matched elements come back rather than being dropped because the
+-- caller cannot assume they are interchangeable: 'agree' does not look
+-- inside a region the conditional leaves alone.
+segments ::
+  -- | Whether an element of the spine is the shared one being looked for.
+  (a -> a -> Bool) ->
+  -- | The shared elements, in order, to cut at.
+  [a] ->
+  -- | The spine to cut.
+  [a] ->
+  -- | The stretches between the cuts, and the elements cut at.
+  ([[a]], [a])
+segments same = go
+  where
+    go [] s = ([s], [])
+    go (c : cs) s = case break (same c) s of
+      (before', matched : rest) -> keeping before' matched (go cs rest)
+      (before', []) -> keeping before' c (go cs [])
+      where
+        keeping before' matched (stretches, anchors) =
+          (before' : stretches, matched : anchors)
diff --git a/src/Tilia/Cpp/Place.hs b/src/Tilia/Cpp/Place.hs
new file mode 100644
--- /dev/null
+++ b/src/Tilia/Cpp/Place.hs
@@ -0,0 +1,590 @@
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+
+-- | Placing elements that the configurations of a module do not print (CPP
+-- conditionals, directives, and comments).
+module Tilia.Cpp.Place
+  ( CommentSummary,
+    summarizeComments,
+    restoreUnprinted,
+    regionOf,
+  )
+where
+
+import Control.Monad (foldM)
+import Data.List (sortOn, unsnoc)
+import Data.Map.Strict (Map)
+import Data.Map.Strict qualified as Map
+import Data.Maybe (isNothing, listToMaybe, mapMaybe)
+import Data.Monoid (Any (..))
+import Data.Ord (Down (..))
+import Data.Set (Set)
+import Data.Set qualified as Set
+import Data.Text (Text)
+import Data.Text qualified as T
+import Tilia.Comments
+  ( Comment (..),
+    bracketed,
+    commentPragma,
+    continuesHaddock,
+    holdsOff,
+    opensHaddock,
+    opensSectionHeading,
+    transcendentComment,
+  )
+import Tilia.Comments.Attach (Margin (..), attachScopedComments)
+import Tilia.Cpp.Directives
+  ( CppError (..),
+    Directive (..),
+    GroupSpec (..),
+    Guard (..),
+    allGroups,
+    dSpan,
+    isDirective,
+    macroLines,
+    opaqueDirectives,
+    readConditionals,
+  )
+import Tilia.Doc.Combinators (blankLine, hardBreak, includeWhen, indent)
+import Tilia.Doc.Internal
+  ( Conditional (..),
+    Doc (..),
+    conditionalRange,
+    foldChildren,
+    mapChildren,
+    onlySpacing,
+    printsNothing,
+    spine,
+    unwrap,
+    wrap,
+  )
+import Tilia.Source (Lines, Written (..), blankAt, lineAt, linesOf)
+import Tilia.Span (Span (..), mkSpan)
+
+-- | What the configurations of a module had besides their code.
+data CommentSummary = CommentSummary
+  { -- | The comments no syntax tree carries, by where they were written.
+    summaryLoose :: Map Span Comment,
+    -- | Where every comment was written, whether a tree carries it or not.
+    summaryComments :: Set Span,
+    -- | Where every Haddock that holds off a comment was written.
+    summaryHaddocks :: Set Span
+  }
+
+-- | What two sets of configurations found between them.
+--
+-- A comment is the same comment in every configuration it is in, except
+-- for whether it wants an empty line either side of it, which is asked of
+-- what it is written next to and so can come out differently. It gets one
+-- wherever any configuration wanted one.
+instance Semigroup CommentSummary where
+  a <> b =
+    CommentSummary
+      { summaryLoose = Map.unionWith either' (summaryLoose a) (summaryLoose b),
+        summaryComments = Set.union (summaryComments a) (summaryComments b),
+        summaryHaddocks = Set.union (summaryHaddocks a) (summaryHaddocks b)
+      }
+    where
+      either' x y =
+        x
+          { commentGapAbove = commentGapAbove x || commentGapAbove y,
+            commentGapBelow = commentGapBelow x || commentGapBelow y
+          }
+
+instance Monoid CommentSummary where
+  mempty = CommentSummary Map.empty Set.empty Set.empty
+
+-- | What one configuration found.
+summarizeComments ::
+  -- | The comments its syntax tree does not carry.
+  [Comment] ->
+  -- | Every comment in it.
+  [Comment] ->
+  CommentSummary
+summarizeComments loose every =
+  CommentSummary
+    { summaryLoose = Map.fromList [(commentSpan c, c) | c <- loose],
+      summaryComments = Set.fromList (fmap commentSpan every),
+      summaryHaddocks = Set.fromList [commentSpan c | c <- every, holdsOff c]
+    }
+
+-- | Place comments into a document is the result of merging different
+-- configurations.
+restoreUnprinted ::
+  -- | The module as written.
+  Text ->
+  -- | What its configurations found.
+  CommentSummary ->
+  -- | The document its configurations were merged into.
+  Doc ->
+  Either CppError Doc
+restoreUnprinted source found doc = do
+  forest <- readConditionals source
+  let groups = [gs | gs <- allGroups forest, not (inComment (fst (gsWhole gs)))]
+      scope = scopeIn (fmap gsConditional groups)
+      notes =
+        [ if any directiveAt [spanStartLine s + 1 .. spanEndLine s - 1]
+            then transcendentComment written c
+            else c
+        | c <- Map.elems (summaryLoose found),
+          let s = commentSpan c
+        ]
+  let shelled = foldl (restoreConditional written) (widened doc) groups
+      marked = spacedApart written (realized (widened shelled))
+      printed = Set.fromList (Nothing : fmap (scope . fst) (regionsIn marked))
+      noted =
+        attachScopedComments
+          margin
+          scope
+          (filter ((`Set.member` printed) . scope . commentSpan) notes)
+          marked
+      margin =
+        Margin
+          { marginLine = isDirective,
+            marginComment = isNothing . commentPragma
+          }
+  directed <-
+    foldM
+      (putDirective written)
+      noted
+      (filter (not . inComment . dLine) (opaqueDirectives source))
+  placed <-
+    foldM
+      (putMacroLine written)
+      directed
+      (filter (not . inComment . fst) macros)
+  pure $
+    keptApart
+      (summaryHaddocks found)
+      (Map.fromList [(commentSpan c, c) | c <- notes, not (bracketed c)])
+      placed
+  where
+    written = linesOf (Written source)
+    macros = macroLines source
+    directiveAt n =
+      maybe False isDirective (lineAt n written) || any ((== n) . fst) macros
+    inComment n =
+      any
+        (\s -> spanStartLine s < n && n < spanEndLine s)
+        (summaryComments found)
+
+-- | What was printed last, as far as two comments running into each other
+-- goes.
+data Printed
+  = -- | Something that keeps them apart.
+    Apart
+  | -- | A Haddock written as @--@ lines.
+    AHaddock
+  | -- | A comment written as @--@ lines.
+    ANote
+  deriving (Eq)
+
+-- | Put an empty line between a comment written as @--@ lines and a Haddock
+-- written the same way wherever one comes out right under the other: under
+-- a Haddock a comment would be read as more of it, and above one it is kept
+-- apart from it.
+keptApart ::
+  -- | Where the Haddocks written as @--@ lines are.
+  Set Span ->
+  -- | The comments written as @--@ lines, by where they are.
+  Map Span Comment ->
+  Doc ->
+  Doc
+keptApart haddocks notes = snd . go Apart
+  where
+    go before = \case
+      DLocated s x
+        | Just c <- Map.lookup s notes ->
+            let under = before == AHaddock && continuesHaddock c
+             in (ANote, DLocated s (includeWhen under blankLine <> x))
+        | Set.member s haddocks ->
+            (AHaddock, DLocated s (includeWhen (before == ANote) blankLine <> snd (go Apart x)))
+      DText t
+        | "--" `T.isPrefixOf` t,
+          opensHaddock t,
+          not (opensSectionHeading t),
+          before == ANote ->
+            (Apart, blankLine <> DText t)
+      DCat a b ->
+        let (between, a') = go before a
+            (after, b') = go between b
+         in (after, DCat a' b')
+      DVariant a b -> DVariant (snd (go before a)) <$> go before b
+      d@DCppChoice{} -> (Apart, mapChildren (snd . go Apart) d)
+      d
+        | Just (w, x) <- unwrap d -> wrap w <$> go before x
+        | onlySpacing d || printsNothing d -> (before, d)
+        | otherwise -> (Apart, d)
+
+-- | Widen every region to take in the conditionals printed inside it.
+widened :: Doc -> Doc
+widened = fst . go
+  where
+    go = \case
+      DLocated s x -> let (x', c) = go x in (DLocated (maybe s (s <>) c) x', c)
+      DFence s x -> let (x', c) = go x in (DFence (maybe s (s <>) c) x', c)
+      DCppChoice cs bs e ->
+        let bs' = [(g, go d) | (g, d) <- bs]
+            (e', c) = go e
+         in ( DCppChoice cs [(g, d) | (g, (d, _)) <- bs'] e',
+              foldMap conditionalSpan cs <> foldMap (snd . snd) bs' <> c
+            )
+      DCat a b ->
+        let (a', ca) = go a
+            (b', cb) = go b
+         in (DCat a' b', ca <> cb)
+      d@DVariant{} -> (d, Nothing)
+      d
+        | Just (w, x) <- unwrap d -> let (x', c) = go x in (wrap w x', c)
+        | otherwise -> (d, Nothing)
+
+-- | The lines a conditional was written on, from its @#if@ to its @#endif@.
+conditionalSpan :: Conditional -> Maybe Span
+conditionalSpan c = (\(from, to) -> mkSpan (from, 1) (to, 1)) <$> conditionalRange c
+
+-- | The part of the module a region was written in: the innermost branch of
+-- a conditional holding all of it, or 'Nothing' for the module itself.
+--
+-- A region is printed in exactly the configurations that take its branch,
+-- so this is also which configurations it is in, and a comment written in
+-- one branch goes only next to what that branch holds.
+scopeIn :: [Conditional] -> Span -> Maybe (Int, Int)
+scopeIn conditionals s =
+  listToMaybe
+    ( sortOn
+        (Down . fst)
+        [ (from, to)
+        | ls <- fmap conditionalLines conditionals,
+          (from, to) <- zip ls (drop 1 ls),
+          from < spanStartLine s,
+          spanEndLine s < to
+        ]
+    )
+
+-- | Mark out every choice the merge made as the region of the input it was
+-- printed from, and give every branch of it something to hold on to.
+--
+-- A choice's region is its conditionals, from the first @#if@ to the last
+-- @#endif@, and anything else its alternatives print: a comment written
+-- above the @#if@ goes before the whole choice, not into one alternative of
+-- it. Every alternative also gets an anchor where its conditional opens, for
+-- a comment written above the @#if@ when the alternatives print code from
+-- above it too, and one where each branch closes, for a comment written in a
+-- branch with nothing after it in that branch.
+realized :: Doc -> Doc
+realized = \case
+  DCppChoice cs bs e ->
+    let alternatives = unified (fmap realized (fmap snd bs <> [e]))
+        bs' =
+          [ (g, anchoredIn cs k d)
+          | (k, (g, d)) <- zip [0 ..] (zip (fmap fst bs) alternatives)
+          ]
+        e' = anchoredIn cs (length bs) (maybe mempty snd (unsnoc alternatives))
+        inner = DCppChoice cs bs' e'
+     in maybe
+          inner
+          ((`DLocated` inner) . pastTheEnd)
+          (foldMap conditionalSpan cs <> regionOf inner)
+  d -> mapChildren realized d
+
+-- | A span taken past the end of its last line.
+pastTheEnd :: Span -> Span
+pastTheEnd s = s{spanEndColumn = farRight}
+
+-- | Space two conditionals that come one right after the other as the
+-- author spaced them.
+spacedApart :: Lines -> Doc -> Doc
+spacedApart written = go
+  where
+    go = \case
+      d@(DCat _ _) -> mconcat (apart (fmap go (spine d)))
+      d -> mapChildren go d
+    apart = \case
+      x : rest
+        | Just (_, to) <- ownLines x,
+          (_ : _, y : rest') <- span onlySpacing rest,
+          Just _ <- ownLines y ->
+            x : (if blankAt (to + 1) written then blankLine else hardBreak) : apart (y : rest')
+      x : rest -> x : apart rest
+      [] -> []
+    ownLines = \case
+      DLocated s (DCppChoice cs _ _)
+        | Just c <- foldMap conditionalSpan cs,
+          spanStartLine c == spanStartLine s,
+          spanEndLine c == spanEndLine s ->
+            Just (spanStartLine s, spanEndLine s)
+      _ -> Nothing
+
+-- | Give the alternatives of a choice one span for every construct that
+-- begins at the same place in more than one of them.
+--
+-- A choice that prints code written outside its conditionals prints it in
+-- every alternative, and a construct with a conditional inside it can end
+-- in a different place in each. It is one construct all the same, and a
+-- comment written against it has to find it in every one of them.
+unified :: [Doc] -> [Doc]
+unified ds = fmap (rewrite Set.empty) ds
+  where
+    hulls =
+      Map.filter
+        ((> 1) . length)
+        (Map.fromListWith (<>) [(startPoint' s, [s]) | d <- ds, s <- outermost d])
+    rewrite seen = \case
+      DLocated s x
+        | Set.notMember (startPoint' s) seen,
+          Just ss <- Map.lookup (startPoint' s) hulls ->
+            DLocated (foldr (<>) s ss) (rewrite (Set.insert (startPoint' s) seen) x)
+        | otherwise -> DLocated s (rewrite (Set.insert (startPoint' s) seen) x)
+      d@DCppChoice{} -> d
+      d -> mapChildren (rewrite seen) d
+    outermost = go Set.empty
+      where
+        go seen = \case
+          DLocated s x
+            | Set.member (startPoint' s) seen -> go seen x
+            | otherwise -> s : go (Set.insert (startPoint' s) seen) x
+          DCppChoice{} -> []
+          d -> foldChildren (go seen) d
+    startPoint' s = (spanStartLine s, spanStartColumn s)
+
+-- | Give one alternative of a choice its anchors.
+anchoredIn ::
+  -- | The conditionals the choice was printed from.
+  [Conditional] ->
+  -- | Which alternative this is.
+  Int ->
+  Doc ->
+  Doc
+anchoredIn cs k d = foldl' anchor d (filter (here . fst) (concatMap anchors cs))
+  where
+    anchor x (n, s) = placeAt (const False) Nothing n (DLocated s mempty) id x
+    here n = case alternativeAt n cs of
+      Everywhere -> True
+      Only i -> i == k
+      Nowhere -> False
+    anchors c = case conditionalLines c of
+      ls@(opening : _) ->
+        (opening, mkSpan (opening, 1) (opening, 2))
+          : [ (closing, mkSpan (closing - 1, farRight) (closing - 1, farRight))
+            | (from, closing) <- take 1 (drop k (zip ls (drop 1 ls))),
+              closing - 1 > from
+            ]
+      [] -> []
+
+-- | A column past the end of any line, for an anchor that has to come after
+-- everything written on its line.
+farRight :: Int
+farRight = maxBound `div` 2
+
+-- | Every region a document records, and what it holds.
+regionsIn :: Doc -> [(Span, Doc)]
+regionsIn = \case
+  DLocated s d -> (s, d) : regionsIn d
+  DFence s d -> (s, d) : regionsIn d
+  d -> foldChildren regionsIn d
+
+-- | The smallest span covering every region a document records.
+regionOf :: Doc -> Maybe Span
+regionOf = \case
+  DLocated s _ -> Just s
+  DFence s _ -> Just s
+  d -> foldChildren regionOf d
+
+-- | Make sure a conditional is in the document, putting it where it was
+-- written if the merge left it out.
+restoreConditional :: Lines -> Doc -> GroupSpec -> Doc
+restoreConditional written doc gs =
+  placeAt realized' (Just written) opening shell id doc
+  where
+    realized' ctx = any (all (`elem` ctx)) (realizations c doc)
+    c = gsConditional gs
+    (opening, closing) = gsWhole gs
+    guards = fmap guardText (gsGuards gs)
+    shell =
+      DCppChoice [c] [(g, mempty) | g <- guards] mempty
+        <> includeWhen (blankAt (closing + 1) written) blankLine
+
+-- | Put a directive back where it was written.
+putDirective :: Lines -> Doc -> Directive -> Either CppError Doc
+putDirective written doc d
+  | quotedAt doc (dLine d) = Left (DirectiveInQuotedText (dLine d) (dKeyword d))
+  | otherwise = Right (placeAt (const False) (Just written) (dLine d) body id doc)
+  where
+    body =
+      DCppDirective (dSpan d) (dText d)
+        <> includeWhen (any (`blankAt` written) [dLastLine d, dLastLine d + 1]) blankLine
+
+-- | Put a line using a macro back where it was written, at the indentation
+-- of the code around it, since what it stands for is code.
+putMacroLine :: Lines -> Doc -> (Int, Text) -> Either CppError Doc
+putMacroLine written doc (n, t)
+  | quotedAt doc n = Left (MacroInQuotedText n t)
+  | otherwise = Right (placeAt (const False) (Just written) n body indent doc)
+  where
+    body =
+      DLocated (mkSpan (n, 1) (n, 1)) (DCloseLine <> DText t <> DCloseLine)
+        <> includeWhen (blankAt (n + 1) written) blankLine
+
+-- | Is this line inside something the document reproduces verbatim, such
+-- as a quasi-quotation, where a line cannot be put back?
+quotedAt :: Doc -> Int -> Bool
+quotedAt doc n = any inside (regionsIn doc)
+  where
+    inside (s, x) = spanStartLine s < n && n <= spanEndLine s && reproduced x
+
+    reproduced = \case
+      DVerbatimBreak _ _ -> True
+      DLocated{} -> False
+      DFence{} -> False
+      d -> getAny (foldChildren (Any . reproduced) d)
+
+-- | Put a document at a line of the input, in every alternative that line
+-- is printed in.
+placeAt ::
+  -- | Whether what is being put there is there already, for the
+  -- configurations that take these alternatives.
+  (Context -> Bool) ->
+  -- | The module as written, to ask whether the author left an empty line
+  -- above the line; without it the document goes after whatever space is
+  -- there.
+  Maybe Lines ->
+  -- | The line.
+  Int ->
+  -- | What to put there.
+  Doc ->
+  -- | How to put it among the lines of something that begins above it, at
+  -- that thing's own indentation.
+  (Doc -> Doc) ->
+  Doc ->
+  Doc
+placeAt present written n body continuing = among [] body
+  where
+    within ctx b d = case d of
+      DNest 0 x -> DNest 0 (within ctx b x)
+      DNest k x -> DNest k (within ctx body x)
+      DAlign x -> DAlign (within ctx body x)
+      DGroup l x -> DGroup l (within ctx b x)
+      DVariant x y -> DVariant (within ctx b x) (within ctx b y)
+      DLocated s x
+        | spanStartLine s > n -> among ctx b d
+        | DCppChoice{} <- x -> DLocated s (within ctx b x)
+        | otherwise -> DLocated s (within ctx (continuing body) x)
+      DFence s x -> DFence s (within ctx b x)
+      DCppChoice cs bs e
+        | present ctx -> d
+        | otherwise -> case alternativeAt n cs of
+            Everywhere ->
+              DCppChoice
+                cs
+                [(g, among (ctx <> [(cs, k)]) b x) | (k, (g, x)) <- zip [0 ..] bs]
+                (among (ctx <> [(cs, length bs)]) b e)
+            Only k
+              | k < length bs ->
+                  DCppChoice
+                    cs
+                    (replaced k (among (ctx <> [(cs, k)]) b (maybe mempty snd (listToMaybe (drop k bs)))) bs)
+                    e
+              | otherwise -> DCppChoice cs bs (among (ctx <> [(cs, k)]) b e)
+            Nowhere -> d
+      _ -> among ctx b d
+
+    among ctx b d
+      | present ctx = d
+      | otherwise = case break startsAfter (spine d) of
+          (before, after)
+            | Just (earlier, holder, spacing) <- lastBounded before,
+              maybe False (>= n) (endOf holder) ->
+                mconcat (earlier <> [within ctx b holder] <> spacing <> after)
+            | (later, holder : rest) <- break holds after ->
+                mconcat (before <> later <> [within ctx b holder] <> rest)
+            | Just (printed, anchor, spacing) <- lastBounded before,
+              Just from <- endOf anchor,
+              Just ls <- written ->
+                if any (`blankAt` ls) [from .. n - 1] || not (all onlySpacing spacing)
+                  then mconcat (before <> [includeWhen (blankAt (n - 1) ls) blankLine, b] <> after)
+                  else mconcat (printed <> [anchor, b] <> spacing <> after)
+            | next : rest <- after,
+              any (not . onlySpacing) (takeWhile unbounded (reverse before)) ->
+                mconcat (before <> [within ctx b next] <> rest)
+            | otherwise -> mconcat (before <> [b] <> after)
+
+    holds = \case
+      DLocated s _ -> spanStartLine s < n && n <= spanEndLine s
+      _ -> False
+
+    startsAfter = \case
+      DLocated s _ | spanStartColumn s == farRight -> spanStartLine s >= n
+      x -> maybe False (> n) (startOf x)
+
+    lastBounded ds = case break (maybe False (const True) . boundsOf) (reverse ds) of
+      (spacing, x : earlier) -> Just (reverse earlier, x, reverse spacing)
+      _ -> Nothing
+
+    replaced k x bs = [if i == k then (g, x) else (g, y) | (i, (g, y)) <- zip [0 :: Int ..] bs]
+
+    unbounded = isNothing . boundsOf
+    startOf = fmap fst . boundsOf
+    endOf = fmap snd . boundsOf
+
+-- | Which alternative of which choice, from the outside in: the
+-- configurations a place in a document is printed in.
+type Context = [([Conditional], Int)]
+
+-- | Every place a choice printed from a conditional is, as the alternatives
+-- leading to it.
+realizations :: Conditional -> Doc -> [Context]
+realizations c = go []
+  where
+    go ctx = \case
+      DCppChoice cs bs e ->
+        [ctx | c `elem` cs]
+          <> concat [go (ctx <> [(cs, k)]) d | (k, d) <- zip [0 ..] (fmap snd bs <> [e])]
+      d -> foldChildren (go ctx) d
+
+-- | Which alternatives of a choice a line of the input is printed in.
+data Alternatives
+  = -- | Every one: the line is outside the conditionals.
+    Everywhere
+  | -- | The one its branch became.
+    Only Int
+  | -- | None: its branch is never taken.
+    Nowhere
+
+-- | Which alternatives of a choice printed from these conditionals a line
+-- is printed in.
+alternativeAt :: Int -> [Conditional] -> Alternatives
+alternativeAt n cs = case branches of
+  [] -> Everywhere
+  k : ks
+    | all (== k) ks -> Only k
+    | otherwise -> Nowhere
+  where
+    branches =
+      [ k
+      | ls <- fmap conditionalLines cs,
+        (k, (from, to)) <- zip [0 ..] (zip ls (drop 1 ls)),
+        from < n,
+        n < to
+      ]
+
+-- | The lines a document was printed from, first and last.
+boundsOf :: Doc -> Maybe (Int, Int)
+boundsOf = \case
+  DLocated s _ -> Just (spanStartLine s, spanEndLine s)
+  DFence s _ -> Just (spanStartLine s, spanEndLine s)
+  DCppDirective s _ -> Just (spanStartLine s, spanEndLine s)
+  DCppChoice cs bs e ->
+    hull
+      ( mapMaybe conditionalRange cs
+          <> [b | Just b <- boundsOf e : fmap (boundsOf . snd) bs]
+      )
+  DCat a b -> case (boundsOf a, boundsOf b) of
+    (Just (from, _), Just (_, to)) -> Just (from, to)
+    (found, Nothing) -> found
+    (Nothing, found) -> found
+  DVariant _ b -> boundsOf b
+  d -> boundsOf . snd =<< unwrap d
+  where
+    hull = \case
+      [] -> Nothing
+      bs -> Just (minimum (fmap fst bs), maximum (fmap snd bs))
diff --git a/src/Tilia/Diff.hs b/src/Tilia/Diff.hs
--- a/src/Tilia/Diff.hs
+++ b/src/Tilia/Diff.hs
@@ -1,25 +1,28 @@
 {-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE MultiWayIf #-}
 {-# LANGUAGE OverloadedStrings #-}
 
 -- | Showing what changed.
 module Tilia.Diff
   ( diff,
     diffInFull,
+    Mark (..),
+    editScript,
   )
 where
 
-import Data.Algorithm.Diff qualified as D
+import Control.Monad.ST (ST, runST)
+import Data.Array.ST (STUArray, newArray, readArray, writeArray)
+import Data.Array.Unboxed (Array, UArray, listArray, (!))
+import Data.Map.Strict qualified as Map
 import Data.Maybe (fromMaybe)
 import Data.Text (Text)
 import Data.Text qualified as T
 import Tilia.Palette (Color (..), Palette, paint)
 
--- | One line of the comparison, with the number it has on each side.
-data Line = Line !Mark !Int !Int !Text
-
--- | The type of mark.
+-- | What a line of the comparison does.
 data Mark = Context | Removed | Added
-  deriving (Eq)
+  deriving (Eq, Show)
 
 -- | A unified diff of two texts.
 diff ::
@@ -54,6 +57,9 @@
     before = "a/" <> T.pack path
     after = "b/" <> T.pack path
 
+-- | One line of the comparison, with the number it has on each side.
+data Line = Line !Mark !Int !Int !Text
+
 -- | A unified diff, with whatever heading and limit the caller wants.
 unified ::
   Palette ->
@@ -121,7 +127,7 @@
     hunks = merge [(max 0 (i - margin), min (total - 1) (i + margin)) | i <- changed]
     changed = [i | (i, Line m _ _ _) <- zip [0 ..] lines', m /= Context]
     total = length lines'
-    lines' = tag (D.getGroupedDiff (split before) (split after))
+    lines' = tag (split before) (split after)
     split = fmap withoutReturn . T.splitOn "\n"
     withoutReturn l = fromMaybe l (T.stripSuffix "\r" l)
 
@@ -141,18 +147,140 @@
     | otherwise -> (a, b) : merge ((c, d) : rest)
   xs -> xs
 
--- | Number the lines of a grouped diff on both sides at once.
-tag :: [D.Diff [Text]] -> [Line]
-tag = go 1 1
+-- | Number the lines of a comparison on both sides at once.
+tag :: [Text] -> [Text] -> [Line]
+tag xs ys = go 1 1 (editScript xs ys)
   where
-    go _ _ [] = []
-    go !b !a (d : ds) = case d of
-      D.Both xs _ ->
-        [Line Context (b + i) (a + i) x | (i, x) <- zip [0 ..] xs]
-          <> go (b + length xs) (a + length xs) ds
-      D.First xs ->
-        [Line Removed (b + i) a x | (i, x) <- zip [0 ..] xs]
-          <> go (b + length xs) a ds
-      D.Second xs ->
-        [Line Added b (a + i) x | (i, x) <- zip [0 ..] xs]
-          <> go b (a + length xs) ds
+    before = listArray (1, length xs) xs :: Array Int Text
+    after = listArray (1, length ys) ys :: Array Int Text
+    go !b !a = \case
+      [] -> []
+      Context : ms -> Line Context b a (before ! b) : go (b + 1) (a + 1) ms
+      Removed : ms -> Line Removed b a (before ! b) : go (b + 1) a ms
+      Added : ms -> Line Added b a (after ! a) : go b (a + 1) ms
+
+-- | A shortest edit script turning one sequence of lines into another, as
+-- what each line of the comparison does, in order.
+--
+-- Myers' O(ND) algorithm in linear space: the middle of an edit script is
+-- found by searching from both ends at once, and either side of it is
+-- solved the same way.
+editScript :: [Text] -> [Text] -> [Mark]
+editScript xs ys = removalsFirst (go 0 n 0 m [])
+  where
+    n = length xs
+    m = length ys
+    (as, bs) = interned xs ys
+    go aLo aHi bLo bHi rest
+      | aLo < aHi,
+        bLo < bHi,
+        as ! aLo == bs ! bLo =
+          Context : go (aLo + 1) aHi (bLo + 1) bHi rest
+      | aLo < aHi,
+        bLo < bHi,
+        as ! (aHi - 1) == bs ! (bHi - 1) =
+          go aLo (aHi - 1) bLo (bHi - 1) (Context : rest)
+      | aLo == aHi = replicate (bHi - bLo) Added <> rest
+      | bLo == bHi = replicate (aHi - aLo) Removed <> rest
+      | Just (x, y) <- middle as bs (aLo, aHi) (bLo, bHi),
+        (x, y) /= (aLo, bLo),
+        (x, y) /= (aHi, bHi) =
+          go aLo x bLo y (go x aHi y bHi rest)
+      | otherwise = replicate (aHi - aLo) Removed <> replicate (bHi - bLo) Added <> rest
+
+-- | Put the removals of every run of changes before its additions.
+removalsFirst :: [Mark] -> [Mark]
+removalsFirst = \case
+  [] -> []
+  Context : rest -> Context : removalsFirst rest
+  marks ->
+    let (changes, rest) = break (== Context) marks
+     in filter (== Removed) changes <> filter (== Added) changes <> removalsFirst rest
+
+-- | Both sequences of lines as numbers, equal where the lines are.
+interned :: [Text] -> [Text] -> (UArray Int Int, UArray Int Int)
+interned xs ys = (numbered xs, numbered ys)
+  where
+    numbers = Map.fromList (zip (xs <> ys) [0 ..])
+    numbered ls = listArray (0, length ls - 1) (fmap (numbers Map.!) ls)
+
+-- | A point that a shortest edit script between two ranges passes through,
+-- found where the searches from their two ends meet, or 'Nothing' if they
+-- do not.
+--
+-- The ranges are expected to differ at both ends.
+middle ::
+  UArray Int Int ->
+  UArray Int Int ->
+  (Int, Int) ->
+  (Int, Int) ->
+  Maybe (Int, Int)
+middle as bs (aLo, aHi) (bLo, bHi) = runST $ do
+  forth <- newArray (0, size - 1) (-1) :: ST s (STUArray s Int Int)
+  back <- newArray (0, size - 1) (-1) :: ST s (STUArray s Int Int)
+  writeArray forth (offset + 1) 0
+  writeArray back (offset + 1) 0
+  let rounds d fs fe bStart bEnd
+        | d >= maxD = pure Nothing
+        | otherwise =
+            forwards d (fs - d) fs fe >>= \case
+              Left found -> pure (Just found)
+              Right (fs', fe') ->
+                backwards d (bStart - d) bStart bEnd >>= \case
+                  Left found -> pure (Just found)
+                  Right (bStart', bEnd') -> rounds (d + 1) fs' fe' bStart' bEnd'
+      forwards d k fs fe
+        | k > d - fe = pure (Right (fs, fe))
+        | otherwise = do
+            x0 <- furthest forth d k
+            let x = slide (\i j -> as ! (aLo + i) == bs ! (bLo + j)) x0 (x0 - k)
+                y = x - k
+            writeArray forth (offset + k) x
+            if
+              | x > n -> forwards d (k + 2) fs (fe + 2)
+              | y > m -> forwards d (k + 2) (fs + 2) fe
+              | odd delta -> do
+                  let o = offset + delta - k
+                  other <-
+                    if o >= 0 && o < size
+                      then readArray back o
+                      else pure (-1)
+                  if other /= -1 && x >= n - other
+                    then pure (Left (aLo + x, bLo + y))
+                    else forwards d (k + 2) fs fe
+              | otherwise -> forwards d (k + 2) fs fe
+      backwards d k bStart bEnd
+        | k > d - bEnd = pure (Right (bStart, bEnd))
+        | otherwise = do
+            x0 <- furthest back d k
+            let x = slide (\i j -> as ! (aHi - 1 - i) == bs ! (bHi - 1 - j)) x0 (x0 - k)
+                y = x - k
+            writeArray back (offset + k) x
+            if
+              | x > n -> backwards d (k + 2) bStart (bEnd + 2)
+              | y > m -> backwards d (k + 2) (bStart + 2) bEnd
+              | even delta -> do
+                  let o = offset + delta - k
+                  other <- if o >= 0 && o < size then readArray forth o else pure (-1)
+                  if other /= -1 && other >= n - x
+                    then pure (Left (aLo + other, bLo + other - (delta - k)))
+                    else backwards d (k + 2) bStart bEnd
+              | otherwise -> backwards d (k + 2) bStart bEnd
+  rounds 0 0 0 0 0
+  where
+    n = aHi - aLo
+    m = bHi - bLo
+    delta = n - m
+    maxD = (n + m + 1) `div` 2
+    offset = maxD
+    size = 2 * maxD + 2
+    slide same x y
+      | x < n, y < m, same x y = slide same (x + 1) (y + 1)
+      | otherwise = x
+    furthest v d k = do
+      below <- readArray v (offset + k - 1)
+      above <- readArray v (offset + k + 1)
+      pure $
+        if k == -d || (k /= d && below < above)
+          then above
+          else below + 1
diff --git a/src/Tilia/Doc/Combinators.hs b/src/Tilia/Doc/Combinators.hs
--- a/src/Tilia/Doc/Combinators.hs
+++ b/src/Tilia/Doc/Combinators.hs
@@ -18,6 +18,8 @@
     verbatimBreak,
     verbatim,
     emptyAnchor,
+    insideBrackets,
+    declarationsStart,
 
     -- * Layout
     Layout (..),
@@ -26,6 +28,7 @@
     broken,
     variant,
     located,
+    unclaimed,
     fence,
     cppChoice,
 
@@ -37,6 +40,7 @@
     nest,
     indent,
     align,
+    cppMarginNote,
 
     -- * Combining
     hsep,
@@ -72,13 +76,16 @@
 import Data.Text (Text)
 import Data.Text qualified as T
 import Tilia.Doc.Internal
-  ( Doc (..),
+  ( Conditional (..),
+    Doc (..),
     Layout (..),
     LineStart (..),
     TrailingWhitespace (..),
     groupLayout,
+    mapChildren,
+    printsNothing,
   )
-import Tilia.Span (Span)
+import Tilia.Span (Span, endOf)
 
 ----------------------------------------------------------------------------
 -- Atoms
@@ -135,6 +142,14 @@
 emptyAnchor :: Span -> Doc
 emptyAnchor s = located s mempty
 
+-- | Give the inside of a bracketed construct an anchor at its far end.
+insideBrackets :: Maybe Span -> Doc -> Doc
+insideBrackets here d = d <> foldMap (emptyAnchor . endOf) here
+
+-- | Where a module's declarations begin, marked without printing anything.
+declarationsStart :: Doc
+declarationsStart = DDeclarationsStart
+
 ----------------------------------------------------------------------------
 -- Layout
 
@@ -171,6 +186,12 @@
 located :: Span -> Doc -> Doc
 located = DLocated
 
+-- | The same document, with no region in it for a comment to attach to.
+unclaimed :: Doc -> Doc
+unclaimed = \case
+  DLocated _ d -> unclaimed d
+  d -> mapChildren unclaimed d
+
 -- | Fence prevents comments inside from floating out and attaching to
 -- elements they are not supposed to attach to.
 fence :: Span -> Doc -> Doc
@@ -178,30 +199,21 @@
 
 -- | Alternatives the preprocessor chooses between.
 cppChoice ::
+  -- | The conditionals of the input the alternatives were printed from.
+  [Conditional] ->
   -- | One alternative per directive, each directive as written after its
   -- hash.
   [(Text, Doc)] ->
   -- | The else clause.
   Doc ->
   Doc
-cppChoice branches fallback
+cppChoice conditionals branches fallback
   | all (printsNothing . snd) branches && printsNothing fallback = DEmpty
   | otherwise =
       DCppChoice
+        conditionals
         branches
         (if printsNothing fallback then DEmpty else fallback)
-  where
-    printsNothing = \case
-      DEmpty -> True
-      DCat a b -> printsNothing a && printsNothing b
-      DNest _ d -> printsNothing d
-      DAlign d -> printsNothing d
-      DGroup _ d -> printsNothing d
-      DLocated _ d -> printsNothing d
-      DFence _ d -> printsNothing d
-      DVariant flatD brokenD ->
-        printsNothing flatD && printsNothing brokenD
-      _ -> False
 
 ----------------------------------------------------------------------------
 -- Attachment
@@ -238,6 +250,11 @@
 align :: Doc -> Doc
 align = DAlign
 
+-- | Start the enclosed document's lines at the margin if they come out
+-- right above a preprocessor directive.
+cppMarginNote :: Doc -> Doc
+cppMarginNote = DCppMarginNote
+
 ----------------------------------------------------------------------------
 -- Combining
 
@@ -257,11 +274,6 @@
 -- then the place the line may break.
 joinedBy :: Text -> Doc
 joinedBy t = space <> txt t <> breakOrSpace
-
--- | Append the separator to every element but the last.
---
--- For the cases where the separator has to travel with the element rather
--- than sit between elements, such as a trailing comma that must stay on the
 
 ----------------------------------------------------------------------------
 -- Wrapping
diff --git a/src/Tilia/Doc/Internal.hs b/src/Tilia/Doc/Internal.hs
--- a/src/Tilia/Doc/Internal.hs
+++ b/src/Tilia/Doc/Internal.hs
@@ -5,6 +5,21 @@
 module Tilia.Doc.Internal
   ( -- * Documents
     Doc (..),
+    Spill (..),
+    printsNothing,
+    foldChildren,
+    mapChildren,
+    spine,
+    spineAt,
+    printedFrom,
+    onlySpacing,
+    onlyBreaks,
+    Wrapper (..),
+    unwrap,
+    wrap,
+    layoutInside,
+    Conditional (..),
+    conditionalRange,
     Layout (..),
     LineStart (..),
     TrailingWhitespace (..),
@@ -17,10 +32,12 @@
   )
 where
 
-import Data.Maybe (listToMaybe)
+import Data.Char (isSpace)
+import Data.List (unsnoc)
+import Data.Maybe (listToMaybe, mapMaybe)
 import Data.Text (Text)
 import Data.Text qualified as T
-import Tilia.Span (Span, isSingleLine)
+import Tilia.Span (Span, isSingleLine, spanEndLine, spanStartLine)
 
 ----------------------------------------------------------------------------
 -- Documents
@@ -47,10 +64,14 @@
     DHardBreak
   | -- | Text to be put at the end of the line this position falls on,
     -- however much of the line is still to be written.
-    DHoldBack !Text
+    DHoldBack !Spill !Text
   | -- | Close the line, and let a break that immediately follows know that
     -- it has nothing left to do.
     DCloseLine
+  | -- | Close the line, and leave an empty line under it if told to, unless
+    -- it ends with an opening bracket, a bar or an equals sign, which what
+    -- follows then shares.
+    DCloseLineUnlessAfterOpener !Bool
   | -- | A line break between two lines of text that is being reproduced
     -- rather than laid out.
     DVerbatimBreak !LineStart !TrailingWhitespace
@@ -62,6 +83,9 @@
   | -- | Indent the enclosed document to whatever column the line has
     -- reached, so that it lines up under itself when broken.
     DAlign !Doc
+  | -- | Start the enclosed document's lines at the margin if they come out
+    -- right above a preprocessor directive.
+    DCppMarginNote !Doc
   | -- | Lay the enclosed document out flat or broken.
     DGroup !Layout !Doc
   | -- | Choose between two documents according to the enclosing group: the
@@ -87,15 +111,102 @@
   | -- | Fence prevents comments inside from floating out and attaching to
     -- elements they are not supposed to attach to.
     DFence !Span !Doc
-  | -- | Alternatives the preprocessor chooses between, and the condition it
-    -- chooses on.
-    DCppChoice ![(Text, Doc)] !Doc
+  | -- | Alternatives the preprocessor chooses between, the condition it
+    -- chooses on, and the conditionals of the input they were printed from.
+    DCppChoice ![Conditional] ![(Text, Doc)] !Doc
   | -- | A preprocessor line that is not a conditional, reproduced, and the
     -- region of the input it was written in. The span is included so that
     -- two directives can be told apart.
     DCppDirective !Span !Text
+  | -- | Print nothing, marking where a module's declarations begin.
+    DDeclarationsStart
   deriving (Eq, Show)
 
+-- | Does this document put nothing at all on the page?
+printsNothing :: Doc -> Bool
+printsNothing = \case
+  DEmpty -> True
+  DDeclarationsStart -> True
+  DCat a b -> printsNothing a && printsNothing b
+  DNest _ d -> printsNothing d
+  DAlign d -> printsNothing d
+  DCppMarginNote d -> printsNothing d
+  DGroup _ d -> printsNothing d
+  DLocated _ d -> printsNothing d
+  DFence _ d -> printsNothing d
+  DVariant flatD brokenD -> printsNothing flatD && printsNothing brokenD
+  _ -> False
+
+-- | Combine what a function makes of each document directly inside this
+-- one, a variant's broken layout standing for the variant.
+foldChildren :: (Monoid m) => (Doc -> m) -> Doc -> m
+foldChildren f = \case
+  DCat a b -> f a <> f b
+  DNest _ d -> f d
+  DAlign d -> f d
+  DCppMarginNote d -> f d
+  DGroup _ d -> f d
+  DVariant _ d -> f d
+  DLocated _ d -> f d
+  DFence _ d -> f d
+  DCppChoice _ bs e -> foldr ((<>) . f . snd) (f e) bs
+  _ -> mempty
+
+-- | Rewrite the documents directly inside this one, both layouts of a
+-- variant included.
+mapChildren :: (Doc -> Doc) -> Doc -> Doc
+mapChildren f = \case
+  DCat a b -> f a <> f b
+  DNest n d -> DNest n (f d)
+  DAlign d -> DAlign (f d)
+  DCppMarginNote d -> DCppMarginNote (f d)
+  DGroup l d -> DGroup l (f d)
+  DVariant a b -> DVariant (f a) (f b)
+  DLocated s d -> DLocated s (f d)
+  DFence s d -> DFence s (f d)
+  DCppChoice cs bs e -> DCppChoice cs [(g, f d) | (g, d) <- bs] (f e)
+  d -> d
+
+-- | A document as the sequence of things it concatenates.
+spine :: Doc -> [Doc]
+spine = \case
+  DEmpty -> []
+  DCat a b -> spine a <> spine b
+  d -> [d]
+
+-- | 'spine', with the variants resolved the way this layout will print them.
+spineAt :: Layout -> Doc -> [Doc]
+spineAt layout = \case
+  DEmpty -> []
+  DCat a b -> spineAt layout a <> spineAt layout b
+  DVariant flatD brokenD ->
+    spineAt layout (case layout of Flat -> flatD; Broken -> brokenD)
+  d -> [d]
+
+-- | The lines of the input a document holds something printed from, as far
+-- down as there is anything.
+printedFrom :: Doc -> [(Int, Int)]
+printedFrom = \case
+  DLocated s x -> (spanStartLine s, spanEndLine s) : printedFrom x
+  DFence s x -> (spanStartLine s, spanEndLine s) : printedFrom x
+  d@(DCppChoice cs _ _) -> mapMaybe conditionalRange cs <> foldChildren printedFrom d
+  d -> foldChildren printedFrom d
+
+-- | Nothing but the whitespace that separates one thing from the next.
+onlySpacing :: Doc -> Bool
+onlySpacing d = d == DSpace || onlyBreaks d
+
+-- | Nothing but what ends a line, in a broken group at least.
+onlyBreaks :: Doc -> Bool
+onlyBreaks = \case
+  DEmpty -> True
+  DBreak -> True
+  DSoftBreak -> True
+  DHardBreak -> True
+  DCloseLine -> True
+  DCloseLineUnlessAfterOpener _ -> True
+  _ -> False
+
 instance Semigroup Doc where
   DEmpty <> b = b
   a <> DEmpty = a
@@ -104,6 +215,62 @@
 instance Monoid Doc where
   mempty = DEmpty
 
+-- | A node holding exactly one document, less the document.
+data Wrapper
+  = WLocated !Span
+  | WFence !Span
+  | WNest !Int
+  | WAlign
+  | WCppMarginNote
+  | WGroup !Layout
+  deriving (Eq, Show)
+
+-- | A document as the wrapper it is and the document it holds.
+unwrap :: Doc -> Maybe (Wrapper, Doc)
+unwrap = \case
+  DLocated s d -> Just (WLocated s, d)
+  DFence s d -> Just (WFence s, d)
+  DNest n d -> Just (WNest n, d)
+  DAlign d -> Just (WAlign, d)
+  DCppMarginNote d -> Just (WCppMarginNote, d)
+  DGroup l d -> Just (WGroup l, d)
+  _ -> Nothing
+{-# INLINE unwrap #-}
+
+-- | Put a document in a wrapper.
+wrap :: Wrapper -> Doc -> Doc
+wrap = \case
+  WLocated s -> DLocated s
+  WFence s -> DFence s
+  WNest n -> DNest n
+  WAlign -> DAlign
+  WCppMarginNote -> DCppMarginNote
+  WGroup l -> DGroup l
+
+-- | The layout inside a wrapper laid out like this.
+layoutInside :: Layout -> Wrapper -> Layout
+layoutInside layout = \case
+  WGroup l -> l
+  _ -> layout
+
+-- | A conditional as its author wrote it.
+data Conditional = Conditional
+  { -- | The lines of its directives, the @#if@ first and the @#endif@ last.
+    conditionalLines :: [Int],
+    -- | What follows the keyword of its @#else@.
+    conditionalElse :: Text,
+    -- | What follows the keyword of its @#endif@.
+    conditionalEndif :: Text
+  }
+  deriving (Eq, Ord, Show)
+
+-- | The lines of a conditional's @#if@ and @#endif@.
+conditionalRange :: Conditional -> Maybe (Int, Int)
+conditionalRange c =
+  (,) <$> listToMaybe ls <*> fmap snd (unsnoc ls)
+  where
+    ls = conditionalLines c
+
 -- | Whether a group is laid out on one line or across several.
 data Layout
   = Flat
@@ -150,64 +317,130 @@
 
 -- | What the engine carries while walking a document.
 data Env = Env
-  { envIndent :: !Int,
+  { -- | The column a new line starts at.
+    envIndent :: !Int,
+    -- | The layout of the innermost group.
     envLayout :: !Layout,
-    envIndentStep :: !Int
+    -- | Columns per indentation step.
+    envIndentStep :: !Int,
+    -- | Whether what is written now is a note, which goes to the margin
+    -- right above a preprocessor directive.
+    envNote :: !Bool
   }
 
 -- | Output built so far.
 --
--- Lines are finished one at a time and never revisited, so the current line
--- is kept as a reversed list of fragments and completed lines as a reversed
--- list of lines.
+-- Lines are finished one at a time and never revisited while the document
+-- is walked. Whatever about a line depends on the lines around it is
+-- settled only once they are all there, in 'finish'.
 data Out = Out
   { -- | Completed lines, most recent first.
-    outLines :: [Text],
-    -- | Fragments of the line being built, most recent first.
+    outLines :: [Line],
+    -- | The line being built, but for its body, which is put together from
+    -- 'outCurrent' and 'outHeldBack' once it is finished.
+    outLine :: !Line,
+    -- | What has been written to the line being built after its
+    -- indentation, most recent first.
     outCurrent :: [Text],
     -- | Column the current line has reached.
     outColumn :: !Int,
-    -- | Whether anything has been written to the current line. Indentation
-    -- is emitted lazily, when the first fragment arrives, so that a line
-    -- with nothing on it stays genuinely empty.
-    outStarted :: !Bool,
     -- | Fragments held back until the line ends, in the order they were
     -- given. The first goes at the end of the line; any after it get lines
     -- of their own under it.
-    outHeldBack :: ![Text],
+    outHeldBack :: ![(Spill, Text)],
     -- | Whether the line was closed by something that already knew it was
     -- ending it, so that a break arriving now would add an empty line
     -- rather than end anything.
     outClosed :: !Bool
   }
 
+-- | Where text held back for the end of a line goes when something was held
+-- back for it first.
+data Spill
+  = -- | On a line of its own, at the indentation of the line it was held
+    -- back for.
+    SpillAtIndentation
+  | -- | On a line of its own, lined up with what was held back before it.
+    SpillUnderPrevious
+  deriving (Eq, Show)
+
+-- | A line, and what the engine knew about it as it wrote it.
+data Line = Line
+  { -- | The indentation it was started at.
+    lineIndent :: !Int,
+    -- | What it holds after its indentation.
+    lineBody :: !Text,
+    -- | Whether what it reproduces started it at the margin, whatever the
+    -- indentation, and so keeps it there.
+    linePinned :: !Bool,
+    -- | Whether a note is all it holds.
+    lineNote :: !Bool,
+    -- | Whether it continues the line before it, as a space asked for before
+    -- anything was on it says.
+    lineContinues :: !Bool,
+    -- | Its type if it is a preprocessor directive.
+    lineDirective :: !(Maybe CppDirectiveType)
+  }
+
+-- | The type of a preprocessor directive.
+data CppDirectiveType
+  = -- | It opens a conditional.
+    CppDirectiveOpens
+  | -- | It begins another alternative of the conditional it is in.
+    CppDirectiveContinues
+  | -- | It closes a conditional.
+    CppDirectiveCloses
+  | -- | It is not a conditional at all.
+    CppDirectiveOpaque
+
+-- | A line with nothing on it and nothing known about it.
+newLine :: Line
+newLine =
+  Line
+    { lineIndent = 0,
+      lineBody = "",
+      linePinned = False,
+      lineNote = False,
+      lineContinues = False,
+      lineDirective = Nothing
+    }
+
+-- | A line as it is printed.
+lineText :: Line -> Text
+lineText l
+  | T.null (lineBody l) = ""
+  | otherwise = T.replicate (lineIndent l) " " <> lineBody l
+
 emptyOut :: Out
 emptyOut =
   Out
     { outLines = [],
+      outLine = newLine,
       outCurrent = [],
       outColumn = 0,
-      outStarted = False,
       outHeldBack = [],
       outClosed = False
     }
 
 -- | Turn a document into text.
 render :: RenderOptions -> Doc -> Text
-render opts doc = finish (go env doc emptyOut)
+render opts doc = finish (roIndentStep opts) (go env doc emptyOut)
   where
     env =
       Env
         { envIndent = 0,
           envLayout = Broken,
-          envIndentStep = roIndentStep opts
+          envIndentStep = roIndentStep opts,
+          envNote = False
         }
 
 -- | Walk a document, accumulating output.
 go :: Env -> Doc -> Out -> Out
 go env = \case
   DEmpty -> id
-  DText t -> putText (envIndent env) t
+  DText t
+    | T.null t -> id
+    | otherwise -> putText (envIndent env) t . noting (envNote env)
   DSpace -> putSpace
   DBreak -> case envLayout env of
     Flat -> putSpace
@@ -215,63 +448,99 @@
   DSoftBreak -> case envLayout env of
     Flat -> id
     Broken -> breakLine (envIndent env)
-  DHoldBack t -> putHeldBack (envIndent env) t
+  DHoldBack spill t -> putHeldBack (envIndent env) spill t . noting False
   DCloseLine -> closeLine (envIndent env)
+  DCloseLineUnlessAfterOpener gap -> \out ->
+    if endsWithOpener out
+      then putSpace out
+      else go env (gapped <> DCloseLine) out
+    where
+      gapped = if gap then DCloseLine <> DHardBreak <> DHardBreak else DEmpty
   DHardBreak -> breakLine (envIndent env)
-  DVerbatimBreak lineStart trailing -> verbatimBreakLine lineStart trailing
+  DVerbatimBreak lineStart trailing -> verbatimBreakLine (envNote env) lineStart trailing
   DCat a b -> go env b . go env a
   DNest n d -> go env{envIndent = envIndent env + n * envIndentStep env} d
   DAlign d -> \out ->
     go env{envIndent = max (envIndent env) (outColumn out)} d out
+  DCppMarginNote d -> \out ->
+    go env{envNote = not (hasContent out)} d out
   DGroup l d -> go env{envLayout = l} d
   DVariant flatD brokenD -> case envLayout env of
     Flat -> go env flatD
     Broken -> go env brokenD
   DLocated _ d -> go env d
   DFence _ d -> go env d
-  DCppChoice branches fallback ->
-    foldr (flip (.)) id . concat $
-      [ [atMargin ("#" <> guard'), go env taken]
-      | (guard', taken) <- branches
-      ]
-        <> [[atMargin "#else", go env fallback] | fallback /= DEmpty]
-        <> [[atMargin "#endif"]]
-  DCppDirective _ t -> atMargin ("#" <> t)
+  DCppChoice cs branches fallback ->
+    let afterElse = foldMap conditionalElse (listToMaybe cs)
+        afterEndif = foldMap conditionalEndif (listToMaybe cs)
+     in foldr (flip (.)) id . concat $
+          [ [directive type' ("#" <> guard'), go env taken]
+          | (type', (guard', taken)) <- zip (CppDirectiveOpens : repeat CppDirectiveContinues) branches
+          ]
+            <> [ [directive CppDirectiveContinues ("#else" <> afterElse), go env fallback]
+               | not (printsNothing fallback && T.null afterElse)
+               ]
+            <> [[directive CppDirectiveCloses ("#endif" <> afterEndif)]]
+  DCppDirective _ t -> directive CppDirectiveOpaque ("#" <> t)
+  DDeclarationsStart -> id
 
--- | Put a line of text at the margin, on a line of its own.
-atMargin :: Text -> Out -> Out
-atMargin t = closeLine 0 . putText 0 t . closeLine 0
+-- | Record whether the line holds nothing but a note, given whether what is
+-- about to be written to it is one.
+noting :: Bool -> Out -> Out
+noting note out
+  | note' == lineNote l = out
+  | otherwise = out{outLine = l{lineNote = note'}}
+  where
+    l = outLine out
+    note' = note && (not (started out) || lineNote l)
 
--- | Append a fragment, emitting the line's indentation first if this is the
+-- | Put a directive at the margin, on a line of its own, with no empty line
+-- above one that ends a branch.
+directive :: CppDirectiveType -> Text -> Out -> Out
+directive type' t =
+  closeLine 0 . typed . putText 0 t . endingBranch . closeLine 0
+  where
+    typed out =
+      out{outLine = (outLine out){lineNote = False, lineDirective = Just type'}}
+    endingBranch out = case type' of
+      CppDirectiveContinues -> unspaced out
+      CppDirectiveCloses -> unspaced out
+      _ -> out
+    unspaced out = out{outLines = dropWhile (T.null . lineBody) (outLines out)}
+
+-- | Append a fragment, starting the line at the indentation if this is the
 -- first thing on it.
 putText :: Int -> Text -> Out -> Out
 putText indent t out0
   | T.null t = out0
-  | outStarted out =
+  | started out =
       out
         { outCurrent = t : outCurrent out,
           outColumn = outColumn out + T.length t
         }
   | otherwise =
       out
-        { outCurrent = [t, T.replicate indent " "],
+        { outCurrent = [t],
           outColumn = indent + T.length t,
-          outStarted = True
+          outLine = (outLine out){lineIndent = indent}
         }
   where
     out = out0{outClosed = False}
 
 -- | Hold a fragment back until the line ends.
-putHeldBack :: Int -> Text -> Out -> Out
-putHeldBack indent t out
-  | outStarted out || not (null (outHeldBack out)) =
-      out{outHeldBack = outHeldBack out <> [t], outClosed = False}
+putHeldBack :: Int -> Spill -> Text -> Out -> Out
+putHeldBack indent spill t out
+  | started out || not (null (outHeldBack out)) =
+      out{outHeldBack = outHeldBack out <> [(spill, t)], outClosed = False}
   | otherwise = closeLine indent (putText indent t out)
 
 -- | Append a space, unless the line has not started or already ends in one.
 putSpace :: Out -> Out
 putSpace out
-  | not (outStarted out) = out
+  | not (started out) =
+      if lineContinues (outLine out)
+        then out
+        else out{outLine = (outLine out){lineContinues = True}}
   | endsWithSpace out = out
   | otherwise =
       out
@@ -292,16 +561,10 @@
   Out ->
   Out
 breakLine indent out
-  | outClosed out = out{outClosed = False}
-  | atStart out = out
-  | not (hasContent out), repeatsBlank out || opensABlock indent out = discarded
-  | otherwise =
-      discarded
-        { outLines = overflow TrimWhitespace indent out <> outLines out
-        }
-  where
-    discarded =
-      out{outCurrent = [], outColumn = 0, outStarted = False, outHeldBack = []}
+  | outClosed out = discontinued out{outClosed = False}
+  | atStart out = discontinued out
+  | not (hasContent out), repeatsBlank out || opensABlock indent out = fresh out
+  | otherwise = completing TrimWhitespace indent out
 
 -- | Close the current line, if there is anything on it.
 --
@@ -316,60 +579,106 @@
   Out
 closeLine indent out
   | hasContent out = (breakLine indent out){outClosed = True}
+  | otherwise = discontinued out
+
+-- | Say that the current line does not continue the line before it.
+discontinued :: Out -> Out
+discontinued out
+  | lineContinues (outLine out) = out{outLine = (outLine out){lineContinues = False}}
   | otherwise = out
 
--- | Every line the break that has just happened produces.
-overflow ::
+-- | Begin a new line, leaving the one being built unfinished.
+fresh :: Out -> Out
+fresh out =
+  out
+    { outLine = newLine,
+      outCurrent = [],
+      outColumn = 0,
+      outHeldBack = []
+    }
+
+-- | Finish the current line, with the held-back fragments that spill under
+-- it, and begin a new one.
+completing ::
   -- | What to do with whitespace the lines end in.
   TrailingWhitespace ->
   -- | Where the line after these would begin, used only if there is no line
   -- to take the indentation from.
   Int ->
   Out ->
-  [Text]
-overflow trailing indent out = reverse (finished : fmap below spilled)
+  Out
+completing trailing indent out =
+  fresh out{outLines = reverse (finished : spilledLines) <> outLines out}
   where
-    finished = currentLine trailing out
+    finished = (outLine out){lineBody = currentLine trailing out}
     spilled = drop 1 (outHeldBack out)
-    below t = T.replicate column " " <> adjustTrailingWhitespace trailing t
-    column
-      | T.null finished = indent
-      | otherwise = T.length (T.takeWhile (== ' ') finished)
+    spilledLines = zipWith below columns spilled
+    columns = drop 1 (scanl columnFor firstColumn (fmap fst spilled))
+    firstColumn =
+      lineIndent finished
+        + T.length (lineBody finished)
+        - T.length (heldBackFirst trailing out)
+    below column (_, t) =
+      newLine
+        { lineIndent = column,
+          lineBody = adjustTrailingWhitespace trailing t
+        }
+    columnFor previous = \case
+      SpillAtIndentation
+        | T.null (lineBody finished) -> indent
+        | otherwise -> lineIndent finished
+      SpillUnderPrevious -> previous
 
 -- | Would an empty line here be the first thing inside a block?
 opensABlock :: Int -> Out -> Bool
 opensABlock indent out = case outLines out of
-  (l : _) -> T.length l <= indent
+  (l : _) -> T.length (lineText l) <= indent
   [] -> False
 
 -- | Finish the current line between two lines of reproduced text.
-verbatimBreakLine :: LineStart -> TrailingWhitespace -> Out -> Out
-verbatimBreakLine lineStart trailing out =
-  out
-    { outLines = overflow trailing 0 out <> outLines out,
-      outCurrent = [],
-      outColumn = 0,
-      outStarted = lineStart == AtMargin,
-      outHeldBack = [],
+verbatimBreakLine ::
+  -- | Whether the next line is part of a note.
+  Bool ->
+  LineStart ->
+  TrailingWhitespace ->
+  Out ->
+  Out
+verbatimBreakLine note lineStart trailing out =
+  (completing trailing 0 out)
+    { outLine = newLine{linePinned = lineStart == AtMargin, lineNote = note},
       outClosed = False
     }
 
 -- | Would this empty line be a second one in a row?
 repeatsBlank :: Out -> Bool
 repeatsBlank out = case outLines out of
-  ("" : _) -> True
+  (l : _) -> T.null (lineBody l)
   _ -> False
 
 -- | Is the output still empty?
 atStart :: Out -> Bool
 atStart out = null (outLines out) && not (hasContent out)
 
+-- | Has the current line begun, with something written to it or with what
+-- it reproduces starting it at the margin?
+started :: Out -> Bool
+started out = not (null (outCurrent out)) || linePinned (outLine out)
+
+-- | Does the current line end with an opening bracket, a bar or an equals
+-- sign, with nothing held back for its end?
+endsWithOpener :: Out -> Bool
+endsWithOpener out =
+  null (outHeldBack out)
+    && case dropWhile (T.all isSpace) (outCurrent out) of
+      t : _ -> T.strip t `elem` ["(", "(#", "=", "[", "{", "|"]
+      [] -> False
+
 -- | Is there anything on the current line, written or held back?
 hasContent :: Out -> Bool
-hasContent out = outStarted out || not (null (outHeldBack out))
+hasContent out = started out || not (null (outHeldBack out))
 
--- | The current line: what was written to it, then whatever was held back
--- for its end, with one space between them.
+-- | What the current line holds: what was written to it, then whatever was
+-- held back for its end, with one space between them.
 currentLine :: TrailingWhitespace -> Out -> Text
 currentLine trailingWhitespace out
   | T.null written = heldBack
@@ -380,12 +689,16 @@
       adjustTrailingWhitespace
         trailingWhitespace
         (T.concat (reverse (outCurrent out)))
-    heldBack =
-      maybe
-        ""
-        (adjustTrailingWhitespace trailingWhitespace)
-        (listToMaybe (outHeldBack out))
+    heldBack = heldBackFirst trailingWhitespace out
 
+-- | What was held back first for the end of the current line.
+heldBackFirst :: TrailingWhitespace -> Out -> Text
+heldBackFirst trailingWhitespace out =
+  maybe
+    ""
+    (adjustTrailingWhitespace trailingWhitespace . snd)
+    (listToMaybe (outHeldBack out))
+
 -- | Handle the given line according to the 'TrailingWhitespace' style.
 adjustTrailingWhitespace :: TrailingWhitespace -> Text -> Text
 adjustTrailingWhitespace = \case
@@ -394,8 +707,57 @@
 
 -- | Assemble the final text: one trailing newline, no blank lines at the
 -- end, no trailing whitespace anywhere.
-finish :: Out -> Text
-finish out =
-  case dropWhile T.null (outLines (breakLine 0 out)) of
+finish ::
+  -- | Columns per indentation step.
+  Int ->
+  Out ->
+  Text
+finish step out =
+  case dropWhile (T.null . lineBody) (outLines (breakLine 0 out)) of
     [] -> ""
-    ls -> T.unlines (reverse ls)
+    ls -> T.unlines (lineText <$> notesToMargin (continued step (reverse ls)))
+
+-- | Indent each alternative of a conditional that continues the line before
+-- the conditional further than that line.
+continued ::
+  -- | Columns per indentation step.
+  Int ->
+  [Line] ->
+  [Line]
+continued step = walk [] 0 False
+  where
+    walk frames previous pending = \case
+      [] -> []
+      l : ls -> case lineDirective l of
+        Just CppDirectiveOpens -> l : walk ((previous, 0) : frames) 0 True ls
+        Just CppDirectiveContinues -> l : walk (restarted frames) 0 True ls
+        Just CppDirectiveCloses -> l : walk (drop 1 frames) 0 False ls
+        Just CppDirectiveOpaque -> l : walk frames 0 False ls
+        Nothing ->
+          let frames' = if pending then settled frames l else frames
+              l' = moved (sum (fmap snd frames')) l
+           in l' : walk frames' (lineIndent l') False ls
+    restarted = \case
+      (before, _) : rest -> (before, 0) : rest
+      [] -> []
+    settled frames l = case frames of
+      (before, _) : rest
+        | lineContinues l,
+          not (linePinned l),
+          at <= before ->
+            (before, before - at + step) : rest
+        where
+          at = lineIndent l + sum (fmap snd rest)
+      _ -> frames
+    moved n l
+      | n == 0 || linePinned l || T.null (lineBody l) = l
+      | otherwise = l{lineIndent = lineIndent l + n}
+
+-- | Move every note right above a directive to the margin.
+notesToMargin :: [Line] -> [Line]
+notesToMargin = fst . foldr place ([], False)
+  where
+    place l (ls, above)
+      | Just _ <- lineDirective l = (l : ls, True)
+      | above, lineNote l = (l{lineIndent = 0} : ls, True)
+      | otherwise = (l : ls, False)
diff --git a/src/Tilia/Editor.hs b/src/Tilia/Editor.hs
new file mode 100644
--- /dev/null
+++ b/src/Tilia/Editor.hs
@@ -0,0 +1,89 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE LambdaCase #-}
+
+-- | Definitions to support editor integrations.
+module Tilia.Editor
+  ( editorSession,
+    formatBuffer,
+  )
+where
+
+import Data.Choice (Choice)
+import Data.Maybe (mapMaybe)
+import Data.Text (Text)
+import Tilia.Cabal.Project (ProjectRoot (..), findProjectRoot)
+import Tilia.Cabal.Target
+  ( Target (Everything),
+    componentInPlan,
+    componentsOfTarget,
+  )
+import Tilia.Format
+  ( FormatError,
+    PlanSource (..),
+    Session,
+    newSession,
+    sessionRoot,
+  )
+import Tilia.Ignore (isIgnoredInProject)
+import Tilia.Run (Outcome (Unchanged), outcomeOf)
+
+-- | Create a 'Session' for the project a file belongs to, with a plan that
+-- covers every component of it.
+editorSession ::
+  -- | The file.
+  FilePath ->
+  -- | A build plan to trust as up to date rather than have Cabal solve one.
+  Maybe FilePath ->
+  -- | Whether to read from and write to the cache.
+  Choice "useCache" ->
+  -- | Whether to download sources that are missing.
+  Choice "download" ->
+  -- | Check AST equivalence.
+  Choice "checkAst" ->
+  -- | Check idempotence.
+  Choice "checkIdempotence" ->
+  -- | Record how fixities were settled, to be read with
+  -- 'Tilia.Format.fixityNotesOf'.
+  Choice "debugFixity" ->
+  IO (Either FormatError Session)
+editorSession
+  file
+  givenPlan
+  caching
+  downloading
+  checkAst
+  checkIdempotence
+  debugFixity = do
+    planSource <- case givenPlan of
+      Just plan -> pure (GivenPlan plan)
+      Nothing -> PlanFromCabal <$> components
+    newSession
+      file
+      planSource
+      caching
+      downloading
+      checkAst
+      checkIdempotence
+      debugFixity
+    where
+      components =
+        findProjectRoot file >>= \case
+          Nothing -> pure []
+          Just root ->
+            either (const []) (mapMaybe componentInPlan)
+              <$> componentsOfTarget root Everything
+
+-- | Format given text on the assumption it comes from the specified
+-- 'FilePath'.
+formatBuffer ::
+  -- | The session.
+  Session ->
+  -- | The file.
+  FilePath ->
+  -- | The text to format.
+  Text ->
+  IO Outcome
+formatBuffer session file before =
+  isIgnoredInProject (prPath (sessionRoot session)) file >>= \case
+    True -> pure Unchanged
+    False -> outcomeOf session file before
diff --git a/src/Tilia/Equivalence.hs b/src/Tilia/Equivalence.hs
--- a/src/Tilia/Equivalence.hs
+++ b/src/Tilia/Equivalence.hs
@@ -59,14 +59,15 @@
 import System.IO.Unsafe (unsafePerformIO)
 import Tilia.Comments
   ( Comment (..),
-    CommentStyle (..),
     Pragma (..),
+    asOrdinary,
     commentPragma,
     commentTrailing,
-    escapeTrigger,
     triggerEscaped,
   )
 import Tilia.Imports (normalizeImports)
+import Tilia.Parser (ParsedModule (..))
+import Tilia.Source (comments, sourceLines)
 import Tilia.Span (Span (..))
 import Tilia.Span.Ghc (spanOf, spansOf)
 import Tilia.Utils (tshow)
@@ -331,7 +332,7 @@
   _ -> Nothing
   where
     normalised :: [LImportDecl GhcPs] -> [LImportDecl GhcPs]
-    normalised = normalizeImports (Is #implicitPrelude) [] []
+    normalised = normalizeImports (Is #implicitPrelude) [] [] []
     alongside before after
       | length before /= length after =
           Just (describe path "the module imports a different set of modules")
@@ -406,8 +407,8 @@
         <> name
         <> " does not expose its structure and is not one of the types this\
            \ knows how to compare. Decide whether it carries meaning and add\
-           \ it to `opaque`, or to `alsoOnlyAboutPlacement` if it is a\
-           \ position."
+           \ it to `opaque`, or to `alsoNotation` if it records only\
+           \ punctuation, position or spelling."
   where
     by :: forall t. (Typeable t, Eq t) => Bool
     by = case (cast x, cast y) of
@@ -438,13 +439,12 @@
 -- documents has to become @-- | x@—so the text is not expected to survive,
 -- but the comment is.
 commentDifference ::
-  -- | The module each stream came from, which is asked only how far down its
-  -- header reaches.
-  (HsModule GhcPs, HsModule GhcPs) ->
-  [Comment] ->
-  [Comment] ->
+  -- | The module as written.
+  ParsedModule ->
+  -- | The module as printed.
+  ParsedModule ->
   Maybe Text
-commentDifference (moduleBefore, moduleAfter) before0 after0
+commentDifference parsedBefore parsedAfter
   | not (Set.null lost) = Just ("lost the pragma " <> pragmaList lost)
   | not (Set.null gained) = Just ("invented the pragma " <> pragmaList gained)
   | docsBefore /= docsAfter =
@@ -459,8 +459,12 @@
           (settled (withinHeader moduleBefore before))
           (settled (withinHeader moduleAfter after))
   where
-    before = escapedAndSplit before0
-    after = escapedAndSplit after0
+    moduleBefore = pmModule parsedBefore
+    moduleAfter = pmModule parsedAfter
+    before = asRead parsedBefore
+    after = asRead parsedAfter
+    asRead m =
+      concatMap (asOrdinary (sourceLines (pmSource m))) (comments (pmSource m))
 
     belowHeader m = filter (not . inHeader m) . ordinary
     withinHeader m = filter (inHeader m) . ordinary
@@ -470,20 +474,6 @@
       Nothing -> False
       Just lastLine -> spanStartLine (commentSpan c) <= lastLine
 
-    escapedAndSplit = concatMap explode
-
-    explode c = case commentStyle c of
-      DocComment
-        | "--" `T.isPrefixOf` NE.head (commentBody c) ->
-            [ c{commentBody = l :| [], commentCodeBeforeStopsAt = before'}
-            | (n, l) <- zip [0 :: Int ..] (NE.toList (body (escapeTrigger c))),
-              let before' =
-                    if n == 0 then commentCodeBeforeStopsAt c else Nothing
-            ]
-        | otherwise -> [escapeTrigger c]
-      _ -> [c]
-    body = commentBody
-
     lost = pragmasOf before `Set.difference` pragmasOf after
     gained = pragmasOf after `Set.difference` pragmasOf before
     docsBefore = length (documentation before)
@@ -525,7 +515,11 @@
 -- | A comment's lines, as they are compared.
 bodyKey :: Comment -> NonEmpty Text
 bodyKey c = case commentBody c of
-  (l :| []) -> T.stripStart l :| []
+  (l :| []) -> case T.stripPrefix "--" stripped of
+    Just rest -> "--" <> T.stripStart rest :| []
+    Nothing -> stripped :| []
+    where
+      stripped = T.stripStart l
   ls -> ls
 
 -- | The last line the formatter may reorder: the end of the last import, or
diff --git a/src/Tilia/Fixity.hs b/src/Tilia/Fixity.hs
--- a/src/Tilia/Fixity.hs
+++ b/src/Tilia/Fixity.hs
@@ -10,6 +10,7 @@
     Direction (..),
     Fixity (..),
     defaultFixity,
+    spellFixity,
 
     -- * Module declarations
     declaredFixities,
@@ -19,21 +20,20 @@
     -- * Module exports
     ExportItem (..),
     moduleExports,
-    declaredChildren,
-    moduleChildren,
+    declaredMembers,
+    listedMembers,
 
     -- * Module imports
     Import (..),
     ImportItem (..),
     moduleImports,
-    mightBring,
-    surelyNames,
-    KnownModules (..),
-    noKnownModules,
+    maySupply,
+    certainlyBrings,
+    decides,
     Namespace (..),
     Fixities,
     inBothNamespaces,
-    UnreadModule (..),
+    Certain (..),
     ModuleChain (..),
     spellModuleChain,
     Scope (..),
@@ -50,34 +50,50 @@
     Unknown (..),
     operatorsUsed,
     unknownOperators,
+    capturedUses,
     operatorSpelling,
     spellUnreadIn,
+    spellDisagreement,
 
+    -- * Module summaries
+    ModuleSummary (..),
+    summarize,
+
     -- * What reading a module established
     Established (..),
-    Exported (..),
-    exportedNames,
-    asExported,
+    unreadable,
+    settlesEverything,
+    unsettledThrough,
   )
 where
 
+import Control.DeepSeq (NFData)
+import Data.Bifunctor (first)
+import Data.Char (isUpper)
 import Data.Choice (Choice, isTrue)
 import Data.Foldable (toList)
 import Data.Generics.Schemes (listify)
+import Data.List (nub, sortOn, tails)
 import Data.List.NonEmpty (NonEmpty ((:|)), nonEmpty)
+import Data.List.NonEmpty qualified as NE
 import Data.Map.Strict (Map)
 import Data.Map.Strict qualified as Map
-import Data.Maybe (fromMaybe, mapMaybe)
+import Data.Maybe (mapMaybe)
 import Data.Set (Set)
 import Data.Set qualified as Set
 import Data.Text (Text)
 import Data.Text qualified as T
+import GHC.Generics (Generic)
 import GHC.Hs hiding (Fixity, OpName)
 import GHC.Types.Fixity qualified as GHC
 import GHC.Types.Name.Occurrence (occNameString)
 import GHC.Types.Name.Reader (RdrName (..), rdrNameOcc)
 import GHC.Types.SrcLoc (GenLocated (..), unLoc)
+import Tilia.Gathered (Gathered (..))
 import Tilia.Palette (Color (Place), Palette, paint)
+import Tilia.Span (Span, covers)
+import Tilia.Span.Ghc (spanOf)
+import Tilia.Utils (collected, spellList)
 
 ----------------------------------------------------------------------------
 -- Fixities
@@ -85,23 +101,39 @@
 -- | An operator, spelled as it appears in an @infix@ declaration: @<+>@, or
 -- @div@ for a function used infix in backticks.
 newtype OpName = OpName Text
-  deriving (Eq, Ord, Show)
+  deriving (Eq, Ord, Show, Generic)
 
+instance NFData OpName
+
 -- | Which way an operator associates.
 data Direction = LeftAssoc | RightAssoc | NoAssoc
-  deriving (Eq, Show)
+  deriving (Eq, Show, Generic)
 
+instance NFData Direction
+
 -- | A fixity: how tightly an operator binds, and which way it associates.
 data Fixity = Fixity
   { fixityDirection :: Direction,
     fixityPrecedence :: Int
   }
-  deriving (Eq, Show)
+  deriving (Eq, Show, Generic)
 
+instance NFData Fixity
+
 -- | What an operator with no declaration in scope means: @infixl 9@.
 defaultFixity :: Fixity
 defaultFixity = Fixity LeftAssoc 9
 
+-- | A fixity, written the way it would be declared.
+spellFixity :: Fixity -> Text
+spellFixity (Fixity direction precedence) =
+  which direction <> " " <> T.pack (show precedence)
+  where
+    which = \case
+      LeftAssoc -> "infixl"
+      RightAssoc -> "infixr"
+      NoAssoc -> "infix"
+
 ----------------------------------------------------------------------------
 -- Module declarations
 
@@ -154,7 +186,7 @@
       ValD _ b -> boundNames b
       SigD _ sig -> signedNames sig
       ForD _ f -> [opName (unLoc (fd_name f))]
-      TyClD _ d@DataDecl{} -> membersOf d
+      TyClD _ d@DataDecl{} -> fmap snd (membersOf d)
       TyClD _ ClassDecl{tcdSigs} -> concatMap (classMethods . unLoc) tcdSigs
       _ -> []
 
@@ -165,18 +197,19 @@
   ClassOpSig _ _ ns _ -> fmap (opName . unLoc) ns
   _ -> []
 
--- | The names a declaration carries under the name it declares: a data
--- type's constructors and record fields, a class's methods and the
--- families it keeps.
+-- | The members of the type or class a declaration declares, by
+-- namespace: a data type's constructors and record fields, a class's
+-- methods and associated families.
 --
 -- These are what @T(..)@ stands for, and each of them can carry a fixity of
 -- its own—@:|@ is a constructor and @infixr 5@ all the same.
-membersOf :: TyClDecl GhcPs -> [OpName]
+membersOf :: TyClDecl GhcPs -> [(Namespace, OpName)]
 membersOf = \case
-  DataDecl{tcdDataDefn} -> concatMap (fromCon . unLoc) (consOf (dd_cons tcdDataDefn))
+  DataDecl{tcdDataDefn} ->
+    fmap (InTerms,) (concatMap (fromCon . unLoc) (consOf (dd_cons tcdDataDefn)))
   ClassDecl{tcdSigs, tcdATs} ->
-    concatMap (classMethods . unLoc) tcdSigs
-      <> [opName (unLoc (fdLName (unLoc f))) | f <- tcdATs]
+    fmap (InTerms,) (concatMap (classMethods . unLoc) tcdSigs)
+      <> [(InTypes, opName (unLoc (fdLName (unLoc f)))) | f <- tcdATs]
   _ -> []
   where
     consOf :: DataDefnCons (LConDecl GhcPs) -> [LConDecl GhcPs]
@@ -226,27 +259,10 @@
 -- declarations. This one is asked of an export list: a name a module
 -- exports and also defines needs no chasing, and one it merely reexports
 -- does.
-declaredNames :: HsModule GhcPs -> Set OpName
-declaredNames = Set.fromList . concatMap (fromDecl . unLoc) . hsmodDecls
+declaredNames :: HsModule GhcPs -> Set (Namespace, OpName)
+declaredNames hsModule = Set.map (InTypes,) types <> Set.map (InTerms,) terms
   where
-    fromDecl = \case
-      ValD _ b -> fromBind b
-      SigD _ sig -> fromSig sig
-      TyClD _ t -> fromTyCl t
-      ForD _ f -> [opName (unLoc (fd_name f))]
-      _ -> []
-
-    fromBind = boundNames
-
-    fromSig = \case
-      FixSig _ (FixitySig _ ns _) -> fmap (opName . unLoc) ns
-      sig -> signedNames sig
-
-    fromTyCl = \case
-      FamDecl _ (FamilyDecl{fdLName}) -> [opName (unLoc fdLName)]
-      SynDecl{tcdLName} -> [opName (unLoc tcdLName)]
-      d@DataDecl{tcdLName} -> opName (unLoc tcdLName) : membersOf d
-      d@ClassDecl{tcdLName} -> opName (unLoc tcdLName) : membersOf d
+    (types, terms) = declaredNamespaces hsModule
 
 -- | The names a binding brings into being.
 boundNames :: HsBind GhcPs -> [OpName]
@@ -270,30 +286,35 @@
 
 -- | One entry of a module's export list.
 data ExportItem
-  = -- | A name, which may or may not be declared in this module, under the
-    -- qualifier it was written with if it was written with one.
-    ExportName (Maybe Text) OpName
+  = -- | A name, which may or may not be declared in this module, in the
+    -- namespace the list writes it in, under the qualifier it was written
+    -- with if it was written with one.
+    ExportName Namespace (Maybe Text) OpName
   | -- | @T(..)@: the name, and with it whatever the module has to give
     -- under that name. Which names those are cannot be read off the list;
     -- it takes the declaration of @T@, or the module @T@ came from.
     ExportAll (Maybe Text) OpName
+  | -- | @T(a, b)@: the name, and the members written out beside it.
+    ExportSome (Maybe Text) OpName [OpName]
   | -- | @module M@, re-exporting everything that module brought in.
     ExportModule Text
-  deriving (Eq, Show)
+  deriving (Eq, Show, Generic)
 
+instance NFData ExportItem
+
 -- | A module's export list, or 'Nothing' if it has none.
 moduleExports :: HsModule GhcPs -> Maybe [ExportItem]
 moduleExports =
   fmap (concatMap (fromIE . unLoc) . unLoc) . hsmodExports
   where
     fromIE = \case
-      IEVar _ n _ -> [named n]
-      IEThingAbs _ n _ -> [named n]
+      IEVar _ n _ -> [as (ExportName InTerms) n]
+      IEThingAbs _ n _ -> [as (ExportName InTypes) n]
       IEThingAll _ n _ -> [as ExportAll n]
-      IEThingWith _ n _ ns _ -> named n : fmap named ns
+      IEThingWith _ n _ ns _ ->
+        [as ExportSome n (fmap (opName . ieWrappedName . unLoc) ns)]
       IEModuleContents _ m -> [ExportModule (T.pack (moduleNameString (unLoc m)))]
       _ -> []
-    named = as ExportName
     as item n =
       let rdr = ieWrappedName (unLoc n)
        in item (qualifierOf rdr) (opName rdr)
@@ -304,9 +325,9 @@
   Qual m _ -> Just (T.pack (moduleNameString m))
   _ -> Nothing
 
--- | What each type or class a module declares carries with it.
-declaredChildren :: HsModule GhcPs -> Map OpName (Set OpName)
-declaredChildren =
+-- | The members of each type or class a module declares.
+declaredMembers :: HsModule GhcPs -> Map OpName (Set (Namespace, OpName))
+declaredMembers =
   Map.fromListWith Set.union . concatMap (fromDecl . unLoc) . hsmodDecls
   where
     fromDecl = \case
@@ -315,16 +336,15 @@
       _ -> []
     entry name d = (opName (unLoc name), Set.fromList (membersOf d))
 
--- | What a module offers under each name, as its export list offers it.
-moduleChildren :: HsModule GhcPs -> Map OpName (Set OpName)
-moduleChildren hsModule = case hsmodExports hsModule of
+-- | The members a module's export list offers with each name.
+listedMembers :: HsModule GhcPs -> Map OpName (Set OpName)
+listedMembers hsModule = case hsmodExports hsModule of
   Nothing -> declared
   Just items -> Map.fromListWith Set.union (concatMap (fromIE . unLoc) (unLoc items))
   where
-    declared = declaredChildren hsModule
+    declared = Map.map (Set.map snd) (declaredMembers hsModule)
     fromIE = \case
-      IEThingAll _ n _ ->
-        [(nameOf n, Map.findWithDefault Set.empty (nameOf n) declared)]
+      IEThingAll _ n _ -> [(nameOf n, kids) | Just kids <- [Map.lookup (nameOf n) declared]]
       IEThingWith _ n _ ns _ -> [(nameOf n, Set.fromList (fmap nameOf ns))]
       _ -> []
     nameOf = opName . ieWrappedName . unLoc
@@ -349,28 +369,33 @@
     -- what it brings in only once the module it comes from has been asked.
     importNames :: Maybe (Bool, [ImportItem])
   }
-  deriving (Eq, Show)
+  deriving (Eq, Show, Generic)
 
+instance NFData Import
+
 -- | One entry of an import list.
 data ImportItem
   = -- | A plain name.
     ImportedName OpName
-  | -- | @T(..)@: the name, and everything the module offers under it.
+  | -- | @T(..)@: the name, and every member the module offers with it.
     ImportedAll OpName
   | -- | @T(a, b)@: the name and the members written out beside it.
     ImportedSome OpName [OpName]
-  deriving (Eq, Show)
+  deriving (Eq, Show, Generic)
 
--- | The imports of a module.
+instance NFData ImportItem
+
+-- | The imports of a module, all its configurations taken together.
 moduleImports ::
   -- | Whether @ImplicitPrelude@ is on.
   Choice "implicitPrelude" ->
-  -- | Parsed module.
-  HsModule GhcPs ->
+  -- | The module's configurations, parsed.
+  NonEmpty (HsModule GhcPs) ->
   [Import]
-moduleImports implicitPrelude hsModule = prelude <> written
+moduleImports implicitPrelude configurations = prelude <> written
   where
-    written = fmap (fromDecl . unLoc) (hsmodImports hsModule)
+    written =
+      nub (fmap (fromDecl . unLoc) (sortOn spanOf (concatMap hsmodImports configurations)))
     prelude
       | not (isTrue implicitPrelude) = []
       | any ((== "Prelude") . importModule) written = []
@@ -407,75 +432,106 @@
     nameOf :: LIEWrappedName GhcPs -> OpName
     nameOf = opName . ieWrappedName . unLoc
 
--- | Could this list bring the operator in?
-mightBring ::
-  -- | What each name in the list keeps under it, where that is known.
+-- | Could this import bring the operator in, as far as its list says?
+--
+-- A @T(..)@ whose members are not known is taken to bring anything in, and
+-- to hide nothing but @T@ itself.
+mayBring ::
+  -- | The members of each name in the list, where they are known.
   Map OpName (Set OpName) ->
   -- | The operator being looked for.
   OpName ->
-  -- | The entries of the import list.
-  [ImportItem] ->
+  Import ->
   Bool
-mightBring carries op = any $ \case
-  ImportedName n -> n == op
-  ImportedSome parent ns -> parent == op || op `elem` ns
-  ImportedAll parent -> maybe True (names parent) (Map.lookup parent carries)
-  where
-    names parent kids = parent == op || Set.member op kids
+mayBring members op i = case importNames i of
+  Nothing -> True
+  Just (True, hidden) -> not (any (namedBy members False op) hidden)
+  Just (False, shown) -> any (namedBy members True op) shown
 
--- | Does this list certainly name the operator?
-surelyNames ::
-  -- | What each name in the list keeps under it, where that is known.
+-- | Does an item of an import list name the operator, taking a @T(..)@ whose
+-- members are not known to name it or not as told?
+namedBy ::
+  -- | The members of each name in the list, where they are known.
   Map OpName (Set OpName) ->
+  -- | What a @T(..)@ whose members are not known is taken to say.
+  Bool ->
   -- | The operator being looked for.
   OpName ->
-  -- | The entries of the import list.
-  [ImportItem] ->
+  ImportItem ->
   Bool
-surelyNames carries op = any $ \case
+namedBy members unknown op = \case
   ImportedName n -> n == op
   ImportedSome parent ns -> parent == op || op `elem` ns
   ImportedAll parent ->
-    maybe
-      (parent == op)
-      (names parent)
-      (Map.lookup parent carries)
-  where
-    names parent kids = parent == op || Set.member op kids
+    parent == op || maybe unknown (Set.member op) (Map.lookup parent members)
 
--- | What is known about the imported modules.
-data KnownModules = KnownModules
-  { -- | The fixities a module exports, or 'Nothing' if that could not be
-    -- determined.
-    knownFixities :: Text -> Maybe Fixities,
-    -- | What a module keeps under each of its names, so that a @T(..)@ in
-    -- an import list can be told what it brings in.
-    knownChildren :: Text -> Map OpName (Set OpName),
-    -- | The operators a module's export list names, following what it
-    -- reexports. 'Nothing' where a module it hands on could not be read.
-    knownExportNames :: Text -> Maybe (Set OpName),
-    -- | The modules reading a module went through before giving up, the one
-    -- it gave up on last. Asked only about modules 'knownFixities' could
-    -- not answer for, and only so that a message can name the module that
-    -- is really in the way.
-    knownChain :: Text -> [Text]
-  }
+-- | Could this import supply the operator to a use written under this
+-- qualifier?
+maySupply ::
+  -- | The members of each name in the import's list, where they are
+  -- known.
+  Map OpName (Set OpName) ->
+  -- | The qualifier written at the use site, if any.
+  Maybe Text ->
+  -- | The operator being looked for.
+  OpName ->
+  Import ->
+  Bool
+maySupply members qualifier op i =
+  maybe (not (importQualified i)) (== importAlias i) qualifier
+    && mayBring members op i
 
--- | No known modules.
-noKnownModules :: KnownModules
-noKnownModules =
-  KnownModules
-    { knownFixities = const Nothing,
-      knownChildren = const Map.empty,
-      knownExportNames = const Nothing,
-      knownChain = const []
-    }
+-- | Does this import bring the name in for certain, as far as its list says?
+--
+-- Where the list could leave the name out, it is taken to: a @T(..)@ whose
+-- members are not known hides anything, and of what a list shows, only a
+-- variable written on its own, a member written under its type, and a member
+-- of a @T(..)@ whose members are known count.
+certainlyBrings ::
+  -- | The members of each name in the import's list, where they are
+  -- known.
+  Map OpName (Set OpName) ->
+  -- | The name, and the namespace it is in.
+  (Namespace, OpName) ->
+  Import ->
+  Bool
+certainlyBrings members (namespace, op) i = case importNames i of
+  Nothing -> True
+  Just (True, hidden) -> not (any (namedBy members True op) hidden)
+  Just (False, shown) -> namespace == InTerms && any listed shown
+  where
+    listed = \case
+      ImportedName n -> n == op && isVariable op
+      ImportedSome _ ns -> op `elem` ns
+      ImportedAll parent -> maybe False (Set.member op) (Map.lookup parent members)
+    isVariable (OpName t) = case T.uncons t of
+      Just (c, _) -> not (isUpper c) && c /= ':'
+      Nothing -> False
 
+-- | Does this import decide the name's fixity, by certainly bringing it
+-- in from a module that settles it?
+--
+-- If so, no other import can give a use of the name another fixity: it
+-- either brings in the same thing or makes the use ambiguous.
+decides ::
+  -- | What reading the module imported established.
+  Established ->
+  -- | The name, and the namespace it is in.
+  (Namespace, OpName) ->
+  Import ->
+  Bool
+decides established name i =
+  Set.member name (certainNames (establishedCertain established))
+    && certainlyBrings (establishedMembers established) name i
+    && null (unsettledThrough established name)
+
 -- | Which of Haskell's two namespaces an operator is written in.
 data Namespace = InTypes | InTerms
-  deriving (Eq, Ord, Show)
+  deriving (Eq, Ord, Show, Generic)
 
--- | The fixities a module offers, by the namespace each is written in.
+instance NFData Namespace
+
+-- | The fixities a module offers.
 type Fixities = Map (Namespace, OpName) Fixity
 
 -- | Take fixities that say nothing about namespaces to govern both.
@@ -487,23 +543,29 @@
       namespace <- [InTypes, InTerms]
     ]
 
--- | An import whose module could not be read, and what is known about it
--- regardless.
-data UnreadModule = UnreadModule
-  { -- | The import as written.
-    unreadImport :: Import,
-    -- | The operators its export list names, as 'knownExportNames' gives
-    -- them.
-    unreadExportNames :: Maybe (Set OpName),
-    -- | What it keeps under each of its names, as 'knownChildren' gives
-    -- them, for expanding a @T(..)@ in the import list.
-    unreadChildren :: Map OpName (Set OpName),
-    -- | The modules reading went through before giving up, as 'knownChain'
-    -- gives them.
-    unreadChain :: [Text]
+-- | What a module certainly brings into scope for a module that imports
+-- it whole.
+data Certain = Certain
+  { -- | Every name it certainly exports.
+    certainNames :: Set (Namespace, OpName),
+    -- | The members it certainly exports with each type or class.
+    certainMembers :: Map OpName (Set (Namespace, OpName))
   }
-  deriving (Eq, Show)
+  deriving (Eq, Show, Generic)
 
+instance NFData Certain
+
+instance Semigroup Certain where
+  a <> b =
+    Certain
+      { certainNames = certainNames a <> certainNames b,
+        certainMembers =
+          Map.unionWith Set.union (certainMembers a) (certainMembers b)
+      }
+
+instance Monoid Certain where
+  mempty = Certain Set.empty Map.empty
+
 -- | An import that could not be read, and the way down to the module that
 -- actually stopped us. The head is the import as the file being formatted
 -- writes it, and the last name is where reading gave up.
@@ -522,9 +584,9 @@
     scopeInTypes :: Reach,
     -- | What is in scope for one written among terms.
     scopeInTerms :: Reach,
-    -- | The imports whose modules could not be read, and what is
-    -- nonetheless known about each.
-    scopeUnread :: [UnreadModule]
+    -- | The imports whose modules leave the fixities of some names
+    -- unsettled, each with what reading its module established.
+    scopeUnsettled :: [(Import, Established)]
   }
   deriving (Eq, Show)
 
@@ -535,10 +597,16 @@
     -- | Reachable as @M.op@, keyed by the alias actually written—or by the
     -- module's own name, under which its own declarations are reachable.
     reachQualified :: Map (Text, OpName) (Fixity, Provenance),
-    -- | Operators the imports bring in with two different fixities, as they
-    -- would have to be written to run into it: without a qualifier, or
-    -- under the alias the disagreeing imports share.
-    reachAmbiguous :: [(Maybe Text, OpName)]
+    -- | Operators the imports bring in with different fixities, as they
+    -- would have to be written to run into it—without a qualifier, or under
+    -- the alias the disagreeing imports share—with the module each import
+    -- names and the fixity it brings.
+    reachAmbiguous :: Map (Maybe Text, OpName) (NonEmpty (Text, Fixity)),
+    -- | The uses a module that was read decides in this namespace, as they
+    -- would be written: of a name the module defines itself, or one an import
+    -- that was read certainly brings in, which no unread import can give
+    -- another fixity.
+    reachDecided :: Set (Maybe Text, OpName)
   }
   deriving (Eq, Show)
 
@@ -553,81 +621,88 @@
 resolveScope ::
   -- | Whether @ImplicitPrelude@ is on.
   Choice "implicitPrelude" ->
-  -- | What is known about the modules this one imports.
-  KnownModules ->
-  -- | Parsed module.
-  HsModule GhcPs ->
+  -- | What reading each module this one imports established.
+  (Text -> Established) ->
+  -- | The module's configurations, parsed.
+  NonEmpty (HsModule GhcPs) ->
   Scope
-resolveScope implicitPrelude known hsModule =
+resolveScope implicitPrelude known configurations =
   Scope
     { scopeInTypes = reachAmong InTypes,
       scopeInTerms = reachAmong InTerms,
-      scopeUnread = unread
+      scopeUnsettled =
+        [ (i, established)
+        | i <- imports,
+          let established = known (importModule i),
+          not (settlesEverything established)
+        ]
     }
   where
-    KnownModules{knownFixities = exportsOf, knownChildren, knownExportNames, knownChain} = known
-    exportNamesOf = knownExportNames
-    imports = moduleImports implicitPrelude hsModule
-    declared = declaredFixities hsModule
+    imports = moduleImports implicitPrelude configurations
+    declared = Map.unions (fmap declaredFixities configurations)
 
     reachAmong namespace =
       Reach
-        { reachUnqualified = Map.union own (Map.map fst unqualified),
+        { reachUnqualified = Map.union own (Map.map settled unqualified),
           reachQualified = qualified,
           reachAmbiguous =
-            [(Nothing, op) | op <- Map.keys (Map.filter snd unqualified)]
-              <> [(Just alias, op) | (alias, op) <- Map.keys (Map.filter snd qualifiedFrom)]
+            Map.union
+              (Map.mapKeys (Nothing,) (Map.mapMaybe disagreeing unqualified))
+              (Map.mapKeys (first Just) (Map.mapMaybe disagreeing qualifiedFrom)),
+          reachDecided =
+            Set.fromList $
+              [ (qualifier, op)
+              | c <- toList configurations,
+                op <- Set.toList (inNamespace (declaredNamespaces c)),
+                qualifier <- Nothing : fmap Just ownNames
+              ]
+                <> [ (qualifier, op)
+                   | i <- imports,
+                     let established = known (importModule i),
+                     name@(n, op) <- Set.toList (certainNames (establishedCertain established)),
+                     n == namespace,
+                     decides established name i,
+                     qualifier <- [Nothing | not (importQualified i)] <> [Just (importAlias i)]
+                   ]
         }
       where
+        inNamespace = case namespace of
+          InTypes -> fst
+          InTerms -> snd
+        ownNames = concatMap (toList . moduleName) configurations
         own = Map.map (,DeclaredHere) (fixitiesIn namespace declared)
-        offered m = fixitiesIn namespace <$> exportsOf m
+        offered m = fixitiesIn namespace (establishedFixities (known m))
         unqualified =
           Map.unionsWith
-            disagree
-            [ Map.map (,False) (visible offered i)
+            (<>)
+            [ visible offered i
             | i <- imports,
               not (importQualified i)
             ]
-        qualified = Map.union ownQualified (Map.map fst qualifiedFrom)
+        qualified = Map.union ownQualified (Map.map settled qualifiedFrom)
         ownQualified =
           Map.fromList
             [ ((m, op), entry)
-            | m <- toList (moduleName hsModule),
+            | m <- ownNames,
               (op, entry) <- Map.toList own
             ]
         qualifiedFrom =
           Map.unionsWith
-            disagree
-            [ Map.mapKeys (importAlias i,) (Map.map (,False) (visible offered i))
+            (<>)
+            [ Map.mapKeys (importAlias i,) (visible offered i)
             | i <- imports
             ]
 
-    unread =
-      [ UnreadModule
-          { unreadImport = i,
-            unreadExportNames = exportNamesOf (importModule i),
-            unreadChildren = knownChildren (importModule i),
-            unreadChain = knownChain (importModule i)
-          }
-      | i <- imports,
-        Nothing <- [exportsOf (importModule i)]
-      ]
+    settled ((m, fixity) :| _) = (fixity, DeclaredIn m)
 
-    disagree (a, aBad) (b, bBad) = (a, aBad || bBad || fst a /= fst b)
+    disagreeing offers@((_, fixity) :| _)
+      | all ((== fixity) . snd) offers = Nothing
+      | otherwise = Just (NE.nub offers)
 
     visible offered i =
-      let exported =
-            Map.map (,DeclaredIn (importModule i)) $
-              fromMaybe Map.empty (offered (importModule i))
-          carries = knownChildren (importModule i)
-       in case importNames i of
-            Nothing -> exported
-            Just (True, hidden) ->
-              Map.filterWithKey
-                (\op _ -> not (surelyNames carries op hidden))
-                exported
-            Just (False, shown) ->
-              Map.filterWithKey (\op _ -> mightBring carries op shown) exported
+      Map.filterWithKey
+        (\op _ -> mayBring (establishedMembers (known (importModule i))) op i)
+        (Map.map (\fixity -> (importModule i, fixity) :| []) (offered (importModule i)))
 
 -- | The fixities in one namespace, by the operator alone.
 fixitiesIn :: Namespace -> Fixities -> Map OpName Fixity
@@ -651,6 +726,8 @@
     DeclaredHere
   | -- | An @infix@ declaration in the named imported module.
     DeclaredIn Text
+  | -- | The language itself, as for @:@, whatever is in scope.
+    BuiltIn
   | -- | No declaration exists anywhere in scope, and every module in scope
     -- was successfully consulted, so the Report's @infixl 9@ applies.
     ReportDefault
@@ -679,7 +756,7 @@
 lookupFixity scope namespace qualifier op =
   case fixityInScope scope namespace qualifier op of
     Just (_, (fixity, provenance)) -> Resolved fixity provenance
-    Nothing -> case nonEmpty (unreadThatMightDeclare scope qualifier op) of
+    Nothing -> case nonEmpty (unreadThatMightDeclare scope namespace qualifier op) of
       Nothing -> Resolved defaultFixity ReportDefault
       Just missing -> Unresolved missing
 
@@ -696,46 +773,55 @@
   -- | The fixity and where it came from, under the namespace that supplied
   -- it. 'Nothing' where the scope has no answer.
   Maybe (Namespace, (Fixity, Provenance))
-fixityInScope scope namespace qualifier op =
-  case mapMaybe found (namespace : promotedFrom namespace) of
-    (answer : _) -> Just answer
-    [] -> Nothing
+fixityInScope scope namespace qualifier op
+  | Just fixity <- Map.lookup op builtInSyntax =
+      Just (namespace, (fixity, BuiltIn))
+  | otherwise =
+      case mapMaybe found (namespace : promotedFrom namespace) of
+        (answer : _) -> Just answer
+        [] -> Nothing
   where
-    promotedFrom = \case
-      InTypes -> [InTerms]
-      InTerms -> []
     found n =
       (n,) <$> case qualifier of
         Nothing -> Map.lookup op (reachUnqualified (reachIn n scope))
         Just q -> Map.lookup (q, op) (reachQualified (reachIn n scope))
 
+-- | The operators the language gives a fixity, rather than a declaration
+-- anywhere: @:@ alone.
+builtInSyntax :: Map OpName Fixity
+builtInSyntax = Map.singleton (OpName ":") (Fixity RightAssoc 5)
+
+-- | The namespaces a use written in this one may also refer to.
+promotedFrom :: Namespace -> [Namespace]
+promotedFrom = \case
+  InTypes -> [InTerms]
+  InTerms -> []
+
 -- | The unread imports that could have declared this operator.
 unreadThatMightDeclare ::
   -- | The scope.
   Scope ->
+  -- | The namespace the operator is written in.
+  Namespace ->
   -- | The qualifier written at the use site, if any.
   Maybe Text ->
   -- | Operator being resolved.
   OpName ->
   -- | The imports that could hold the answer, each down to the module that
-  -- actually stopped us.
+  -- actually stopped us, and each module once.
   [ModuleChain]
-unreadThatMightDeclare scope qualifier op =
-  [ ModuleChain (importModule (unreadImport u) :| unreadChain u)
-  | u <- scopeUnread scope,
-    reaches (unreadImport u),
-    brings u,
-    exports u
-  ]
+unreadThatMightDeclare scope namespace qualifier op
+  | null blamed = []
+  | Set.member (qualifier, op) (reachDecided (reachIn namespace scope)) = []
+  | otherwise = nub blamed
   where
-    exports u = maybe True (Set.member op) (unreadExportNames u)
-    reaches i = case qualifier of
-      Nothing -> not (importQualified i)
-      Just q -> q == importAlias i
-    brings u = case importNames (unreadImport u) of
-      Nothing -> True
-      Just (True, hidden) -> not (surelyNames (unreadChildren u) op hidden)
-      Just (False, shown) -> mightBring (unreadChildren u) op shown
+    blamed =
+      [ ModuleChain (importModule i :| chain)
+      | (i, established) <- scopeUnsettled scope,
+        maySupply (establishedMembers established) qualifier op i,
+        n <- namespace : promotedFrom namespace,
+        chain <- unsettledThrough established (n, op)
+      ]
 
 ----------------------------------------------------------------------------
 -- What could not be answered
@@ -746,53 +832,128 @@
     -- actually stopped us, and the declaration the answer depends on may be
     -- in any of them.
     NotRead (NonEmpty ModuleChain)
-  | -- | Two modules in scope bring it in with different fixities, so which
-    -- one applies cannot be read off the imports alone.
-    Ambiguous
+  | -- | The imports in scope bring it in with different fixities, given as
+    -- the module each import names and the fixity it brings, so which one
+    -- applies cannot be read off the imports alone.
+    Ambiguous (NonEmpty (Text, Fixity))
   deriving (Eq, Show)
 
--- | Every operator the module uses where its fixity decides the layout.
+-- | Every operator the module uses where its fixity decides the layout and
+-- the scope has to settle it, which is all of them but the uses
+-- 'capturedUses' settles.
 --
 -- Only these positions. An operator chain in an expression and one in a type
 -- are regrouped by precedence, so getting the precedence wrong changes what
 -- the code means. Everywhere else—a section, the left-hand side of a
 -- definition, an @infix@ declaration—the operator stands on its own and
 -- nothing is regrouped around it.
-operatorsUsed :: HsModule GhcPs -> [(Namespace, (Maybe Text, OpName))]
-operatorsUsed hsModule =
+operatorsUsed :: Gathered -> [(Namespace, (Maybe Text, OpName))]
+operatorsUsed found =
   fmap (named InTerms) inExpressions <> fmap (named InTypes) inTypes
   where
+    captured = capturedUses found
     inExpressions =
       [ n
-      | e :: HsExpr GhcPs <- listify (const True) hsModule,
-        OpApp _ _ op _ <- [e],
-        HsVar _ (L _ n) <- [unLoc op]
+      | OpApp _ _ op _ <- gatheredExpressions found,
+        HsVar _ (L _ n) <- [unLoc op],
+        maybe True (`Map.notMember` captured) (spanOf op)
       ]
     inTypes =
-      [ n
-      | t :: HsType GhcPs <- listify (const True) hsModule,
-        HsOpTy _ _ _ (L _ n) _ <- [t]
-      ]
+      [n | HsOpTy _ _ _ (L _ n) _ <- gatheredTypes found]
     named namespace n =
       (namespace, (qualifierOf n, OpName (T.pack (occNameString (rdrNameOcc n)))))
 
+-- | The uses of an operator in an expression that a local binding captures,
+-- by where the operator is written, with the fixity the binding's group
+-- declares for it, or @infixl 9@.
+--
+-- A use is captured where it falls within what a binder is in scope over,
+-- which is read off spans: the right-hand sides and the @where@ of a match,
+-- a @let@, the statements after a bind. Bindings that are in scope more
+-- widely than that, as in @mdo@, are passed over, and so is a use that
+-- bindings with different fixities could each capture.
+capturedUses :: Gathered -> Map Span Fixity
+capturedUses found =
+  Map.fromList
+    [ (s, fixity)
+    | (s, name) <- uses,
+      [fixity] <- [nub [f | (f, region) <- Map.findWithDefault [] name binders, covers region s]]
+    ]
+  where
+    uses =
+      [ (s, opName n)
+      | OpApp _ _ op _ <- gatheredExpressions found,
+        HsVar _ (L _ n@(Unqual _)) <- [unLoc op],
+        Just s <- [spanOf op]
+      ]
+    binders =
+      Map.fromListWith
+        (<>)
+        [ (name, [(f, region)])
+        | (name, f, regions) <- concatMap fromMatch (gatheredMatches found) <> concatMap fromExpression (gatheredExpressions found),
+          Set.member name used,
+          Just region <- regions
+        ]
+    used = Set.fromList (fmap snd uses)
+
+    fromMatch (Match _ _ (L _ pats) (GRHSs _ rhss binds)) =
+      [ (name, f, fmap spanOf (toList rhss) <> bindingSpans binds)
+      | (name, f) <- patternBinders pats <> localBinders binds
+      ]
+        <> concatMap guarded rhss
+    fromExpression = \case
+      HsLet _ binds body ->
+        [(name, f, bindingSpans binds <> [spanOf body]) | (name, f) <- localBinders binds]
+      HsDo _ _ (L _ stmts) -> inSequence stmts []
+      HsMultiIf _ rhss -> concatMap guarded rhss
+      _ -> []
+    guarded (L _ (GRHS _ guards body)) = inSequence guards [spanOf body]
+
+    inSequence stmts after =
+      concat
+        [ case unLoc stmt of
+            BindStmt _ pat _ ->
+              [(name, f, fmap spanOf later <> after) | (name, f) <- patternBinders [pat]]
+            LetStmt _ binds ->
+              [(name, f, fmap spanOf (stmt : later) <> after) | (name, f) <- localBinders binds]
+            _ -> []
+        | stmt : later <- tails stmts
+        ]
+
+    patternBinders pats =
+      [(opName n, defaultFixity) | n <- collectPatsBinders CollNoDictBinders pats]
+    localBinders binds =
+      [ (opName n, Map.findWithDefault defaultFixity (opName n) declared)
+      | let declared = localFixities binds,
+        n <- collectLocalBinders CollNoDictBinders binds
+      ]
+    localFixities = \case
+      HsValBinds _ (ValBinds _ _ sigs) ->
+        Map.fromList
+          [ (opName (unLoc n), fromGhcFixity fixity)
+          | L _ (FixSig _ (FixitySig _ names fixity)) <- sigs,
+            n <- names
+          ]
+      _ -> Map.empty
+    bindingSpans = \case
+      HsValBinds _ (ValBinds _ bs _) -> fmap spanOf bs
+      _ -> []
+
 -- | The operators this module uses that the scope cannot settle, as the
 -- module writes them.
 --
 -- Empty is the only acceptable answer: an operator whose fixity is not
 -- known cannot be laid out, only guessed at.
-unknownOperators :: Scope -> HsModule GhcPs -> [((Maybe Text, OpName), Unknown)]
-unknownOperators scope hsModule =
-  Map.toList (Map.fromList (mapMaybe unsettled (operatorsUsed hsModule)))
+unknownOperators :: Scope -> NonEmpty Gathered -> [((Maybe Text, OpName), Unknown)]
+unknownOperators scope found =
+  Map.toList (Map.fromList (mapMaybe unsettled (concatMap operatorsUsed found)))
   where
-    ambiguous namespace = Set.fromList (reachAmbiguous (reachIn namespace scope))
     unsettled (namespace, (qualifier, op)) =
       case fixityInScope scope namespace qualifier op of
-        Just (answering, _)
-          | Set.member (qualifier, op) (ambiguous answering) ->
-              Just ((qualifier, op), Ambiguous)
-          | otherwise -> Nothing
-        Nothing -> case nonEmpty (unreadThatMightDeclare scope qualifier op) of
+        Just (answering, _) ->
+          ((qualifier, op),) . Ambiguous
+            <$> Map.lookup (qualifier, op) (reachAmbiguous (reachIn answering scope))
+        Nothing -> case nonEmpty (unreadThatMightDeclare scope namespace qualifier op) of
           Just missing -> Just ((qualifier, op), NotRead missing)
           Nothing -> Nothing
 
@@ -818,33 +979,126 @@
       [_, _] -> "neither of which this run could read"
       _ -> "none of which this run could read"
 
+-- | Spell out the fixities an ambiguous operator is brought in with, and the
+-- modules that bring each.
+spellDisagreement ::
+  -- | Whether there is anybody there to see color.
+  Palette ->
+  -- | What each import brings, as 'Ambiguous' gives it.
+  NonEmpty (Text, Fixity) ->
+  Text
+spellDisagreement palette offers =
+  case fmap bringing (collected [(fixity, m) | (m, fixity) <- toList offers]) of
+    [one, other] -> one <> " but " <> other
+    each -> spellList each
+  where
+    bringing (fixity, ms) =
+      spellFixity fixity <> " in " <> spellList (fmap (paint palette Place) ms)
+
 ----------------------------------------------------------------------------
+-- Module summaries
+
+-- | Summary of a module: raw facts (per CPP configuration) about a module
+-- we read from source. This is built for both local modules and dependency
+-- modules when they come from tarballs. This is an optimization
+-- mechanism—we create a summary once and then share it during a run. For
+-- local modules it is also persisted in the cache on disk.
+data ModuleSummary = ModuleSummary
+  { -- | The name it gives itself, if it gives one.
+    summaryName :: Maybe Text,
+    -- | Its export list, if it has one.
+    summaryExports :: Maybe [ExportItem],
+    -- | Its imports, an implicit Prelude among them.
+    summaryImports :: [Import],
+    -- | The fixities it declares.
+    summaryFixities :: Fixities,
+    -- | Every name it defines.
+    summaryNames :: Set (Namespace, OpName),
+    -- | The members of each type or class it declares.
+    summaryDeclaredMembers :: Map OpName (Set (Namespace, OpName)),
+    -- | The members its export list offers with each name.
+    summaryListedMembers :: Map OpName (Set OpName)
+  }
+  deriving (Eq, Show, Generic)
+
+instance NFData ModuleSummary
+
+-- | Summarize a module.
+summarize ::
+  -- | Whether @ImplicitPrelude@ is on.
+  Choice "implicitPrelude" ->
+  -- | Parsed module.
+  HsModule GhcPs ->
+  -- | Module summary.
+  ModuleSummary
+summarize implicitPrelude hsModule =
+  ModuleSummary
+    { summaryName = moduleName hsModule,
+      summaryExports = moduleExports hsModule,
+      summaryImports = moduleImports implicitPrelude (pure hsModule),
+      summaryFixities = declaredFixities hsModule,
+      summaryNames = declaredNames hsModule,
+      summaryDeclaredMembers = declaredMembers hsModule,
+      summaryListedMembers = listedMembers hsModule
+    }
+
+----------------------------------------------------------------------------
 -- What reading a module established
 
--- | What reading a module established about its operators.
-data Established
-  = -- | It was read, and declares these.
-    Declares Fixities
-  | -- | It could not be read. The expensive answer of the two, because
-    -- reaching it means exhausting every way of reading the module.
-    Unreadable (Maybe Text)
-  deriving (Eq, Show)
+-- | What reading a module established about the names it exports.
+data Established = Established
+  { -- | The fixities declared for the names it exports, leaving out the ones
+    -- 'establishedUnsettled' leaves unsettled.
+    establishedFixities :: Fixities,
+    -- | The names whose fixities could not be established, under the way
+    -- down to the module where reading gave up, which is empty where that
+    -- is this module.
+    establishedUnsettled :: Map [Text] (Set (Namespace, OpName)),
+    -- | The ways down through which it may export names that cannot be
+    -- told, which leaves every name it does not certainly bring in
+    -- unsettled.
+    establishedUntold :: Set [Text],
+    -- | What it certainly brings in for a module that imports it whole.
+    establishedCertain :: Certain,
+    -- | The members of each of its names, so that a @T(..)@ in an import
+    -- list can be told what it brings in. Every type 'establishedCertain'
+    -- gives members of is among them.
+    establishedMembers :: Map OpName (Set OpName)
+  }
+  deriving (Eq, Show, Generic)
 
--- | What reading a module established about its export list.
-data Exported
-  = -- | The list names these, and they are all the module can supply.
-    Exports (Set OpName)
-  | -- | Nothing that can be enumerated: the list hands whole modules on, or
-    -- the source would not parse.
-    Untellable
-  deriving (Eq, Show)
+instance NFData Established
 
--- | What 'resolveScope' makes of it.
-exportedNames :: Exported -> Maybe (Set OpName)
-exportedNames = \case
-  Exports names -> Just names
-  Untellable -> Nothing
+instance Semigroup Established where
+  a <> b =
+    Established
+      { establishedFixities = Map.union (establishedFixities a) (establishedFixities b),
+        establishedUnsettled =
+          Map.unionWith Set.union (establishedUnsettled a) (establishedUnsettled b),
+        establishedUntold = Set.union (establishedUntold a) (establishedUntold b),
+        establishedCertain = establishedCertain a <> establishedCertain b,
+        establishedMembers =
+          Map.unionWith Set.union (establishedMembers a) (establishedMembers b)
+      }
 
--- | What to write down for an answer the reader worked out.
-asExported :: Maybe (Set OpName) -> Exported
-asExported = maybe Untellable Exports
+instance Monoid Established where
+  mempty = Established Map.empty Map.empty Set.empty mempty Map.empty
+
+-- | What is established about a module that could not be read: nothing.
+unreadable :: Established
+unreadable = mempty{establishedUntold = Set.singleton []}
+
+-- | Does reading a module settle the fixity of every name it exports?
+settlesEverything :: Established -> Bool
+settlesEverything established =
+  Map.null (establishedUnsettled established) && Set.null (establishedUntold established)
+
+-- | The ways down to a module that could not be read that leave the fixity
+-- of a name unsettled.
+unsettledThrough :: Established -> (Namespace, OpName) -> [[Text]]
+unsettledThrough established name =
+  [chain | (chain, names) <- Map.toList (establishedUnsettled established), Set.member name names]
+    <> [ chain
+       | Set.notMember name (certainNames (establishedCertain established)),
+         chain <- Set.toList (establishedUntold established)
+       ]
diff --git a/src/Tilia/Fixity/Builtin.hs b/src/Tilia/Fixity/Builtin.hs
deleted file mode 100644
--- a/src/Tilia/Fixity/Builtin.hs
+++ /dev/null
@@ -1,1182 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-
--- | Fixities of the operators that ship with the compiler.
---
--- Generated by @generate-builtin-fixities.py@ in the root of the
--- repository, from GHC 9.14.1. Run that script again to update this table.
-module Tilia.Fixity.Builtin
-  ( builtinFixities,
-  )
-where
-
-import Data.Map.Strict (Map)
-import Data.Map.Strict qualified as Map
-import Data.Text (Text)
-import Tilia.Fixity
-
--- | Every module the boot packages expose, with the operators it exports.
-builtinFixities :: Map Text Fixities
-builtinFixities =
-  Map.fromList
-    [ entry
-        "Control.Applicative"
-        [("*>", [InTerms], LeftAssoc, 4), ("<$", [InTerms], LeftAssoc, 4), ("<$>", [InTerms], LeftAssoc, 4), ("<*", [InTerms], LeftAssoc, 4), ("<**>", [InTerms], LeftAssoc, 4), ("<*>", [InTerms], LeftAssoc, 4), ("<|>", [InTerms], LeftAssoc, 3)],
-      entry "Control.Applicative.Backwards" [],
-      entry "Control.Applicative.Lift" [],
-      entry
-        "Control.Arrow"
-        [("&&&", [InTerms], RightAssoc, 3), ("***", [InTerms], RightAssoc, 3), ("+++", [InTerms], RightAssoc, 2), ("<+>", [InTerms], RightAssoc, 5), ("<<<", [InTerms], RightAssoc, 1), ("<<^", [InTerms], RightAssoc, 1), (">>>", [InTerms], RightAssoc, 1), (">>^", [InTerms], RightAssoc, 1), ("^<<", [InTerms], RightAssoc, 1), ("^>>", [InTerms], RightAssoc, 1), ("|||", [InTerms], RightAssoc, 2)],
-      entry
-        "Control.Category"
-        [(".", [InTerms], RightAssoc, 9), ("<<<", [InTerms], RightAssoc, 1), (">>>", [InTerms], RightAssoc, 1)],
-      entry "Control.Concurrent" [],
-      entry "Control.Concurrent.Chan" [],
-      entry "Control.Concurrent.MVar" [],
-      entry "Control.Concurrent.QSem" [],
-      entry "Control.Concurrent.QSemN" [],
-      entry "Control.Concurrent.STM" [],
-      entry "Control.Concurrent.STM.TArray" [],
-      entry "Control.Concurrent.STM.TBQueue" [],
-      entry "Control.Concurrent.STM.TChan" [],
-      entry "Control.Concurrent.STM.TMVar" [],
-      entry "Control.Concurrent.STM.TQueue" [],
-      entry "Control.Concurrent.STM.TSem" [],
-      entry "Control.Concurrent.STM.TVar" [],
-      entry
-        "Control.DeepSeq"
-        [("$!!", [InTerms], RightAssoc, 0), ("<$!!>", [InTerms], LeftAssoc, 4), ("deepseq", [InTerms], RightAssoc, 0)],
-      entry "Control.Exception" [],
-      entry "Control.Exception.Annotation" [],
-      entry "Control.Exception.Backtrace" [],
-      entry "Control.Exception.Base" [],
-      entry "Control.Exception.Context" [],
-      entry
-        "Control.Monad"
-        [("<$", [InTerms], LeftAssoc, 4), ("<$!>", [InTerms], LeftAssoc, 4), ("<=<", [InTerms], RightAssoc, 1), ("=<<", [InTerms], RightAssoc, 1), (">=>", [InTerms], RightAssoc, 1), (">>", [InTerms], LeftAssoc, 1), (">>=", [InTerms], LeftAssoc, 1)],
-      entry "Control.Monad.Accum" [],
-      entry "Control.Monad.Catch" [],
-      entry "Control.Monad.Catch.Pure" [],
-      entry "Control.Monad.Cont" [],
-      entry "Control.Monad.Cont.Class" [],
-      entry "Control.Monad.Error.Class" [],
-      entry "Control.Monad.Except" [],
-      entry "Control.Monad.Fail" [],
-      entry "Control.Monad.Fix" [],
-      entry "Control.Monad.IO.Class" [],
-      entry "Control.Monad.Identity" [],
-      entry
-        "Control.Monad.Instances"
-        [("<$", [InTerms], LeftAssoc, 4), (">>", [InTerms], LeftAssoc, 1), (">>=", [InTerms], LeftAssoc, 1)],
-      entry "Control.Monad.RWS" [],
-      entry "Control.Monad.RWS.CPS" [],
-      entry "Control.Monad.RWS.Class" [],
-      entry "Control.Monad.RWS.Lazy" [],
-      entry "Control.Monad.RWS.Strict" [],
-      entry "Control.Monad.Reader" [],
-      entry "Control.Monad.Reader.Class" [],
-      entry "Control.Monad.ST" [],
-      entry "Control.Monad.ST.Lazy" [],
-      entry "Control.Monad.ST.Lazy.Safe" [],
-      entry "Control.Monad.ST.Lazy.Unsafe" [],
-      entry "Control.Monad.ST.Safe" [],
-      entry "Control.Monad.ST.Strict" [],
-      entry "Control.Monad.ST.Unsafe" [],
-      entry "Control.Monad.STM" [],
-      entry "Control.Monad.Select" [],
-      entry "Control.Monad.Signatures" [],
-      entry "Control.Monad.State" [],
-      entry "Control.Monad.State.Class" [],
-      entry "Control.Monad.State.Lazy" [],
-      entry "Control.Monad.State.Strict" [],
-      entry "Control.Monad.Trans" [],
-      entry "Control.Monad.Trans.Accum" [],
-      entry "Control.Monad.Trans.Class" [],
-      entry "Control.Monad.Trans.Cont" [],
-      entry "Control.Monad.Trans.Except" [],
-      entry "Control.Monad.Trans.Identity" [],
-      entry "Control.Monad.Trans.Maybe" [],
-      entry "Control.Monad.Trans.RWS" [],
-      entry "Control.Monad.Trans.RWS.CPS" [],
-      entry "Control.Monad.Trans.RWS.Lazy" [],
-      entry "Control.Monad.Trans.RWS.Strict" [],
-      entry "Control.Monad.Trans.Reader" [],
-      entry "Control.Monad.Trans.Select" [],
-      entry "Control.Monad.Trans.State" [],
-      entry "Control.Monad.Trans.State.Lazy" [],
-      entry "Control.Monad.Trans.State.Strict" [],
-      entry "Control.Monad.Trans.Writer" [],
-      entry "Control.Monad.Trans.Writer.CPS" [],
-      entry "Control.Monad.Trans.Writer.Lazy" [],
-      entry "Control.Monad.Trans.Writer.Strict" [],
-      entry "Control.Monad.Writer" [],
-      entry "Control.Monad.Writer.CPS" [],
-      entry "Control.Monad.Writer.Class" [],
-      entry "Control.Monad.Writer.Lazy" [],
-      entry "Control.Monad.Writer.Strict" [],
-      entry "Control.Monad.Zip" [],
-      entry
-        "Data.Array"
-        [("!", [InTerms], LeftAssoc, 9), ("//", [InTerms], LeftAssoc, 9)],
-      entry
-        "Data.Array.Base"
-        [("!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("//", [InTerms], LeftAssoc, 9)],
-      entry "Data.Array.Byte" [],
-      entry
-        "Data.Array.IArray"
-        [("!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("//", [InTerms], LeftAssoc, 9)],
-      entry "Data.Array.IO" [],
-      entry "Data.Array.IO.Internals" [],
-      entry "Data.Array.IO.Safe" [],
-      entry "Data.Array.MArray" [],
-      entry "Data.Array.MArray.Safe" [],
-      entry "Data.Array.ST" [],
-      entry "Data.Array.ST.Safe" [],
-      entry "Data.Array.Storable" [],
-      entry "Data.Array.Storable.Internals" [],
-      entry "Data.Array.Storable.Safe" [],
-      entry
-        "Data.Array.Unboxed"
-        [("!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("//", [InTerms], LeftAssoc, 9)],
-      entry "Data.Array.Unsafe" [],
-      entry "Data.Bifoldable" [],
-      entry "Data.Bifoldable1" [],
-      entry "Data.Bifunctor" [],
-      entry "Data.Binary" [],
-      entry "Data.Binary.Builder" [],
-      entry "Data.Binary.Get" [],
-      entry "Data.Binary.Get.Internal" [],
-      entry "Data.Binary.Put" [],
-      entry "Data.Bitraversable" [],
-      entry
-        "Data.Bits"
-        [("!<<.", [InTerms], LeftAssoc, 8), ("!>>.", [InTerms], LeftAssoc, 8), (".&.", [InTerms], LeftAssoc, 7), (".<<.", [InTerms], LeftAssoc, 8), (".>>.", [InTerms], LeftAssoc, 8), (".^.", [InTerms], LeftAssoc, 6), (".|.", [InTerms], LeftAssoc, 5), ("rotate", [InTerms], LeftAssoc, 8), ("rotateL", [InTerms], LeftAssoc, 8), ("rotateR", [InTerms], LeftAssoc, 8), ("shift", [InTerms], LeftAssoc, 8), ("shiftL", [InTerms], LeftAssoc, 8), ("shiftR", [InTerms], LeftAssoc, 8), ("xor", [InTerms], LeftAssoc, 6)],
-      entry
-        "Data.Bool"
-        [("&&", [InTerms], RightAssoc, 3), ("||", [InTerms], RightAssoc, 2)],
-      entry "Data.Bounded" [],
-      entry
-        "Data.ByteString"
-        [("!?", [InTerms], LeftAssoc, 9), ("cons", [InTerms], RightAssoc, 5), ("snoc", [InTerms], LeftAssoc, 5)],
-      entry "Data.ByteString.Builder" [],
-      entry "Data.ByteString.Builder.Extra" [],
-      entry "Data.ByteString.Builder.Internal" [],
-      entry
-        "Data.ByteString.Builder.Prim"
-        [(">$<", [InTerms], LeftAssoc, 4), (">*<", [InTerms], RightAssoc, 5)],
-      entry
-        "Data.ByteString.Builder.Prim.Internal"
-        [(">$<", [InTerms], LeftAssoc, 4), (">*<", [InTerms], RightAssoc, 5)],
-      entry "Data.ByteString.Builder.RealFloat" [],
-      entry
-        "Data.ByteString.Char8"
-        [("!?", [InTerms], LeftAssoc, 9), ("cons", [InTerms], RightAssoc, 5), ("snoc", [InTerms], LeftAssoc, 5)],
-      entry "Data.ByteString.Internal" [],
-      entry
-        "Data.ByteString.Lazy"
-        [("!?", [InTerms], LeftAssoc, 9), ("cons", [InTerms], RightAssoc, 5), ("cons'", [InTerms], RightAssoc, 5), ("snoc", [InTerms], LeftAssoc, 5)],
-      entry
-        "Data.ByteString.Lazy.Char8"
-        [("!?", [InTerms], LeftAssoc, 9), ("cons", [InTerms], RightAssoc, 5), ("cons'", [InTerms], RightAssoc, 5), ("snoc", [InTerms], LeftAssoc, 5)],
-      entry "Data.ByteString.Lazy.Internal" [],
-      entry
-        "Data.ByteString.Short"
-        [("!?", [InTerms], LeftAssoc, 9), ("cons", [InTerms], RightAssoc, 5), ("snoc", [InTerms], LeftAssoc, 5)],
-      entry
-        "Data.ByteString.Short.Internal"
-        [("!?", [InTerms], LeftAssoc, 9), ("cons", [InTerms], RightAssoc, 5), ("snoc", [InTerms], LeftAssoc, 5)],
-      entry "Data.ByteString.Unsafe" [],
-      entry "Data.Char" [],
-      entry "Data.Coerce" [],
-      entry
-        "Data.Complex"
-        [(":+", [InTerms], NoAssoc, 6)],
-      entry "Data.Containers.ListUtils" [],
-      entry
-        "Data.Data"
-        [(":~:", [InTypes], NoAssoc, 4), (":~~:", [InTypes], NoAssoc, 4)],
-      entry "Data.Dynamic" [],
-      entry "Data.Either" [],
-      entry "Data.Enum" [],
-      entry
-        "Data.Eq"
-        [("/=", [InTerms], NoAssoc, 4), ("==", [InTerms], NoAssoc, 4)],
-      entry "Data.Fixed" [],
-      entry
-        "Data.Foldable"
-        [("elem", [InTerms], NoAssoc, 4), ("notElem", [InTerms], NoAssoc, 4)],
-      entry "Data.Foldable1" [],
-      entry
-        "Data.Function"
-        [("$", [InTerms], RightAssoc, 0), ("&", [InTerms], LeftAssoc, 1), (".", [InTerms], RightAssoc, 9), ("on", [InTerms], LeftAssoc, 0)],
-      entry
-        "Data.Functor"
-        [("$>", [InTerms], LeftAssoc, 4), ("<$", [InTerms], LeftAssoc, 4), ("<$>", [InTerms], LeftAssoc, 4), ("<&>", [InTerms], LeftAssoc, 1)],
-      entry "Data.Functor.Classes" [],
-      entry
-        "Data.Functor.Compose"
-        [("Compose", [InTypes, InTerms], RightAssoc, 9)],
-      entry "Data.Functor.Const" [],
-      entry "Data.Functor.Constant" [],
-      entry
-        "Data.Functor.Contravariant"
-        [("$<", [InTerms], LeftAssoc, 4), (">$", [InTerms], LeftAssoc, 4), (">$$<", [InTerms], LeftAssoc, 4), (">$<", [InTerms], LeftAssoc, 4)],
-      entry "Data.Functor.Identity" [],
-      entry "Data.Functor.Product" [],
-      entry "Data.Functor.Reverse" [],
-      entry "Data.Functor.Sum" [],
-      entry "Data.Graph" [],
-      entry "Data.IORef" [],
-      entry "Data.Int" [],
-      entry
-        "Data.IntMap"
-        [("!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("\\\\", [InTerms], LeftAssoc, 9)],
-      entry
-        "Data.IntMap.Internal"
-        [("!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("\\\\", [InTerms], LeftAssoc, 9)],
-      entry "Data.IntMap.Internal.Debug" [],
-      entry
-        "Data.IntMap.Lazy"
-        [("!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("\\\\", [InTerms], LeftAssoc, 9)],
-      entry "Data.IntMap.Merge.Lazy" [],
-      entry "Data.IntMap.Merge.Strict" [],
-      entry
-        "Data.IntMap.Strict"
-        [("!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("\\\\", [InTerms], LeftAssoc, 9)],
-      entry
-        "Data.IntMap.Strict.Internal"
-        [("!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("\\\\", [InTerms], LeftAssoc, 9)],
-      entry
-        "Data.IntSet"
-        [("\\\\", [InTerms], LeftAssoc, 9)],
-      entry
-        "Data.IntSet.Internal"
-        [("\\\\", [InTerms], LeftAssoc, 9)],
-      entry "Data.IntSet.Internal.IntTreeCommons" [],
-      entry "Data.Ix" [],
-      entry "Data.Kind" [],
-      entry
-        "Data.List"
-        [("!!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("++", [InTerms], RightAssoc, 5), ("\\\\", [InTerms], NoAssoc, 5), ("elem", [InTerms], NoAssoc, 4), ("notElem", [InTerms], NoAssoc, 4)],
-      entry
-        "Data.List.NonEmpty"
-        [("!!", [InTerms], LeftAssoc, 9), (":|", [InTypes, InTerms], RightAssoc, 5), ("<|", [InTerms], RightAssoc, 5)],
-      entry
-        "Data.Map"
-        [("!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("\\\\", [InTerms], LeftAssoc, 9)],
-      entry
-        "Data.Map.Internal"
-        [("!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("\\\\", [InTerms], LeftAssoc, 9)],
-      entry "Data.Map.Internal.Debug" [],
-      entry
-        "Data.Map.Lazy"
-        [("!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("\\\\", [InTerms], LeftAssoc, 9)],
-      entry "Data.Map.Merge.Lazy" [],
-      entry "Data.Map.Merge.Strict" [],
-      entry
-        "Data.Map.Strict"
-        [("!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("\\\\", [InTerms], LeftAssoc, 9)],
-      entry
-        "Data.Map.Strict.Internal"
-        [("!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("\\\\", [InTerms], LeftAssoc, 9)],
-      entry "Data.Maybe" [],
-      entry
-        "Data.Monoid"
-        [("<>", [InTerms], RightAssoc, 6)],
-      entry
-        "Data.Ord"
-        [("<", [InTerms], NoAssoc, 4), ("<=", [InTerms], NoAssoc, 4), (">", [InTerms], NoAssoc, 4), (">=", [InTerms], NoAssoc, 4)],
-      entry "Data.Proxy" [],
-      entry
-        "Data.Ratio"
-        [("%", [InTerms], LeftAssoc, 7)],
-      entry "Data.STRef" [],
-      entry "Data.STRef.Lazy" [],
-      entry "Data.STRef.Strict" [],
-      entry
-        "Data.Semigroup"
-        [("<>", [InTerms], RightAssoc, 6)],
-      entry
-        "Data.Sequence"
-        [("!?", [InTerms], LeftAssoc, 9), (":<", [InTerms], RightAssoc, 5), (":<|", [InTerms], RightAssoc, 5), (":>", [InTerms], LeftAssoc, 5), (":|>", [InTerms], LeftAssoc, 5), ("<|", [InTerms], RightAssoc, 5), ("><", [InTerms], RightAssoc, 5), ("|>", [InTerms], LeftAssoc, 5)],
-      entry
-        "Data.Sequence.Internal"
-        [("!?", [InTerms], LeftAssoc, 9), (":<", [InTerms], RightAssoc, 5), (":<|", [InTerms], RightAssoc, 5), (":>", [InTerms], LeftAssoc, 5), (":|>", [InTerms], LeftAssoc, 5), ("<|", [InTerms], RightAssoc, 5), ("><", [InTerms], RightAssoc, 5), ("|>", [InTerms], LeftAssoc, 5)],
-      entry
-        "Data.Sequence.Internal.Sorting"
-        [("IQCons", [InTypes, InTerms], RightAssoc, 8), ("ITQCons", [InTypes, InTerms], RightAssoc, 8), ("QCons", [InTerms], RightAssoc, 8), ("TQCons", [InTypes, InTerms], RightAssoc, 8)],
-      entry
-        "Data.Set"
-        [("\\\\", [InTerms], LeftAssoc, 9)],
-      entry
-        "Data.Set.Internal"
-        [("\\\\", [InTerms], LeftAssoc, 9)],
-      entry "Data.String" [],
-      entry
-        "Data.Text"
-        [(":<", [InTerms], RightAssoc, 5), (":>", [InTerms], LeftAssoc, 5), ("cons", [InTerms], RightAssoc, 5)],
-      entry "Data.Text.Array" [],
-      entry "Data.Text.Encoding" [],
-      entry "Data.Text.Encoding.Error" [],
-      entry "Data.Text.Foreign" [],
-      entry "Data.Text.IO" [],
-      entry "Data.Text.IO.Utf8" [],
-      entry
-        "Data.Text.Internal"
-        [("mul", [InTerms], LeftAssoc, 7), ("mul32", [InTerms], LeftAssoc, 7), ("mul64", [InTerms], LeftAssoc, 7)],
-      entry "Data.Text.Internal.ArrayUtils" [],
-      entry "Data.Text.Internal.Builder" [],
-      entry
-        "Data.Text.Internal.Builder.Functions"
-        [("<>", [InTerms], RightAssoc, 4)],
-      entry "Data.Text.Internal.Builder.Int.Digits" [],
-      entry "Data.Text.Internal.Builder.RealFloat.Functions" [],
-      entry "Data.Text.Internal.ByteStringCompat" [],
-      entry "Data.Text.Internal.Encoding" [],
-      entry "Data.Text.Internal.Encoding.Fusion" [],
-      entry "Data.Text.Internal.Encoding.Fusion.Common" [],
-      entry "Data.Text.Internal.Encoding.Utf16" [],
-      entry "Data.Text.Internal.Encoding.Utf32" [],
-      entry "Data.Text.Internal.Encoding.Utf8" [],
-      entry "Data.Text.Internal.Fusion" [],
-      entry "Data.Text.Internal.Fusion.CaseMapping" [],
-      entry "Data.Text.Internal.Fusion.Common" [],
-      entry "Data.Text.Internal.Fusion.Size" [],
-      entry
-        "Data.Text.Internal.Fusion.Types"
-        [(":*:", [InTerms], LeftAssoc, 2)],
-      entry "Data.Text.Internal.IO" [],
-      entry "Data.Text.Internal.Lazy" [],
-      entry "Data.Text.Internal.Lazy.Encoding.Fusion" [],
-      entry "Data.Text.Internal.Lazy.Fusion" [],
-      entry "Data.Text.Internal.Lazy.Search" [],
-      entry "Data.Text.Internal.PrimCompat" [],
-      entry "Data.Text.Internal.Private" [],
-      entry "Data.Text.Internal.Read" [],
-      entry "Data.Text.Internal.Search" [],
-      entry "Data.Text.Internal.StrictBuilder" [],
-      entry "Data.Text.Internal.Unsafe" [],
-      entry "Data.Text.Internal.Unsafe.Char" [],
-      entry "Data.Text.Internal.Validate" [],
-      entry "Data.Text.Internal.Validate.Native" [],
-      entry
-        "Data.Text.Lazy"
-        [(":<", [InTerms], RightAssoc, 5), (":>", [InTerms], LeftAssoc, 5), ("cons", [InTerms], RightAssoc, 5)],
-      entry "Data.Text.Lazy.Builder" [],
-      entry "Data.Text.Lazy.Builder.Int" [],
-      entry "Data.Text.Lazy.Builder.RealFloat" [],
-      entry "Data.Text.Lazy.Encoding" [],
-      entry "Data.Text.Lazy.IO" [],
-      entry "Data.Text.Lazy.Internal" [],
-      entry "Data.Text.Lazy.Read" [],
-      entry "Data.Text.Read" [],
-      entry "Data.Text.Unsafe" [],
-      entry "Data.Time" [],
-      entry "Data.Time.Calendar" [],
-      entry "Data.Time.Calendar.Easter" [],
-      entry "Data.Time.Calendar.Julian" [],
-      entry "Data.Time.Calendar.Month" [],
-      entry "Data.Time.Calendar.MonthDay" [],
-      entry "Data.Time.Calendar.OrdinalDate" [],
-      entry "Data.Time.Calendar.Quarter" [],
-      entry "Data.Time.Calendar.WeekDate" [],
-      entry "Data.Time.Clock" [],
-      entry "Data.Time.Clock.POSIX" [],
-      entry "Data.Time.Clock.System" [],
-      entry "Data.Time.Clock.TAI" [],
-      entry "Data.Time.Format" [],
-      entry "Data.Time.Format.ISO8601" [],
-      entry "Data.Time.LocalTime" [],
-      entry "Data.Traversable" [],
-      entry "Data.Tree" [],
-      entry "Data.Tuple" [],
-      entry
-        "Data.Type.Bool"
-        [("&&", [InTypes], RightAssoc, 3), ("||", [InTypes], RightAssoc, 2)],
-      entry "Data.Type.Coercion" [],
-      entry
-        "Data.Type.Equality"
-        [(":~:", [InTypes], NoAssoc, 4), (":~~:", [InTypes], NoAssoc, 4), ("==", [InTypes], NoAssoc, 4), ("~~", [InTypes], NoAssoc, 4)],
-      entry
-        "Data.Type.Ord"
-        [("<", [InTypes], NoAssoc, 4), ("<=", [InTypes], NoAssoc, 4), ("<=?", [InTypes], NoAssoc, 4), ("<?", [InTypes], NoAssoc, 4), (">", [InTypes], NoAssoc, 4), (">=", [InTypes], NoAssoc, 4), (">=?", [InTypes], NoAssoc, 4), (">?", [InTypes], NoAssoc, 4)],
-      entry
-        "Data.Typeable"
-        [(":~:", [InTypes], NoAssoc, 4), (":~~:", [InTypes], NoAssoc, 4)],
-      entry "Data.Unique" [],
-      entry "Data.Version" [],
-      entry "Data.Void" [],
-      entry "Data.Word" [],
-      entry "Debug.Trace" [],
-      entry
-        "Foreign"
-        [("!<<.", [InTerms], LeftAssoc, 8), ("!>>.", [InTerms], LeftAssoc, 8), (".&.", [InTerms], LeftAssoc, 7), (".<<.", [InTerms], LeftAssoc, 8), (".>>.", [InTerms], LeftAssoc, 8), (".^.", [InTerms], LeftAssoc, 6), (".|.", [InTerms], LeftAssoc, 5), ("rotate", [InTerms], LeftAssoc, 8), ("rotateL", [InTerms], LeftAssoc, 8), ("rotateR", [InTerms], LeftAssoc, 8), ("shift", [InTerms], LeftAssoc, 8), ("shiftL", [InTerms], LeftAssoc, 8), ("shiftR", [InTerms], LeftAssoc, 8), ("xor", [InTerms], LeftAssoc, 6)],
-      entry "Foreign.C" [],
-      entry "Foreign.C.ConstPtr" [],
-      entry "Foreign.C.Error" [],
-      entry "Foreign.C.String" [],
-      entry "Foreign.C.Types" [],
-      entry "Foreign.Concurrent" [],
-      entry "Foreign.ForeignPtr" [],
-      entry "Foreign.ForeignPtr.Safe" [],
-      entry "Foreign.ForeignPtr.Unsafe" [],
-      entry "Foreign.Marshal" [],
-      entry "Foreign.Marshal.Alloc" [],
-      entry "Foreign.Marshal.Array" [],
-      entry "Foreign.Marshal.Error" [],
-      entry "Foreign.Marshal.Pool" [],
-      entry "Foreign.Marshal.Safe" [],
-      entry "Foreign.Marshal.Unsafe" [],
-      entry "Foreign.Marshal.Utils" [],
-      entry "Foreign.Ptr" [],
-      entry
-        "Foreign.Safe"
-        [("!<<.", [InTerms], LeftAssoc, 8), ("!>>.", [InTerms], LeftAssoc, 8), (".&.", [InTerms], LeftAssoc, 7), (".<<.", [InTerms], LeftAssoc, 8), (".>>.", [InTerms], LeftAssoc, 8), (".^.", [InTerms], LeftAssoc, 6), (".|.", [InTerms], LeftAssoc, 5), ("rotate", [InTerms], LeftAssoc, 8), ("rotateL", [InTerms], LeftAssoc, 8), ("rotateR", [InTerms], LeftAssoc, 8), ("shift", [InTerms], LeftAssoc, 8), ("shiftL", [InTerms], LeftAssoc, 8), ("shiftR", [InTerms], LeftAssoc, 8), ("xor", [InTerms], LeftAssoc, 6)],
-      entry "Foreign.StablePtr" [],
-      entry "Foreign.Storable" [],
-      entry
-        "GHC.Arr"
-        [("!", [InTerms], LeftAssoc, 9), ("//", [InTerms], LeftAssoc, 9)],
-      entry "GHC.ArrayArray" [],
-      entry
-        "GHC.Base"
-        [("$", [InTerms], RightAssoc, 0), ("$!", [InTerms], RightAssoc, 0), ("&&", [InTerms], RightAssoc, 3), ("*#", [InTerms], LeftAssoc, 7), ("*##", [InTerms], LeftAssoc, 7), ("**##", [InTerms], LeftAssoc, 9), ("*>", [InTerms], LeftAssoc, 4), ("+#", [InTerms], LeftAssoc, 6), ("+##", [InTerms], LeftAssoc, 6), ("++", [InTerms], RightAssoc, 5), ("-#", [InTerms], LeftAssoc, 6), ("-##", [InTerms], LeftAssoc, 6), (".", [InTerms], RightAssoc, 9), ("/##", [InTerms], LeftAssoc, 7), ("/=", [InTerms], NoAssoc, 4), ("/=#", [InTerms], NoAssoc, 4), ("/=##", [InTerms], NoAssoc, 4), (":|", [InTypes, InTerms], RightAssoc, 5), ("<", [InTerms], NoAssoc, 4), ("<#", [InTerms], NoAssoc, 4), ("<##", [InTerms], NoAssoc, 4), ("<$", [InTerms], LeftAssoc, 4), ("<*", [InTerms], LeftAssoc, 4), ("<**>", [InTerms], LeftAssoc, 4), ("<*>", [InTerms], LeftAssoc, 4), ("<=", [InTerms], NoAssoc, 4), ("<=#", [InTerms], NoAssoc, 4), ("<=##", [InTerms], NoAssoc, 4), ("<>", [InTerms], RightAssoc, 6), ("<|>", [InTerms], LeftAssoc, 3), ("=<<", [InTerms], RightAssoc, 1), ("==", [InTerms], NoAssoc, 4), ("==#", [InTerms], NoAssoc, 4), ("==##", [InTerms], NoAssoc, 4), (">", [InTerms], NoAssoc, 4), (">#", [InTerms], NoAssoc, 4), (">##", [InTerms], NoAssoc, 4), (">=", [InTerms], NoAssoc, 4), (">=#", [InTerms], NoAssoc, 4), (">=##", [InTerms], NoAssoc, 4), (">>", [InTerms], LeftAssoc, 1), (">>=", [InTerms], LeftAssoc, 1), ("seq", [InTerms], RightAssoc, 0), ("||", [InTerms], RightAssoc, 2), ("~~", [InTypes], NoAssoc, 4)],
-      entry
-        "GHC.Bits"
-        [(".&.", [InTerms], LeftAssoc, 7), (".|.", [InTerms], LeftAssoc, 5), ("rotate", [InTerms], LeftAssoc, 8), ("rotateL", [InTerms], LeftAssoc, 8), ("rotateR", [InTerms], LeftAssoc, 8), ("shift", [InTerms], LeftAssoc, 8), ("shiftL", [InTerms], LeftAssoc, 8), ("shiftR", [InTerms], LeftAssoc, 8), ("xor", [InTerms], LeftAssoc, 6)],
-      entry "GHC.Boot.TH.Lib" [],
-      entry "GHC.Boot.TH.Lib.Map" [],
-      entry "GHC.Boot.TH.Lift" [],
-      entry "GHC.Boot.TH.Ppr" [],
-      entry
-        "GHC.Boot.TH.PprLib"
-        [("$$", [InTerms], LeftAssoc, 5), ("$+$", [InTerms], LeftAssoc, 5), ("<+>", [InTerms], LeftAssoc, 6), ("<>", [InTerms], LeftAssoc, 6)],
-      entry "GHC.Boot.TH.Quote" [],
-      entry "GHC.Boot.TH.Syntax" [],
-      entry "GHC.ByteOrder" [],
-      entry "GHC.CString" [],
-      entry "GHC.Char" [],
-      entry
-        "GHC.Classes"
-        [("&&", [InTerms], RightAssoc, 3), ("/=", [InTerms], NoAssoc, 4), ("<", [InTerms], NoAssoc, 4), ("<=", [InTerms], NoAssoc, 4), ("==", [InTerms], NoAssoc, 4), (">", [InTerms], NoAssoc, 4), (">=", [InTerms], NoAssoc, 4), ("||", [InTerms], RightAssoc, 2)],
-      entry "GHC.Clock" [],
-      entry
-        "GHC.Conc"
-        [("par", [InTerms], RightAssoc, 0), ("pseq", [InTerms], RightAssoc, 0)],
-      entry "GHC.Conc.IO" [],
-      entry "GHC.Conc.Signal" [],
-      entry
-        "GHC.Conc.Sync"
-        [("par", [InTerms], RightAssoc, 0), ("pseq", [InTerms], RightAssoc, 0)],
-      entry "GHC.ConsoleHandler" [],
-      entry "GHC.Constants" [],
-      entry "GHC.Debug" [],
-      entry
-        "GHC.Desugar"
-        [(">>>", [InTerms], LeftAssoc, 9)],
-      entry "GHC.Encoding.UTF8" [],
-      entry "GHC.Enum" [],
-      entry "GHC.Environment" [],
-      entry "GHC.Err" [],
-      entry "GHC.Event" [],
-      entry "GHC.Event.TimeOut" [],
-      entry "GHC.Exception" [],
-      entry "GHC.Exception.Type" [],
-      entry "GHC.ExecutionStack" [],
-      entry
-        "GHC.Exts"
-        [("*#", [InTerms], LeftAssoc, 7), ("*##", [InTerms], LeftAssoc, 7), ("**##", [InTerms], LeftAssoc, 9), ("+#", [InTerms], LeftAssoc, 6), ("+##", [InTerms], LeftAssoc, 6), ("-#", [InTerms], LeftAssoc, 6), ("-##", [InTerms], LeftAssoc, 6), ("/##", [InTerms], LeftAssoc, 7), ("/=#", [InTerms], NoAssoc, 4), ("/=##", [InTerms], NoAssoc, 4), ("<#", [InTerms], NoAssoc, 4), ("<##", [InTerms], NoAssoc, 4), ("<=#", [InTerms], NoAssoc, 4), ("<=##", [InTerms], NoAssoc, 4), ("==#", [InTerms], NoAssoc, 4), ("==##", [InTerms], NoAssoc, 4), (">#", [InTerms], NoAssoc, 4), (">##", [InTerms], NoAssoc, 4), (">=#", [InTerms], NoAssoc, 4), (">=##", [InTerms], NoAssoc, 4), ("seq", [InTerms], RightAssoc, 0), ("~~", [InTypes], NoAssoc, 4)],
-      entry "GHC.Fingerprint" [],
-      entry "GHC.Fingerprint.Type" [],
-      entry
-        "GHC.Float"
-        [("**", [InTerms], RightAssoc, 8)],
-      entry "GHC.Float.ConversionUtils" [],
-      entry "GHC.Float.RealFracMethods" [],
-      entry "GHC.Foreign" [],
-      entry "GHC.ForeignPtr" [],
-      entry "GHC.ForeignSrcLang.Type" [],
-      entry "GHC.GHCi" [],
-      entry "GHC.GHCi.Helpers" [],
-      entry
-        "GHC.Generics"
-        [(":*:", [InTypes, InTerms], RightAssoc, 6), (":+:", [InTypes], RightAssoc, 5), (":.:", [InTypes], RightAssoc, 7)],
-      entry "GHC.IO" [],
-      entry "GHC.IO.Buffer" [],
-      entry "GHC.IO.BufferedIO" [],
-      entry "GHC.IO.Device" [],
-      entry "GHC.IO.Encoding" [],
-      entry "GHC.IO.Encoding.CodePage" [],
-      entry "GHC.IO.Encoding.Failure" [],
-      entry "GHC.IO.Encoding.Iconv" [],
-      entry "GHC.IO.Encoding.Latin1" [],
-      entry "GHC.IO.Encoding.Types" [],
-      entry "GHC.IO.Encoding.UTF16" [],
-      entry "GHC.IO.Encoding.UTF32" [],
-      entry "GHC.IO.Encoding.UTF8" [],
-      entry "GHC.IO.Exception" [],
-      entry "GHC.IO.FD" [],
-      entry "GHC.IO.Handle" [],
-      entry "GHC.IO.Handle.FD" [],
-      entry "GHC.IO.Handle.Internals" [],
-      entry "GHC.IO.Handle.Lock" [],
-      entry "GHC.IO.Handle.Text" [],
-      entry "GHC.IO.Handle.Types" [],
-      entry "GHC.IO.IOMode" [],
-      entry "GHC.IO.StdHandles" [],
-      entry
-        "GHC.IO.SubSystem"
-        [("<!>", [InTerms], LeftAssoc, 7)],
-      entry "GHC.IO.Unsafe" [],
-      entry "GHC.IOArray" [],
-      entry "GHC.IORef" [],
-      entry "GHC.InfoProv" [],
-      entry "GHC.Int" [],
-      entry "GHC.Integer" [],
-      entry "GHC.Integer.Logarithms" [],
-      entry "GHC.Internal.AllocationLimitHandler" [],
-      entry
-        "GHC.Internal.Arr"
-        [("!", [InTerms], LeftAssoc, 9), ("//", [InTerms], LeftAssoc, 9)],
-      entry "GHC.Internal.ArrayArray" [],
-      entry
-        "GHC.Internal.Base"
-        [("$", [InTerms], RightAssoc, 0), ("$!", [InTerms], RightAssoc, 0), ("&&", [InTerms], RightAssoc, 3), ("*#", [InTerms], LeftAssoc, 7), ("*##", [InTerms], LeftAssoc, 7), ("**##", [InTerms], LeftAssoc, 9), ("*>", [InTerms], LeftAssoc, 4), ("+#", [InTerms], LeftAssoc, 6), ("+##", [InTerms], LeftAssoc, 6), ("++", [InTerms], RightAssoc, 5), ("-#", [InTerms], LeftAssoc, 6), ("-##", [InTerms], LeftAssoc, 6), (".", [InTerms], RightAssoc, 9), ("/##", [InTerms], LeftAssoc, 7), ("/=", [InTerms], NoAssoc, 4), ("/=#", [InTerms], NoAssoc, 4), ("/=##", [InTerms], NoAssoc, 4), (":|", [InTypes, InTerms], RightAssoc, 5), ("<", [InTerms], NoAssoc, 4), ("<#", [InTerms], NoAssoc, 4), ("<##", [InTerms], NoAssoc, 4), ("<$", [InTerms], LeftAssoc, 4), ("<*", [InTerms], LeftAssoc, 4), ("<**>", [InTerms], LeftAssoc, 4), ("<*>", [InTerms], LeftAssoc, 4), ("<=", [InTerms], NoAssoc, 4), ("<=#", [InTerms], NoAssoc, 4), ("<=##", [InTerms], NoAssoc, 4), ("<>", [InTerms], RightAssoc, 6), ("<|>", [InTerms], LeftAssoc, 3), ("=<<", [InTerms], RightAssoc, 1), ("==", [InTerms], NoAssoc, 4), ("==#", [InTerms], NoAssoc, 4), ("==##", [InTerms], NoAssoc, 4), (">", [InTerms], NoAssoc, 4), (">#", [InTerms], NoAssoc, 4), (">##", [InTerms], NoAssoc, 4), (">=", [InTerms], NoAssoc, 4), (">=#", [InTerms], NoAssoc, 4), (">=##", [InTerms], NoAssoc, 4), (">>", [InTerms], LeftAssoc, 1), (">>=", [InTerms], LeftAssoc, 1), ("seq", [InTerms], RightAssoc, 0), ("||", [InTerms], RightAssoc, 2), ("~~", [InTypes], NoAssoc, 4)],
-      entry "GHC.Internal.Bignum.Backend" [],
-      entry "GHC.Internal.Bignum.Backend.Native" [],
-      entry "GHC.Internal.Bignum.Backend.Selected" [],
-      entry "GHC.Internal.Bignum.BigNat" [],
-      entry "GHC.Internal.Bignum.Integer" [],
-      entry "GHC.Internal.Bignum.Natural" [],
-      entry
-        "GHC.Internal.Bignum.Primitives"
-        [("&&#", [InTerms], RightAssoc, 3), ("||#", [InTerms], RightAssoc, 2)],
-      entry "GHC.Internal.Bignum.WordArray" [],
-      entry
-        "GHC.Internal.Bits"
-        [(".&.", [InTerms], LeftAssoc, 7), (".|.", [InTerms], LeftAssoc, 5), ("rotate", [InTerms], LeftAssoc, 8), ("rotateL", [InTerms], LeftAssoc, 8), ("rotateR", [InTerms], LeftAssoc, 8), ("shift", [InTerms], LeftAssoc, 8), ("shiftL", [InTerms], LeftAssoc, 8), ("shiftR", [InTerms], LeftAssoc, 8), ("xor", [InTerms], LeftAssoc, 6)],
-      entry "GHC.Internal.ByteOrder" [],
-      entry "GHC.Internal.CString" [],
-      entry "GHC.Internal.Char" [],
-      entry
-        "GHC.Internal.Classes"
-        [("&&", [InTerms], RightAssoc, 3), ("/=", [InTerms], NoAssoc, 4), ("<", [InTerms], NoAssoc, 4), ("<=", [InTerms], NoAssoc, 4), ("==", [InTerms], NoAssoc, 4), (">", [InTerms], NoAssoc, 4), (">=", [InTerms], NoAssoc, 4), ("||", [InTerms], RightAssoc, 2)],
-      entry "GHC.Internal.Clock" [],
-      entry "GHC.Internal.ClosureTypes" [],
-      entry "GHC.Internal.Conc.Bound" [],
-      entry "GHC.Internal.Conc.IO" [],
-      entry "GHC.Internal.Conc.Signal" [],
-      entry
-        "GHC.Internal.Conc.Sync"
-        [("par", [InTerms], RightAssoc, 0), ("pseq", [InTerms], RightAssoc, 0)],
-      entry "GHC.Internal.ConsoleHandler" [],
-      entry
-        "GHC.Internal.Control.Arrow"
-        [("&&&", [InTerms], RightAssoc, 3), ("***", [InTerms], RightAssoc, 3), ("+++", [InTerms], RightAssoc, 2), ("<+>", [InTerms], RightAssoc, 5), ("<<<", [InTerms], RightAssoc, 1), ("<<^", [InTerms], RightAssoc, 1), (">>>", [InTerms], RightAssoc, 1), (">>^", [InTerms], RightAssoc, 1), ("^<<", [InTerms], RightAssoc, 1), ("^>>", [InTerms], RightAssoc, 1), ("|||", [InTerms], RightAssoc, 2)],
-      entry
-        "GHC.Internal.Control.Category"
-        [(".", [InTerms], RightAssoc, 9), ("<<<", [InTerms], RightAssoc, 1), (">>>", [InTerms], RightAssoc, 1)],
-      entry "GHC.Internal.Control.Concurrent.MVar" [],
-      entry "GHC.Internal.Control.Exception" [],
-      entry "GHC.Internal.Control.Exception.Base" [],
-      entry
-        "GHC.Internal.Control.Monad"
-        [("<$", [InTerms], LeftAssoc, 4), ("<$!>", [InTerms], LeftAssoc, 4), ("<=<", [InTerms], RightAssoc, 1), ("=<<", [InTerms], RightAssoc, 1), (">=>", [InTerms], RightAssoc, 1), (">>", [InTerms], LeftAssoc, 1), (">>=", [InTerms], LeftAssoc, 1)],
-      entry "GHC.Internal.Control.Monad.Fail" [],
-      entry "GHC.Internal.Control.Monad.Fix" [],
-      entry "GHC.Internal.Control.Monad.IO.Class" [],
-      entry "GHC.Internal.Control.Monad.ST" [],
-      entry "GHC.Internal.Control.Monad.ST.Imp" [],
-      entry "GHC.Internal.Control.Monad.ST.Lazy" [],
-      entry "GHC.Internal.Control.Monad.ST.Lazy.Imp" [],
-      entry "GHC.Internal.Control.Monad.Zip" [],
-      entry
-        "GHC.Internal.Data.Bits"
-        [("!<<.", [InTerms], LeftAssoc, 8), ("!>>.", [InTerms], LeftAssoc, 8), (".&.", [InTerms], LeftAssoc, 7), (".<<.", [InTerms], LeftAssoc, 8), (".>>.", [InTerms], LeftAssoc, 8), (".^.", [InTerms], LeftAssoc, 6), (".|.", [InTerms], LeftAssoc, 5), ("rotate", [InTerms], LeftAssoc, 8), ("rotateL", [InTerms], LeftAssoc, 8), ("rotateR", [InTerms], LeftAssoc, 8), ("shift", [InTerms], LeftAssoc, 8), ("shiftL", [InTerms], LeftAssoc, 8), ("shiftR", [InTerms], LeftAssoc, 8), ("xor", [InTerms], LeftAssoc, 6)],
-      entry
-        "GHC.Internal.Data.Bool"
-        [("&&", [InTerms], RightAssoc, 3), ("||", [InTerms], RightAssoc, 2)],
-      entry "GHC.Internal.Data.Coerce" [],
-      entry "GHC.Internal.Data.Data" [],
-      entry "GHC.Internal.Data.Dynamic" [],
-      entry "GHC.Internal.Data.Either" [],
-      entry
-        "GHC.Internal.Data.Eq"
-        [("/=", [InTerms], NoAssoc, 4), ("==", [InTerms], NoAssoc, 4)],
-      entry
-        "GHC.Internal.Data.Foldable"
-        [("elem", [InTerms], NoAssoc, 4), ("notElem", [InTerms], NoAssoc, 4)],
-      entry
-        "GHC.Internal.Data.Function"
-        [("$", [InTerms], RightAssoc, 0), ("&", [InTerms], LeftAssoc, 1), (".", [InTerms], RightAssoc, 9), ("on", [InTerms], LeftAssoc, 0)],
-      entry
-        "GHC.Internal.Data.Functor"
-        [("$>", [InTerms], LeftAssoc, 4), ("<$", [InTerms], LeftAssoc, 4), ("<$>", [InTerms], LeftAssoc, 4), ("<&>", [InTerms], LeftAssoc, 1)],
-      entry "GHC.Internal.Data.Functor.Const" [],
-      entry "GHC.Internal.Data.Functor.Identity" [],
-      entry
-        "GHC.Internal.Data.Functor.Utils"
-        [("#.", [InTypes, InTerms], LeftAssoc, 9)],
-      entry "GHC.Internal.Data.IORef" [],
-      entry "GHC.Internal.Data.Ix" [],
-      entry
-        "GHC.Internal.Data.List"
-        [("!!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("++", [InTerms], RightAssoc, 5), ("\\\\", [InTerms], NoAssoc, 5), ("elem", [InTerms], NoAssoc, 4), ("notElem", [InTerms], NoAssoc, 4)],
-      entry
-        "GHC.Internal.Data.List.NonEmpty"
-        [(":|", [InTypes, InTerms], RightAssoc, 5)],
-      entry "GHC.Internal.Data.Maybe" [],
-      entry
-        "GHC.Internal.Data.Monoid"
-        [("<>", [InTerms], RightAssoc, 6)],
-      entry
-        "GHC.Internal.Data.NonEmpty"
-        [(":|", [InTypes, InTerms], RightAssoc, 5)],
-      entry
-        "GHC.Internal.Data.OldList"
-        [("!!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("++", [InTerms], RightAssoc, 5), ("\\\\", [InTerms], NoAssoc, 5), ("elem", [InTerms], NoAssoc, 4), ("notElem", [InTerms], NoAssoc, 4)],
-      entry
-        "GHC.Internal.Data.Ord"
-        [("<", [InTerms], NoAssoc, 4), ("<=", [InTerms], NoAssoc, 4), (">", [InTerms], NoAssoc, 4), (">=", [InTerms], NoAssoc, 4)],
-      entry "GHC.Internal.Data.Proxy" [],
-      entry "GHC.Internal.Data.STRef" [],
-      entry "GHC.Internal.Data.STRef.Strict" [],
-      entry "GHC.Internal.Data.Semigroup.Internal" [],
-      entry "GHC.Internal.Data.String" [],
-      entry "GHC.Internal.Data.Traversable" [],
-      entry "GHC.Internal.Data.Tuple" [],
-      entry
-        "GHC.Internal.Data.Type.Bool"
-        [("&&", [InTypes], RightAssoc, 3), ("||", [InTypes], RightAssoc, 2)],
-      entry "GHC.Internal.Data.Type.Coercion" [],
-      entry
-        "GHC.Internal.Data.Type.Equality"
-        [(":~:", [InTypes], NoAssoc, 4), (":~~:", [InTypes], NoAssoc, 4), ("==", [InTypes], NoAssoc, 4), ("~~", [InTypes], NoAssoc, 4)],
-      entry
-        "GHC.Internal.Data.Type.Ord"
-        [("<", [InTypes], NoAssoc, 4), ("<=", [InTypes], NoAssoc, 4), ("<=?", [InTypes], NoAssoc, 4), ("<?", [InTypes], NoAssoc, 4), (">", [InTypes], NoAssoc, 4), (">=", [InTypes], NoAssoc, 4), (">=?", [InTypes], NoAssoc, 4), (">?", [InTypes], NoAssoc, 4)],
-      entry
-        "GHC.Internal.Data.Typeable"
-        [(":~:", [InTypes], NoAssoc, 4), (":~~:", [InTypes], NoAssoc, 4)],
-      entry "GHC.Internal.Data.Unique" [],
-      entry "GHC.Internal.Data.Version" [],
-      entry "GHC.Internal.Data.Void" [],
-      entry "GHC.Internal.Debug" [],
-      entry "GHC.Internal.Debug.Trace" [],
-      entry
-        "GHC.Internal.Desugar"
-        [(">>>", [InTerms], LeftAssoc, 9)],
-      entry "GHC.Internal.Encoding.UTF8" [],
-      entry "GHC.Internal.Enum" [],
-      entry "GHC.Internal.Environment" [],
-      entry "GHC.Internal.Err" [],
-      entry "GHC.Internal.Event" [],
-      entry "GHC.Internal.Event.TimeOut" [],
-      entry "GHC.Internal.Exception" [],
-      entry "GHC.Internal.Exception.Backtrace" [],
-      entry "GHC.Internal.Exception.Context" [],
-      entry "GHC.Internal.Exception.Type" [],
-      entry "GHC.Internal.ExecutionStack" [],
-      entry "GHC.Internal.ExecutionStack.Internal" [],
-      entry
-        "GHC.Internal.Exts"
-        [("*#", [InTerms], LeftAssoc, 7), ("*##", [InTerms], LeftAssoc, 7), ("**##", [InTerms], LeftAssoc, 9), ("+#", [InTerms], LeftAssoc, 6), ("+##", [InTerms], LeftAssoc, 6), ("-#", [InTerms], LeftAssoc, 6), ("-##", [InTerms], LeftAssoc, 6), ("/##", [InTerms], LeftAssoc, 7), ("/=#", [InTerms], NoAssoc, 4), ("/=##", [InTerms], NoAssoc, 4), ("<#", [InTerms], NoAssoc, 4), ("<##", [InTerms], NoAssoc, 4), ("<=#", [InTerms], NoAssoc, 4), ("<=##", [InTerms], NoAssoc, 4), ("==#", [InTerms], NoAssoc, 4), ("==##", [InTerms], NoAssoc, 4), (">#", [InTerms], NoAssoc, 4), (">##", [InTerms], NoAssoc, 4), (">=#", [InTerms], NoAssoc, 4), (">=##", [InTerms], NoAssoc, 4), ("seq", [InTerms], RightAssoc, 0), ("~~", [InTypes], NoAssoc, 4)],
-      entry "GHC.Internal.Fingerprint" [],
-      entry "GHC.Internal.Fingerprint.Type" [],
-      entry
-        "GHC.Internal.Float"
-        [("**", [InTerms], RightAssoc, 8)],
-      entry "GHC.Internal.Float.ConversionUtils" [],
-      entry "GHC.Internal.Float.RealFracMethods" [],
-      entry "GHC.Internal.Foreign.C.ConstPtr" [],
-      entry "GHC.Internal.Foreign.C.Error" [],
-      entry "GHC.Internal.Foreign.C.String" [],
-      entry "GHC.Internal.Foreign.C.String.Encoding" [],
-      entry "GHC.Internal.Foreign.C.Types" [],
-      entry "GHC.Internal.Foreign.Concurrent" [],
-      entry "GHC.Internal.Foreign.ForeignPtr" [],
-      entry "GHC.Internal.Foreign.ForeignPtr.Imp" [],
-      entry "GHC.Internal.Foreign.ForeignPtr.Unsafe" [],
-      entry "GHC.Internal.Foreign.Marshal.Alloc" [],
-      entry "GHC.Internal.Foreign.Marshal.Array" [],
-      entry "GHC.Internal.Foreign.Marshal.Error" [],
-      entry "GHC.Internal.Foreign.Marshal.Pool" [],
-      entry "GHC.Internal.Foreign.Marshal.Safe" [],
-      entry "GHC.Internal.Foreign.Marshal.Unsafe" [],
-      entry "GHC.Internal.Foreign.Marshal.Utils" [],
-      entry "GHC.Internal.Foreign.Ptr" [],
-      entry "GHC.Internal.Foreign.StablePtr" [],
-      entry "GHC.Internal.Foreign.Storable" [],
-      entry "GHC.Internal.ForeignPtr" [],
-      entry "GHC.Internal.ForeignSrcLang" [],
-      entry "GHC.Internal.Functor.ZipList" [],
-      entry "GHC.Internal.GHCi" [],
-      entry "GHC.Internal.GHCi.Helpers" [],
-      entry
-        "GHC.Internal.Generics"
-        [(":*:", [InTypes, InTerms], RightAssoc, 6), (":+:", [InTypes], RightAssoc, 5), (":.:", [InTypes], RightAssoc, 7)],
-      entry "GHC.Internal.Heap.Closures" [],
-      entry "GHC.Internal.Heap.Constants" [],
-      entry "GHC.Internal.Heap.InfoTable" [],
-      entry "GHC.Internal.Heap.InfoTable.Types" [],
-      entry "GHC.Internal.Heap.InfoTableProf" [],
-      entry "GHC.Internal.Heap.ProfInfo.Types" [],
-      entry "GHC.Internal.IO" [],
-      entry "GHC.Internal.IO.Buffer" [],
-      entry "GHC.Internal.IO.BufferedIO" [],
-      entry "GHC.Internal.IO.Device" [],
-      entry "GHC.Internal.IO.Encoding" [],
-      entry "GHC.Internal.IO.Encoding.CodePage" [],
-      entry "GHC.Internal.IO.Encoding.Failure" [],
-      entry "GHC.Internal.IO.Encoding.Iconv" [],
-      entry "GHC.Internal.IO.Encoding.Latin1" [],
-      entry "GHC.Internal.IO.Encoding.Types" [],
-      entry "GHC.Internal.IO.Encoding.UTF16" [],
-      entry "GHC.Internal.IO.Encoding.UTF32" [],
-      entry "GHC.Internal.IO.Encoding.UTF8" [],
-      entry "GHC.Internal.IO.Exception" [],
-      entry "GHC.Internal.IO.FD" [],
-      entry "GHC.Internal.IO.Handle" [],
-      entry "GHC.Internal.IO.Handle.FD" [],
-      entry "GHC.Internal.IO.Handle.Internals" [],
-      entry "GHC.Internal.IO.Handle.Lock" [],
-      entry "GHC.Internal.IO.Handle.Text" [],
-      entry "GHC.Internal.IO.Handle.Types" [],
-      entry "GHC.Internal.IO.IOMode" [],
-      entry "GHC.Internal.IO.StdHandles" [],
-      entry
-        "GHC.Internal.IO.SubSystem"
-        [("<!>", [InTerms], LeftAssoc, 7)],
-      entry "GHC.Internal.IO.Unsafe" [],
-      entry "GHC.Internal.IOArray" [],
-      entry "GHC.Internal.IORef" [],
-      entry "GHC.Internal.InfoProv" [],
-      entry "GHC.Internal.InfoProv.Types" [],
-      entry "GHC.Internal.Int" [],
-      entry "GHC.Internal.Integer" [],
-      entry "GHC.Internal.Integer.Logarithms" [],
-      entry "GHC.Internal.IsList" [],
-      entry "GHC.Internal.Ix" [],
-      entry "GHC.Internal.LanguageExtensions" [],
-      entry "GHC.Internal.Lexeme" [],
-      entry
-        "GHC.Internal.List"
-        [("!!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("++", [InTerms], RightAssoc, 5), ("elem", [InTerms], NoAssoc, 4), ("notElem", [InTerms], NoAssoc, 4)],
-      entry "GHC.Internal.MVar" [],
-      entry "GHC.Internal.Magic" [],
-      entry "GHC.Internal.Magic.Dict" [],
-      entry "GHC.Internal.Maybe" [],
-      entry "GHC.Internal.Natural" [],
-      entry
-        "GHC.Internal.Num"
-        [("*", [InTerms], LeftAssoc, 7), ("+", [InTerms], LeftAssoc, 6), ("-", [InTerms], LeftAssoc, 6)],
-      entry
-        "GHC.Internal.Numeric"
-        [("**", [InTerms], RightAssoc, 8)],
-      entry "GHC.Internal.Numeric.Natural" [],
-      entry "GHC.Internal.OverloadedLabels" [],
-      entry "GHC.Internal.Pack" [],
-      entry
-        "GHC.Internal.Prim"
-        [("*#", [InTerms], LeftAssoc, 7), ("*##", [InTerms], LeftAssoc, 7), ("**##", [InTerms], LeftAssoc, 9), ("+#", [InTerms], LeftAssoc, 6), ("+##", [InTerms], LeftAssoc, 6), ("-#", [InTerms], LeftAssoc, 6), ("-##", [InTerms], LeftAssoc, 6), ("/##", [InTerms], LeftAssoc, 7), ("/=#", [InTerms], NoAssoc, 4), ("/=##", [InTerms], NoAssoc, 4), ("<#", [InTerms], NoAssoc, 4), ("<##", [InTerms], NoAssoc, 4), ("<=#", [InTerms], NoAssoc, 4), ("<=##", [InTerms], NoAssoc, 4), ("==#", [InTerms], NoAssoc, 4), ("==##", [InTerms], NoAssoc, 4), (">#", [InTerms], NoAssoc, 4), (">##", [InTerms], NoAssoc, 4), (">=#", [InTerms], NoAssoc, 4), (">=##", [InTerms], NoAssoc, 4), ("seq", [InTerms], RightAssoc, 0)],
-      entry "GHC.Internal.Prim.Exception" [],
-      entry "GHC.Internal.Prim.Ext" [],
-      entry "GHC.Internal.Prim.Panic" [],
-      entry "GHC.Internal.Prim.PtrEq" [],
-      entry
-        "GHC.Internal.PrimopWrappers"
-        [("*#", [InTerms], LeftAssoc, 9), ("*##", [InTerms], LeftAssoc, 9), ("**##", [InTerms], LeftAssoc, 9), ("+#", [InTerms], LeftAssoc, 9), ("+##", [InTerms], LeftAssoc, 9), ("-#", [InTerms], LeftAssoc, 9), ("-##", [InTerms], LeftAssoc, 9), ("/##", [InTerms], LeftAssoc, 9), ("/=#", [InTerms], LeftAssoc, 9), ("/=##", [InTerms], LeftAssoc, 9), ("<#", [InTerms], LeftAssoc, 9), ("<##", [InTerms], LeftAssoc, 9), ("<=#", [InTerms], LeftAssoc, 9), ("<=##", [InTerms], LeftAssoc, 9), ("==#", [InTerms], LeftAssoc, 9), ("==##", [InTerms], LeftAssoc, 9), (">#", [InTerms], LeftAssoc, 9), (">##", [InTerms], LeftAssoc, 9), (">=#", [InTerms], LeftAssoc, 9), (">=##", [InTerms], LeftAssoc, 9)],
-      entry "GHC.Internal.Profiling" [],
-      entry "GHC.Internal.Ptr" [],
-      entry "GHC.Internal.RTS.Flags" [],
-      entry "GHC.Internal.RTS.Flags.Test" [],
-      entry "GHC.Internal.Read" [],
-      entry
-        "GHC.Internal.Real"
-        [("%", [InTerms], LeftAssoc, 7), ("/", [InTerms], LeftAssoc, 7), (":%", [InTerms], LeftAssoc, 9), ("^", [InTerms], RightAssoc, 8), ("^%^", [InTerms], LeftAssoc, 9), ("^^", [InTerms], RightAssoc, 8), ("^^%^^", [InTerms], LeftAssoc, 9), ("div", [InTerms], LeftAssoc, 7), ("mod", [InTerms], LeftAssoc, 7), ("quot", [InTerms], LeftAssoc, 7), ("rem", [InTerms], LeftAssoc, 7)],
-      entry "GHC.Internal.Records" [],
-      entry "GHC.Internal.ResponseFile" [],
-      entry "GHC.Internal.ST" [],
-      entry "GHC.Internal.STRef" [],
-      entry "GHC.Internal.Show" [],
-      entry "GHC.Internal.Stable" [],
-      entry "GHC.Internal.StableName" [],
-      entry "GHC.Internal.Stack" [],
-      entry "GHC.Internal.Stack.Annotation" [],
-      entry "GHC.Internal.Stack.CCS" [],
-      entry "GHC.Internal.Stack.CloneStack" [],
-      entry "GHC.Internal.Stack.Constants" [],
-      entry "GHC.Internal.Stack.ConstantsProf" [],
-      entry "GHC.Internal.Stack.Decode" [],
-      entry "GHC.Internal.Stack.Types" [],
-      entry "GHC.Internal.StaticPtr" [],
-      entry "GHC.Internal.Stats" [],
-      entry "GHC.Internal.Storable" [],
-      entry "GHC.Internal.System.Environment" [],
-      entry "GHC.Internal.System.Environment.Blank" [],
-      entry "GHC.Internal.System.Exit" [],
-      entry "GHC.Internal.System.IO" [],
-      entry "GHC.Internal.System.IO.Error" [],
-      entry "GHC.Internal.System.Mem" [],
-      entry "GHC.Internal.System.Mem.StableName" [],
-      entry "GHC.Internal.System.Posix.Internals" [],
-      entry "GHC.Internal.System.Posix.Types" [],
-      entry "GHC.Internal.TH.Lib" [],
-      entry "GHC.Internal.TH.Lift" [],
-      entry "GHC.Internal.TH.Quote" [],
-      entry "GHC.Internal.TH.Syntax" [],
-      entry
-        "GHC.Internal.Text.ParserCombinators.ReadP"
-        [("+++", [InTerms], RightAssoc, 5), ("<++", [InTerms], RightAssoc, 5)],
-      entry
-        "GHC.Internal.Text.ParserCombinators.ReadPrec"
-        [("+++", [InTerms], LeftAssoc, 9), ("<++", [InTerms], LeftAssoc, 9)],
-      entry
-        "GHC.Internal.Text.Read"
-        [("+++", [InTerms], LeftAssoc, 9), ("<++", [InTerms], LeftAssoc, 9)],
-      entry "GHC.Internal.Text.Read.Lex" [],
-      entry "GHC.Internal.Text.Show" [],
-      entry "GHC.Internal.TopHandler" [],
-      entry
-        "GHC.Internal.Tuple"
-        [("()", [InTypes, InTerms], LeftAssoc, 9), ("(,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9)],
-      entry
-        "GHC.Internal.Type.Reflection"
-        [(":~:", [InTypes], NoAssoc, 4), (":~~:", [InTypes], NoAssoc, 4)],
-      entry "GHC.Internal.Type.Reflection.Unsafe" [],
-      entry
-        "GHC.Internal.TypeError"
-        [(":$$:", [InTerms], LeftAssoc, 5), (":<>:", [InTerms], LeftAssoc, 6)],
-      entry
-        "GHC.Internal.TypeLits"
-        [("*", [InTypes], LeftAssoc, 7), ("+", [InTypes], LeftAssoc, 6), ("-", [InTypes], LeftAssoc, 6), (":$$:", [InTerms], LeftAssoc, 5), (":<>:", [InTerms], LeftAssoc, 6), ("<=", [InTypes], NoAssoc, 4), ("<=?", [InTypes], NoAssoc, 4), ("Div", [InTypes], LeftAssoc, 7), ("Mod", [InTypes], LeftAssoc, 7), ("^", [InTypes], RightAssoc, 8)],
-      entry "GHC.Internal.TypeLits.Internal" [],
-      entry
-        "GHC.Internal.TypeNats"
-        [("*", [InTypes], LeftAssoc, 7), ("+", [InTypes], LeftAssoc, 6), ("-", [InTypes], LeftAssoc, 6), ("<=", [InTypes], NoAssoc, 4), ("<=?", [InTypes], NoAssoc, 4), ("Div", [InTypes], LeftAssoc, 7), ("Mod", [InTypes], LeftAssoc, 7), ("^", [InTypes], RightAssoc, 8)],
-      entry "GHC.Internal.TypeNats.Internal" [],
-      entry
-        "GHC.Internal.Types"
-        [("~~", [InTypes], NoAssoc, 4)],
-      entry "GHC.Internal.Unicode" [],
-      entry "GHC.Internal.Unsafe.Coerce" [],
-      entry "GHC.Internal.Weak" [],
-      entry "GHC.Internal.Weak.Finalize" [],
-      entry "GHC.Internal.Word" [],
-      entry "GHC.IsList" [],
-      entry "GHC.Ix" [],
-      entry "GHC.LanguageExtensions.Type" [],
-      entry "GHC.Lexeme" [],
-      entry
-        "GHC.List"
-        [("!!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("++", [InTerms], RightAssoc, 5), ("elem", [InTerms], NoAssoc, 4), ("notElem", [InTerms], NoAssoc, 4)],
-      entry "GHC.MVar" [],
-      entry "GHC.Magic" [],
-      entry "GHC.Magic.Dict" [],
-      entry "GHC.Maybe" [],
-      entry "GHC.Natural" [],
-      entry
-        "GHC.Num"
-        [("*", [InTerms], LeftAssoc, 7), ("+", [InTerms], LeftAssoc, 6), ("-", [InTerms], LeftAssoc, 6)],
-      entry "GHC.Num.Backend" [],
-      entry "GHC.Num.Backend.Native" [],
-      entry "GHC.Num.Backend.Selected" [],
-      entry "GHC.Num.BigNat" [],
-      entry "GHC.Num.Integer" [],
-      entry "GHC.Num.Natural" [],
-      entry
-        "GHC.Num.Primitives"
-        [("&&#", [InTerms], RightAssoc, 3), ("||#", [InTerms], RightAssoc, 2)],
-      entry "GHC.Num.WordArray" [],
-      entry
-        "GHC.OldList"
-        [("!!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("++", [InTerms], RightAssoc, 5), ("\\\\", [InTerms], NoAssoc, 5), ("elem", [InTerms], NoAssoc, 4), ("notElem", [InTerms], NoAssoc, 4)],
-      entry "GHC.OverloadedLabels" [],
-      entry
-        "GHC.Prim"
-        [("*#", [InTerms], LeftAssoc, 7), ("*##", [InTerms], LeftAssoc, 7), ("**##", [InTerms], LeftAssoc, 9), ("+#", [InTerms], LeftAssoc, 6), ("+##", [InTerms], LeftAssoc, 6), ("-#", [InTerms], LeftAssoc, 6), ("-##", [InTerms], LeftAssoc, 6), ("/##", [InTerms], LeftAssoc, 7), ("/=#", [InTerms], NoAssoc, 4), ("/=##", [InTerms], NoAssoc, 4), ("<#", [InTerms], NoAssoc, 4), ("<##", [InTerms], NoAssoc, 4), ("<=#", [InTerms], NoAssoc, 4), ("<=##", [InTerms], NoAssoc, 4), ("==#", [InTerms], NoAssoc, 4), ("==##", [InTerms], NoAssoc, 4), (">#", [InTerms], NoAssoc, 4), (">##", [InTerms], NoAssoc, 4), (">=#", [InTerms], NoAssoc, 4), (">=##", [InTerms], NoAssoc, 4), ("seq", [InTerms], RightAssoc, 0)],
-      entry "GHC.Prim.Exception" [],
-      entry "GHC.Prim.Ext" [],
-      entry "GHC.Prim.Panic" [],
-      entry "GHC.Prim.PtrEq" [],
-      entry
-        "GHC.PrimopWrappers"
-        [("*#", [InTerms], LeftAssoc, 9), ("*##", [InTerms], LeftAssoc, 9), ("**##", [InTerms], LeftAssoc, 9), ("+#", [InTerms], LeftAssoc, 9), ("+##", [InTerms], LeftAssoc, 9), ("-#", [InTerms], LeftAssoc, 9), ("-##", [InTerms], LeftAssoc, 9), ("/##", [InTerms], LeftAssoc, 9), ("/=#", [InTerms], LeftAssoc, 9), ("/=##", [InTerms], LeftAssoc, 9), ("<#", [InTerms], LeftAssoc, 9), ("<##", [InTerms], LeftAssoc, 9), ("<=#", [InTerms], LeftAssoc, 9), ("<=##", [InTerms], LeftAssoc, 9), ("==#", [InTerms], LeftAssoc, 9), ("==##", [InTerms], LeftAssoc, 9), (">#", [InTerms], LeftAssoc, 9), (">##", [InTerms], LeftAssoc, 9), (">=#", [InTerms], LeftAssoc, 9), (">=##", [InTerms], LeftAssoc, 9)],
-      entry "GHC.Profiling" [],
-      entry "GHC.Ptr" [],
-      entry "GHC.RTS.Flags" [],
-      entry "GHC.Read" [],
-      entry
-        "GHC.Real"
-        [("%", [InTerms], LeftAssoc, 7), ("/", [InTerms], LeftAssoc, 7), (":%", [InTerms], LeftAssoc, 9), ("^", [InTerms], RightAssoc, 8), ("^%^", [InTerms], LeftAssoc, 9), ("^^", [InTerms], RightAssoc, 8), ("^^%^^", [InTerms], LeftAssoc, 9), ("div", [InTerms], LeftAssoc, 7), ("mod", [InTerms], LeftAssoc, 7), ("quot", [InTerms], LeftAssoc, 7), ("rem", [InTerms], LeftAssoc, 7)],
-      entry "GHC.Records" [],
-      entry "GHC.ResponseFile" [],
-      entry "GHC.ST" [],
-      entry "GHC.STRef" [],
-      entry "GHC.Show" [],
-      entry "GHC.Stable" [],
-      entry "GHC.StableName" [],
-      entry "GHC.Stack" [],
-      entry "GHC.Stack.CCS" [],
-      entry "GHC.Stack.CloneStack" [],
-      entry "GHC.Stack.Types" [],
-      entry "GHC.StaticPtr" [],
-      entry "GHC.Stats" [],
-      entry "GHC.Storable" [],
-      entry "GHC.TopHandler" [],
-      entry
-        "GHC.Tuple"
-        [("()", [InTypes, InTerms], LeftAssoc, 9), ("(,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9)],
-      entry
-        "GHC.TypeError"
-        [(":$$:", [InTerms], LeftAssoc, 5), (":<>:", [InTerms], LeftAssoc, 6)],
-      entry
-        "GHC.TypeLits"
-        [("*", [InTypes], LeftAssoc, 7), ("+", [InTypes], LeftAssoc, 6), ("-", [InTypes], LeftAssoc, 6), (":$$:", [InTerms], LeftAssoc, 5), (":<>:", [InTerms], LeftAssoc, 6), ("<=", [InTypes], NoAssoc, 4), ("<=?", [InTypes], NoAssoc, 4), ("Div", [InTypes], LeftAssoc, 7), ("Mod", [InTypes], LeftAssoc, 7), ("^", [InTypes], RightAssoc, 8)],
-      entry
-        "GHC.TypeNats"
-        [("*", [InTypes], LeftAssoc, 7), ("+", [InTypes], LeftAssoc, 6), ("-", [InTypes], LeftAssoc, 6), ("<=", [InTypes], NoAssoc, 4), ("<=?", [InTypes], NoAssoc, 4), ("Div", [InTypes], LeftAssoc, 7), ("Mod", [InTypes], LeftAssoc, 7), ("^", [InTypes], RightAssoc, 8)],
-      entry
-        "GHC.Types"
-        [("~~", [InTypes], NoAssoc, 4)],
-      entry "GHC.Unicode" [],
-      entry "GHC.Weak" [],
-      entry "GHC.Weak.Finalize" [],
-      entry "GHC.Word" [],
-      entry "Language.Haskell.TH" [],
-      entry
-        "Language.Haskell.TH.CodeDo"
-        [(">>", [InTerms], LeftAssoc, 9), (">>=", [InTerms], LeftAssoc, 9)],
-      entry "Language.Haskell.TH.LanguageExtensions" [],
-      entry "Language.Haskell.TH.Lib" [],
-      entry "Language.Haskell.TH.Ppr" [],
-      entry
-        "Language.Haskell.TH.PprLib"
-        [("$$", [InTerms], LeftAssoc, 5), ("$+$", [InTerms], LeftAssoc, 5), ("<+>", [InTerms], LeftAssoc, 6), ("<>", [InTerms], LeftAssoc, 6)],
-      entry "Language.Haskell.TH.Quote" [],
-      entry "Language.Haskell.TH.Syntax" [],
-      entry
-        "Numeric"
-        [("**", [InTerms], RightAssoc, 8)],
-      entry "Numeric.Natural" [],
-      entry
-        "Prelude"
-        [("!!", [InTerms], LeftAssoc, 9), ("$", [InTerms], RightAssoc, 0), ("$!", [InTerms], RightAssoc, 0), ("&&", [InTerms], RightAssoc, 3), ("*", [InTerms], LeftAssoc, 7), ("**", [InTerms], RightAssoc, 8), ("*>", [InTerms], LeftAssoc, 4), ("+", [InTerms], LeftAssoc, 6), ("++", [InTerms], RightAssoc, 5), ("-", [InTerms], LeftAssoc, 6), (".", [InTerms], RightAssoc, 9), ("/", [InTerms], LeftAssoc, 7), ("/=", [InTerms], NoAssoc, 4), (":", [InTerms], RightAssoc, 5), ("<", [InTerms], NoAssoc, 4), ("<$", [InTerms], LeftAssoc, 4), ("<$>", [InTerms], LeftAssoc, 4), ("<*", [InTerms], LeftAssoc, 4), ("<*>", [InTerms], LeftAssoc, 4), ("<=", [InTerms], NoAssoc, 4), ("<>", [InTerms], RightAssoc, 6), ("=<<", [InTerms], RightAssoc, 1), ("==", [InTerms], NoAssoc, 4), (">", [InTerms], NoAssoc, 4), (">=", [InTerms], NoAssoc, 4), (">>", [InTerms], LeftAssoc, 1), (">>=", [InTerms], LeftAssoc, 1), ("^", [InTerms], RightAssoc, 8), ("^^", [InTerms], RightAssoc, 8), ("div", [InTerms], LeftAssoc, 7), ("elem", [InTerms], NoAssoc, 4), ("mod", [InTerms], LeftAssoc, 7), ("notElem", [InTerms], NoAssoc, 4), ("quot", [InTerms], LeftAssoc, 7), ("rem", [InTerms], LeftAssoc, 7), ("seq", [InTerms], RightAssoc, 0), ("||", [InTerms], RightAssoc, 2)],
-      entry "System.CPUTime" [],
-      entry "System.Cmd" [],
-      entry "System.Console.GetOpt" [],
-      entry "System.Directory" [],
-      entry "System.Directory.Internal" [],
-      entry
-        "System.Directory.Internal.Prelude"
-        [("!!", [InTerms], LeftAssoc, 9), ("$", [InTerms], RightAssoc, 0), ("$!", [InTerms], RightAssoc, 0), ("&&", [InTerms], RightAssoc, 3), ("*", [InTerms], LeftAssoc, 7), ("**", [InTerms], RightAssoc, 8), ("*>", [InTerms], LeftAssoc, 4), ("+", [InTerms], LeftAssoc, 6), ("++", [InTerms], RightAssoc, 5), ("-", [InTerms], LeftAssoc, 6), (".", [InTerms], RightAssoc, 9), (".&.", [InTerms], LeftAssoc, 7), (".|.", [InTerms], LeftAssoc, 5), ("/", [InTerms], LeftAssoc, 7), ("/=", [InTerms], NoAssoc, 4), ("<", [InTerms], NoAssoc, 4), ("<$", [InTerms], LeftAssoc, 4), ("<$>", [InTerms], LeftAssoc, 4), ("<*", [InTerms], LeftAssoc, 4), ("<*>", [InTerms], LeftAssoc, 4), ("<=", [InTerms], NoAssoc, 4), ("<=<", [InTerms], RightAssoc, 1), ("<>", [InTerms], RightAssoc, 6), ("=<<", [InTerms], RightAssoc, 1), ("==", [InTerms], NoAssoc, 4), (">", [InTerms], NoAssoc, 4), (">=", [InTerms], NoAssoc, 4), (">=>", [InTerms], RightAssoc, 1), (">>", [InTerms], LeftAssoc, 1), (">>=", [InTerms], LeftAssoc, 1), ("^", [InTerms], RightAssoc, 8), ("^^", [InTerms], RightAssoc, 8), ("div", [InTerms], LeftAssoc, 7), ("elem", [InTerms], NoAssoc, 4), ("mod", [InTerms], LeftAssoc, 7), ("notElem", [InTerms], NoAssoc, 4), ("on", [InTerms], LeftAssoc, 0), ("quot", [InTerms], LeftAssoc, 7), ("rem", [InTerms], LeftAssoc, 7), ("seq", [InTerms], RightAssoc, 0), ("||", [InTerms], RightAssoc, 2)],
-      entry "System.Directory.OsPath" [],
-      entry "System.Environment" [],
-      entry "System.Environment.Blank" [],
-      entry "System.Exit" [],
-      entry
-        "System.FilePath"
-        [("-<.>", [InTerms], RightAssoc, 7), ("<.>", [InTerms], RightAssoc, 7), ("</>", [InTerms], RightAssoc, 5)],
-      entry
-        "System.FilePath.Posix"
-        [("-<.>", [InTerms], RightAssoc, 7), ("<.>", [InTerms], RightAssoc, 7), ("</>", [InTerms], RightAssoc, 5)],
-      entry
-        "System.FilePath.Windows"
-        [("-<.>", [InTerms], RightAssoc, 7), ("<.>", [InTerms], RightAssoc, 7), ("</>", [InTerms], RightAssoc, 5)],
-      entry "System.IO" [],
-      entry "System.IO.Error" [],
-      entry "System.IO.Unsafe" [],
-      entry "System.Info" [],
-      entry "System.Mem" [],
-      entry "System.Mem.StableName" [],
-      entry "System.Mem.Weak" [],
-      entry
-        "System.OsPath"
-        [("-<.>", [InTerms], LeftAssoc, 9), ("<.>", [InTerms], LeftAssoc, 9), ("</>", [InTerms], LeftAssoc, 9)],
-      entry "System.OsPath.Encoding" [],
-      entry "System.OsPath.Internal" [],
-      entry
-        "System.OsPath.Posix"
-        [("-<.>", [InTerms], LeftAssoc, 9), ("<.>", [InTerms], LeftAssoc, 9), ("</>", [InTerms], LeftAssoc, 9)],
-      entry
-        "System.OsPath.Posix.Internal"
-        [("-<.>", [InTerms], RightAssoc, 7), ("<.>", [InTerms], RightAssoc, 7), ("</>", [InTerms], RightAssoc, 5)],
-      entry "System.OsPath.Types" [],
-      entry
-        "System.OsPath.Windows"
-        [("-<.>", [InTerms], LeftAssoc, 9), ("<.>", [InTerms], LeftAssoc, 9), ("</>", [InTerms], LeftAssoc, 9)],
-      entry
-        "System.OsPath.Windows.Internal"
-        [("-<.>", [InTerms], RightAssoc, 7), ("<.>", [InTerms], RightAssoc, 7), ("</>", [InTerms], RightAssoc, 5)],
-      entry
-        "System.OsString"
-        [("!?", [InTerms], LeftAssoc, 9)],
-      entry
-        "System.OsString.Data.ByteString.Short"
-        [("!?", [InTerms], LeftAssoc, 9), ("cons", [InTerms], RightAssoc, 5), ("snoc", [InTerms], LeftAssoc, 5)],
-      entry "System.OsString.Data.ByteString.Short.Internal" [],
-      entry
-        "System.OsString.Data.ByteString.Short.Word16"
-        [("!?", [InTerms], LeftAssoc, 9), ("cons", [InTerms], RightAssoc, 5), ("snoc", [InTerms], LeftAssoc, 5)],
-      entry "System.OsString.Encoding" [],
-      entry "System.OsString.Encoding.Internal" [],
-      entry
-        "System.OsString.Internal"
-        [("!?", [InTerms], LeftAssoc, 9)],
-      entry "System.OsString.Internal.Exception" [],
-      entry "System.OsString.Internal.Types" [],
-      entry
-        "System.OsString.Posix"
-        [("!?", [InTerms], LeftAssoc, 9)],
-      entry
-        "System.OsString.Windows"
-        [("!?", [InTerms], LeftAssoc, 9)],
-      entry
-        "System.Posix"
-        [("addSignal", [InTerms], RightAssoc, 9), ("deleteSignal", [InTerms], RightAssoc, 9)],
-      entry
-        "System.Posix.ByteString"
-        [("addSignal", [InTerms], RightAssoc, 9), ("deleteSignal", [InTerms], RightAssoc, 9)],
-      entry "System.Posix.ByteString.FilePath" [],
-      entry "System.Posix.Directory" [],
-      entry "System.Posix.Directory.ByteString" [],
-      entry "System.Posix.Directory.Fd" [],
-      entry "System.Posix.Directory.Internals" [],
-      entry "System.Posix.Directory.PosixPath" [],
-      entry "System.Posix.DynamicLinker" [],
-      entry "System.Posix.DynamicLinker.ByteString" [],
-      entry "System.Posix.DynamicLinker.Module" [],
-      entry "System.Posix.DynamicLinker.Module.ByteString" [],
-      entry "System.Posix.DynamicLinker.Prim" [],
-      entry "System.Posix.Env" [],
-      entry "System.Posix.Env.ByteString" [],
-      entry "System.Posix.Env.PosixString" [],
-      entry "System.Posix.Error" [],
-      entry "System.Posix.Fcntl" [],
-      entry "System.Posix.Files" [],
-      entry "System.Posix.Files.ByteString" [],
-      entry "System.Posix.Files.PosixString" [],
-      entry "System.Posix.IO" [],
-      entry "System.Posix.IO.ByteString" [],
-      entry "System.Posix.IO.PosixString" [],
-      entry "System.Posix.Internals" [],
-      entry "System.Posix.PosixPath.FilePath" [],
-      entry
-        "System.Posix.PosixString"
-        [("addSignal", [InTerms], RightAssoc, 9), ("deleteSignal", [InTerms], RightAssoc, 9)],
-      entry "System.Posix.Process" [],
-      entry "System.Posix.Process.ByteString" [],
-      entry "System.Posix.Process.Internals" [],
-      entry "System.Posix.Process.PosixString" [],
-      entry "System.Posix.Resource" [],
-      entry "System.Posix.Semaphore" [],
-      entry "System.Posix.SharedMem" [],
-      entry
-        "System.Posix.Signals"
-        [("addSignal", [InTerms], RightAssoc, 9), ("deleteSignal", [InTerms], RightAssoc, 9)],
-      entry
-        "System.Posix.Signals.Exts"
-        [("addSignal", [InTerms], RightAssoc, 9), ("deleteSignal", [InTerms], RightAssoc, 9)],
-      entry "System.Posix.Temp" [],
-      entry "System.Posix.Temp.ByteString" [],
-      entry "System.Posix.Temp.PosixString" [],
-      entry "System.Posix.Terminal" [],
-      entry "System.Posix.Terminal.ByteString" [],
-      entry "System.Posix.Terminal.PosixString" [],
-      entry "System.Posix.Time" [],
-      entry "System.Posix.Types" [],
-      entry "System.Posix.Unistd" [],
-      entry "System.Posix.User" [],
-      entry "System.Posix.User.ByteString" [],
-      entry "System.Process" [],
-      entry "System.Process.CommunicationHandle" [],
-      entry "System.Process.CommunicationHandle.Internal" [],
-      entry "System.Process.Environment.OsString" [],
-      entry "System.Process.Internals" [],
-      entry "System.Timeout" [],
-      entry
-        "Text.Parsec"
-        [("<?>", [InTerms], NoAssoc, 0), ("<|>", [InTerms], RightAssoc, 1)],
-      entry "Text.Parsec.ByteString" [],
-      entry "Text.Parsec.ByteString.Lazy" [],
-      entry "Text.Parsec.Char" [],
-      entry "Text.Parsec.Combinator" [],
-      entry "Text.Parsec.Error" [],
-      entry "Text.Parsec.Expr" [],
-      entry "Text.Parsec.Language" [],
-      entry
-        "Text.Parsec.Perm"
-        [("<$$>", [InTerms], LeftAssoc, 2), ("<$?>", [InTerms], LeftAssoc, 2), ("<|?>", [InTerms], LeftAssoc, 1), ("<||>", [InTerms], LeftAssoc, 1)],
-      entry "Text.Parsec.Pos" [],
-      entry
-        "Text.Parsec.Prim"
-        [("<?>", [InTerms], NoAssoc, 0), ("<|>", [InTerms], RightAssoc, 1)],
-      entry "Text.Parsec.String" [],
-      entry "Text.Parsec.Text" [],
-      entry "Text.Parsec.Text.Lazy" [],
-      entry "Text.Parsec.Token" [],
-      entry
-        "Text.ParserCombinators.Parsec"
-        [("<?>", [InTerms], NoAssoc, 0), ("<|>", [InTerms], RightAssoc, 1)],
-      entry "Text.ParserCombinators.Parsec.Char" [],
-      entry "Text.ParserCombinators.Parsec.Combinator" [],
-      entry "Text.ParserCombinators.Parsec.Error" [],
-      entry "Text.ParserCombinators.Parsec.Expr" [],
-      entry "Text.ParserCombinators.Parsec.Language" [],
-      entry
-        "Text.ParserCombinators.Parsec.Perm"
-        [("<$$>", [InTerms], LeftAssoc, 2), ("<$?>", [InTerms], LeftAssoc, 2), ("<|?>", [InTerms], LeftAssoc, 1), ("<||>", [InTerms], LeftAssoc, 1)],
-      entry "Text.ParserCombinators.Parsec.Pos" [],
-      entry
-        "Text.ParserCombinators.Parsec.Prim"
-        [("<?>", [InTerms], NoAssoc, 0), ("<|>", [InTerms], RightAssoc, 1)],
-      entry "Text.ParserCombinators.Parsec.Token" [],
-      entry
-        "Text.ParserCombinators.ReadP"
-        [("+++", [InTerms], RightAssoc, 5), ("<++", [InTerms], RightAssoc, 5)],
-      entry
-        "Text.ParserCombinators.ReadPrec"
-        [("+++", [InTerms], LeftAssoc, 9), ("<++", [InTerms], LeftAssoc, 9)],
-      entry
-        "Text.PrettyPrint"
-        [("$$", [InTerms], LeftAssoc, 5), ("$+$", [InTerms], LeftAssoc, 5), ("<+>", [InTerms], LeftAssoc, 6), ("<>", [InTerms], LeftAssoc, 6)],
-      entry
-        "Text.PrettyPrint.Annotated"
-        [("$$", [InTerms], LeftAssoc, 5), ("$+$", [InTerms], LeftAssoc, 5), ("<+>", [InTerms], LeftAssoc, 6), ("<>", [InTerms], LeftAssoc, 6)],
-      entry
-        "Text.PrettyPrint.Annotated.HughesPJ"
-        [("$$", [InTerms], LeftAssoc, 5), ("$+$", [InTerms], LeftAssoc, 5), ("<+>", [InTerms], LeftAssoc, 6), ("<>", [InTerms], LeftAssoc, 6)],
-      entry
-        "Text.PrettyPrint.Annotated.HughesPJClass"
-        [("$$", [InTerms], LeftAssoc, 5), ("$+$", [InTerms], LeftAssoc, 5), ("<+>", [InTerms], LeftAssoc, 6), ("<>", [InTerms], LeftAssoc, 6)],
-      entry
-        "Text.PrettyPrint.HughesPJ"
-        [("$$", [InTerms], LeftAssoc, 5), ("$+$", [InTerms], LeftAssoc, 5), ("<+>", [InTerms], LeftAssoc, 6), ("<>", [InTerms], LeftAssoc, 6)],
-      entry
-        "Text.PrettyPrint.HughesPJClass"
-        [("$$", [InTerms], LeftAssoc, 5), ("$+$", [InTerms], LeftAssoc, 5), ("<+>", [InTerms], LeftAssoc, 6), ("<>", [InTerms], LeftAssoc, 6)],
-      entry "Text.Printf" [],
-      entry
-        "Text.Read"
-        [("+++", [InTerms], LeftAssoc, 9), ("<++", [InTerms], LeftAssoc, 9)],
-      entry "Text.Read.Lex" [],
-      entry "Text.Show" [],
-      entry "Text.Show.Functions" [],
-      entry "Trace.Hpc.Mix" [],
-      entry "Trace.Hpc.Reflect" [],
-      entry "Trace.Hpc.Tix" [],
-      entry "Trace.Hpc.Util" [],
-      entry
-        "Type.Reflection"
-        [(":~:", [InTypes], NoAssoc, 4), (":~~:", [InTypes], NoAssoc, 4)],
-      entry "Type.Reflection.Unsafe" [],
-      entry "Unsafe.Coerce" []
-    ]
-  where
-    entry name ops =
-      ( name,
-        Map.fromList
-          [ ((namespace, OpName o), Fixity d p)
-          | (o, governs, d, p) <- ops,
-            namespace <- governs
-          ]
-      )
diff --git a/src/Tilia/Fixity/ByHand.hs b/src/Tilia/Fixity/ByHand.hs
--- a/src/Tilia/Fixity/ByHand.hs
+++ b/src/Tilia/Fixity/ByHand.hs
@@ -1,9 +1,8 @@
 {-# LANGUAGE OverloadedStrings #-}
 
--- | Fixities for the few modules whose source defeats us.
+-- | Fixities for the modules written for @hsc2hs@, which are not read.
 module Tilia.Fixity.ByHand
-  ( byHandFixities,
-    hscFixities,
+  ( hscFixities,
   )
 where
 
@@ -12,65 +11,10 @@
 import Data.Text (Text)
 import Tilia.Fixity
 
--- | The modules, and the operators they declare.
-byHandFixities :: Map Text (Map OpName Fixity)
-byHandFixities =
-  Map.fromList
-    [ -- @Test.QuickCheck.Property@ invokes a macro it defines:
-      -- @WITNESSES(:: [Witness])@ stands in the middle of a record, and
-      -- only @cpp@ can expand it. No configuration of the module is
-      -- Haskell, so there is nothing to parse in any of them.
-      entry
-        "Test.QuickCheck.Property"
-        [ ("==>", RightAssoc, 0),
-          (".&.", RightAssoc, 1),
-          (".&&.", RightAssoc, 1),
-          (".||.", RightAssoc, 1),
-          ("===", NoAssoc, 4),
-          ("=/=", NoAssoc, 4)
-        ],
-      -- @network@ writes its system calls as @foreign import CALLCONV@, and
-      -- @CALLCONV@ is a macro out of @HsNetDef.h@ standing where the
-      -- calling convention goes. It has to be expanded for the line to be
-      -- Haskell at all, so no configuration of these five parses.
-      entry "Network.Socket.If" [],
-      entry "Network.Socket.Internal" [],
-      entry "Network.Socket.Name" [],
-      entry "Network.Socket.Shutdown" [],
-      entry "Network.Socket.Syscall" [],
-      -- @Data.HashMap.Internal.Array@ defines @CHECK_BOUNDS@ and calls it
-      -- where an expression goes, with the guarded @case@ on the line
-      -- below. Unexpanded it reads as a function applied to that @case@,
-      -- and both branches of the @#if@ that defines it leave the call
-      -- standing, so there is no configuration to fall back on.
-      entry "Data.HashMap.Internal.Array" [],
-      -- @monad-logger@ writes one method body once and hands it to sixteen
-      -- instances: @#define DEF monadLoggerLog a b c d = …@, and then
-      -- @instance … where DEF@ for each of them. A @where@ with a bare name
-      -- after it is not Haskell, and the @#define@ sits outside every
-      -- conditional, so there is no configuration in which it is.
-      entry "Control.Monad.Logger" [],
-      -- @cereal@ writes its generic sum instances through three macros, and
-      -- the one that matters expands into a guard and its right-hand side
-      -- at once: @gPut | PUTSUM(Word8) | …@. Unexpanded that is a guard
-      -- with nothing after it.
-      entry "Data.Serialize" [],
-      -- @th-lift-instances@ has @LIFT_TYPED_DEFAULT@, defined three ways
-      -- against the @template-haskell@ version and to nothing at all in the
-      -- oldest of them, and written bare in five instance bodies.
-      entry "Instances.TH.Lift" []
-    ]
-  where
-    entry name ops =
-      (name, Map.fromList [(OpName o, Fixity d p) | (o, d, p) <- ops])
-
 -- | What the modules written for @hsc2hs@ declare.
 --
--- A different question from 'byHandFixities', and asked at a different
--- moment. That table is a last resort for a module nothing could be made
--- of; this one is the whole answer for an @.hsc@, given instead of reading
--- it, and a module absent from here declares nothing rather than being
--- unreadable.
+-- This is the whole answer for an @.hsc@, given instead of reading it, and
+-- a module absent from here declares nothing rather than being unreadable.
 hscFixities :: Map Text (Map OpName Fixity)
 hscFixities =
   Map.fromList
diff --git a/src/Tilia/Fixity/Cabal.hs b/src/Tilia/Fixity/Cabal.hs
--- a/src/Tilia/Fixity/Cabal.hs
+++ b/src/Tilia/Fixity/Cabal.hs
@@ -98,12 +98,12 @@
   where
     ls = T.lines contents
     baseline = case mapMaybe languageNamed (fieldsNamed "default-language" ls) of
-      [] -> GHC.languageExtensions Nothing
+      [] -> GHC.languageExtensions (Just GHC.Haskell98)
       editions ->
         Data.List.nub (concatMap (GHC.languageExtensions . Just) editions)
     named =
       concatMap (T.split (== ',')) . concatMap T.words $
-        fieldsNamed "default-extensions" ls
+        fieldsNamed "extensions" ls <> fieldsNamed "default-extensions" ls
     apply acc written = case T.strip written of
       name
         | Just off <- T.stripPrefix "No" name,
diff --git a/src/Tilia/Fixity/Cache.hs b/src/Tilia/Fixity/Cache.hs
--- a/src/Tilia/Fixity/Cache.hs
+++ b/src/Tilia/Fixity/Cache.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE DataKinds #-}
 {-# LANGUAGE LambdaCase #-}
 {-# LANGUAGE OverloadedStrings #-}
@@ -7,14 +8,13 @@
   ( Cache,
     PlanToken (..),
     openCache,
+    recalled,
     cachedModules,
     storeModules,
-    cachedFixities,
-    storeFixities,
-    cachedExportNames,
-    storeExportNames,
-    cachedChildren,
-    storeChildren,
+    cachedEstablished,
+    storeEstablished,
+    cachedSummaries,
+    storeSummaries,
     cachedInstalled,
     storeInstalled,
     cachedFutileSolve,
@@ -26,15 +26,18 @@
 
 import Control.Monad (join)
 import Data.Choice (Choice, isFalse)
-import Data.Map.Strict (Map)
+import Data.Foldable (toList, traverse_)
+import Data.List.NonEmpty (NonEmpty)
+import Data.List.NonEmpty qualified as NE
 import Data.Map.Strict qualified as Map
-import Data.Maybe (fromMaybe, mapMaybe)
+import Data.Maybe (fromMaybe, isJust)
 import Data.Set (Set)
 import Data.Set qualified as Set
 import Data.Text (Text)
 import Data.Text qualified as T
 import Data.Text.IO qualified as T
 import Data.Text.Read qualified as T
+import Data.Time.Format (defaultTimeLocale, formatTime)
 import System.Directory
   ( XdgDirectory (XdgCache),
     createDirectoryIfMissing,
@@ -49,8 +52,9 @@
 import Tilia.Utils (quietly)
 
 -- | Where cached answers are kept together with a token unique to this
--- build plan and environment.
-data Cache = Cache FilePath PlanToken
+-- build plan and environment, or nowhere, in which case nothing is
+-- remembered.
+data Cache = Cache FilePath PlanToken | NoCache
 
 -- | A token that is unique to this plan and environment. It is needed in
 -- order to be able to cache the expensive class of lookup failures that are
@@ -66,210 +70,359 @@
 
 -- | Bumped whenever cache format changes.
 formatVersion :: FilePath
-formatVersion = "v1"
+formatVersion = "v2"
 
 -- | Open, creating the directory if need be.
 --
--- 'Nothing' if the cache is not to be used or there is nowhere to write,
--- in which case everything still works and is merely slower.
-openCache :: Choice "useCache" -> PlanToken -> IO (Maybe Cache)
+-- 'NoCache' if the cache is not to be used or there is nowhere to write, in
+-- which case everything still works and is merely slower.
+openCache :: Choice "useCache" -> PlanToken -> IO Cache
 openCache use token
-  | isFalse use = pure Nothing
-  | otherwise = quietly Nothing $ do
+  | isFalse use = pure NoCache
+  | otherwise = quietly NoCache $ do
       root <- (</> formatVersion) <$> getXdgDirectory XdgCache "tilia"
-      createDirectoryIfMissing True (root </> "modules")
-      createDirectoryIfMissing True (root </> "fixities")
-      createDirectoryIfMissing True (root </> "installed")
-      pure (Just (Cache root token))
+      createDirectoryIfMissing True root
+      pure (Cache root token)
 
+-- | What was remembered, or else what reading finds, remembered in turn.
+recalled ::
+  -- | Recall the answer.
+  IO (Maybe a) ->
+  -- | Remember one.
+  (a -> IO ()) ->
+  -- | Work the answer out, if there is one to be had.
+  IO (Maybe a) ->
+  IO (Maybe a)
+recalled recall remember work =
+  recall >>= \case
+    Just answer -> pure (Just answer)
+    Nothing -> do
+      found <- work
+      traverse_ remember found
+      pure found
+
 -- | The modules a package exposes, if that was worked out before.
 cachedModules :: Cache -> Text -> IO (Maybe [Text])
 cachedModules cache package =
-  readIfPresent (modulesPath cache package) $
+  readIfPresent (at cache ["modules", package]) $
     filter (not . T.null) . T.lines
 
 -- | Remember what a package exposes.
 storeModules :: Cache -> Text -> [Text] -> IO ()
 storeModules cache package =
-  writeAtomically (modulesPath cache package) . T.unlines
+  writeAtomically (at cache ["modules", package]) . T.unlines
 
 -- | What was established about a module before, if anything.
-cachedFixities ::
+cachedEstablished ::
   -- | Where to look.
   Cache ->
   -- | The package the module belongs to. Opaque here.
   Text ->
   -- | The module, by its full dotted name.
   Text ->
-  -- | What was established, or 'Nothing' if nothing was.
+  -- | What was established, or 'Nothing' if nothing was, or if what it
+  -- left unsettled was left so under another plan.
   IO (Maybe Established)
-cachedFixities cache@(Cache _ (PlanToken token)) package modName =
-  fmap join . readIfPresent (fixitiesPath cache package modName) $ \contents ->
-    case T.lines contents of
-      ("read" : entries) -> Declares . Map.fromList <$> traverse parseFixity entries
-      [unread] | Just rest <- T.stripPrefix ("unread\t" <> token) unread ->
-        case T.uncons rest of
-          Nothing -> Just (Unreadable Nothing)
-          Just ('\t', below) | not (T.null below) -> Just (Unreadable (Just below))
-          _ -> Nothing
+cachedEstablished cache package modName =
+  fmap join . readIfPresent (at cache ["established", package, modName]) $
+    assembled . fmap T.words . T.lines
+  where
+    assembled entries = do
+      let fieldsOf kind = [fields | k : fields <- entries, k == kind]
+      fixities <- traverse parseFixity (fieldsOf "fixity")
+      unsettled <- traverse unsettledEntry (fieldsOf "unsettled")
+      untold <- traverse untoldEntry (fieldsOf "untold")
+      names <- concat <$> traverse parseByNamespace (fieldsOf "names")
+      certain <- traverse (memberEntry parseByNamespace) (fieldsOf "member")
+      members <-
+        traverse (memberEntry (Just . fmap OpName)) (fieldsOf "members")
+      let byParent = Map.fromListWith Set.union certain
+      pure
+        Established
+          { establishedFixities = Map.fromList fixities,
+            establishedUnsettled = Map.fromListWith Set.union unsettled,
+            establishedUntold = Set.fromList untold,
+            establishedCertain = Certain (Set.fromList names) byParent,
+            establishedMembers =
+              Map.union
+                (Map.fromListWith Set.union members)
+                (Map.map (Set.map snd) byParent)
+          }
+    unsettledEntry = \case
+      token : fields
+        | token == tokenOf cache ->
+            let (chain, names) = break (isJust . parseNamespace) fields
+             in (chain,) . Set.fromList <$> parseNamespaced names
       _ -> Nothing
+    untoldEntry = \case
+      token : chain | token == tokenOf cache -> Just chain
+      _ -> Nothing
+    memberEntry kidsOf = \case
+      parent : kids -> (OpName parent,) . Set.fromList <$> kidsOf kids
+      [] -> Nothing
 
 -- | Remember what reading a module established.
-storeFixities ::
+storeEstablished ::
   -- | Where to write.
   Cache ->
-  -- | The package the module belongs to, as 'cachedFixities' takes it.
+  -- | The package the module belongs to, as 'cachedEstablished' takes it.
   Text ->
   -- | The module, by its full dotted name.
   Text ->
   -- | What was established about it.
   Established ->
   IO ()
-storeFixities cache package modName answer = do
-  quietly () (createDirectoryIfMissing True (fixitiesDir cache package))
-  writeAtomically (fixitiesPath cache package modName) $
-    case answer of
-      Unreadable below ->
-        T.unlines ["unread\t" <> token <> foldMap ("\t" <>) below]
-      Declares fixities ->
-        T.unlines ("read" : fmap renderFixity (Map.toList fixities))
+storeEstablished cache package modName established =
+  writeAtomically path . renderLines $
+    fmap (("fixity" :) . renderFixity) (Map.toList fixities)
+      <> [ ["unsettled", tokenOf cache] <> chain <> renderNamespaced names
+         | (chain, names) <- Map.toList (establishedUnsettled established)
+         ]
+      <> [ "untold" : tokenOf cache : chain
+         | chain <- Set.toList (establishedUntold established)
+         ]
+      <> ["names" : fields | fields <- renderByNamespace (certainNames certain)]
+      <> [ "member" : parent : fields
+         | (OpName parent, kids) <- Map.toList (certainMembers certain),
+           fields <- case renderByNamespace kids of
+             [] -> [[]]
+             grouped -> grouped
+         ]
+      -- The members of a name are mostly its certain members, which the
+      -- lines above already say.
+      <> [ "members" : parent : [kid | OpName kid <- Set.toAscList kids]
+         | (OpName parent, kids) <- Map.toList (establishedMembers established),
+           Just kids /= Map.lookup (OpName parent) written
+         ]
   where
-    Cache _ (PlanToken token) = cache
+    path = at cache ["established", package, modName]
+    fixities = establishedFixities established
+    certain = establishedCertain established
+    written = Map.map (Set.map snd) (certainMembers certain)
 
--- | What a module's export list was found to say, if it was ever read.
-cachedExportNames ::
+-- | What each configuration of one of the project's own modules says, if it
+-- was last read from what the stamp stands for.
+cachedSummaries ::
   -- | Where to look.
   Cache ->
-  -- | The package the module belongs to, as 'cachedFixities' takes it.
+  -- | Which module, by a name for its file.
   Text ->
-  -- | The module, by its full dotted name.
+  -- | What it was read from: its text and the settings it was read with.
   Text ->
-  -- | What its export list said, or 'Nothing' if it was never read.
-  IO (Maybe Exported)
-cachedExportNames cache package modName =
-  fmap join . readIfPresent (exportsPath cache package modName) $ \contents ->
+  -- | What it said, or 'Nothing' if nothing is remembered for that stamp.
+  IO (Maybe (Maybe (NonEmpty ModuleSummary)))
+cachedSummaries cache key stamp =
+  fmap join . readIfPresent (at cache ["summaries", key]) $ \contents ->
     case T.lines contents of
-      ("names" : entries) -> Just (Exports (Set.fromList (fmap OpName entries)))
-      ["untellable"] -> Just Untellable
+      (header : rest) | header == readFrom stamp -> parseSummaries rest
       _ -> Nothing
 
--- | Remember what a module's export list said.
-storeExportNames ::
+-- | Remember what each configuration of one of the project's own modules
+-- says, in place of what an earlier text of it said.
+storeSummaries ::
   -- | Where to write.
   Cache ->
-  -- | The package the module belongs to, as 'cachedFixities' takes it.
+  -- | Which module, as 'cachedSummaries' takes it.
   Text ->
-  -- | The module, by its full dotted name.
+  -- | What it was read from, as 'cachedSummaries' takes it.
   Text ->
-  -- | What its export list said.
-  Exported ->
+  -- | What it said, or 'Nothing' where none of its configurations parses.
+  Maybe (NonEmpty ModuleSummary) ->
   IO ()
-storeExportNames cache package modName answer = do
-  quietly () (createDirectoryIfMissing True (exportsDir cache package))
-  writeAtomically (exportsPath cache package modName) $
-    case answer of
-      Untellable -> T.unlines ["untellable"]
-      Exports names -> T.unlines ("names" : [op | OpName op <- Set.toAscList names])
+storeSummaries cache key stamp summaries =
+  writeAtomically (at cache ["summaries", key]) . T.unlines $
+    readFrom stamp : renderSummaries summaries
 
--- | What a module keeps under each of its names, if it was ever read for
--- it.
-cachedChildren ::
-  -- | Where to look.
-  Cache ->
-  -- | The package the module belongs to, as 'cachedFixities' takes it.
-  Text ->
-  -- | The module, by its full dotted name.
-  Text ->
-  -- | What it keeps under each name, or 'Nothing' if it was never read.
-  IO (Maybe (Map OpName (Set OpName)))
-cachedChildren cache package modName =
-  fmap join . readIfPresent (childrenPath cache package modName) $ \contents ->
-    case T.lines contents of
-      ("children" : entries) -> Just (Map.fromList (mapMaybe childEntry entries))
-      _ -> Nothing
+-- | The first line of a remembered summary: what it was read from, and the
+-- versions of Tilia and of the parser that read it.
+readFrom :: Text -> Text
+readFrom stamp =
+  T.unwords ["for", stamp, VERSION_tilia, VERSION_ghc_lib_parser]
+
+-- | Render what a module's configurations say, a line for each thing.
+renderSummaries :: Maybe (NonEmpty ModuleSummary) -> [Text]
+renderSummaries = \case
+  Nothing -> ["unparsed"]
+  Just summaries ->
+    concatMap
+      (("configuration" :) . fmap T.unwords . renderSummary)
+      (toList summaries)
   where
-    childEntry line = case T.splitOn "\t" line of
-      (parent : kids) -> Just (OpName parent, Set.fromList (fmap OpName kids))
-      [] -> Nothing
+    renderSummary s =
+      [["name", name] | Just name <- [summaryName s]]
+        <> foldMap
+          (\items -> ["exports"] : fmap renderExport items)
+          (summaryExports s)
+        <> concatMap renderImport (summaryImports s)
+        <> fmap (("fixity" :) . renderFixity) (Map.toList (summaryFixities s))
+        <> [ ["defines", renderNamespace namespace, op]
+           | (namespace, OpName op) <- Set.toAscList (summaryNames s)
+           ]
+        <> fmap declares (Map.toList (summaryDeclaredMembers s))
+        <> fmap offers (Map.toList (summaryListedMembers s))
+    declares (OpName parent, kids) = "declares" : parent : renderNamespaced kids
+    offers (OpName parent, kids) =
+      "offers" : parent : [kid | OpName kid <- Set.toAscList kids]
+    renderExport = \case
+      ExportName namespace qualifier op ->
+        ["export", "name", renderNamespace namespace] <> under qualifier [op]
+      ExportAll qualifier op -> ["export", "all"] <> under qualifier [op]
+      ExportSome qualifier op kids ->
+        ["export", "some"] <> under qualifier (op : kids)
+      ExportModule m -> ["export", "module", m]
+    under qualifier ops = fromMaybe "-" qualifier : [op | OpName op <- ops]
+    renderImport i =
+      ["import", importModule i, qualification i, importAlias i]
+        : case importNames i of
+          Nothing -> []
+          Just (hiding, items) ->
+            ["list", if hiding then "hiding" else "only"]
+              : fmap renderItem items
+    qualification i = if importQualified i then "qualified" else "open"
+    renderItem = \case
+      ImportedName (OpName op) -> ["item", "name", op]
+      ImportedAll (OpName op) -> ["item", "all", op]
+      ImportedSome op kids -> "item" : "some" : [k | OpName k <- op : kids]
 
--- | Remember what a module keeps under each of its names.
-storeChildren ::
-  -- | Where to write.
-  Cache ->
-  -- | The package the module belongs to, as 'cachedFixities' takes it.
-  Text ->
-  -- | The module, by its full dotted name.
-  Text ->
-  -- | What it keeps under each name.
-  Map OpName (Set OpName) ->
-  IO ()
-storeChildren cache package modName children = do
-  quietly () (createDirectoryIfMissing True (childrenDir cache package))
-  writeAtomically (childrenPath cache package modName) $
-    T.unlines ("children" : fmap entry (Map.toList children))
+-- | Parse what 'renderSummaries' rendered.
+parseSummaries :: [Text] -> Maybe (Maybe (NonEmpty ModuleSummary))
+parseSummaries = \case
+  ["unparsed"] -> Just Nothing
+  ls -> Just <$> (NE.nonEmpty =<< traverse parseSummary =<< configurations ls)
   where
-    entry (OpName parent, kids) =
-      T.intercalate "\t" (parent : [kid | OpName kid <- Set.toAscList kids])
+    configurations = \case
+      [] -> Just []
+      "configuration" : rest ->
+        let (these, more) = break (== "configuration") rest
+         in (these :) <$> configurations more
+      _ -> Nothing
+    parseSummary = go empty . fmap T.words
+      where
+        empty = ModuleSummary Nothing Nothing [] Map.empty Set.empty Map.empty Map.empty
+    go s = \case
+      [] ->
+        Just
+          s
+            { summaryExports = reverse <$> summaryExports s,
+              summaryImports = reverse (summaryImports s)
+            }
+      ["name", name] : rest -> go s{summaryName = Just name} rest
+      ["exports"] : rest -> go s{summaryExports = Just []} rest
+      ("export" : fields) : rest -> do
+        item <- exportItem fields
+        items <- summaryExports s
+        go s{summaryExports = Just (item : items)} rest
+      ["import", m, how, alias] : rest -> do
+        qualified <- case how of
+          "qualified" -> Just True
+          "open" -> Just False
+          _ -> Nothing
+        let (listed, rest') = span isListed rest
+        list <- importList listed
+        go s{summaryImports = Import m qualified alias list : summaryImports s} rest'
+      ("fixity" : fields) : rest -> do
+        (key, fixity) <- parseFixity fields
+        go s{summaryFixities = Map.insert key fixity (summaryFixities s)} rest
+      ["defines", namespace, op] : rest -> do
+        n <- parseNamespace namespace
+        go s{summaryNames = Set.insert (n, OpName op) (summaryNames s)} rest
+      ("declares" : parent : kids) : rest -> do
+        namespaced <- parseNamespaced kids
+        go s{summaryDeclaredMembers = Map.insert (OpName parent) (Set.fromList namespaced) (summaryDeclaredMembers s)} rest
+      ("offers" : parent : kids) : rest ->
+        go s{summaryListedMembers = Map.insert (OpName parent) (names kids) (summaryListedMembers s)} rest
+      _ -> Nothing
+    names = Set.fromList . fmap OpName
+    qualifier q = if q == "-" then Nothing else Just q
+    exportItem = \case
+      ["name", namespace, q, op] ->
+        (\n -> ExportName n (qualifier q) (OpName op)) <$> parseNamespace namespace
+      ["all", q, op] -> Just (ExportAll (qualifier q) (OpName op))
+      "some" : q : op : kids -> Just (ExportSome (qualifier q) (OpName op) (fmap OpName kids))
+      ["module", m] -> Just (ExportModule m)
+      _ -> Nothing
+    isListed = \case
+      "list" : _ -> True
+      "item" : _ -> True
+      _ -> False
+    importList = \case
+      [] -> Just Nothing
+      ["list", way] : items -> do
+        hiding <- case way of
+          "hiding" -> Just True
+          "only" -> Just False
+          _ -> Nothing
+        Just . (,) hiding <$> traverse importItem items
+      _ -> Nothing
+    importItem = \case
+      ["item", "name", op] -> Just (ImportedName (OpName op))
+      ["item", "all", op] -> Just (ImportedAll (OpName op))
+      "item" : "some" : op : kids -> Just (ImportedSome (OpName op) (fmap OpName kids))
+      _ -> Nothing
 
 -- | What packages the compiler could see when last asked, if it can still
 -- see it.
 cachedInstalled :: Cache -> IO (Maybe [InstalledPackage])
 cachedInstalled cache = quietly Nothing $ do
-  readIfPresent (installedPath cache) T.lines >>= \case
+  readIfPresent (at cache ["installed", tokenOf cache]) T.lines >>= \case
     Nothing -> pure Nothing
     Just ls -> do
-      let written =
-            [(T.unpack path, stamp) | ["db", path, stamp] <- fmap fields ls]
+      let (databases, packages) = span (T.isPrefixOf "db ") ls
+          written =
+            [ (T.unpack (T.drop 1 path), stamp)
+            | Just database <- fmap (T.stripPrefix "db ") databases,
+              let (stamp, path) = T.breakOn " " database
+            ]
       still <- traverse unchanged written
       pure $
         if not (null written) && and still
-          then Just (mapMaybe installedFrom ls)
+          then installedFrom packages
           else Nothing
   where
-    unchanged (path, stamp) =
-      quietly False ((== stamp) . T.pack . show <$> getModificationTime path)
-    installedFrom l = case fields l of
-      ("pkg" : name : version : modules : dirs) ->
-        Just
-          InstalledPackage
-            { ipName = name,
-              ipVersion = version,
-              ipModules = T.words modules,
-              ipImportDirs = fmap T.unpack dirs
-            }
-      _ -> Nothing
-    fields = T.splitOn "\t"
+    unchanged (path, stamp) = quietly False ((== stamp) <$> stampOf path)
+    installedFrom = \case
+      [] -> Just []
+      l : rest -> case T.words l of
+        "package" : name : version : modules ->
+          let (owned, more) = break (T.isPrefixOf "package ") rest
+              reexports = [(v, o) | ["reexport", v, o] <- fmap T.words owned]
+              dirs = [T.unpack d | Just d <- fmap (T.stripPrefix "dir ") owned]
+           in (InstalledPackage name version modules reexports dirs :)
+                <$> installedFrom more
+        _ -> Nothing
 
 -- | Remember a package the compiler can see, stamped so that a later run
 -- can tell whether it still does.
 storeInstalled :: Cache -> Installed -> IO ()
 storeInstalled cache found
-  | null (installedDatabases found) = pure ()
+  | null databases = pure ()
   | otherwise = quietly () $ do
-      stamps <- traverse stamped (installedDatabases found)
-      writeAtomically (installedPath cache) . T.unlines $
-        [T.intercalate "\t" ["db", T.pack path, stamp] | (path, stamp) <- stamps]
-          <> [ T.intercalate "\t" $
-                 ["pkg", ipName p, ipVersion p, T.unwords (ipModules p)]
-                   <> fmap T.pack (ipImportDirs p)
-             | p <- installedPackages found
-             ]
+      stamps <- traverse stampOf databases
+      writeAtomically (at cache ["installed", tokenOf cache]) . renderLines $
+        [["db", stamp, T.pack path] | (path, stamp) <- zip databases stamps]
+          <> concatMap packageLines (installedPackages found)
   where
-    stamped path = do
-      stamp <- T.pack . show <$> getModificationTime path
-      pure (path, stamp)
+    databases = installedDatabases found
+    packageLines p =
+      ("package" : ipName p : ipVersion p : ipModules p)
+        : [["reexport", v, o] | (v, o) <- ipReexports p]
+          <> [["dir", T.pack dir] | dir <- ipImportDirs p]
 
+-- | When a package database last changed, as one field.
+stampOf :: FilePath -> IO Text
+stampOf path =
+  T.pack . formatTime defaultTimeLocale "%s%Q" <$> getModificationTime path
+
 -- | Whether asking @cabal@ to solve this plan again has already been tried
 -- and left the plan exactly as before.
 cachedFutileSolve :: Cache -> IO Bool
 cachedFutileSolve cache =
-  quietly False (doesFileExist (futileSolvePath cache))
+  isJust <$> readIfPresent (at cache ["solves", tokenOf cache]) (const ())
 
 -- | Remember that solving again did not widen the plan.
 storeFutileSolve :: Cache -> IO ()
-storeFutileSolve cache = quietly () $ do
-  createDirectoryIfMissing True (takeDirectory (futileSolvePath cache))
-  writeAtomically (futileSolvePath cache) ""
+storeFutileSolve cache =
+  writeAtomically (at cache ["solves", tokenOf cache]) ""
 
 -- | The packages an earlier run was still short of after asking @cabal@ to
 -- fetch them.
@@ -277,33 +430,31 @@
 cachedFutileFetch cache =
   fromMaybe []
     <$> readIfPresent
-      (futileFetchPath cache)
+      (at cache ["fetches", tokenOf cache])
       (filter (not . T.null) . T.lines)
 
 -- | Remember what fetching left missing.
 storeFutileFetch :: Cache -> [Text] -> IO ()
-storeFutileFetch cache packages = quietly () $ do
-  createDirectoryIfMissing True (takeDirectory (futileFetchPath cache))
-  writeAtomically (futileFetchPath cache) (T.unlines packages)
+storeFutileFetch cache =
+  writeAtomically (at cache ["fetches", tokenOf cache]) . T.unlines
 
--- | Render a fixity declaration as 'Text'.
-renderFixity :: ((Namespace, OpName), Fixity) -> Text
+-- | Render a fixity declaration as fields.
+renderFixity :: ((Namespace, OpName), Fixity) -> [Text]
 renderFixity ((namespace, OpName op), Fixity direction precedence) =
-  T.intercalate
-    "\t"
-    [op, renderNamespace namespace, renderDirection direction, T.pack (show precedence)]
+  [ op,
+    renderNamespace namespace,
+    renderDirection direction,
+    T.pack (show precedence)
+  ]
   where
-    renderNamespace = \case
-      InTypes -> "t"
-      InTerms -> "v"
     renderDirection = \case
       LeftAssoc -> "l"
       RightAssoc -> "r"
       NoAssoc -> "n"
 
--- | Parse a fixity declaration from 'Text'.
-parseFixity :: Text -> Maybe ((Namespace, OpName), Fixity)
-parseFixity line = case T.splitOn "\t" line of
+-- | Parse a fixity declaration from fields.
+parseFixity :: [Text] -> Maybe ((Namespace, OpName), Fixity)
+parseFixity = \case
   [op, namespace, direction, precedence] -> do
     n <- parseNamespace namespace
     d <- parseDirection direction
@@ -311,10 +462,6 @@
     pure ((n, OpName op), Fixity d p)
   _ -> Nothing
   where
-    parseNamespace = \case
-      "t" -> Just InTypes
-      "v" -> Just InTerms
-      _ -> Nothing
     parseDirection = \case
       "l" -> Just LeftAssoc
       "r" -> Just RightAssoc
@@ -324,62 +471,81 @@
       Right (p, rest) | T.null rest -> Just p
       _ -> Nothing
 
--- | The directory where fixities are stored.
-fixitiesDir :: Cache -> Text -> FilePath
-fixitiesDir (Cache root _) package = root </> "fixities" </> T.unpack package
-
--- | Where @ghc-pkg dump@ is remembered.
-installedPath :: Cache -> FilePath
-installedPath (Cache root (PlanToken token)) =
-  root </> "installed" </> T.unpack token
+-- | Render a namespace as 'Text'.
+renderNamespace :: Namespace -> Text
+renderNamespace = \case
+  InTypes -> "t"
+  InTerms -> "v"
 
--- | An empty file whose mere presence says solving this plan again would
--- not widen it.
-futileSolvePath :: Cache -> FilePath
-futileSolvePath (Cache root (PlanToken token)) =
-  root </> "solves" </> T.unpack token
+-- | Parse a namespace from 'Text'.
+parseNamespace :: Text -> Maybe Namespace
+parseNamespace = \case
+  "t" -> Just InTypes
+  "v" -> Just InTerms
+  _ -> Nothing
 
--- | The packages fetching left missing, one per line.
-futileFetchPath :: Cache -> FilePath
-futileFetchPath (Cache root (PlanToken token)) =
-  root </> "fetches" </> T.unpack token
+-- | Render names in their namespaces as fields, each namespace before its
+-- name.
+renderNamespaced :: Set (Namespace, OpName) -> [Text]
+renderNamespaced names =
+  concat [[renderNamespace namespace, op] | (namespace, OpName op) <- Set.toAscList names]
 
--- | Every module a package holds, one per line.
-modulesPath :: Cache -> Text -> FilePath
-modulesPath (Cache root _) package = root </> "modules" </> T.unpack package
+-- | Render names as one list of fields for each namespace they are in, the
+-- namespace first.
+renderByNamespace :: Set (Namespace, OpName) -> [[Text]]
+renderByNamespace names =
+  [ renderNamespace namespace : ops
+  | namespace <- [InTypes, InTerms],
+    let ops = [op | (n, OpName op) <- Set.toAscList names, n == namespace],
+    not (null ops)
+  ]
 
--- | What reading one module established about fixities.
-fixitiesPath :: Cache -> Text -> Text -> FilePath
-fixitiesPath cache package modName =
-  fixitiesDir cache package </> T.unpack modName
+-- | Parse one list of fields 'renderByNamespace' rendered.
+parseByNamespace :: [Text] -> Maybe [(Namespace, OpName)]
+parseByNamespace = \case
+  [] -> Just []
+  namespace : ops -> (\n -> fmap ((n,) . OpName) ops) <$> parseNamespace namespace
 
--- | The directory where export lists are stored.
-exportsDir :: Cache -> Text -> FilePath
-exportsDir (Cache root _) package = root </> "exports" </> T.unpack package
+-- | Parse what 'renderNamespaced' rendered.
+parseNamespaced :: [Text] -> Maybe [(Namespace, OpName)]
+parseNamespaced = \case
+  [] -> Just []
+  namespace : op : rest ->
+    (:) <$> ((,OpName op) <$> parseNamespace namespace) <*> parseNamespaced rest
+  _ -> Nothing
 
--- | What one module's export list was found to say.
-exportsPath :: Cache -> Text -> Text -> FilePath
-exportsPath cache package modName =
-  exportsDir cache package </> T.unpack modName
+-- | Where the cache keeps what the path names, or 'Nothing' if it keeps
+-- nothing.
+at :: Cache -> [Text] -> Maybe FilePath
+at cache path = case cache of
+  Cache root _ -> Just (foldl (</>) root (fmap T.unpack path))
+  NoCache -> Nothing
 
--- | The directory where the names kept under a name are stored.
-childrenDir :: Cache -> Text -> FilePath
-childrenDir (Cache root _) package = root </> "children" </> T.unpack package
+-- | The token a cache is kept under.
+tokenOf :: Cache -> Text
+tokenOf = \case
+  Cache _ (PlanToken token) -> token
+  NoCache -> ""
 
--- | What one module keeps under each of its names.
-childrenPath :: Cache -> Text -> Text -> FilePath
-childrenPath cache package modName =
-  childrenDir cache package </> T.unpack modName
+-- | Render lines of fields, the fields separated by spaces.
+renderLines :: [[Text]] -> Text
+renderLines = T.unlines . fmap T.unwords
 
 -- | Read and parse a file, or 'Nothing' where there is none to read.
-readIfPresent :: FilePath -> (Text -> a) -> IO (Maybe a)
-readIfPresent path parse = quietly Nothing $ do
-  there <- doesFileExist path
-  if there then Just . parse <$> T.readFile path else pure Nothing
+readIfPresent :: Maybe FilePath -> (Text -> a) -> IO (Maybe a)
+readIfPresent place parse = case place of
+  Nothing -> pure Nothing
+  Just path -> quietly Nothing $ do
+    there <- doesFileExist path
+    if there then Just . parse <$> T.readFile path else pure Nothing
 
--- | Write via a temporary file and a rename.
-writeAtomically :: FilePath -> Text -> IO ()
-writeAtomically path contents = quietly () $ do
-  let temporary = path <> ".tmp"
-  T.writeFile temporary contents
-  renameFile temporary path
+-- | Write via a temporary file and a rename, making the directory if need
+-- be.
+writeAtomically :: Maybe FilePath -> Text -> IO ()
+writeAtomically place contents = case place of
+  Nothing -> pure ()
+  Just path -> quietly () $ do
+    createDirectoryIfMissing True (takeDirectory path)
+    let temporary = path <> ".tmp"
+    T.writeFile temporary contents
+    renameFile temporary path
diff --git a/src/Tilia/Fixity/Debug.hs b/src/Tilia/Fixity/Debug.hs
--- a/src/Tilia/Fixity/Debug.hs
+++ b/src/Tilia/Fixity/Debug.hs
@@ -13,16 +13,15 @@
 where
 
 import Data.Choice (Choice)
+import Data.List.NonEmpty (NonEmpty)
 import Data.Map.Strict (Map)
 import Data.Map.Strict qualified as Map
 import Data.Set qualified as Set
 import Data.Text (Text)
 import Data.Text qualified as T
-import GHC.Hs (HsModule)
-import GHC.Hs.Extension (GhcPs)
 import Tilia.Fixity
-  ( Direction (..),
-    Fixities,
+  ( Certain (..),
+    Established (..),
     Fixity (..),
     Import (..),
     OpName (..),
@@ -36,9 +35,12 @@
     reachAmbiguous,
     reachIn,
     reachUnqualified,
+    spellDisagreement,
+    spellFixity,
     spellUnreadIn,
   )
 import Tilia.Palette (Color (Operator, Place), Palette, paint)
+import Tilia.Parser (ParsedModule (..))
 import Tilia.Utils (indent, lineWidth, wrapTo)
 
 -- | Everything that decided one module's fixities.
@@ -62,11 +64,12 @@
     noteQualified :: Bool,
     -- | How many operators it was read for, or 'Nothing' when it could not
     -- be read at all.
-    noteBrought :: Maybe Int,
-    -- | Where reading it went before giving up, ending at the module that
-    -- actually stopped it. Empty for an import that was read, and for one
-    -- unread on its own account.
-    noteChain :: [Text]
+    noteOperatorCount :: Maybe Int,
+    -- | Where reading it went before giving up, for each way that left some
+    -- names unsettled, ending at the module that actually stopped it. Empty
+    -- for an import that settles every name; a way is empty for one unread
+    -- on its own account.
+    noteUnsettled :: [[Text]]
   }
   deriving (Eq, Show)
 
@@ -76,8 +79,8 @@
     noteSpelling :: Text,
     -- | What the scope answered for it.
     noteResolution :: Resolution,
-    -- | Whether two modules in scope disagree about it.
-    noteAmbiguous :: Bool
+    -- | What each import in scope brings, where they disagree about it.
+    noteDisagreement :: Maybe (NonEmpty (Text, Fixity))
   }
   deriving (Eq, Show)
 
@@ -86,30 +89,30 @@
   -- | Whether @ImplicitPrelude@ is on, so that the Prelude is listed among
   -- the imports exactly when the module actually has it.
   Choice "implicitPrelude" ->
-  -- | What each module in scope exports, as the resolver answers it.
-  (Text -> IO (Maybe (Fixities))) ->
-  -- | Where reading a module went before giving up, asked only of the ones
-  -- the line above gave up on.
-  (Text -> IO [Text]) ->
+  -- | What reading each module in scope established, as the resolver
+  -- answers it.
+  (Text -> IO Established) ->
   -- | The scope the module was formatted under.
   Scope ->
-  -- | The module.
-  HsModule GhcPs ->
+  -- | The module's configurations.
+  NonEmpty ParsedModule ->
   IO FixityNotes
-fixityNotes implicitPrelude resolve chainOf scope hsModule = do
-  brought <- traverse alongside (moduleImports implicitPrelude hsModule)
+fixityNotes implicitPrelude resolve scope configurations = do
+  importNotes <- traverse alongside (moduleImports implicitPrelude (fmap pmModule configurations))
   pure
     FixityNotes
-      { notedImports = brought,
+      { notedImports = importNotes,
         notedOperators = fmap aboutOperator used,
         notedDeclarations = here
       }
   where
     alongside i = do
       answer <- resolve (importModule i)
-      below <- case answer of
-        Just _ -> pure []
-        Nothing -> chainOf (importModule i)
+      let fixities = establishedFixities answer
+          readNothing =
+            Map.null fixities
+              && Set.null (certainNames (establishedCertain answer))
+              && not (Set.null (establishedUntold answer))
       pure
         ImportNote
           { noteModule = importModule i,
@@ -118,15 +121,19 @@
                 then Nothing
                 else Just (importAlias i),
             noteQualified = importQualified i,
-            noteBrought = Set.size . Set.fromList . fmap snd . Map.keys <$> answer,
-            noteChain = below
+            noteOperatorCount =
+              if readNothing
+                then Nothing
+                else Just (Set.size (Set.map snd (Map.keysSet fixities))),
+            noteUnsettled =
+              Set.toList (Map.keysSet (establishedUnsettled answer) <> establishedUntold answer)
           }
 
     used =
       Map.elems
         ( Map.fromList
             [ ((namespace, uncurry operatorSpelling u), (namespace, u))
-            | (namespace, u) <- operatorsUsed hsModule
+            | (namespace, u) <- concatMap (operatorsUsed . pmGathered) configurations
             ]
         )
 
@@ -143,8 +150,8 @@
       OperatorNote
         { noteSpelling = operatorSpelling qualifier op,
           noteResolution = lookupFixity scope namespace qualifier op,
-          noteAmbiguous =
-            (qualifier, op) `elem` reachAmbiguous (reachIn namespace scope)
+          noteDisagreement =
+            Map.lookup (qualifier, op) (reachAmbiguous (reachIn namespace scope))
         }
 
 -- | Set out all the 'FixityNotes' per file.
@@ -178,13 +185,15 @@
       named (noteModule i)
         <> qualification i
         <> ": "
-        <> case noteBrought i of
-          Nothing -> "could not be read" <> through (noteChain i)
-          Just n -> operators n
+        <> case noteOperatorCount i of
+          Nothing -> "could not be read" <> through (noteUnsettled i)
+          Just n
+            | null (noteUnsettled i) -> operators n
+            | otherwise -> operators n <> ", not settling every name" <> through (noteUnsettled i)
 
-    through = \case
+    through ways = case filter (not . null) ways of
       [] -> ""
-      below -> ", through " <> T.intercalate " → " (fmap named below)
+      below -> ", through " <> T.intercalate " or " (fmap (T.intercalate " → " . fmap named) below)
 
     qualification i = case (noteQualified i, noteAlias i) of
       (True, Just alias) -> " qualified as " <> named alias
@@ -192,25 +201,27 @@
       (False, Just alias) -> " as " <> named alias
       (False, Nothing) -> ""
 
-    fromOwn (op, fixity) = operator op <> " " <> spelled fixity
+    fromOwn (op, fixity) = operator op <> " " <> spellFixity fixity
 
     fromOperator o =
       operator (noteSpelling o)
         <> " "
         <> case noteResolution o of
           Resolved fixity provenance ->
-            spelled fixity <> ", " <> from provenance <> ambiguously o
+            spellFixity fixity <> ", " <> from provenance <> ambiguously o
           Unresolved missing ->
             "unknown: may be declared in " <> spellUnreadIn palette missing
 
     from = \case
       DeclaredHere -> "declared in this module"
       DeclaredIn m -> "declared in " <> named m
+      BuiltIn -> "built into the language"
       ReportDefault -> "the Report's default, nothing in scope declaring it"
 
-    ambiguously o
-      | noteAmbiguous o = ", and two modules in scope disagree about it"
-      | otherwise = ""
+    ambiguously o = case noteDisagreement o of
+      Nothing -> ""
+      Just offers ->
+        ", and the imports disagree about it: " <> spellDisagreement palette offers
 
     named = paint palette Place
     operator = paint palette Operator
@@ -218,13 +229,3 @@
     operators = \case
       1 -> "1 operator"
       n -> T.pack (show n) <> " operators"
-
--- | A fixity, written the way it would be declared.
-spelled :: Fixity -> Text
-spelled (Fixity direction precedence) =
-  which direction <> " " <> T.pack (show precedence)
-  where
-    which = \case
-      LeftAssoc -> "infixl"
-      RightAssoc -> "infixr"
-      NoAssoc -> "infix"
diff --git a/src/Tilia/Fixity/HiFile.hs b/src/Tilia/Fixity/HiFile.hs
--- a/src/Tilia/Fixity/HiFile.hs
+++ b/src/Tilia/Fixity/HiFile.hs
@@ -8,6 +8,7 @@
     HiName (..),
     HiExport (..),
     decodeHiFile,
+    primopFixities,
   )
 where
 
@@ -16,11 +17,23 @@
 import Data.ByteString (ByteString)
 import Data.ByteString qualified as BS
 import Data.ByteString.Unsafe qualified as BS
+import Data.Char (ord)
+import Data.Map.Strict (Map)
+import Data.Map.Strict qualified as Map
 import Data.Text (Text)
 import Data.Text qualified as T
 import Data.Text.Encoding qualified as T
 import Data.Word (Word32, Word8)
-import Tilia.Fixity (Direction (..), Fixity (..), Namespace (..), OpName (..))
+import Tilia.Fixity
+  ( Direction (..),
+    Fixities,
+    Fixity (..),
+    Namespace (..),
+    OpName (..),
+  )
+import Tilia.Fixity.KnownKeys.Ghc910 qualified as Ghc910
+import Tilia.Fixity.KnownKeys.Ghc912 qualified as Ghc912
+import Tilia.Fixity.KnownKeys.Ghc914 qualified as Ghc914
 
 -- | What an interface file says about the operators its module offers.
 data HiFile = HiFile
@@ -37,8 +50,12 @@
 data HiName
   = -- | A name with the module that defines it and its namespace.
     HiName Text Namespace OpName
-  | -- | A name GHC knows by its unique alone, which only GHC can resolve.
-    KnownKey Word32
+  | -- | Built-in syntax, such as @:@, which GHC writes without the module
+    -- that defines it.
+    BuiltInSyntax Namespace OpName
+  | -- | A name GHC writes as a key outside the table for its series, such
+    -- as a tuple's, which no fixity depends on.
+    Unneeded
   deriving (Eq, Show)
 
 -- | One entry of an export list.
@@ -61,7 +78,9 @@
 -- | The strings and names a file refers to by index.
 data Tables = Tables
   { tablesStrings :: Array Int ByteString,
-    tablesNames :: Array Int (Int, Namespace, Int)
+    tablesNames :: Array Int (Int, Namespace, Int),
+    -- | The names the series writes as keys.
+    tablesKeyed :: Map Word32 HiName
   }
 
 -- | An interface file, from its header as far as its fixities.
@@ -83,7 +102,7 @@
   unless' (series == Series910) (() <$ pointer series)
   strings <- lookingAt stringsAt dictionary
   names <- lookingAt namesAt symbolTable
-  let tables = Tables strings names
+  let tables = Tables strings names (keyedNames series)
   payload series tables
 
 -- | What follows the tables, as far as the fixities.
@@ -208,8 +227,34 @@
             <*> pure namespace
             <*> (OpName <$> fastString (tablesStrings tables) occ)
       | otherwise -> failure "name index out of range"
-    0x80000000 -> pure (KnownKey w)
+    0x80000000 -> pure (Map.findWithDefault Unneeded w (tablesKeyed tables))
     _ -> failure "unknown name tag"
+
+-- | The names a series writes as keys.
+keyedNames :: Series -> Map Word32 HiName
+keyedNames = \case
+  Series910 -> keyed Ghc910.knownKeys
+  Series912 -> keyed Ghc912.knownKeys
+  Series914 -> keyed Ghc914.knownKeys
+  where
+    keyed entries =
+      Map.fromList
+        [ ( 0x80000000 .|. (fromIntegral (ord tag) `shiftL` 22) .|. fromIntegral index,
+            maybe (BuiltInSyntax namespace) (`HiName` namespace) printedWith (OpName n)
+          )
+        | (tag, index, namespace, printedWith, n) <- entries
+        ]
+
+-- | The fixities of the primitive operations, by the name each series gives
+-- the module GHC keeps them in, which has no interface file to read them
+-- from.
+primopFixities :: Map Text Fixities
+primopFixities =
+  Map.fromListWith
+    Map.union
+    [ (m, Map.fromList [((InTerms, OpName op), f) | (op, f) <- declared])
+    | (m, declared) <- [Ghc910.primops, Ghc912.primops, Ghc914.primops]
+    ]
 
 -- | One entry of an export list.
 export :: Tables -> Get HiExport
diff --git a/src/Tilia/Fixity/Interface.hs b/src/Tilia/Fixity/Interface.hs
--- a/src/Tilia/Fixity/Interface.hs
+++ b/src/Tilia/Fixity/Interface.hs
@@ -11,17 +11,19 @@
   )
 where
 
+import Control.DeepSeq (NFData)
 import Control.Monad ((<=<))
 import Data.ByteString qualified as BS
 import Data.Char (isUpper)
 import Data.Map.Strict (Map)
 import Data.Map.Strict qualified as Map
-import Data.Maybe (mapMaybe)
+import Data.Maybe (mapMaybe, maybeToList)
 import Data.Set (Set)
 import Data.Set qualified as Set
 import Data.Text (Text)
 import Data.Text qualified as T
 import Data.Text.Read qualified as T
+import GHC.Generics (Generic)
 import Tilia.Fixity
 import Tilia.Fixity.HiFile (HiExport (..), HiFile (..), HiName (..), decodeHiFile)
 import Tilia.Process (readProgramOutput)
@@ -34,12 +36,17 @@
     interfaceDeclares :: Fixities,
     -- | The names it reexports, each with the source module.
     interfaceReexports :: [(Text, OpName)],
-    -- | What it exports under each name. This is what @T(..)@ in an import
-    -- list stands for.
-    interfaceChildren :: Map OpName (Set OpName)
+    -- | The members it exports with each name, which is what @T(..)@ in an
+    -- import list stands for.
+    interfaceMembers :: Map OpName (Set OpName),
+    -- | What it certainly brings into scope, where the interface was decoded
+    -- rather than read off what @ghc --show-iface@ prints.
+    interfaceExports :: Maybe Certain
   }
-  deriving (Eq, Show)
+  deriving (Eq, Show, Generic)
 
+instance NFData Interface
+
 -- | Read a module's interface file.
 --
 -- The file is decoded directly where it can be, and put to @ghc
@@ -59,41 +66,54 @@
           Nothing -> pure Nothing
           Just out -> pure (parseInterface modName out)
 
--- | What a decoded interface file says, if it is this module's and names
--- nothing only GHC can resolve.
+-- | What a decoded interface file says, if it is this module's.
 fromHiFile :: Text -> HiFile -> Either Text Interface
 fromHiFile modName HiFile{..}
   | hiModule /= modName = Left ("the interface of " <> hiModule)
-  | otherwise = do
-      exports <- traverse resolved hiExports
-      pure
+  | otherwise =
+      Right
         Interface
           { interfaceDeclares =
               Map.fromList [((namespace, op), fixity) | (namespace, op, fixity) <- hiFixities],
             interfaceReexports =
               [ (m, op)
               | names <- exports,
-                (m, _, op) <- names,
+                (Just m, _, op) <- names,
                 m /= hiModule
               ],
-            interfaceChildren =
-              Map.fromListWith
-                Set.union
-                [ (op, Set.fromList [kid | (_, _, kid) <- kids])
-                | parent@(_, _, op) : named <- exports,
-                  let kids = case named of
-                        first : rest | first == parent -> rest
-                        _ -> named,
-                  not (null kids)
-                ]
+            interfaceMembers = Map.map (Set.map snd) members,
+            interfaceExports =
+              Just
+                Certain
+                  { certainNames = Set.fromList [(namespace, op) | (_, namespace, op) <- exported],
+                    certainMembers = members
+                  }
           }
   where
+    exports = concatMap resolved hiExports
+    exported = concatMap exportedNames hiExports
+    members =
+      Map.fromListWith
+        Set.union
+        [ (op, Set.fromList [(namespace, kid) | (_, namespace, kid) <- kids])
+        | parent@(_, _, op) : named <- exports,
+          let kids = case named of
+                first : rest | first == parent -> rest
+                _ -> named,
+          not (null kids)
+        ]
+    exportedNames = \case
+      Avail n -> maybeToList (known n)
+      AvailTC _ ns -> mapMaybe known ns
     resolved = \case
-      Avail n -> pure <$> known n
-      AvailTC p ns -> (:) <$> known p <*> traverse known ns
+      Avail n -> maybe [] (pure . pure) (known n)
+      AvailTC p ns ->
+        let kids = mapMaybe known ns
+         in maybe (fmap pure kids) (\named -> [named : kids]) (known p)
     known = \case
-      HiName m namespace op -> Right (m, namespace, op)
-      KnownKey _ -> Left "a name only GHC can resolve"
+      HiName m namespace op -> Just (Just m, namespace, op)
+      BuiltInSyntax namespace op -> Just (Nothing, namespace, op)
+      Unneeded -> Nothing
 
 -- | Read what @ghc --show-iface@ printed, if it is this module's interface.
 parseInterface :: Text -> Text -> Maybe Interface
@@ -107,8 +127,9 @@
                 (typeNamesIn out)
                 (Map.fromList (concatMap declared (sectionsNamed "fixities"))),
             interfaceReexports = concatMap reexports (sectionsNamed "exports:"),
-            interfaceChildren =
-              Map.unionsWith Set.union (fmap childrenIn (sectionsNamed "exports:"))
+            interfaceMembers =
+              Map.unionsWith Set.union (fmap membersIn (sectionsNamed "exports:")),
+            interfaceExports = Nothing
           }
   where
     holdsModule l = case T.words l of
@@ -121,7 +142,7 @@
       ]
     declared = mapMaybe fixityEntry . T.splitOn ","
     reexports = concatMap reexportsIn . T.words
-    childrenIn section =
+    membersIn section =
       Map.fromListWith
         Set.union
         [ (nameOnly parent, Set.fromList (fmap nameOnly kids))
diff --git a/src/Tilia/Fixity/KnownKeys/Ghc910.hs b/src/Tilia/Fixity/KnownKeys/Ghc910.hs
new file mode 100644
--- /dev/null
+++ b/src/Tilia/Fixity/KnownKeys/Ghc910.hs
@@ -0,0 +1,3891 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+-- | The names GHC 9.10 writes into interface files as keys, and the
+-- fixities of its primitive operations.
+--
+-- Generated by @generate-known-keys.py@ in the root of the repository, from
+-- GHC 9.10.3. Run that script again to update this table.
+module Tilia.Fixity.KnownKeys.Ghc910
+  ( knownKeys,
+    primops,
+  )
+where
+
+import Data.Text (Text)
+import Tilia.Fixity (Direction (..), Fixity (..), Namespace (..))
+
+-- | Every name a key stands for: the tag and index of its key, its
+-- namespace, the module GHC prints it with, if it prints one, and its name.
+knownKeys :: [(Char, Int, Namespace, Maybe Text, Text)]
+knownKeys =
+  [ ('0', 1, InTerms, Just "GHC.Prim.Panic", "absentError"),
+    ('0', 2, InTerms, Just "GHC.Prim.Panic", "absentConstraintError"),
+    ('0', 3, InTerms, Just "GHC.Internal.Base", "augment"),
+    ('0', 4, InTerms, Just "GHC.Internal.Base", "++"),
+    ('0', 5, InTerms, Just "GHC.Internal.Base", "build"),
+    ('0', 6, InTerms, Just "GHC.Internal.Base", "foldr"),
+    ('0', 7, InTerms, Just "GHC.Internal.Control.Exception.Base", "recSelError"),
+    ('0', 8, InTerms, Just "GHC.Prim", "seq"),
+    ('0', 9, InTerms, Just "GHC.Prim.Panic", "absentSumFieldError"),
+    ('0', 10, InTerms, Just "GHC.Internal.Base", "eqString"),
+    ('0', 11, InTerms, Just "GHC.Internal.Control.Exception.Base", "noMethodBindingError"),
+    ('0', 12, InTerms, Just "GHC.Internal.Control.Exception.Base", "nonExhaustiveGuardsError"),
+    ('0', 13, InTerms, Just "GHC.Internal.Control.Exception.Base", "impossibleError"),
+    ('0', 14, InTerms, Just "GHC.Internal.Control.Exception.Base", "impossibleConstraintError"),
+    ('0', 15, InTerms, Just "GHC.Internal.Control.Exception.Base", "patError"),
+    ('0', 16, InTerms, Just "GHC.Prim", "realWorld#"),
+    ('0', 17, InTerms, Just "GHC.Internal.Control.Exception.Base", "recConError"),
+    ('0', 18, InTerms, Just "GHC.CString", "unpackCStringUtf8#"),
+    ('0', 19, InTerms, Just "GHC.CString", "unpackAppendCStringUtf8#"),
+    ('0', 20, InTerms, Just "GHC.CString", "unpackFoldrCStringUtf8#"),
+    ('0', 21, InTerms, Just "GHC.CString", "unpackCString#"),
+    ('0', 22, InTerms, Just "GHC.CString", "unpackAppendCString#"),
+    ('0', 23, InTerms, Just "GHC.CString", "unpackFoldrCString#"),
+    ('0', 24, InTerms, Just "GHC.Prim", "void#"),
+    ('0', 25, InTerms, Just "GHC.Internal.Control.Exception.Base", "typeError"),
+    ('0', 26, InTerms, Just "GHC.Classes", "divInt#"),
+    ('0', 27, InTerms, Just "GHC.Classes", "modInt#"),
+    ('0', 28, InTerms, Just "GHC.CString", "cstringLength#"),
+    ('0', 31, InTerms, Just "GHC.Internal.List", "concat"),
+    ('0', 32, InTerms, Just "GHC.Internal.List", "filter"),
+    ('0', 33, InTerms, Just "GHC.Internal.List", "zip"),
+    ('0', 34, InTerms, Just "GHC.Internal.Base", "bindIO"),
+    ('0', 35, InTerms, Just "GHC.Internal.Base", "returnIO"),
+    ('0', 36, InTerms, Just "GHC.Internal.Stable", "newStablePtr"),
+    ('0', 37, InTerms, Just "GHC.Internal.System.IO", "print"),
+    ('0', 38, InTerms, Just "GHC.Internal.IO", "failIO"),
+    ('0', 39, InTerms, Just "GHC.Prim", "nullAddr#"),
+    ('0', 43, InTerms, Just "GHC.Internal.Base", "otherwise"),
+    ('0', 44, InTerms, Just "GHC.Internal.Base", "assert"),
+    ('0', 45, InTerms, Just "GHC.Prim", "leftSection"),
+    ('0', 46, InTerms, Just "GHC.Prim", "rightSection"),
+    ('0', 102, InTerms, Just "GHC.Internal.TopHandler", "runMainIO"),
+    ('0', 103, InTerms, Just "GHC.Internal.Base", "thenIO"),
+    ('0', 104, InTerms, Just "GHC.Magic", "lazy"),
+    ('0', 105, InTerms, Just "GHC.Internal.IO.Exception", "assertError"),
+    ('0', 106, InTerms, Just "GHC.Magic", "oneShot"),
+    ('0', 107, InTerms, Just "GHC.Magic", "runRW#"),
+    ('0', 108, InTerms, Just "GHC.Internal.Debug.Trace", "trace"),
+    ('0', 109, InTerms, Just "GHC.Magic", "nospec"),
+    ('0', 120, InTerms, Just "GHC.Magic", "inline"),
+    ('0', 121, InTerms, Just "GHC.Internal.Base", "map"),
+    ('0', 123, InTerms, Just "GHC.Internal.Base", "$"),
+    ('0', 125, InTerms, Just "GHC.Internal.Exts", "considerAccessible"),
+    ('0', 126, InTerms, Just "GHC.Magic", "noinline"),
+    ('0', 127, InTerms, Just "GHC.Magic", "noinlineConstraint"),
+    ('0', 128, InTerms, Just "GHC.Internal.Float", "integerToFloat#"),
+    ('0', 129, InTerms, Just "GHC.Internal.Float", "integerToDouble#"),
+    ('0', 130, InTerms, Just "GHC.Internal.Float", "naturalToFloat#"),
+    ('0', 131, InTerms, Just "GHC.Internal.Float", "naturalToDouble#"),
+    ('0', 132, InTerms, Just "GHC.Internal.Float", "rationalToFloat"),
+    ('0', 133, InTerms, Just "GHC.Internal.Float", "rationalToDouble"),
+    ('0', 157, InTerms, Just "GHC.Prim", "coerce"),
+    ('0', 160, InTerms, Just "GHC.Internal.Num", "fromInteger"),
+    ('0', 161, InTerms, Just "GHC.Internal.Num", "-"),
+    ('0', 162, InTerms, Just "GHC.Internal.Real", "fromRational"),
+    ('0', 163, InTerms, Just "GHC.Internal.Enum", "enumFrom"),
+    ('0', 164, InTerms, Just "GHC.Internal.Enum", "enumFromThen"),
+    ('0', 165, InTerms, Just "GHC.Internal.Enum", "enumFromTo"),
+    ('0', 166, InTerms, Just "GHC.Internal.Enum", "enumFromThenTo"),
+    ('0', 167, InTerms, Just "GHC.Classes", "=="),
+    ('0', 168, InTerms, Just "GHC.Classes", ">="),
+    ('0', 169, InTerms, Just "GHC.Internal.Num", "negate"),
+    ('0', 171, InTerms, Just "GHC.Internal.Base", ">>="),
+    ('0', 172, InTerms, Just "GHC.Internal.Base", ">>"),
+    ('0', 173, InTerms, Just "GHC.Internal.Base", "fmap"),
+    ('0', 174, InTerms, Just "GHC.Internal.Base", "return"),
+    ('0', 175, InTerms, Just "GHC.Internal.Control.Monad.Fix", "mfix"),
+    ('0', 176, InTerms, Just "GHC.Internal.Control.Monad.Fail", "fail"),
+    ('0', 177, InTerms, Just "GHC.Internal.OverloadedLabels", "fromLabel"),
+    ('0', 180, InTerms, Just "GHC.Internal.Control.Arrow", "arr"),
+    ('0', 181, InTerms, Just "GHC.Internal.Desugar", ">>>"),
+    ('0', 182, InTerms, Just "GHC.Internal.Control.Arrow", "first"),
+    ('0', 183, InTerms, Just "GHC.Internal.Control.Arrow", "app"),
+    ('0', 184, InTerms, Just "GHC.Internal.Control.Arrow", "|||"),
+    ('0', 185, InTerms, Just "GHC.Internal.Control.Arrow", "loop"),
+    ('0', 186, InTerms, Just "GHC.Internal.Data.String", "fromString"),
+    ('0', 187, InTerms, Just "GHC.Internal.Desugar", "toAnnotationWrapper"),
+    ('0', 190, InTerms, Just "GHC.Internal.Real", "fromIntegral"),
+    ('0', 191, InTerms, Just "GHC.Internal.Real", "realToFrac"),
+    ('0', 192, InTerms, Just "GHC.Internal.Real", "toInteger"),
+    ('0', 193, InTerms, Just "GHC.Internal.Real", "toRational"),
+    ('0', 194, InTerms, Just "GHC.Internal.Control.Monad", "guard"),
+    ('0', 195, InTerms, Just "GHC.Internal.Control.Monad", "liftM"),
+    ('0', 196, InTerms, Just "Control.Monad.Zip", "mzip"),
+    ('0', 197, InTerms, Just "GHC.Internal.GHCi", "ghciStepIO"),
+    ('0', 198, InTypes, Just "GHC.Internal.IsList", "IsList"),
+    ('0', 199, InTerms, Just "GHC.Internal.IsList", "fromList"),
+    ('0', 200, InTerms, Just "Language.Haskell.TH.Syntax", "returnQ"),
+    ('0', 201, InTerms, Just "Language.Haskell.TH.Syntax", "bindQ"),
+    ('0', 202, InTerms, Just "Language.Haskell.TH.Syntax", "sequenceQ"),
+    ('0', 203, InTerms, Just "Language.Haskell.TH.Syntax", "lift"),
+    ('0', 204, InTerms, Just "Language.Haskell.TH.Syntax", "newName"),
+    ('0', 205, InTerms, Just "Language.Haskell.TH.Syntax", "mkName"),
+    ('0', 206, InTerms, Just "Language.Haskell.TH.Syntax", "mkNameG_v"),
+    ('0', 207, InTerms, Just "Language.Haskell.TH.Syntax", "mkNameG_d"),
+    ('0', 208, InTerms, Just "Language.Haskell.TH.Syntax", "mkNameG_tc"),
+    ('0', 209, InTerms, Just "Language.Haskell.TH.Syntax", "mkNameL"),
+    ('0', 210, InTerms, Just "Language.Haskell.TH.Syntax", "mkNameS"),
+    ('0', 211, InTerms, Just "Language.Haskell.TH.Syntax", "unType"),
+    ('0', 212, InTerms, Just "Language.Haskell.TH.Syntax", "unTypeCode"),
+    ('0', 214, InTerms, Just "Language.Haskell.TH.Syntax", "liftTyped"),
+    ('0', 215, InTerms, Just "Language.Haskell.TH.Syntax", "mkModName"),
+    ('0', 216, InTerms, Just "Language.Haskell.TH.Syntax", "unsafeCodeCoerce"),
+    ('0', 217, InTerms, Just "Language.Haskell.TH.Syntax", "mkNameQ"),
+    ('0', 218, InTerms, Just "Language.Haskell.TH.Syntax", "mkNameG_fld"),
+    ('0', 220, InTerms, Just "Language.Haskell.TH.Lib.Internal", "charL"),
+    ('0', 221, InTerms, Just "Language.Haskell.TH.Lib.Internal", "stringL"),
+    ('0', 222, InTerms, Just "Language.Haskell.TH.Lib.Internal", "integerL"),
+    ('0', 223, InTerms, Just "Language.Haskell.TH.Lib.Internal", "intPrimL"),
+    ('0', 224, InTerms, Just "Language.Haskell.TH.Lib.Internal", "wordPrimL"),
+    ('0', 225, InTerms, Just "Language.Haskell.TH.Lib.Internal", "floatPrimL"),
+    ('0', 226, InTerms, Just "Language.Haskell.TH.Lib.Internal", "doublePrimL"),
+    ('0', 227, InTerms, Just "Language.Haskell.TH.Lib.Internal", "rationalL"),
+    ('0', 228, InTerms, Just "Language.Haskell.TH.Lib.Internal", "stringPrimL"),
+    ('0', 229, InTerms, Just "Language.Haskell.TH.Lib.Internal", "charPrimL"),
+    ('0', 230, InTerms, Just "Language.Haskell.TH.Syntax", "liftString"),
+    ('0', 240, InTerms, Just "Language.Haskell.TH.Lib.Internal", "litP"),
+    ('0', 241, InTerms, Just "Language.Haskell.TH.Lib.Internal", "varP"),
+    ('0', 242, InTerms, Just "Language.Haskell.TH.Lib.Internal", "tupP"),
+    ('0', 243, InTerms, Just "Language.Haskell.TH.Lib.Internal", "unboxedTupP"),
+    ('0', 244, InTerms, Just "Language.Haskell.TH.Lib.Internal", "unboxedSumP"),
+    ('0', 245, InTerms, Just "Language.Haskell.TH.Lib.Internal", "conP"),
+    ('0', 246, InTerms, Just "Language.Haskell.TH.Lib.Internal", "infixP"),
+    ('0', 247, InTerms, Just "Language.Haskell.TH.Lib.Internal", "tildeP"),
+    ('0', 248, InTerms, Just "Language.Haskell.TH.Lib.Internal", "bangP"),
+    ('0', 249, InTerms, Just "Language.Haskell.TH.Lib.Internal", "asP"),
+    ('0', 250, InTerms, Just "Language.Haskell.TH.Lib.Internal", "wildP"),
+    ('0', 251, InTerms, Just "Language.Haskell.TH.Lib.Internal", "recP"),
+    ('0', 252, InTerms, Just "Language.Haskell.TH.Lib.Internal", "listP"),
+    ('0', 253, InTerms, Just "Language.Haskell.TH.Lib.Internal", "sigP"),
+    ('0', 254, InTerms, Just "Language.Haskell.TH.Lib.Internal", "viewP"),
+    ('0', 255, InTerms, Just "Language.Haskell.TH.Lib.Internal", "typeP"),
+    ('0', 256, InTerms, Just "Language.Haskell.TH.Lib.Internal", "invisP"),
+    ('0', 260, InTerms, Just "Language.Haskell.TH.Lib.Internal", "fieldPat"),
+    ('0', 261, InTerms, Just "Language.Haskell.TH.Lib.Internal", "match"),
+    ('0', 262, InTerms, Just "Language.Haskell.TH.Lib.Internal", "clause"),
+    ('0', 270, InTerms, Just "Language.Haskell.TH.Lib.Internal", "varE"),
+    ('0', 271, InTerms, Just "Language.Haskell.TH.Lib.Internal", "conE"),
+    ('0', 272, InTerms, Just "Language.Haskell.TH.Lib.Internal", "litE"),
+    ('0', 273, InTerms, Just "Language.Haskell.TH.Lib.Internal", "appE"),
+    ('0', 274, InTerms, Just "Language.Haskell.TH.Lib.Internal", "appTypeE"),
+    ('0', 275, InTerms, Just "Language.Haskell.TH.Lib.Internal", "infixE"),
+    ('0', 276, InTerms, Just "Language.Haskell.TH.Lib.Internal", "infixApp"),
+    ('0', 277, InTerms, Just "Language.Haskell.TH.Lib.Internal", "sectionL"),
+    ('0', 278, InTerms, Just "Language.Haskell.TH.Lib.Internal", "sectionR"),
+    ('0', 279, InTerms, Just "Language.Haskell.TH.Lib.Internal", "lamE"),
+    ('0', 280, InTerms, Just "Language.Haskell.TH.Lib.Internal", "lamCaseE"),
+    ('0', 281, InTerms, Just "Language.Haskell.TH.Lib.Internal", "lamCasesE"),
+    ('0', 282, InTerms, Just "Language.Haskell.TH.Lib.Internal", "tupE"),
+    ('0', 283, InTerms, Just "Language.Haskell.TH.Lib.Internal", "unboxedTupE"),
+    ('0', 284, InTerms, Just "Language.Haskell.TH.Lib.Internal", "unboxedSumE"),
+    ('0', 285, InTerms, Just "Language.Haskell.TH.Lib.Internal", "condE"),
+    ('0', 286, InTerms, Just "Language.Haskell.TH.Lib.Internal", "multiIfE"),
+    ('0', 287, InTerms, Just "Language.Haskell.TH.Lib.Internal", "letE"),
+    ('0', 288, InTerms, Just "Language.Haskell.TH.Lib.Internal", "caseE"),
+    ('0', 289, InTerms, Just "Language.Haskell.TH.Lib.Internal", "doE"),
+    ('0', 290, InTerms, Just "Language.Haskell.TH.Lib.Internal", "compE"),
+    ('0', 291, InTerms, Just "Language.Haskell.TH.Lib.Internal", "fromE"),
+    ('0', 292, InTerms, Just "Language.Haskell.TH.Lib.Internal", "fromThenE"),
+    ('0', 293, InTerms, Just "Language.Haskell.TH.Lib.Internal", "fromToE"),
+    ('0', 294, InTerms, Just "Language.Haskell.TH.Lib.Internal", "fromThenToE"),
+    ('0', 295, InTerms, Just "Language.Haskell.TH.Lib.Internal", "listE"),
+    ('0', 296, InTerms, Just "Language.Haskell.TH.Lib.Internal", "sigE"),
+    ('0', 297, InTerms, Just "Language.Haskell.TH.Lib.Internal", "recConE"),
+    ('0', 298, InTerms, Just "Language.Haskell.TH.Lib.Internal", "recUpdE"),
+    ('0', 299, InTerms, Just "Language.Haskell.TH.Lib.Internal", "staticE"),
+    ('0', 300, InTerms, Just "Language.Haskell.TH.Lib.Internal", "unboundVarE"),
+    ('0', 301, InTerms, Just "Language.Haskell.TH.Lib.Internal", "labelE"),
+    ('0', 302, InTerms, Just "Language.Haskell.TH.Lib.Internal", "implicitParamVarE"),
+    ('0', 303, InTerms, Just "Language.Haskell.TH.Lib.Internal", "mdoE"),
+    ('0', 304, InTerms, Just "Language.Haskell.TH.Lib.Internal", "getFieldE"),
+    ('0', 305, InTerms, Just "Language.Haskell.TH.Lib.Internal", "projectionE"),
+    ('0', 306, InTerms, Just "Language.Haskell.TH.Lib.Internal", "typeE"),
+    ('0', 307, InTerms, Just "Language.Haskell.TH.Lib.Internal", "fieldExp"),
+    ('0', 308, InTerms, Just "Language.Haskell.TH.Lib.Internal", "guardedB"),
+    ('0', 309, InTerms, Just "Language.Haskell.TH.Lib.Internal", "normalB"),
+    ('0', 310, InTerms, Just "Language.Haskell.TH.Lib.Internal", "normalGE"),
+    ('0', 311, InTerms, Just "Language.Haskell.TH.Lib.Internal", "patGE"),
+    ('0', 312, InTerms, Just "Language.Haskell.TH.Lib.Internal", "bindS"),
+    ('0', 313, InTerms, Just "Language.Haskell.TH.Lib.Internal", "letS"),
+    ('0', 314, InTerms, Just "Language.Haskell.TH.Lib.Internal", "noBindS"),
+    ('0', 315, InTerms, Just "Language.Haskell.TH.Lib.Internal", "parS"),
+    ('0', 316, InTerms, Just "Language.Haskell.TH.Lib.Internal", "recS"),
+    ('0', 320, InTerms, Just "Language.Haskell.TH.Lib.Internal", "funD"),
+    ('0', 321, InTerms, Just "Language.Haskell.TH.Lib.Internal", "valD"),
+    ('0', 322, InTerms, Just "Language.Haskell.TH.Lib.Internal", "dataD"),
+    ('0', 323, InTerms, Just "Language.Haskell.TH.Lib.Internal", "newtypeD"),
+    ('0', 324, InTerms, Just "Language.Haskell.TH.Lib.Internal", "tySynD"),
+    ('0', 325, InTerms, Just "Language.Haskell.TH.Lib.Internal", "classD"),
+    ('0', 326, InTerms, Just "Language.Haskell.TH.Lib.Internal", "instanceWithOverlapD"),
+    ('0', 328, InTerms, Just "Language.Haskell.TH.Lib.Internal", "sigD"),
+    ('0', 329, InTerms, Just "Language.Haskell.TH.Lib.Internal", "forImpD"),
+    ('0', 330, InTerms, Just "Language.Haskell.TH.Lib.Internal", "pragInlD"),
+    ('0', 331, InTerms, Just "Language.Haskell.TH.Lib.Internal", "pragSpecD"),
+    ('0', 332, InTerms, Just "Language.Haskell.TH.Lib.Internal", "pragSpecInlD"),
+    ('0', 333, InTerms, Just "Language.Haskell.TH.Lib.Internal", "pragSpecInstD"),
+    ('0', 334, InTerms, Just "Language.Haskell.TH.Lib.Internal", "pragRuleD"),
+    ('0', 335, InTerms, Just "Language.Haskell.TH.Lib.Internal", "pragAnnD"),
+    ('0', 336, InTerms, Just "Language.Haskell.TH.Lib.Internal", "dataFamilyD"),
+    ('0', 337, InTerms, Just "Language.Haskell.TH.Lib.Internal", "openTypeFamilyD"),
+    ('0', 338, InTerms, Just "Language.Haskell.TH.Lib.Internal", "dataInstD"),
+    ('0', 339, InTerms, Just "Language.Haskell.TH.Lib.Internal", "newtypeInstD"),
+    ('0', 340, InTerms, Just "Language.Haskell.TH.Lib.Internal", "tySynInstD"),
+    ('0', 341, InTerms, Just "Language.Haskell.TH.Lib.Internal", "closedTypeFamilyD"),
+    ('0', 342, InTerms, Just "Language.Haskell.TH.Lib.Internal", "infixLWithSpecD"),
+    ('0', 343, InTerms, Just "Language.Haskell.TH.Lib.Internal", "infixRWithSpecD"),
+    ('0', 344, InTerms, Just "Language.Haskell.TH.Lib.Internal", "infixNWithSpecD"),
+    ('0', 345, InTerms, Just "Language.Haskell.TH.Lib.Internal", "roleAnnotD"),
+    ('0', 346, InTerms, Just "Language.Haskell.TH.Lib.Internal", "standaloneDerivWithStrategyD"),
+    ('0', 347, InTerms, Just "Language.Haskell.TH.Lib.Internal", "defaultSigD"),
+    ('0', 348, InTerms, Just "Language.Haskell.TH.Lib.Internal", "patSynD"),
+    ('0', 349, InTerms, Just "Language.Haskell.TH.Lib.Internal", "patSynSigD"),
+    ('0', 350, InTerms, Just "Language.Haskell.TH.Lib.Internal", "pragCompleteD"),
+    ('0', 351, InTerms, Just "Language.Haskell.TH.Lib.Internal", "implicitParamBindD"),
+    ('0', 352, InTerms, Just "Language.Haskell.TH.Lib.Internal", "kiSigD"),
+    ('0', 353, InTerms, Just "Language.Haskell.TH.Lib.Internal", "defaultD"),
+    ('0', 354, InTerms, Just "Language.Haskell.TH.Lib.Internal", "pragOpaqueD"),
+    ('0', 355, InTerms, Just "Language.Haskell.TH.Lib.Internal", "typeDataD"),
+    ('0', 356, InTerms, Just "Language.Haskell.TH.Lib.Internal", "pragSCCFunD"),
+    ('0', 357, InTerms, Just "Language.Haskell.TH.Lib.Internal", "pragSCCFunNamedD"),
+    ('0', 361, InTerms, Just "Language.Haskell.TH.Lib.Internal", "cxt"),
+    ('0', 362, InTerms, Just "Language.Haskell.TH.Lib.Internal", "noSourceUnpackedness"),
+    ('0', 363, InTerms, Just "Language.Haskell.TH.Lib.Internal", "sourceNoUnpack"),
+    ('0', 364, InTerms, Just "Language.Haskell.TH.Lib.Internal", "sourceUnpack"),
+    ('0', 365, InTerms, Just "Language.Haskell.TH.Lib.Internal", "noSourceStrictness"),
+    ('0', 366, InTerms, Just "Language.Haskell.TH.Lib.Internal", "sourceLazy"),
+    ('0', 367, InTerms, Just "Language.Haskell.TH.Lib.Internal", "sourceStrict"),
+    ('0', 368, InTerms, Just "Language.Haskell.TH.Lib.Internal", "normalC"),
+    ('0', 369, InTerms, Just "Language.Haskell.TH.Lib.Internal", "recC"),
+    ('0', 370, InTerms, Just "Language.Haskell.TH.Lib.Internal", "infixC"),
+    ('0', 371, InTerms, Just "Language.Haskell.TH.Lib.Internal", "forallC"),
+    ('0', 372, InTerms, Just "Language.Haskell.TH.Lib.Internal", "gadtC"),
+    ('0', 373, InTerms, Just "Language.Haskell.TH.Lib.Internal", "recGadtC"),
+    ('0', 374, InTerms, Just "Language.Haskell.TH.Lib.Internal", "bang"),
+    ('0', 375, InTerms, Just "Language.Haskell.TH.Lib.Internal", "bangType"),
+    ('0', 376, InTerms, Just "Language.Haskell.TH.Lib.Internal", "varBangType"),
+    ('0', 377, InTerms, Just "Language.Haskell.TH.Lib.Internal", "unidir"),
+    ('0', 378, InTerms, Just "Language.Haskell.TH.Lib.Internal", "implBidir"),
+    ('0', 379, InTerms, Just "Language.Haskell.TH.Lib.Internal", "explBidir"),
+    ('0', 380, InTerms, Just "Language.Haskell.TH.Lib.Internal", "prefixPatSyn"),
+    ('0', 381, InTerms, Just "Language.Haskell.TH.Lib.Internal", "infixPatSyn"),
+    ('0', 382, InTerms, Just "Language.Haskell.TH.Lib.Internal", "recordPatSyn"),
+    ('0', 390, InTerms, Just "Language.Haskell.TH.Lib.Internal", "forallT"),
+    ('0', 391, InTerms, Just "Language.Haskell.TH.Lib.Internal", "forallVisT"),
+    ('0', 392, InTerms, Just "Language.Haskell.TH.Lib.Internal", "varT"),
+    ('0', 393, InTerms, Just "Language.Haskell.TH.Lib.Internal", "conT"),
+    ('0', 394, InTerms, Just "Language.Haskell.TH.Lib.Internal", "tupleT"),
+    ('0', 395, InTerms, Just "Language.Haskell.TH.Lib.Internal", "unboxedTupleT"),
+    ('0', 396, InTerms, Just "Language.Haskell.TH.Lib.Internal", "unboxedSumT"),
+    ('0', 397, InTerms, Just "Language.Haskell.TH.Lib.Internal", "arrowT"),
+    ('0', 398, InTerms, Just "Language.Haskell.TH.Lib.Internal", "listT"),
+    ('0', 399, InTerms, Just "Language.Haskell.TH.Lib.Internal", "appT"),
+    ('0', 400, InTerms, Just "Language.Haskell.TH.Lib.Internal", "appKindT"),
+    ('0', 401, InTerms, Just "Language.Haskell.TH.Lib.Internal", "sigT"),
+    ('0', 402, InTerms, Just "Language.Haskell.TH.Lib.Internal", "equalityT"),
+    ('0', 403, InTerms, Just "Language.Haskell.TH.Lib.Internal", "litT"),
+    ('0', 404, InTerms, Just "Language.Haskell.TH.Lib.Internal", "promotedT"),
+    ('0', 405, InTerms, Just "Language.Haskell.TH.Lib.Internal", "promotedTupleT"),
+    ('0', 406, InTerms, Just "Language.Haskell.TH.Lib.Internal", "promotedNilT"),
+    ('0', 407, InTerms, Just "Language.Haskell.TH.Lib.Internal", "promotedConsT"),
+    ('0', 408, InTerms, Just "Language.Haskell.TH.Lib.Internal", "wildCardT"),
+    ('0', 409, InTerms, Just "Language.Haskell.TH.Lib.Internal", "implicitParamT"),
+    ('0', 410, InTerms, Just "Language.Haskell.TH.Lib.Internal", "infixT"),
+    ('0', 411, InTerms, Just "Language.Haskell.TH.Lib.Internal", "numTyLit"),
+    ('0', 412, InTerms, Just "Language.Haskell.TH.Lib.Internal", "strTyLit"),
+    ('0', 413, InTerms, Just "Language.Haskell.TH.Lib.Internal", "charTyLit"),
+    ('0', 414, InTerms, Just "Language.Haskell.TH.Lib.Internal", "plainTV"),
+    ('0', 415, InTerms, Just "Language.Haskell.TH.Lib.Internal", "kindedTV"),
+    ('0', 416, InTerms, Just "Language.Haskell.TH.Lib.Internal", "nominalR"),
+    ('0', 417, InTerms, Just "Language.Haskell.TH.Lib.Internal", "representationalR"),
+    ('0', 418, InTerms, Just "Language.Haskell.TH.Lib.Internal", "phantomR"),
+    ('0', 419, InTerms, Just "Language.Haskell.TH.Lib.Internal", "inferR"),
+    ('0', 425, InTerms, Just "Language.Haskell.TH.Lib.Internal", "starK"),
+    ('0', 426, InTerms, Just "Language.Haskell.TH.Lib.Internal", "constraintK"),
+    ('0', 427, InTerms, Just "Language.Haskell.TH.Lib.Internal", "noSig"),
+    ('0', 428, InTerms, Just "Language.Haskell.TH.Lib.Internal", "kindSig"),
+    ('0', 429, InTerms, Just "Language.Haskell.TH.Lib.Internal", "tyVarSig"),
+    ('0', 430, InTerms, Just "Language.Haskell.TH.Lib.Internal", "injectivityAnn"),
+    ('0', 431, InTerms, Just "Language.Haskell.TH.Lib.Internal", "cCall"),
+    ('0', 432, InTerms, Just "Language.Haskell.TH.Lib.Internal", "stdCall"),
+    ('0', 433, InTerms, Just "Language.Haskell.TH.Lib.Internal", "cApi"),
+    ('0', 434, InTerms, Just "Language.Haskell.TH.Lib.Internal", "prim"),
+    ('0', 435, InTerms, Just "Language.Haskell.TH.Lib.Internal", "javaScript"),
+    ('0', 440, InTerms, Just "Language.Haskell.TH.Lib.Internal", "unsafe"),
+    ('0', 441, InTerms, Just "Language.Haskell.TH.Lib.Internal", "safe"),
+    ('0', 442, InTerms, Just "Language.Haskell.TH.Lib.Internal", "interruptible"),
+    ('0', 445, InTerms, Just "Language.Haskell.TH.Lib.Internal", "funDep"),
+    ('0', 446, InTerms, Just "Language.Haskell.TH.Lib.Internal", "mulArrowT"),
+    ('0', 460, InTerms, Just "Language.Haskell.TH.Lib.Internal", "tySynEqn"),
+    ('0', 470, InTerms, Just "Language.Haskell.TH.Quote", "quoteExp"),
+    ('0', 471, InTerms, Just "Language.Haskell.TH.Quote", "quotePat"),
+    ('0', 472, InTerms, Just "Language.Haskell.TH.Quote", "quoteDec"),
+    ('0', 473, InTerms, Just "Language.Haskell.TH.Quote", "quoteType"),
+    ('0', 480, InTerms, Just "Language.Haskell.TH.Lib.Internal", "ruleVar"),
+    ('0', 481, InTerms, Just "Language.Haskell.TH.Lib.Internal", "typedRuleVar"),
+    ('0', 482, InTerms, Just "Language.Haskell.TH.Lib.Internal", "plainInvisTV"),
+    ('0', 483, InTerms, Just "Language.Haskell.TH.Lib.Internal", "kindedInvisTV"),
+    ('0', 484, InTerms, Just "Language.Haskell.TH.Lib.Internal", "plainBndrTV"),
+    ('0', 485, InTerms, Just "Language.Haskell.TH.Lib.Internal", "kindedBndrTV"),
+    ('0', 490, InTerms, Just "Language.Haskell.TH.Lib.Internal", "valueAnnotation"),
+    ('0', 491, InTerms, Just "Language.Haskell.TH.Lib.Internal", "typeAnnotation"),
+    ('0', 492, InTerms, Just "Language.Haskell.TH.Lib.Internal", "moduleAnnotation"),
+    ('0', 493, InTerms, Just "Language.Haskell.TH.Lib.Internal", "derivClause"),
+    ('0', 498, InTerms, Just "Language.Haskell.TH.Lib.Internal", "specifiedSpec"),
+    ('0', 499, InTerms, Just "Language.Haskell.TH.Lib.Internal", "inferredSpec"),
+    ('0', 500, InTerms, Just "GHC.Internal.IsList", "fromListN"),
+    ('0', 501, InTerms, Just "GHC.Internal.IsList", "toList"),
+    ('0', 502, InTerms, Just "GHC.Prim", "proxy#"),
+    ('0', 504, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "mkTrType"),
+    ('0', 505, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "mkTrCon"),
+    ('0', 506, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "mkTrAppChecked"),
+    ('0', 507, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "typeNatTypeRep"),
+    ('0', 508, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "typeSymbolTypeRep"),
+    ('0', 509, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "typeCharTypeRep"),
+    ('0', 510, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "typeRep#"),
+    ('0', 511, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "mkTrFun"),
+    ('0', 520, InTerms, Just "GHC.Types", "krep$*"),
+    ('0', 521, InTerms, Just "GHC.Types", "krep$*Arr*"),
+    ('0', 522, InTerms, Just "GHC.Types", "krep$*->*->*"),
+    ('0', 523, InTerms, Just "GHC.Types", "krep$Constraint"),
+    ('0', 530, InTerms, Just "GHC.Internal.Data.Dynamic", "toDyn"),
+    ('0', 551, InTerms, Just "GHC.Types", "eq_sel"),
+    ('0', 552, InTerms, Just "GHC.Types", "heq_sel"),
+    ('0', 553, InTerms, Just "GHC.Types", "coercible_sel"),
+    ('0', 554, InTerms, Just "GHC.Internal.Base", "<>"),
+    ('0', 555, InTerms, Just "GHC.Internal.Base", "mempty"),
+    ('0', 556, InTerms, Just "GHC.Internal.Base", "mappend"),
+    ('0', 557, InTerms, Just "GHC.Internal.Base", "mconcat"),
+    ('0', 558, InTerms, Just "GHC.Internal.Stack.Types", "emptyCallStack"),
+    ('0', 559, InTerms, Just "GHC.Internal.Stack.Types", "pushCallStack"),
+    ('0', 560, InTerms, Just "GHC.Internal.StaticPtr", "fromStaticPtr"),
+    ('0', 561, InTerms, Just "GHC.Internal.StaticPtr.Internal", "makeStatic"),
+    ('0', 562, InTerms, Just "GHC.Internal.Exception.Context", "emptyExceptionContext"),
+    ('0', 570, InTerms, Just "GHC.Internal.Unsafe.Coerce", "unsafeEqualityProof"),
+    ('0', 571, InTerms, Just "GHC.Internal.Unsafe.Coerce", "unsafeCoerce#"),
+    ('0', 572, InTerms, Just "GHC.Internal.Records", "getField"),
+    ('0', 573, InTerms, Just "GHC.Internal.Records", "setField"),
+    ('0', 580, InTerms, Just "GHC.Internal.TypeError", "unsatisfiable"),
+    ('0', 600, InTerms, Just "GHC.Num.Integer", "integerFromNatural"),
+    ('0', 601, InTerms, Just "GHC.Num.Integer", "integerToNaturalClamp"),
+    ('0', 602, InTerms, Just "GHC.Num.Integer", "integerToNaturalThrow"),
+    ('0', 603, InTerms, Just "GHC.Num.Integer", "integerToNatural"),
+    ('0', 604, InTerms, Just "GHC.Num.Integer", "integerToWord#"),
+    ('0', 605, InTerms, Just "GHC.Num.Integer", "integerToInt#"),
+    ('0', 606, InTerms, Just "GHC.Num.Integer", "integerToWord64#"),
+    ('0', 607, InTerms, Just "GHC.Num.Integer", "integerToInt64#"),
+    ('0', 608, InTerms, Just "GHC.Num.Integer", "integerAdd"),
+    ('0', 609, InTerms, Just "GHC.Num.Integer", "integerMul"),
+    ('0', 610, InTerms, Just "GHC.Num.Integer", "integerSub"),
+    ('0', 611, InTerms, Just "GHC.Num.Integer", "integerNegate"),
+    ('0', 618, InTerms, Just "GHC.Num.Integer", "integerAbs"),
+    ('0', 621, InTerms, Just "GHC.Num.Integer", "integerPopCount#"),
+    ('0', 622, InTerms, Just "GHC.Num.Integer", "integerQuot"),
+    ('0', 623, InTerms, Just "GHC.Num.Integer", "integerRem"),
+    ('0', 624, InTerms, Just "GHC.Num.Integer", "integerDiv"),
+    ('0', 625, InTerms, Just "GHC.Num.Integer", "integerMod"),
+    ('0', 626, InTerms, Just "GHC.Num.Integer", "integerDivMod#"),
+    ('0', 627, InTerms, Just "GHC.Num.Integer", "integerQuotRem#"),
+    ('0', 630, InTerms, Just "GHC.Num.Integer", "integerEncodeFloat#"),
+    ('0', 631, InTerms, Just "GHC.Num.Integer", "integerEncodeDouble#"),
+    ('0', 632, InTerms, Just "GHC.Num.Integer", "integerGcd"),
+    ('0', 633, InTerms, Just "GHC.Num.Integer", "integerLcm"),
+    ('0', 634, InTerms, Just "GHC.Num.Integer", "integerAnd"),
+    ('0', 635, InTerms, Just "GHC.Num.Integer", "integerOr"),
+    ('0', 636, InTerms, Just "GHC.Num.Integer", "integerXor"),
+    ('0', 637, InTerms, Just "GHC.Num.Integer", "integerComplement"),
+    ('0', 638, InTerms, Just "GHC.Num.Integer", "integerBit#"),
+    ('0', 639, InTerms, Just "GHC.Num.Integer", "integerTestBit#"),
+    ('0', 640, InTerms, Just "GHC.Num.Integer", "integerShiftL#"),
+    ('0', 641, InTerms, Just "GHC.Num.Integer", "integerShiftR#"),
+    ('0', 642, InTerms, Just "GHC.Num.Integer", "integerFromWord#"),
+    ('0', 643, InTerms, Just "GHC.Num.Integer", "integerFromWord64#"),
+    ('0', 644, InTerms, Just "GHC.Num.Integer", "integerFromInt64#"),
+    ('0', 650, InTerms, Just "GHC.Num.Natural", "naturalToWord#"),
+    ('0', 659, InTerms, Just "GHC.Num.Natural", "naturalPopCount#"),
+    ('0', 660, InTerms, Just "GHC.Num.Natural", "naturalShiftR#"),
+    ('0', 661, InTerms, Just "GHC.Num.Natural", "naturalShiftL#"),
+    ('0', 662, InTerms, Just "GHC.Num.Natural", "naturalAdd"),
+    ('0', 663, InTerms, Just "GHC.Num.Natural", "naturalSub"),
+    ('0', 664, InTerms, Just "GHC.Num.Natural", "naturalSubThrow"),
+    ('0', 665, InTerms, Just "GHC.Num.Natural", "naturalSubUnsafe"),
+    ('0', 666, InTerms, Just "GHC.Num.Natural", "naturalMul"),
+    ('0', 669, InTerms, Just "GHC.Num.Natural", "naturalQuotRem#"),
+    ('0', 670, InTerms, Just "GHC.Num.Natural", "naturalQuot"),
+    ('0', 671, InTerms, Just "GHC.Num.Natural", "naturalRem"),
+    ('0', 672, InTerms, Just "GHC.Num.Natural", "naturalAnd"),
+    ('0', 673, InTerms, Just "GHC.Num.Natural", "naturalAndNot"),
+    ('0', 674, InTerms, Just "GHC.Num.Natural", "naturalOr"),
+    ('0', 675, InTerms, Just "GHC.Num.Natural", "naturalXor"),
+    ('0', 676, InTerms, Just "GHC.Num.Natural", "naturalTestBit#"),
+    ('0', 677, InTerms, Just "GHC.Num.Natural", "naturalBit#"),
+    ('0', 678, InTerms, Just "GHC.Num.Natural", "naturalGcd"),
+    ('0', 679, InTerms, Just "GHC.Num.Natural", "naturalLcm"),
+    ('0', 680, InTerms, Just "GHC.Num.Natural", "naturalLog2#"),
+    ('0', 681, InTerms, Just "GHC.Num.Natural", "naturalLogBaseWord#"),
+    ('0', 682, InTerms, Just "GHC.Num.Natural", "naturalLogBase#"),
+    ('0', 683, InTerms, Just "GHC.Num.Natural", "naturalPowMod"),
+    ('0', 684, InTerms, Just "GHC.Num.Natural", "naturalSizeInBase#"),
+    ('0', 691, InTerms, Just "GHC.Num.BigNat", "bigNatEq#"),
+    ('0', 700, InTerms, Just "GHC.Internal.Real", "mkRationalBase2"),
+    ('0', 701, InTerms, Just "GHC.Internal.Real", "mkRationalBase10"),
+    ('0', 750, InTerms, Just "GHC.Internal.Base", "join"),
+    ('0', 751, InTerms, Just "GHC.Internal.Base", "<*>"),
+    ('0', 752, InTerms, Just "GHC.Internal.Base", "pure"),
+    ('0', 753, InTerms, Just "GHC.Internal.Base", "*>"),
+    ('0', 754, InTypes, Just "GHC.Internal.Control.Monad", "Alternative"),
+    ('0', 800, InTerms, Just "Language.Haskell.TH.Lib.Internal", "bndrReq"),
+    ('0', 801, InTerms, Just "Language.Haskell.TH.Lib.Internal", "bndrInvis"),
+    ('2', 1, InTypes, Just "GHC.Internal.Enum", "Bounded"),
+    ('2', 2, InTypes, Just "GHC.Internal.Enum", "Enum"),
+    ('2', 3, InTypes, Just "GHC.Classes", "Eq"),
+    ('2', 5, InTypes, Just "GHC.Internal.Float", "Floating"),
+    ('2', 6, InTypes, Just "GHC.Internal.Real", "Fractional"),
+    ('2', 7, InTypes, Just "GHC.Internal.Real", "Integral"),
+    ('2', 8, InTypes, Just "GHC.Internal.Base", "Monad"),
+    ('2', 9, InTypes, Just "GHC.Internal.Data.Data", "Data"),
+    ('2', 10, InTypes, Just "GHC.Internal.Base", "Functor"),
+    ('2', 11, InTypes, Just "GHC.Internal.Num", "Num"),
+    ('2', 12, InTypes, Just "GHC.Classes", "Ord"),
+    ('2', 13, InTypes, Just "GHC.Internal.Read", "Read"),
+    ('2', 14, InTypes, Just "GHC.Internal.Real", "Real"),
+    ('2', 15, InTypes, Just "GHC.Internal.Float", "RealFloat"),
+    ('2', 16, InTypes, Just "GHC.Internal.Real", "RealFrac"),
+    ('2', 17, InTypes, Just "GHC.Internal.Show", "Show"),
+    ('2', 18, InTypes, Just "GHC.Internal.Ix", "Ix"),
+    ('2', 20, InTypes, Just "GHC.Internal.Data.Typeable.Internal", "Typeable"),
+    ('2', 21, InTypes, Just "GHC.Magic.Dict", "WithDict"),
+    ('2', 23, InTypes, Just "GHC.Magic", "DataToTag"),
+    ('2', 28, InTypes, Just "GHC.Internal.Control.Monad.Fix", "MonadFix"),
+    ('2', 29, InTypes, Just "GHC.Internal.Control.Monad.Fail", "MonadFail"),
+    ('2', 30, InTypes, Just "GHC.Internal.Control.Monad", "MonadPlus"),
+    ('2', 33, InTypes, Just "GHC.Internal.Data.String", "IsString"),
+    ('2', 34, InTypes, Just "GHC.Internal.Base", "Applicative"),
+    ('2', 35, InTypes, Just "GHC.Internal.Data.Foldable", "Foldable"),
+    ('2', 36, InTypes, Just "GHC.Internal.Data.Traversable", "Traversable"),
+    ('2', 37, InTypes, Just "GHC.Internal.Generics", "Generic"),
+    ('2', 38, InTypes, Just "GHC.Internal.Generics", "Generic1"),
+    ('2', 39, InTypes, Just "GHC.Internal.Generics", "Datatype"),
+    ('2', 40, InTypes, Just "GHC.Internal.Generics", "Constructor"),
+    ('2', 41, InTypes, Just "GHC.Internal.Generics", "Selector"),
+    ('2', 42, InTypes, Just "GHC.Internal.TypeNats", "KnownNat"),
+    ('2', 43, InTypes, Just "GHC.Internal.TypeLits", "KnownSymbol"),
+    ('2', 44, InTypes, Just "GHC.Internal.TypeLits", "KnownChar"),
+    ('2', 45, InTypes, Just "GHC.Internal.GHCi", "GHCiSandboxIO"),
+    ('2', 47, InTypes, Just "GHC.Internal.Base", "Semigroup"),
+    ('2', 48, InTypes, Just "GHC.Internal.Base", "Monoid"),
+    ('2', 49, InTypes, Just "GHC.Classes", "IP"),
+    ('2', 50, InTypes, Just "GHC.Internal.Records", "HasField"),
+    ('2', 200, InTypes, Just "Language.Haskell.TH.Syntax", "Lift"),
+    ('2', 201, InTypes, Just "Language.Haskell.TH.Syntax", "Quote"),
+    ('3', 2, InTypes, Just "GHC.Prim", "Addr#"),
+    ('3', 3, InTerms, Just "GHC.Types", "$tcAddr#"),
+    ('3', 6, InTypes, Just "GHC.Prim", "Array#"),
+    ('3', 7, InTerms, Just "GHC.Types", "$tcArray#"),
+    ('3', 8, InTypes, Just "GHC.Types", "Bool"),
+    ('3', 9, InTerms, Just "GHC.Types", "$tcBool"),
+    ('3', 10, InTypes, Just "GHC.Prim", "ByteArray#"),
+    ('3', 11, InTerms, Just "GHC.Types", "$tcByteArray#"),
+    ('3', 12, InTypes, Just "GHC.Internal.Base", "String"),
+    ('3', 14, InTypes, Just "GHC.Prim", "Char#"),
+    ('3', 15, InTerms, Just "GHC.Types", "$tcChar#"),
+    ('3', 16, InTypes, Just "GHC.Types", "Char"),
+    ('3', 17, InTerms, Just "GHC.Types", "$tcChar"),
+    ('3', 18, InTypes, Just "GHC.Prim", "Double#"),
+    ('3', 19, InTerms, Just "GHC.Types", "$tcDouble#"),
+    ('3', 20, InTypes, Just "GHC.Types", "Double"),
+    ('3', 21, InTerms, Just "GHC.Types", "$tcDouble"),
+    ('3', 22, InTypes, Just "GHC.Prim", "Float#"),
+    ('3', 23, InTerms, Just "GHC.Types", "$tcFloat#"),
+    ('3', 24, InTypes, Just "GHC.Types", "Float"),
+    ('3', 25, InTerms, Just "GHC.Types", "$tcFloat"),
+    ('3', 26, InTypes, Just "GHC.Prim", "FUN"),
+    ('3', 27, InTerms, Just "GHC.Types", "$tcFUN"),
+    ('3', 28, InTypes, Just "GHC.Prim", "Int#"),
+    ('3', 29, InTerms, Just "GHC.Types", "$tcInt#"),
+    ('3', 30, InTypes, Just "GHC.Types", "Int"),
+    ('3', 31, InTerms, Just "GHC.Types", "$tcInt"),
+    ('3', 32, InTypes, Just "GHC.Prim", "Int8#"),
+    ('3', 33, InTerms, Just "GHC.Types", "$tcInt8#"),
+    ('3', 34, InTypes, Just "GHC.Internal.Int", "Int8"),
+    ('3', 36, InTypes, Just "GHC.Prim", "Int16#"),
+    ('3', 37, InTerms, Just "GHC.Types", "$tcInt16#"),
+    ('3', 38, InTypes, Just "GHC.Internal.Int", "Int16"),
+    ('3', 40, InTypes, Just "GHC.Prim", "Int32#"),
+    ('3', 41, InTerms, Just "GHC.Types", "$tcInt32#"),
+    ('3', 42, InTypes, Just "GHC.Internal.Int", "Int32"),
+    ('3', 44, InTypes, Just "GHC.Prim", "Int64#"),
+    ('3', 45, InTerms, Just "GHC.Types", "$tcInt64#"),
+    ('3', 46, InTypes, Just "GHC.Internal.Int", "Int64"),
+    ('3', 48, InTypes, Just "GHC.Num.Integer", "Integer"),
+    ('3', 49, InTerms, Just "GHC.Num.Integer", "$tcInteger"),
+    ('3', 50, InTypes, Just "GHC.Num.Natural", "Natural"),
+    ('3', 51, InTerms, Just "GHC.Num.Natural", "$tcNatural"),
+    ('3', 52, InTypes, Nothing, "[]"),
+    ('3', 53, InTerms, Just "GHC.Types", "$tcList"),
+    ('3', 56, InTypes, Just "GHC.Internal.Maybe", "Maybe"),
+    ('3', 57, InTerms, Just "GHC.Internal.Maybe", "$tcMaybe"),
+    ('3', 58, InTypes, Just "GHC.Prim", "Weak#"),
+    ('3', 59, InTerms, Just "GHC.Types", "$tcWeak#"),
+    ('3', 60, InTypes, Just "GHC.Prim", "MutableArray#"),
+    ('3', 61, InTerms, Just "GHC.Types", "$tcMutableArray#"),
+    ('3', 62, InTypes, Just "GHC.Prim", "MutableByteArray#"),
+    ('3', 63, InTerms, Just "GHC.Types", "$tcMutableByteArray#"),
+    ('3', 64, InTypes, Just "GHC.Types", "Ordering"),
+    ('3', 65, InTerms, Just "GHC.Types", "$tcOrdering"),
+    ('3', 66, InTypes, Just "GHC.Prim", "MVar#"),
+    ('3', 67, InTerms, Just "GHC.Types", "$tcMVar#"),
+    ('3', 68, InTypes, Just "GHC.Prim", "IOPort#"),
+    ('3', 69, InTerms, Just "GHC.Types", "$tcIOPort#"),
+    ('3', 70, InTypes, Just "GHC.Internal.Real", "Ratio"),
+    ('3', 72, InTypes, Just "GHC.Internal.Real", "Rational"),
+    ('3', 74, InTypes, Just "GHC.Prim", "RealWorld"),
+    ('3', 75, InTerms, Just "GHC.Types", "$tcRealWorld"),
+    ('3', 76, InTypes, Just "GHC.Prim", "StablePtr#"),
+    ('3', 77, InTerms, Just "GHC.Types", "$tcStablePtr#"),
+    ('3', 78, InTypes, Just "GHC.Internal.Stable", "StablePtr"),
+    ('3', 80, InTypes, Just "GHC.Types", "~"),
+    ('3', 81, InTerms, Just "GHC.Types", "$tc~"),
+    ('3', 82, InTypes, Just "GHC.Types", "~~"),
+    ('3', 83, InTerms, Just "GHC.Types", "$tc~~"),
+    ('3', 84, InTypes, Nothing, "=>"),
+    ('3', 85, InTerms, Just "GHC.Types", "$tc=>"),
+    ('3', 86, InTypes, Nothing, "==>"),
+    ('3', 87, InTerms, Just "GHC.Types", "$tc==>"),
+    ('3', 88, InTypes, Nothing, "-=>"),
+    ('3', 89, InTerms, Just "GHC.Types", "$tc-=>"),
+    ('3', 100, InTypes, Just "GHC.Prim", "State#"),
+    ('3', 101, InTerms, Just "GHC.Types", "$tcState#"),
+    ('3', 102, InTypes, Just "GHC.Prim", "StableName#"),
+    ('3', 103, InTerms, Just "GHC.Types", "$tcStableName#"),
+    ('3', 106, InTypes, Just "GHC.Prim", "~#"),
+    ('3', 107, InTerms, Just "GHC.Types", "$tc~#"),
+    ('3', 108, InTypes, Nothing, "~R#"),
+    ('3', 109, InTerms, Just "GHC.Types", "$tc~R#"),
+    ('3', 110, InTypes, Nothing, "~P#"),
+    ('3', 111, InTerms, Just "GHC.Types", "$tc~P#"),
+    ('3', 112, InTypes, Just "GHC.Prim", "MutVar#"),
+    ('3', 113, InTerms, Just "GHC.Types", "$tcMutVar#"),
+    ('3', 114, InTypes, Just "GHC.Types", "IO"),
+    ('3', 118, InTypes, Just "GHC.Prim", "Word#"),
+    ('3', 119, InTerms, Just "GHC.Types", "$tcWord#"),
+    ('3', 120, InTypes, Just "GHC.Types", "Word"),
+    ('3', 121, InTerms, Just "GHC.Types", "$tcWord"),
+    ('3', 122, InTypes, Just "GHC.Prim", "Word8#"),
+    ('3', 123, InTerms, Just "GHC.Types", "$tcWord8#"),
+    ('3', 124, InTypes, Just "GHC.Internal.Word", "Word8"),
+    ('3', 126, InTypes, Just "GHC.Prim", "Word16#"),
+    ('3', 127, InTerms, Just "GHC.Types", "$tcWord16#"),
+    ('3', 128, InTypes, Just "GHC.Internal.Word", "Word16"),
+    ('3', 130, InTypes, Just "GHC.Prim", "Word32#"),
+    ('3', 131, InTerms, Just "GHC.Types", "$tcWord32#"),
+    ('3', 132, InTypes, Just "GHC.Internal.Word", "Word32"),
+    ('3', 134, InTypes, Just "GHC.Prim", "Word64#"),
+    ('3', 135, InTerms, Just "GHC.Types", "$tcWord64#"),
+    ('3', 136, InTypes, Just "GHC.Internal.Word", "Word64"),
+    ('3', 150, InTypes, Just "GHC.Prim", "ThreadId#"),
+    ('3', 151, InTerms, Just "GHC.Types", "$tcThreadId#"),
+    ('3', 152, InTypes, Just "GHC.Prim", "BCO"),
+    ('3', 153, InTerms, Just "GHC.Types", "$tcBCO"),
+    ('3', 154, InTypes, Just "GHC.Internal.Ptr", "Ptr"),
+    ('3', 156, InTypes, Just "GHC.Internal.Ptr", "FunPtr"),
+    ('3', 158, InTypes, Just "GHC.Prim", "TVar#"),
+    ('3', 159, InTerms, Just "GHC.Types", "$tcTVar#"),
+    ('3', 160, InTypes, Just "GHC.Prim", "Compact#"),
+    ('3', 161, InTerms, Just "GHC.Types", "$tcCompact#"),
+    ('3', 162, InTypes, Just "GHC.Prim", "StackSnapshot#"),
+    ('3', 163, InTerms, Just "GHC.Types", "$tcStackSnapshot#"),
+    ('3', 164, InTypes, Just "GHC.Prim", "PromptTag#"),
+    ('3', 165, InTerms, Just "GHC.Types", "$tcPromptTag#"),
+    ('3', 168, InTypes, Just "GHC.Internal.Data.Either", "Either"),
+    ('3', 170, InTypes, Just "GHC.Internal.Base", "Void"),
+    ('3', 172, InTypes, Just "GHC.Internal.Base", "NonEmpty"),
+    ('3', 176, InTypes, Just "GHC.Types", "Type"),
+    ('3', 178, InTypes, Just "GHC.Types", "UnliftedType"),
+    ('3', 182, InTypes, Just "GHC.Prim", "TYPE"),
+    ('3', 183, InTerms, Just "GHC.Types", "$tcTYPE"),
+    ('3', 184, InTypes, Just "GHC.Prim", "CONSTRAINT"),
+    ('3', 185, InTerms, Just "GHC.Types", "$tcCONSTRAINT"),
+    ('3', 186, InTypes, Just "GHC.Types", "Constraint"),
+    ('3', 188, InTypes, Just "GHC.Types", "Levity"),
+    ('3', 189, InTerms, Just "GHC.Types", "$tcLevity"),
+    ('3', 190, InTypes, Just "GHC.Types", "RuntimeRep"),
+    ('3', 191, InTerms, Just "GHC.Types", "$tcRuntimeRep"),
+    ('3', 192, InTypes, Just "GHC.Types", "VecCount"),
+    ('3', 193, InTerms, Just "GHC.Types", "$tcVecCount"),
+    ('3', 194, InTypes, Just "GHC.Types", "VecElem"),
+    ('3', 195, InTerms, Just "GHC.Types", "$tcVecElem"),
+    ('3', 196, InTypes, Just "GHC.Types", "LiftedRep"),
+    ('3', 198, InTypes, Just "GHC.Types", "UnliftedRep"),
+    ('3', 200, InTypes, Just "GHC.Types", "ZeroBitRep"),
+    ('3', 202, InTypes, Just "GHC.Types", "ZeroBitType"),
+    ('3', 204, InTypes, Just "GHC.Driver.Plugins", "Plugin"),
+    ('3', 206, InTypes, Just "GHC.Driver.Plugins", "FrontendPlugin"),
+    ('3', 208, InTypes, Just "GHC.Types", "TyCon"),
+    ('3', 210, InTypes, Just "GHC.Types", "Module"),
+    ('3', 212, InTypes, Just "GHC.Types", "TrName"),
+    ('3', 214, InTypes, Just "GHC.Types", "KindRep"),
+    ('3', 216, InTypes, Just "GHC.Types", "TypeLitSort"),
+    ('3', 270, InTypes, Just "GHC.Internal.Generics", "V1"),
+    ('3', 272, InTypes, Just "GHC.Internal.Generics", "U1"),
+    ('3', 274, InTypes, Just "GHC.Internal.Generics", "Par1"),
+    ('3', 276, InTypes, Just "GHC.Internal.Generics", "Rec1"),
+    ('3', 278, InTypes, Just "GHC.Internal.Generics", "K1"),
+    ('3', 280, InTypes, Just "GHC.Internal.Generics", "M1"),
+    ('3', 282, InTypes, Just "GHC.Internal.Generics", ":+:"),
+    ('3', 284, InTypes, Just "GHC.Internal.Generics", ":*:"),
+    ('3', 286, InTypes, Just "GHC.Internal.Generics", ":.:"),
+    ('3', 288, InTypes, Just "GHC.Internal.Generics", "R"),
+    ('3', 292, InTypes, Just "GHC.Internal.Generics", "D"),
+    ('3', 294, InTypes, Just "GHC.Internal.Generics", "C"),
+    ('3', 296, InTypes, Just "GHC.Internal.Generics", "S"),
+    ('3', 298, InTypes, Just "GHC.Internal.Generics", "Rec0"),
+    ('3', 302, InTypes, Just "GHC.Internal.Generics", "D1"),
+    ('3', 304, InTypes, Just "GHC.Internal.Generics", "C1"),
+    ('3', 306, InTypes, Just "GHC.Internal.Generics", "S1"),
+    ('3', 310, InTypes, Just "GHC.Internal.Generics", "Rep"),
+    ('3', 312, InTypes, Just "GHC.Internal.Generics", "Rep1"),
+    ('3', 314, InTypes, Just "GHC.Internal.Generics", "URec"),
+    ('3', 316, InTypes, Just "GHC.Internal.Generics", "UAddr"),
+    ('3', 318, InTypes, Just "GHC.Internal.Generics", "UChar"),
+    ('3', 320, InTypes, Just "GHC.Internal.Generics", "UDouble"),
+    ('3', 322, InTypes, Just "GHC.Internal.Generics", "UFloat"),
+    ('3', 324, InTypes, Just "GHC.Internal.Generics", "UInt"),
+    ('3', 326, InTypes, Just "GHC.Internal.Generics", "UWord"),
+    ('3', 340, InTypes, Just "GHC.Internal.TypeError", "Unsatisfiable"),
+    ('3', 342, InTypes, Just "GHC.Types", "Any"),
+    ('3', 344, InTypes, Just "GHC.Types", "ZonkAny"),
+    ('3', 362, InTypes, Just "GHC.Internal.TypeError", "TypeError"),
+    ('3', 366, InTypes, Just "GHC.Types", "Coercible"),
+    ('3', 367, InTerms, Just "GHC.Types", "$tcCoercible"),
+    ('3', 368, InTypes, Just "GHC.Prim", "Proxy#"),
+    ('3', 369, InTerms, Just "GHC.Types", "$tcProxy#"),
+    ('3', 370, InTypes, Just "GHC.Types", "SPEC"),
+    ('3', 374, InTypes, Just "GHC.Prim", "SmallArray#"),
+    ('3', 375, InTerms, Just "GHC.Types", "$tcSmallArray#"),
+    ('3', 376, InTypes, Just "GHC.Prim", "SmallMutableArray#"),
+    ('3', 377, InTerms, Just "GHC.Types", "$tcSmallMutableArray#"),
+    ('3', 378, InTypes, Just "GHC.Internal.StaticPtr", "StaticPtr"),
+    ('3', 382, InTypes, Just "GHC.Internal.Stack.Types", "CallStack"),
+    ('3', 384, InTypes, Just "GHC.Internal.Data.Typeable.Internal", "TypeRep"),
+    ('3', 386, InTypes, Just "GHC.Internal.Data.Typeable.Internal", "SomeTypeRep"),
+    ('3', 388, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "SomeTypeRep"),
+    ('3', 390, InTypes, Just "GHC.Internal.TypeLits", "AppendSymbol"),
+    ('3', 392, InTypes, Just "GHC.Internal.Unsafe.Coerce", "UnsafeEquality"),
+    ('3', 394, InTypes, Just "GHC.Types", "Multiplicity"),
+    ('3', 395, InTerms, Just "GHC.Types", "$tcMultiplicity"),
+    ('3', 400, InTypes, Just "Language.Haskell.TH.Syntax", "Exp"),
+    ('3', 402, InTypes, Just "Language.Haskell.TH.Syntax", "Match"),
+    ('3', 404, InTypes, Just "Language.Haskell.TH.Syntax", "Clause"),
+    ('3', 406, InTypes, Just "Language.Haskell.TH.Syntax", "Q"),
+    ('3', 408, InTypes, Just "Language.Haskell.TH.Lib.Internal", "ExpQ"),
+    ('3', 412, InTypes, Just "Language.Haskell.TH.Syntax", "Pat"),
+    ('3', 418, InTypes, Just "Language.Haskell.TH.Syntax", "Stmt"),
+    ('3', 420, InTypes, Just "Language.Haskell.TH.Syntax", "Con"),
+    ('3', 422, InTypes, Just "Language.Haskell.TH.Lib.Internal", "TypeQ"),
+    ('3', 424, InTypes, Just "Language.Haskell.TH.Syntax", "Type"),
+    ('3', 426, InTypes, Just "Language.Haskell.TH.Syntax", "Dec"),
+    ('3', 428, InTypes, Just "Language.Haskell.TH.Syntax", "BangType"),
+    ('3', 430, InTypes, Just "Language.Haskell.TH.Syntax", "VarBangType"),
+    ('3', 432, InTypes, Just "Language.Haskell.TH.Syntax", "FieldExp"),
+    ('3', 434, InTypes, Just "Language.Haskell.TH.Syntax", "FieldPat"),
+    ('3', 436, InTypes, Just "Language.Haskell.TH.Syntax", "Name"),
+    ('3', 438, InTypes, Just "Language.Haskell.TH.Lib.Internal", "PatQ"),
+    ('3', 444, InTypes, Just "Language.Haskell.TH.Syntax", "FunDep"),
+    ('3', 446, InTypes, Just "Language.Haskell.TH.Syntax", "Pred"),
+    ('3', 450, InTypes, Just "Language.Haskell.TH.Lib.Internal", "TyVarBndrUnit"),
+    ('3', 452, InTypes, Just "Language.Haskell.TH.Lib.Internal", "DecsQ"),
+    ('3', 454, InTypes, Just "Language.Haskell.TH.Syntax", "RuleBndr"),
+    ('3', 456, InTypes, Just "Language.Haskell.TH.Syntax", "TySynEqn"),
+    ('3', 458, InTypes, Just "Language.Haskell.TH.Lib.Internal", "Role"),
+    ('3', 462, InTypes, Just "Language.Haskell.TH.Syntax", "InjectivityAnn"),
+    ('3', 464, InTypes, Just "Language.Haskell.TH.Syntax", "Kind"),
+    ('3', 466, InTypes, Just "Language.Haskell.TH.Syntax", "Overlap"),
+    ('3', 468, InTypes, Just "Language.Haskell.TH.Syntax", "DerivClause"),
+    ('3', 470, InTypes, Just "Language.Haskell.TH.Syntax", "DerivStrategy"),
+    ('3', 472, InTypes, Just "Language.Haskell.TH.Lib.Internal", "Decs"),
+    ('3', 474, InTypes, Just "Language.Haskell.TH.Lib.Internal", "TyVarBndrSpec"),
+    ('3', 476, InTypes, Just "Language.Haskell.TH.Syntax", "Code"),
+    ('3', 478, InTypes, Just "Language.Haskell.TH.Syntax", "ModName"),
+    ('3', 480, InTypes, Just "Language.Haskell.TH.Lib.Internal", "TyVarBndrVis"),
+    ('3', 600, InTypes, Just "GHC.Prim", "Int8X16#"),
+    ('3', 601, InTerms, Just "GHC.Types", "$tcInt8X16#"),
+    ('3', 602, InTypes, Just "GHC.Prim", "Int16X8#"),
+    ('3', 603, InTerms, Just "GHC.Types", "$tcInt16X8#"),
+    ('3', 604, InTypes, Just "GHC.Prim", "Int32X4#"),
+    ('3', 605, InTerms, Just "GHC.Types", "$tcInt32X4#"),
+    ('3', 606, InTypes, Just "GHC.Prim", "Int64X2#"),
+    ('3', 607, InTerms, Just "GHC.Types", "$tcInt64X2#"),
+    ('3', 608, InTypes, Just "GHC.Prim", "Int8X32#"),
+    ('3', 609, InTerms, Just "GHC.Types", "$tcInt8X32#"),
+    ('3', 610, InTypes, Just "GHC.Prim", "Int16X16#"),
+    ('3', 611, InTerms, Just "GHC.Types", "$tcInt16X16#"),
+    ('3', 612, InTypes, Just "GHC.Prim", "Int32X8#"),
+    ('3', 613, InTerms, Just "GHC.Types", "$tcInt32X8#"),
+    ('3', 614, InTypes, Just "GHC.Prim", "Int64X4#"),
+    ('3', 615, InTerms, Just "GHC.Types", "$tcInt64X4#"),
+    ('3', 616, InTypes, Just "GHC.Prim", "Int8X64#"),
+    ('3', 617, InTerms, Just "GHC.Types", "$tcInt8X64#"),
+    ('3', 618, InTypes, Just "GHC.Prim", "Int16X32#"),
+    ('3', 619, InTerms, Just "GHC.Types", "$tcInt16X32#"),
+    ('3', 620, InTypes, Just "GHC.Prim", "Int32X16#"),
+    ('3', 621, InTerms, Just "GHC.Types", "$tcInt32X16#"),
+    ('3', 622, InTypes, Just "GHC.Prim", "Int64X8#"),
+    ('3', 623, InTerms, Just "GHC.Types", "$tcInt64X8#"),
+    ('3', 624, InTypes, Just "GHC.Prim", "Word8X16#"),
+    ('3', 625, InTerms, Just "GHC.Types", "$tcWord8X16#"),
+    ('3', 626, InTypes, Just "GHC.Prim", "Word16X8#"),
+    ('3', 627, InTerms, Just "GHC.Types", "$tcWord16X8#"),
+    ('3', 628, InTypes, Just "GHC.Prim", "Word32X4#"),
+    ('3', 629, InTerms, Just "GHC.Types", "$tcWord32X4#"),
+    ('3', 630, InTypes, Just "GHC.Prim", "Word64X2#"),
+    ('3', 631, InTerms, Just "GHC.Types", "$tcWord64X2#"),
+    ('3', 632, InTypes, Just "GHC.Prim", "Word8X32#"),
+    ('3', 633, InTerms, Just "GHC.Types", "$tcWord8X32#"),
+    ('3', 634, InTypes, Just "GHC.Prim", "Word16X16#"),
+    ('3', 635, InTerms, Just "GHC.Types", "$tcWord16X16#"),
+    ('3', 636, InTypes, Just "GHC.Prim", "Word32X8#"),
+    ('3', 637, InTerms, Just "GHC.Types", "$tcWord32X8#"),
+    ('3', 638, InTypes, Just "GHC.Prim", "Word64X4#"),
+    ('3', 639, InTerms, Just "GHC.Types", "$tcWord64X4#"),
+    ('3', 640, InTypes, Just "GHC.Prim", "Word8X64#"),
+    ('3', 641, InTerms, Just "GHC.Types", "$tcWord8X64#"),
+    ('3', 642, InTypes, Just "GHC.Prim", "Word16X32#"),
+    ('3', 643, InTerms, Just "GHC.Types", "$tcWord16X32#"),
+    ('3', 644, InTypes, Just "GHC.Prim", "Word32X16#"),
+    ('3', 645, InTerms, Just "GHC.Types", "$tcWord32X16#"),
+    ('3', 646, InTypes, Just "GHC.Prim", "Word64X8#"),
+    ('3', 647, InTerms, Just "GHC.Types", "$tcWord64X8#"),
+    ('3', 648, InTypes, Just "GHC.Prim", "FloatX4#"),
+    ('3', 649, InTerms, Just "GHC.Types", "$tcFloatX4#"),
+    ('3', 650, InTypes, Just "GHC.Prim", "DoubleX2#"),
+    ('3', 651, InTerms, Just "GHC.Types", "$tcDoubleX2#"),
+    ('3', 652, InTypes, Just "GHC.Prim", "FloatX8#"),
+    ('3', 653, InTerms, Just "GHC.Types", "$tcFloatX8#"),
+    ('3', 654, InTypes, Just "GHC.Prim", "DoubleX4#"),
+    ('3', 655, InTerms, Just "GHC.Types", "$tcDoubleX4#"),
+    ('3', 656, InTypes, Just "GHC.Prim", "FloatX16#"),
+    ('3', 657, InTerms, Just "GHC.Types", "$tcFloatX16#"),
+    ('3', 658, InTypes, Just "GHC.Prim", "DoubleX8#"),
+    ('3', 659, InTerms, Just "GHC.Types", "$tcDoubleX8#"),
+    ('3', 800, InTypes, Just "GHC.Types", "Symbol"),
+    ('3', 801, InTerms, Just "GHC.Types", "$tcSymbol"),
+    ('3', 804, InTypes, Just "GHC.Internal.TypeNats", "+"),
+    ('3', 806, InTypes, Just "GHC.Internal.TypeNats", "*"),
+    ('3', 808, InTypes, Just "GHC.Internal.TypeNats", "^"),
+    ('3', 810, InTypes, Just "GHC.Internal.TypeNats", "-"),
+    ('3', 812, InTypes, Just "GHC.Internal.TypeLits.Internal", "CmpSymbol"),
+    ('3', 814, InTypes, Just "GHC.Internal.TypeNats.Internal", "CmpNat"),
+    ('3', 816, InTypes, Just "GHC.Internal.TypeLits.Internal", "CmpChar"),
+    ('3', 820, InTypes, Just "GHC.Internal.TypeNats", "Div"),
+    ('3', 822, InTypes, Just "GHC.Internal.TypeNats", "Mod"),
+    ('3', 824, InTypes, Just "GHC.Internal.TypeNats", "Log2"),
+    ('3', 826, InTypes, Just "GHC.Internal.TypeLits", "ConsSymbol"),
+    ('3', 828, InTypes, Just "GHC.Internal.TypeLits", "UnconsSymbol"),
+    ('3', 830, InTypes, Just "GHC.Internal.TypeLits", "CharToNat"),
+    ('3', 832, InTypes, Just "GHC.Internal.TypeLits", "NatToChar"),
+    ('3', 834, InTypes, Just "GHC.Internal.Foreign.C.ConstPtr", "ConstPtr"),
+    ('3', 836, InTypes, Just "GHC.Internal.Wasm.Prim.Types", "JSVal"),
+    ('3', 840, InTypes, Just "GHC.Internal.Exception.Context", "ExceptionContext"),
+    ('4', 0, InTypes, Nothing, "()"),
+    ('4', 1, InTerms, Just "GHC.Tuple", "$tcUnit"),
+    ('4', 2, InTypes, Just "GHC.Tuple", "Solo"),
+    ('4', 3, InTerms, Just "GHC.Tuple", "$tcSolo"),
+    ('5', 0, InTypes, Nothing, "(##)"),
+    ('5', 1, InTerms, Just "GHC.Types", "$tcUnit#"),
+    ('6', 3, InTerms, Just "GHC.Types", "C#"),
+    ('6', 4, InTerms, Just "GHC.Types", "C#"),
+    ('6', 5, InTerms, Just "GHC.Types", "$tc'C#"),
+    ('6', 6, InTerms, Nothing, ":"),
+    ('6', 7, InTerms, Just "GHC.Types", ":"),
+    ('6', 8, InTerms, Just "GHC.Types", "$tc':"),
+    ('6', 9, InTerms, Just "GHC.Types", "D#"),
+    ('6', 10, InTerms, Just "GHC.Types", "D#"),
+    ('6', 11, InTerms, Just "GHC.Types", "$tc'D#"),
+    ('6', 12, InTerms, Just "GHC.Types", "False"),
+    ('6', 13, InTerms, Just "GHC.Types", "False"),
+    ('6', 14, InTerms, Just "GHC.Types", "$tc'False"),
+    ('6', 15, InTerms, Just "GHC.Types", "F#"),
+    ('6', 16, InTerms, Just "GHC.Types", "F#"),
+    ('6', 17, InTerms, Just "GHC.Types", "$tc'F#"),
+    ('6', 18, InTerms, Just "GHC.Types", "I#"),
+    ('6', 19, InTerms, Just "GHC.Types", "I#"),
+    ('6', 20, InTerms, Just "GHC.Types", "$tc'I#"),
+    ('6', 21, InTerms, Just "GHC.Internal.Maybe", "Nothing"),
+    ('6', 22, InTerms, Just "GHC.Internal.Maybe", "Nothing"),
+    ('6', 23, InTerms, Just "GHC.Internal.Maybe", "$tc'Nothing"),
+    ('6', 24, InTerms, Just "GHC.Internal.Maybe", "Just"),
+    ('6', 25, InTerms, Just "GHC.Internal.Maybe", "Just"),
+    ('6', 26, InTerms, Just "GHC.Internal.Maybe", "$tc'Just"),
+    ('6', 27, InTerms, Just "GHC.Types", "Eq#"),
+    ('6', 28, InTerms, Just "GHC.Types", "Eq#"),
+    ('6', 29, InTerms, Just "GHC.Types", "$tc'Eq#"),
+    ('6', 30, InTerms, Nothing, "[]"),
+    ('6', 31, InTerms, Just "GHC.Types", "[]"),
+    ('6', 32, InTerms, Just "GHC.Types", "$tc'[]"),
+    ('6', 33, InTerms, Just "GHC.Internal.Real", ":%"),
+    ('6', 42, InTerms, Just "GHC.Types", "True"),
+    ('6', 43, InTerms, Just "GHC.Types", "True"),
+    ('6', 44, InTerms, Just "GHC.Types", "$tc'True"),
+    ('6', 45, InTerms, Just "GHC.Types", "W#"),
+    ('6', 46, InTerms, Just "GHC.Types", "W#"),
+    ('6', 47, InTerms, Just "GHC.Types", "$tc'W#"),
+    ('6', 48, InTerms, Just "GHC.Types", "IO"),
+    ('6', 54, InTerms, Just "GHC.Types", "HEq#"),
+    ('6', 55, InTerms, Just "GHC.Types", "HEq#"),
+    ('6', 56, InTerms, Just "GHC.Types", "$tc'HEq#"),
+    ('6', 75, InTerms, Just "GHC.Internal.Data.Either", "Left"),
+    ('6', 78, InTerms, Just "GHC.Internal.Data.Either", "Right"),
+    ('6', 81, InTerms, Just "GHC.Types", "LT"),
+    ('6', 82, InTerms, Just "GHC.Types", "LT"),
+    ('6', 83, InTerms, Just "GHC.Types", "$tc'LT"),
+    ('6', 84, InTerms, Just "GHC.Types", "EQ"),
+    ('6', 85, InTerms, Just "GHC.Types", "EQ"),
+    ('6', 86, InTerms, Just "GHC.Types", "$tc'EQ"),
+    ('6', 87, InTerms, Just "GHC.Types", "GT"),
+    ('6', 88, InTerms, Just "GHC.Types", "GT"),
+    ('6', 89, InTerms, Just "GHC.Types", "$tc'GT"),
+    ('6', 96, InTerms, Just "GHC.Types", "MkCoercible"),
+    ('6', 97, InTerms, Just "GHC.Types", "MkCoercible"),
+    ('6', 98, InTerms, Just "GHC.Types", "$tc'MkCoercible"),
+    ('6', 99, InTerms, Just "GHC.Internal.StaticPtr", "StaticPtr"),
+    ('6', 102, InTerms, Just "GHC.Internal.StaticPtr", "StaticPtrInfo"),
+    ('6', 105, InTerms, Just "GHC.Internal.Fingerprint.Type", "Fingerprint"),
+    ('6', 111, InTerms, Just "GHC.Internal.Stack.Types", "SrcLoc"),
+    ('6', 123, InTerms, Just "GHC.Types", "TyCon"),
+    ('6', 129, InTerms, Just "GHC.Types", "Module"),
+    ('6', 135, InTerms, Just "GHC.Types", "TrNameS"),
+    ('6', 138, InTerms, Just "GHC.Types", "TrNameD"),
+    ('6', 141, InTerms, Just "GHC.Types", "tr$ModuleGHCPrim"),
+    ('6', 150, InTerms, Just "GHC.Internal.TypeError", "Text"),
+    ('6', 153, InTerms, Just "GHC.Internal.TypeError", ":<>:"),
+    ('6', 156, InTerms, Just "GHC.Internal.TypeError", ":$$:"),
+    ('6', 159, InTerms, Just "GHC.Internal.TypeError", "ShowType"),
+    ('6', 162, InTerms, Just "GHC.Internal.Generics", "PrefixI"),
+    ('6', 165, InTerms, Just "GHC.Internal.Generics", "InfixI"),
+    ('6', 168, InTerms, Just "GHC.Internal.Generics", "LeftAssociative"),
+    ('6', 171, InTerms, Just "GHC.Internal.Generics", "RightAssociative"),
+    ('6', 174, InTerms, Just "GHC.Internal.Generics", "NotAssociative"),
+    ('6', 177, InTerms, Just "GHC.Internal.Generics", "SourceUnpack"),
+    ('6', 180, InTerms, Just "GHC.Internal.Generics", "SourceNoUnpack"),
+    ('6', 183, InTerms, Just "GHC.Internal.Generics", "NoSourceUnpackedness"),
+    ('6', 186, InTerms, Just "GHC.Internal.Generics", "SourceLazy"),
+    ('6', 189, InTerms, Just "GHC.Internal.Generics", "SourceStrict"),
+    ('6', 192, InTerms, Just "GHC.Internal.Generics", "NoSourceStrictness"),
+    ('6', 195, InTerms, Just "GHC.Internal.Generics", "DecidedLazy"),
+    ('6', 198, InTerms, Just "GHC.Internal.Generics", "DecidedStrict"),
+    ('6', 201, InTerms, Just "GHC.Internal.Generics", "DecidedUnpack"),
+    ('6', 204, InTerms, Just "GHC.Internal.Generics", "MetaData"),
+    ('6', 207, InTerms, Just "GHC.Internal.Generics", "MetaCons"),
+    ('6', 210, InTerms, Just "GHC.Internal.Generics", "MetaSel"),
+    ('6', 213, InTerms, Just "GHC.Types", "VecRep"),
+    ('6', 214, InTerms, Just "GHC.Types", "VecRep"),
+    ('6', 215, InTerms, Just "GHC.Types", "$tc'VecRep"),
+    ('6', 216, InTerms, Just "GHC.Types", "TupleRep"),
+    ('6', 217, InTerms, Just "GHC.Types", "TupleRep"),
+    ('6', 218, InTerms, Just "GHC.Types", "$tc'TupleRep"),
+    ('6', 219, InTerms, Just "GHC.Types", "SumRep"),
+    ('6', 220, InTerms, Just "GHC.Types", "SumRep"),
+    ('6', 221, InTerms, Just "GHC.Types", "$tc'SumRep"),
+    ('6', 222, InTerms, Just "GHC.Types", "BoxedRep"),
+    ('6', 223, InTerms, Just "GHC.Types", "BoxedRep"),
+    ('6', 224, InTerms, Just "GHC.Types", "$tc'BoxedRep"),
+    ('6', 225, InTerms, Just "GHC.Types", "IntRep"),
+    ('6', 226, InTerms, Just "GHC.Types", "IntRep"),
+    ('6', 227, InTerms, Just "GHC.Types", "$tc'IntRep"),
+    ('6', 228, InTerms, Just "GHC.Types", "Int8Rep"),
+    ('6', 229, InTerms, Just "GHC.Types", "Int8Rep"),
+    ('6', 230, InTerms, Just "GHC.Types", "$tc'Int8Rep"),
+    ('6', 231, InTerms, Just "GHC.Types", "Int16Rep"),
+    ('6', 232, InTerms, Just "GHC.Types", "Int16Rep"),
+    ('6', 233, InTerms, Just "GHC.Types", "$tc'Int16Rep"),
+    ('6', 234, InTerms, Just "GHC.Types", "Int32Rep"),
+    ('6', 235, InTerms, Just "GHC.Types", "Int32Rep"),
+    ('6', 236, InTerms, Just "GHC.Types", "$tc'Int32Rep"),
+    ('6', 237, InTerms, Just "GHC.Types", "Int64Rep"),
+    ('6', 238, InTerms, Just "GHC.Types", "Int64Rep"),
+    ('6', 239, InTerms, Just "GHC.Types", "$tc'Int64Rep"),
+    ('6', 240, InTerms, Just "GHC.Types", "WordRep"),
+    ('6', 241, InTerms, Just "GHC.Types", "WordRep"),
+    ('6', 242, InTerms, Just "GHC.Types", "$tc'WordRep"),
+    ('6', 243, InTerms, Just "GHC.Types", "Word8Rep"),
+    ('6', 244, InTerms, Just "GHC.Types", "Word8Rep"),
+    ('6', 245, InTerms, Just "GHC.Types", "$tc'Word8Rep"),
+    ('6', 246, InTerms, Just "GHC.Types", "Word16Rep"),
+    ('6', 247, InTerms, Just "GHC.Types", "Word16Rep"),
+    ('6', 248, InTerms, Just "GHC.Types", "$tc'Word16Rep"),
+    ('6', 249, InTerms, Just "GHC.Types", "Word32Rep"),
+    ('6', 250, InTerms, Just "GHC.Types", "Word32Rep"),
+    ('6', 251, InTerms, Just "GHC.Types", "$tc'Word32Rep"),
+    ('6', 252, InTerms, Just "GHC.Types", "Word64Rep"),
+    ('6', 253, InTerms, Just "GHC.Types", "Word64Rep"),
+    ('6', 254, InTerms, Just "GHC.Types", "$tc'Word64Rep"),
+    ('6', 255, InTerms, Just "GHC.Types", "AddrRep"),
+    ('6', 256, InTerms, Just "GHC.Types", "AddrRep"),
+    ('6', 257, InTerms, Just "GHC.Types", "$tc'AddrRep"),
+    ('6', 258, InTerms, Just "GHC.Types", "FloatRep"),
+    ('6', 259, InTerms, Just "GHC.Types", "FloatRep"),
+    ('6', 260, InTerms, Just "GHC.Types", "$tc'FloatRep"),
+    ('6', 261, InTerms, Just "GHC.Types", "DoubleRep"),
+    ('6', 262, InTerms, Just "GHC.Types", "DoubleRep"),
+    ('6', 263, InTerms, Just "GHC.Types", "$tc'DoubleRep"),
+    ('6', 264, InTerms, Just "GHC.Types", "Lifted"),
+    ('6', 265, InTerms, Just "GHC.Types", "Lifted"),
+    ('6', 266, InTerms, Just "GHC.Types", "$tc'Lifted"),
+    ('6', 267, InTerms, Just "GHC.Types", "Unlifted"),
+    ('6', 268, InTerms, Just "GHC.Types", "Unlifted"),
+    ('6', 269, InTerms, Just "GHC.Types", "$tc'Unlifted"),
+    ('6', 270, InTerms, Just "GHC.Types", "Vec2"),
+    ('6', 271, InTerms, Just "GHC.Types", "Vec2"),
+    ('6', 272, InTerms, Just "GHC.Types", "$tc'Vec2"),
+    ('6', 273, InTerms, Just "GHC.Types", "Vec4"),
+    ('6', 274, InTerms, Just "GHC.Types", "Vec4"),
+    ('6', 275, InTerms, Just "GHC.Types", "$tc'Vec4"),
+    ('6', 276, InTerms, Just "GHC.Types", "Vec8"),
+    ('6', 277, InTerms, Just "GHC.Types", "Vec8"),
+    ('6', 278, InTerms, Just "GHC.Types", "$tc'Vec8"),
+    ('6', 279, InTerms, Just "GHC.Types", "Vec16"),
+    ('6', 280, InTerms, Just "GHC.Types", "Vec16"),
+    ('6', 281, InTerms, Just "GHC.Types", "$tc'Vec16"),
+    ('6', 282, InTerms, Just "GHC.Types", "Vec32"),
+    ('6', 283, InTerms, Just "GHC.Types", "Vec32"),
+    ('6', 284, InTerms, Just "GHC.Types", "$tc'Vec32"),
+    ('6', 285, InTerms, Just "GHC.Types", "Vec64"),
+    ('6', 286, InTerms, Just "GHC.Types", "Vec64"),
+    ('6', 287, InTerms, Just "GHC.Types", "$tc'Vec64"),
+    ('6', 288, InTerms, Just "GHC.Types", "Int8ElemRep"),
+    ('6', 289, InTerms, Just "GHC.Types", "Int8ElemRep"),
+    ('6', 290, InTerms, Just "GHC.Types", "$tc'Int8ElemRep"),
+    ('6', 291, InTerms, Just "GHC.Types", "Int16ElemRep"),
+    ('6', 292, InTerms, Just "GHC.Types", "Int16ElemRep"),
+    ('6', 293, InTerms, Just "GHC.Types", "$tc'Int16ElemRep"),
+    ('6', 294, InTerms, Just "GHC.Types", "Int32ElemRep"),
+    ('6', 295, InTerms, Just "GHC.Types", "Int32ElemRep"),
+    ('6', 296, InTerms, Just "GHC.Types", "$tc'Int32ElemRep"),
+    ('6', 297, InTerms, Just "GHC.Types", "Int64ElemRep"),
+    ('6', 298, InTerms, Just "GHC.Types", "Int64ElemRep"),
+    ('6', 299, InTerms, Just "GHC.Types", "$tc'Int64ElemRep"),
+    ('6', 300, InTerms, Just "GHC.Types", "Word8ElemRep"),
+    ('6', 301, InTerms, Just "GHC.Types", "Word8ElemRep"),
+    ('6', 302, InTerms, Just "GHC.Types", "$tc'Word8ElemRep"),
+    ('6', 303, InTerms, Just "GHC.Types", "Word16ElemRep"),
+    ('6', 304, InTerms, Just "GHC.Types", "Word16ElemRep"),
+    ('6', 305, InTerms, Just "GHC.Types", "$tc'Word16ElemRep"),
+    ('6', 306, InTerms, Just "GHC.Types", "Word32ElemRep"),
+    ('6', 307, InTerms, Just "GHC.Types", "Word32ElemRep"),
+    ('6', 308, InTerms, Just "GHC.Types", "$tc'Word32ElemRep"),
+    ('6', 309, InTerms, Just "GHC.Types", "Word64ElemRep"),
+    ('6', 310, InTerms, Just "GHC.Types", "Word64ElemRep"),
+    ('6', 311, InTerms, Just "GHC.Types", "$tc'Word64ElemRep"),
+    ('6', 312, InTerms, Just "GHC.Types", "FloatElemRep"),
+    ('6', 313, InTerms, Just "GHC.Types", "FloatElemRep"),
+    ('6', 314, InTerms, Just "GHC.Types", "$tc'FloatElemRep"),
+    ('6', 315, InTerms, Just "GHC.Types", "DoubleElemRep"),
+    ('6', 316, InTerms, Just "GHC.Types", "DoubleElemRep"),
+    ('6', 317, InTerms, Just "GHC.Types", "$tc'DoubleElemRep"),
+    ('6', 318, InTerms, Just "GHC.Types", "KindRepTyConApp"),
+    ('6', 321, InTerms, Just "GHC.Types", "KindRepVar"),
+    ('6', 324, InTerms, Just "GHC.Types", "KindRepApp"),
+    ('6', 327, InTerms, Just "GHC.Types", "KindRepFun"),
+    ('6', 330, InTerms, Just "GHC.Types", "KindRepTYPE"),
+    ('6', 333, InTerms, Just "GHC.Types", "KindRepTypeLitS"),
+    ('6', 336, InTerms, Just "GHC.Types", "KindRepTypeLitD"),
+    ('6', 339, InTerms, Just "GHC.Types", "TypeLitSymbol"),
+    ('6', 342, InTerms, Just "GHC.Types", "TypeLitNat"),
+    ('6', 345, InTerms, Just "GHC.Types", "TypeLitChar"),
+    ('6', 348, InTerms, Just "GHC.Internal.Unsafe.Coerce", "UnsafeRefl"),
+    ('6', 351, InTerms, Just "GHC.Types", "One"),
+    ('6', 352, InTerms, Just "GHC.Types", "One"),
+    ('6', 353, InTerms, Just "GHC.Types", "$tc'One"),
+    ('6', 354, InTerms, Just "GHC.Types", "Many"),
+    ('6', 355, InTerms, Just "GHC.Types", "Many"),
+    ('6', 356, InTerms, Just "GHC.Types", "$tc'Many"),
+    ('6', 360, InTerms, Just "GHC.Num.Integer", "IS"),
+    ('6', 361, InTerms, Just "GHC.Num.Integer", "IS"),
+    ('6', 362, InTerms, Just "GHC.Num.Integer", "$tc'IS"),
+    ('6', 363, InTerms, Just "GHC.Num.Integer", "IN"),
+    ('6', 364, InTerms, Just "GHC.Num.Integer", "IN"),
+    ('6', 365, InTerms, Just "GHC.Num.Integer", "$tc'IN"),
+    ('6', 366, InTerms, Just "GHC.Num.Integer", "IP"),
+    ('6', 367, InTerms, Just "GHC.Num.Integer", "IP"),
+    ('6', 368, InTerms, Just "GHC.Num.Integer", "$tc'IP"),
+    ('6', 369, InTerms, Just "GHC.Num.Natural", "NS"),
+    ('6', 370, InTerms, Just "GHC.Num.Natural", "NS"),
+    ('6', 371, InTerms, Just "GHC.Num.Natural", "$tc'NS"),
+    ('6', 372, InTerms, Just "GHC.Num.Natural", "NB"),
+    ('6', 373, InTerms, Just "GHC.Num.Natural", "NB"),
+    ('6', 374, InTerms, Just "GHC.Num.Natural", "$tc'NB"),
+    ('6', 600, InTerms, Just "Language.Haskell.TH.Syntax", "NoInline"),
+    ('6', 603, InTerms, Just "Language.Haskell.TH.Syntax", "Inline"),
+    ('6', 606, InTerms, Just "Language.Haskell.TH.Syntax", "Inlinable"),
+    ('6', 612, InTerms, Just "Language.Haskell.TH.Syntax", "ConLike"),
+    ('6', 615, InTerms, Just "Language.Haskell.TH.Syntax", "FunLike"),
+    ('6', 618, InTerms, Just "Language.Haskell.TH.Syntax", "AllPhases"),
+    ('6', 621, InTerms, Just "Language.Haskell.TH.Syntax", "FromPhase"),
+    ('6', 624, InTerms, Just "Language.Haskell.TH.Syntax", "BeforePhase"),
+    ('6', 627, InTerms, Just "Language.Haskell.TH.Syntax", "Overlappable"),
+    ('6', 630, InTerms, Just "Language.Haskell.TH.Syntax", "Overlapping"),
+    ('6', 633, InTerms, Just "Language.Haskell.TH.Syntax", "Overlaps"),
+    ('6', 636, InTerms, Just "Language.Haskell.TH.Syntax", "Incoherent"),
+    ('6', 639, InTerms, Just "Language.Haskell.TH.Syntax", "NoNamespaceSpecifier"),
+    ('6', 642, InTerms, Just "Language.Haskell.TH.Syntax", "TypeNamespaceSpecifier"),
+    ('6', 645, InTerms, Just "Language.Haskell.TH.Syntax", "DataNamespaceSpecifier"),
+    ('6', 1482, InTerms, Just "Language.Haskell.TH.Lib.Internal", "stockStrategy"),
+    ('6', 1485, InTerms, Just "Language.Haskell.TH.Lib.Internal", "anyclassStrategy"),
+    ('6', 1488, InTerms, Just "Language.Haskell.TH.Lib.Internal", "newtypeStrategy"),
+    ('6', 1491, InTerms, Just "Language.Haskell.TH.Lib.Internal", "viaStrategy"),
+    ('7', 0, InTerms, Nothing, "()"),
+    ('7', 1, InTerms, Just "GHC.Tuple", "()"),
+    ('7', 2, InTerms, Just "GHC.Tuple", "$tc'()"),
+    ('7', 3, InTerms, Just "GHC.Tuple", "MkSolo"),
+    ('7', 4, InTerms, Just "GHC.Tuple", "MkSolo"),
+    ('7', 5, InTerms, Just "GHC.Tuple", "$tc'MkSolo"),
+    ('8', 0, InTerms, Nothing, "(##)"),
+    ('8', 1, InTerms, Just "GHC.Types", "(##)"),
+    ('8', 2, InTerms, Just "GHC.Types", "$tc'(##)"),
+    ('9', 0, InTerms, Just "GHC.Prim", "gtChar#"),
+    ('9', 1, InTerms, Just "GHC.PrimopWrappers", "gtChar#"),
+    ('9', 2, InTerms, Just "GHC.Prim", "geChar#"),
+    ('9', 3, InTerms, Just "GHC.PrimopWrappers", "geChar#"),
+    ('9', 4, InTerms, Just "GHC.Prim", "eqChar#"),
+    ('9', 5, InTerms, Just "GHC.PrimopWrappers", "eqChar#"),
+    ('9', 6, InTerms, Just "GHC.Prim", "neChar#"),
+    ('9', 7, InTerms, Just "GHC.PrimopWrappers", "neChar#"),
+    ('9', 8, InTerms, Just "GHC.Prim", "ltChar#"),
+    ('9', 9, InTerms, Just "GHC.PrimopWrappers", "ltChar#"),
+    ('9', 10, InTerms, Just "GHC.Prim", "leChar#"),
+    ('9', 11, InTerms, Just "GHC.PrimopWrappers", "leChar#"),
+    ('9', 12, InTerms, Just "GHC.Prim", "ord#"),
+    ('9', 13, InTerms, Just "GHC.PrimopWrappers", "ord#"),
+    ('9', 14, InTerms, Just "GHC.Prim", "int8ToInt#"),
+    ('9', 15, InTerms, Just "GHC.PrimopWrappers", "int8ToInt#"),
+    ('9', 16, InTerms, Just "GHC.Prim", "intToInt8#"),
+    ('9', 17, InTerms, Just "GHC.PrimopWrappers", "intToInt8#"),
+    ('9', 18, InTerms, Just "GHC.Prim", "negateInt8#"),
+    ('9', 19, InTerms, Just "GHC.PrimopWrappers", "negateInt8#"),
+    ('9', 20, InTerms, Just "GHC.Prim", "plusInt8#"),
+    ('9', 21, InTerms, Just "GHC.PrimopWrappers", "plusInt8#"),
+    ('9', 22, InTerms, Just "GHC.Prim", "subInt8#"),
+    ('9', 23, InTerms, Just "GHC.PrimopWrappers", "subInt8#"),
+    ('9', 24, InTerms, Just "GHC.Prim", "timesInt8#"),
+    ('9', 25, InTerms, Just "GHC.PrimopWrappers", "timesInt8#"),
+    ('9', 26, InTerms, Just "GHC.Prim", "quotInt8#"),
+    ('9', 27, InTerms, Just "GHC.PrimopWrappers", "quotInt8#"),
+    ('9', 28, InTerms, Just "GHC.Prim", "remInt8#"),
+    ('9', 29, InTerms, Just "GHC.PrimopWrappers", "remInt8#"),
+    ('9', 30, InTerms, Just "GHC.Prim", "quotRemInt8#"),
+    ('9', 31, InTerms, Just "GHC.PrimopWrappers", "quotRemInt8#"),
+    ('9', 32, InTerms, Just "GHC.Prim", "uncheckedShiftLInt8#"),
+    ('9', 33, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftLInt8#"),
+    ('9', 34, InTerms, Just "GHC.Prim", "uncheckedShiftRAInt8#"),
+    ('9', 35, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftRAInt8#"),
+    ('9', 36, InTerms, Just "GHC.Prim", "uncheckedShiftRLInt8#"),
+    ('9', 37, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftRLInt8#"),
+    ('9', 38, InTerms, Just "GHC.Prim", "int8ToWord8#"),
+    ('9', 39, InTerms, Just "GHC.PrimopWrappers", "int8ToWord8#"),
+    ('9', 40, InTerms, Just "GHC.Prim", "eqInt8#"),
+    ('9', 41, InTerms, Just "GHC.PrimopWrappers", "eqInt8#"),
+    ('9', 42, InTerms, Just "GHC.Prim", "geInt8#"),
+    ('9', 43, InTerms, Just "GHC.PrimopWrappers", "geInt8#"),
+    ('9', 44, InTerms, Just "GHC.Prim", "gtInt8#"),
+    ('9', 45, InTerms, Just "GHC.PrimopWrappers", "gtInt8#"),
+    ('9', 46, InTerms, Just "GHC.Prim", "leInt8#"),
+    ('9', 47, InTerms, Just "GHC.PrimopWrappers", "leInt8#"),
+    ('9', 48, InTerms, Just "GHC.Prim", "ltInt8#"),
+    ('9', 49, InTerms, Just "GHC.PrimopWrappers", "ltInt8#"),
+    ('9', 50, InTerms, Just "GHC.Prim", "neInt8#"),
+    ('9', 51, InTerms, Just "GHC.PrimopWrappers", "neInt8#"),
+    ('9', 52, InTerms, Just "GHC.Prim", "word8ToWord#"),
+    ('9', 53, InTerms, Just "GHC.PrimopWrappers", "word8ToWord#"),
+    ('9', 54, InTerms, Just "GHC.Prim", "wordToWord8#"),
+    ('9', 55, InTerms, Just "GHC.PrimopWrappers", "wordToWord8#"),
+    ('9', 56, InTerms, Just "GHC.Prim", "plusWord8#"),
+    ('9', 57, InTerms, Just "GHC.PrimopWrappers", "plusWord8#"),
+    ('9', 58, InTerms, Just "GHC.Prim", "subWord8#"),
+    ('9', 59, InTerms, Just "GHC.PrimopWrappers", "subWord8#"),
+    ('9', 60, InTerms, Just "GHC.Prim", "timesWord8#"),
+    ('9', 61, InTerms, Just "GHC.PrimopWrappers", "timesWord8#"),
+    ('9', 62, InTerms, Just "GHC.Prim", "quotWord8#"),
+    ('9', 63, InTerms, Just "GHC.PrimopWrappers", "quotWord8#"),
+    ('9', 64, InTerms, Just "GHC.Prim", "remWord8#"),
+    ('9', 65, InTerms, Just "GHC.PrimopWrappers", "remWord8#"),
+    ('9', 66, InTerms, Just "GHC.Prim", "quotRemWord8#"),
+    ('9', 67, InTerms, Just "GHC.PrimopWrappers", "quotRemWord8#"),
+    ('9', 68, InTerms, Just "GHC.Prim", "andWord8#"),
+    ('9', 69, InTerms, Just "GHC.PrimopWrappers", "andWord8#"),
+    ('9', 70, InTerms, Just "GHC.Prim", "orWord8#"),
+    ('9', 71, InTerms, Just "GHC.PrimopWrappers", "orWord8#"),
+    ('9', 72, InTerms, Just "GHC.Prim", "xorWord8#"),
+    ('9', 73, InTerms, Just "GHC.PrimopWrappers", "xorWord8#"),
+    ('9', 74, InTerms, Just "GHC.Prim", "notWord8#"),
+    ('9', 75, InTerms, Just "GHC.PrimopWrappers", "notWord8#"),
+    ('9', 76, InTerms, Just "GHC.Prim", "uncheckedShiftLWord8#"),
+    ('9', 77, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftLWord8#"),
+    ('9', 78, InTerms, Just "GHC.Prim", "uncheckedShiftRLWord8#"),
+    ('9', 79, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftRLWord8#"),
+    ('9', 80, InTerms, Just "GHC.Prim", "word8ToInt8#"),
+    ('9', 81, InTerms, Just "GHC.PrimopWrappers", "word8ToInt8#"),
+    ('9', 82, InTerms, Just "GHC.Prim", "eqWord8#"),
+    ('9', 83, InTerms, Just "GHC.PrimopWrappers", "eqWord8#"),
+    ('9', 84, InTerms, Just "GHC.Prim", "geWord8#"),
+    ('9', 85, InTerms, Just "GHC.PrimopWrappers", "geWord8#"),
+    ('9', 86, InTerms, Just "GHC.Prim", "gtWord8#"),
+    ('9', 87, InTerms, Just "GHC.PrimopWrappers", "gtWord8#"),
+    ('9', 88, InTerms, Just "GHC.Prim", "leWord8#"),
+    ('9', 89, InTerms, Just "GHC.PrimopWrappers", "leWord8#"),
+    ('9', 90, InTerms, Just "GHC.Prim", "ltWord8#"),
+    ('9', 91, InTerms, Just "GHC.PrimopWrappers", "ltWord8#"),
+    ('9', 92, InTerms, Just "GHC.Prim", "neWord8#"),
+    ('9', 93, InTerms, Just "GHC.PrimopWrappers", "neWord8#"),
+    ('9', 94, InTerms, Just "GHC.Prim", "int16ToInt#"),
+    ('9', 95, InTerms, Just "GHC.PrimopWrappers", "int16ToInt#"),
+    ('9', 96, InTerms, Just "GHC.Prim", "intToInt16#"),
+    ('9', 97, InTerms, Just "GHC.PrimopWrappers", "intToInt16#"),
+    ('9', 98, InTerms, Just "GHC.Prim", "negateInt16#"),
+    ('9', 99, InTerms, Just "GHC.PrimopWrappers", "negateInt16#"),
+    ('9', 100, InTerms, Just "GHC.Prim", "plusInt16#"),
+    ('9', 101, InTerms, Just "GHC.PrimopWrappers", "plusInt16#"),
+    ('9', 102, InTerms, Just "GHC.Prim", "subInt16#"),
+    ('9', 103, InTerms, Just "GHC.PrimopWrappers", "subInt16#"),
+    ('9', 104, InTerms, Just "GHC.Prim", "timesInt16#"),
+    ('9', 105, InTerms, Just "GHC.PrimopWrappers", "timesInt16#"),
+    ('9', 106, InTerms, Just "GHC.Prim", "quotInt16#"),
+    ('9', 107, InTerms, Just "GHC.PrimopWrappers", "quotInt16#"),
+    ('9', 108, InTerms, Just "GHC.Prim", "remInt16#"),
+    ('9', 109, InTerms, Just "GHC.PrimopWrappers", "remInt16#"),
+    ('9', 110, InTerms, Just "GHC.Prim", "quotRemInt16#"),
+    ('9', 111, InTerms, Just "GHC.PrimopWrappers", "quotRemInt16#"),
+    ('9', 112, InTerms, Just "GHC.Prim", "uncheckedShiftLInt16#"),
+    ('9', 113, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftLInt16#"),
+    ('9', 114, InTerms, Just "GHC.Prim", "uncheckedShiftRAInt16#"),
+    ('9', 115, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftRAInt16#"),
+    ('9', 116, InTerms, Just "GHC.Prim", "uncheckedShiftRLInt16#"),
+    ('9', 117, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftRLInt16#"),
+    ('9', 118, InTerms, Just "GHC.Prim", "int16ToWord16#"),
+    ('9', 119, InTerms, Just "GHC.PrimopWrappers", "int16ToWord16#"),
+    ('9', 120, InTerms, Just "GHC.Prim", "eqInt16#"),
+    ('9', 121, InTerms, Just "GHC.PrimopWrappers", "eqInt16#"),
+    ('9', 122, InTerms, Just "GHC.Prim", "geInt16#"),
+    ('9', 123, InTerms, Just "GHC.PrimopWrappers", "geInt16#"),
+    ('9', 124, InTerms, Just "GHC.Prim", "gtInt16#"),
+    ('9', 125, InTerms, Just "GHC.PrimopWrappers", "gtInt16#"),
+    ('9', 126, InTerms, Just "GHC.Prim", "leInt16#"),
+    ('9', 127, InTerms, Just "GHC.PrimopWrappers", "leInt16#"),
+    ('9', 128, InTerms, Just "GHC.Prim", "ltInt16#"),
+    ('9', 129, InTerms, Just "GHC.PrimopWrappers", "ltInt16#"),
+    ('9', 130, InTerms, Just "GHC.Prim", "neInt16#"),
+    ('9', 131, InTerms, Just "GHC.PrimopWrappers", "neInt16#"),
+    ('9', 132, InTerms, Just "GHC.Prim", "word16ToWord#"),
+    ('9', 133, InTerms, Just "GHC.PrimopWrappers", "word16ToWord#"),
+    ('9', 134, InTerms, Just "GHC.Prim", "wordToWord16#"),
+    ('9', 135, InTerms, Just "GHC.PrimopWrappers", "wordToWord16#"),
+    ('9', 136, InTerms, Just "GHC.Prim", "plusWord16#"),
+    ('9', 137, InTerms, Just "GHC.PrimopWrappers", "plusWord16#"),
+    ('9', 138, InTerms, Just "GHC.Prim", "subWord16#"),
+    ('9', 139, InTerms, Just "GHC.PrimopWrappers", "subWord16#"),
+    ('9', 140, InTerms, Just "GHC.Prim", "timesWord16#"),
+    ('9', 141, InTerms, Just "GHC.PrimopWrappers", "timesWord16#"),
+    ('9', 142, InTerms, Just "GHC.Prim", "quotWord16#"),
+    ('9', 143, InTerms, Just "GHC.PrimopWrappers", "quotWord16#"),
+    ('9', 144, InTerms, Just "GHC.Prim", "remWord16#"),
+    ('9', 145, InTerms, Just "GHC.PrimopWrappers", "remWord16#"),
+    ('9', 146, InTerms, Just "GHC.Prim", "quotRemWord16#"),
+    ('9', 147, InTerms, Just "GHC.PrimopWrappers", "quotRemWord16#"),
+    ('9', 148, InTerms, Just "GHC.Prim", "andWord16#"),
+    ('9', 149, InTerms, Just "GHC.PrimopWrappers", "andWord16#"),
+    ('9', 150, InTerms, Just "GHC.Prim", "orWord16#"),
+    ('9', 151, InTerms, Just "GHC.PrimopWrappers", "orWord16#"),
+    ('9', 152, InTerms, Just "GHC.Prim", "xorWord16#"),
+    ('9', 153, InTerms, Just "GHC.PrimopWrappers", "xorWord16#"),
+    ('9', 154, InTerms, Just "GHC.Prim", "notWord16#"),
+    ('9', 155, InTerms, Just "GHC.PrimopWrappers", "notWord16#"),
+    ('9', 156, InTerms, Just "GHC.Prim", "uncheckedShiftLWord16#"),
+    ('9', 157, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftLWord16#"),
+    ('9', 158, InTerms, Just "GHC.Prim", "uncheckedShiftRLWord16#"),
+    ('9', 159, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftRLWord16#"),
+    ('9', 160, InTerms, Just "GHC.Prim", "word16ToInt16#"),
+    ('9', 161, InTerms, Just "GHC.PrimopWrappers", "word16ToInt16#"),
+    ('9', 162, InTerms, Just "GHC.Prim", "eqWord16#"),
+    ('9', 163, InTerms, Just "GHC.PrimopWrappers", "eqWord16#"),
+    ('9', 164, InTerms, Just "GHC.Prim", "geWord16#"),
+    ('9', 165, InTerms, Just "GHC.PrimopWrappers", "geWord16#"),
+    ('9', 166, InTerms, Just "GHC.Prim", "gtWord16#"),
+    ('9', 167, InTerms, Just "GHC.PrimopWrappers", "gtWord16#"),
+    ('9', 168, InTerms, Just "GHC.Prim", "leWord16#"),
+    ('9', 169, InTerms, Just "GHC.PrimopWrappers", "leWord16#"),
+    ('9', 170, InTerms, Just "GHC.Prim", "ltWord16#"),
+    ('9', 171, InTerms, Just "GHC.PrimopWrappers", "ltWord16#"),
+    ('9', 172, InTerms, Just "GHC.Prim", "neWord16#"),
+    ('9', 173, InTerms, Just "GHC.PrimopWrappers", "neWord16#"),
+    ('9', 174, InTerms, Just "GHC.Prim", "int32ToInt#"),
+    ('9', 175, InTerms, Just "GHC.PrimopWrappers", "int32ToInt#"),
+    ('9', 176, InTerms, Just "GHC.Prim", "intToInt32#"),
+    ('9', 177, InTerms, Just "GHC.PrimopWrappers", "intToInt32#"),
+    ('9', 178, InTerms, Just "GHC.Prim", "negateInt32#"),
+    ('9', 179, InTerms, Just "GHC.PrimopWrappers", "negateInt32#"),
+    ('9', 180, InTerms, Just "GHC.Prim", "plusInt32#"),
+    ('9', 181, InTerms, Just "GHC.PrimopWrappers", "plusInt32#"),
+    ('9', 182, InTerms, Just "GHC.Prim", "subInt32#"),
+    ('9', 183, InTerms, Just "GHC.PrimopWrappers", "subInt32#"),
+    ('9', 184, InTerms, Just "GHC.Prim", "timesInt32#"),
+    ('9', 185, InTerms, Just "GHC.PrimopWrappers", "timesInt32#"),
+    ('9', 186, InTerms, Just "GHC.Prim", "quotInt32#"),
+    ('9', 187, InTerms, Just "GHC.PrimopWrappers", "quotInt32#"),
+    ('9', 188, InTerms, Just "GHC.Prim", "remInt32#"),
+    ('9', 189, InTerms, Just "GHC.PrimopWrappers", "remInt32#"),
+    ('9', 190, InTerms, Just "GHC.Prim", "quotRemInt32#"),
+    ('9', 191, InTerms, Just "GHC.PrimopWrappers", "quotRemInt32#"),
+    ('9', 192, InTerms, Just "GHC.Prim", "uncheckedShiftLInt32#"),
+    ('9', 193, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftLInt32#"),
+    ('9', 194, InTerms, Just "GHC.Prim", "uncheckedShiftRAInt32#"),
+    ('9', 195, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftRAInt32#"),
+    ('9', 196, InTerms, Just "GHC.Prim", "uncheckedShiftRLInt32#"),
+    ('9', 197, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftRLInt32#"),
+    ('9', 198, InTerms, Just "GHC.Prim", "int32ToWord32#"),
+    ('9', 199, InTerms, Just "GHC.PrimopWrappers", "int32ToWord32#"),
+    ('9', 200, InTerms, Just "GHC.Prim", "eqInt32#"),
+    ('9', 201, InTerms, Just "GHC.PrimopWrappers", "eqInt32#"),
+    ('9', 202, InTerms, Just "GHC.Prim", "geInt32#"),
+    ('9', 203, InTerms, Just "GHC.PrimopWrappers", "geInt32#"),
+    ('9', 204, InTerms, Just "GHC.Prim", "gtInt32#"),
+    ('9', 205, InTerms, Just "GHC.PrimopWrappers", "gtInt32#"),
+    ('9', 206, InTerms, Just "GHC.Prim", "leInt32#"),
+    ('9', 207, InTerms, Just "GHC.PrimopWrappers", "leInt32#"),
+    ('9', 208, InTerms, Just "GHC.Prim", "ltInt32#"),
+    ('9', 209, InTerms, Just "GHC.PrimopWrappers", "ltInt32#"),
+    ('9', 210, InTerms, Just "GHC.Prim", "neInt32#"),
+    ('9', 211, InTerms, Just "GHC.PrimopWrappers", "neInt32#"),
+    ('9', 212, InTerms, Just "GHC.Prim", "word32ToWord#"),
+    ('9', 213, InTerms, Just "GHC.PrimopWrappers", "word32ToWord#"),
+    ('9', 214, InTerms, Just "GHC.Prim", "wordToWord32#"),
+    ('9', 215, InTerms, Just "GHC.PrimopWrappers", "wordToWord32#"),
+    ('9', 216, InTerms, Just "GHC.Prim", "plusWord32#"),
+    ('9', 217, InTerms, Just "GHC.PrimopWrappers", "plusWord32#"),
+    ('9', 218, InTerms, Just "GHC.Prim", "subWord32#"),
+    ('9', 219, InTerms, Just "GHC.PrimopWrappers", "subWord32#"),
+    ('9', 220, InTerms, Just "GHC.Prim", "timesWord32#"),
+    ('9', 221, InTerms, Just "GHC.PrimopWrappers", "timesWord32#"),
+    ('9', 222, InTerms, Just "GHC.Prim", "quotWord32#"),
+    ('9', 223, InTerms, Just "GHC.PrimopWrappers", "quotWord32#"),
+    ('9', 224, InTerms, Just "GHC.Prim", "remWord32#"),
+    ('9', 225, InTerms, Just "GHC.PrimopWrappers", "remWord32#"),
+    ('9', 226, InTerms, Just "GHC.Prim", "quotRemWord32#"),
+    ('9', 227, InTerms, Just "GHC.PrimopWrappers", "quotRemWord32#"),
+    ('9', 228, InTerms, Just "GHC.Prim", "andWord32#"),
+    ('9', 229, InTerms, Just "GHC.PrimopWrappers", "andWord32#"),
+    ('9', 230, InTerms, Just "GHC.Prim", "orWord32#"),
+    ('9', 231, InTerms, Just "GHC.PrimopWrappers", "orWord32#"),
+    ('9', 232, InTerms, Just "GHC.Prim", "xorWord32#"),
+    ('9', 233, InTerms, Just "GHC.PrimopWrappers", "xorWord32#"),
+    ('9', 234, InTerms, Just "GHC.Prim", "notWord32#"),
+    ('9', 235, InTerms, Just "GHC.PrimopWrappers", "notWord32#"),
+    ('9', 236, InTerms, Just "GHC.Prim", "uncheckedShiftLWord32#"),
+    ('9', 237, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftLWord32#"),
+    ('9', 238, InTerms, Just "GHC.Prim", "uncheckedShiftRLWord32#"),
+    ('9', 239, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftRLWord32#"),
+    ('9', 240, InTerms, Just "GHC.Prim", "word32ToInt32#"),
+    ('9', 241, InTerms, Just "GHC.PrimopWrappers", "word32ToInt32#"),
+    ('9', 242, InTerms, Just "GHC.Prim", "eqWord32#"),
+    ('9', 243, InTerms, Just "GHC.PrimopWrappers", "eqWord32#"),
+    ('9', 244, InTerms, Just "GHC.Prim", "geWord32#"),
+    ('9', 245, InTerms, Just "GHC.PrimopWrappers", "geWord32#"),
+    ('9', 246, InTerms, Just "GHC.Prim", "gtWord32#"),
+    ('9', 247, InTerms, Just "GHC.PrimopWrappers", "gtWord32#"),
+    ('9', 248, InTerms, Just "GHC.Prim", "leWord32#"),
+    ('9', 249, InTerms, Just "GHC.PrimopWrappers", "leWord32#"),
+    ('9', 250, InTerms, Just "GHC.Prim", "ltWord32#"),
+    ('9', 251, InTerms, Just "GHC.PrimopWrappers", "ltWord32#"),
+    ('9', 252, InTerms, Just "GHC.Prim", "neWord32#"),
+    ('9', 253, InTerms, Just "GHC.PrimopWrappers", "neWord32#"),
+    ('9', 254, InTerms, Just "GHC.Prim", "int64ToInt#"),
+    ('9', 255, InTerms, Just "GHC.PrimopWrappers", "int64ToInt#"),
+    ('9', 256, InTerms, Just "GHC.Prim", "intToInt64#"),
+    ('9', 257, InTerms, Just "GHC.PrimopWrappers", "intToInt64#"),
+    ('9', 258, InTerms, Just "GHC.Prim", "negateInt64#"),
+    ('9', 259, InTerms, Just "GHC.PrimopWrappers", "negateInt64#"),
+    ('9', 260, InTerms, Just "GHC.Prim", "plusInt64#"),
+    ('9', 261, InTerms, Just "GHC.PrimopWrappers", "plusInt64#"),
+    ('9', 262, InTerms, Just "GHC.Prim", "subInt64#"),
+    ('9', 263, InTerms, Just "GHC.PrimopWrappers", "subInt64#"),
+    ('9', 264, InTerms, Just "GHC.Prim", "timesInt64#"),
+    ('9', 265, InTerms, Just "GHC.PrimopWrappers", "timesInt64#"),
+    ('9', 266, InTerms, Just "GHC.Prim", "quotInt64#"),
+    ('9', 267, InTerms, Just "GHC.PrimopWrappers", "quotInt64#"),
+    ('9', 268, InTerms, Just "GHC.Prim", "remInt64#"),
+    ('9', 269, InTerms, Just "GHC.PrimopWrappers", "remInt64#"),
+    ('9', 270, InTerms, Just "GHC.Prim", "uncheckedIShiftL64#"),
+    ('9', 271, InTerms, Just "GHC.PrimopWrappers", "uncheckedIShiftL64#"),
+    ('9', 272, InTerms, Just "GHC.Prim", "uncheckedIShiftRA64#"),
+    ('9', 273, InTerms, Just "GHC.PrimopWrappers", "uncheckedIShiftRA64#"),
+    ('9', 274, InTerms, Just "GHC.Prim", "uncheckedIShiftRL64#"),
+    ('9', 275, InTerms, Just "GHC.PrimopWrappers", "uncheckedIShiftRL64#"),
+    ('9', 276, InTerms, Just "GHC.Prim", "int64ToWord64#"),
+    ('9', 277, InTerms, Just "GHC.PrimopWrappers", "int64ToWord64#"),
+    ('9', 278, InTerms, Just "GHC.Prim", "eqInt64#"),
+    ('9', 279, InTerms, Just "GHC.PrimopWrappers", "eqInt64#"),
+    ('9', 280, InTerms, Just "GHC.Prim", "geInt64#"),
+    ('9', 281, InTerms, Just "GHC.PrimopWrappers", "geInt64#"),
+    ('9', 282, InTerms, Just "GHC.Prim", "gtInt64#"),
+    ('9', 283, InTerms, Just "GHC.PrimopWrappers", "gtInt64#"),
+    ('9', 284, InTerms, Just "GHC.Prim", "leInt64#"),
+    ('9', 285, InTerms, Just "GHC.PrimopWrappers", "leInt64#"),
+    ('9', 286, InTerms, Just "GHC.Prim", "ltInt64#"),
+    ('9', 287, InTerms, Just "GHC.PrimopWrappers", "ltInt64#"),
+    ('9', 288, InTerms, Just "GHC.Prim", "neInt64#"),
+    ('9', 289, InTerms, Just "GHC.PrimopWrappers", "neInt64#"),
+    ('9', 290, InTerms, Just "GHC.Prim", "word64ToWord#"),
+    ('9', 291, InTerms, Just "GHC.PrimopWrappers", "word64ToWord#"),
+    ('9', 292, InTerms, Just "GHC.Prim", "wordToWord64#"),
+    ('9', 293, InTerms, Just "GHC.PrimopWrappers", "wordToWord64#"),
+    ('9', 294, InTerms, Just "GHC.Prim", "plusWord64#"),
+    ('9', 295, InTerms, Just "GHC.PrimopWrappers", "plusWord64#"),
+    ('9', 296, InTerms, Just "GHC.Prim", "subWord64#"),
+    ('9', 297, InTerms, Just "GHC.PrimopWrappers", "subWord64#"),
+    ('9', 298, InTerms, Just "GHC.Prim", "timesWord64#"),
+    ('9', 299, InTerms, Just "GHC.PrimopWrappers", "timesWord64#"),
+    ('9', 300, InTerms, Just "GHC.Prim", "quotWord64#"),
+    ('9', 301, InTerms, Just "GHC.PrimopWrappers", "quotWord64#"),
+    ('9', 302, InTerms, Just "GHC.Prim", "remWord64#"),
+    ('9', 303, InTerms, Just "GHC.PrimopWrappers", "remWord64#"),
+    ('9', 304, InTerms, Just "GHC.Prim", "and64#"),
+    ('9', 305, InTerms, Just "GHC.PrimopWrappers", "and64#"),
+    ('9', 306, InTerms, Just "GHC.Prim", "or64#"),
+    ('9', 307, InTerms, Just "GHC.PrimopWrappers", "or64#"),
+    ('9', 308, InTerms, Just "GHC.Prim", "xor64#"),
+    ('9', 309, InTerms, Just "GHC.PrimopWrappers", "xor64#"),
+    ('9', 310, InTerms, Just "GHC.Prim", "not64#"),
+    ('9', 311, InTerms, Just "GHC.PrimopWrappers", "not64#"),
+    ('9', 312, InTerms, Just "GHC.Prim", "uncheckedShiftL64#"),
+    ('9', 313, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftL64#"),
+    ('9', 314, InTerms, Just "GHC.Prim", "uncheckedShiftRL64#"),
+    ('9', 315, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftRL64#"),
+    ('9', 316, InTerms, Just "GHC.Prim", "word64ToInt64#"),
+    ('9', 317, InTerms, Just "GHC.PrimopWrappers", "word64ToInt64#"),
+    ('9', 318, InTerms, Just "GHC.Prim", "eqWord64#"),
+    ('9', 319, InTerms, Just "GHC.PrimopWrappers", "eqWord64#"),
+    ('9', 320, InTerms, Just "GHC.Prim", "geWord64#"),
+    ('9', 321, InTerms, Just "GHC.PrimopWrappers", "geWord64#"),
+    ('9', 322, InTerms, Just "GHC.Prim", "gtWord64#"),
+    ('9', 323, InTerms, Just "GHC.PrimopWrappers", "gtWord64#"),
+    ('9', 324, InTerms, Just "GHC.Prim", "leWord64#"),
+    ('9', 325, InTerms, Just "GHC.PrimopWrappers", "leWord64#"),
+    ('9', 326, InTerms, Just "GHC.Prim", "ltWord64#"),
+    ('9', 327, InTerms, Just "GHC.PrimopWrappers", "ltWord64#"),
+    ('9', 328, InTerms, Just "GHC.Prim", "neWord64#"),
+    ('9', 329, InTerms, Just "GHC.PrimopWrappers", "neWord64#"),
+    ('9', 330, InTerms, Just "GHC.Prim", "+#"),
+    ('9', 331, InTerms, Just "GHC.PrimopWrappers", "+#"),
+    ('9', 332, InTerms, Just "GHC.Prim", "-#"),
+    ('9', 333, InTerms, Just "GHC.PrimopWrappers", "-#"),
+    ('9', 334, InTerms, Just "GHC.Prim", "*#"),
+    ('9', 335, InTerms, Just "GHC.PrimopWrappers", "*#"),
+    ('9', 336, InTerms, Just "GHC.Prim", "timesInt2#"),
+    ('9', 337, InTerms, Just "GHC.PrimopWrappers", "timesInt2#"),
+    ('9', 338, InTerms, Just "GHC.Prim", "mulIntMayOflo#"),
+    ('9', 339, InTerms, Just "GHC.PrimopWrappers", "mulIntMayOflo#"),
+    ('9', 340, InTerms, Just "GHC.Prim", "quotInt#"),
+    ('9', 341, InTerms, Just "GHC.PrimopWrappers", "quotInt#"),
+    ('9', 342, InTerms, Just "GHC.Prim", "remInt#"),
+    ('9', 343, InTerms, Just "GHC.PrimopWrappers", "remInt#"),
+    ('9', 344, InTerms, Just "GHC.Prim", "quotRemInt#"),
+    ('9', 345, InTerms, Just "GHC.PrimopWrappers", "quotRemInt#"),
+    ('9', 346, InTerms, Just "GHC.Prim", "andI#"),
+    ('9', 347, InTerms, Just "GHC.PrimopWrappers", "andI#"),
+    ('9', 348, InTerms, Just "GHC.Prim", "orI#"),
+    ('9', 349, InTerms, Just "GHC.PrimopWrappers", "orI#"),
+    ('9', 350, InTerms, Just "GHC.Prim", "xorI#"),
+    ('9', 351, InTerms, Just "GHC.PrimopWrappers", "xorI#"),
+    ('9', 352, InTerms, Just "GHC.Prim", "notI#"),
+    ('9', 353, InTerms, Just "GHC.PrimopWrappers", "notI#"),
+    ('9', 354, InTerms, Just "GHC.Prim", "negateInt#"),
+    ('9', 355, InTerms, Just "GHC.PrimopWrappers", "negateInt#"),
+    ('9', 356, InTerms, Just "GHC.Prim", "addIntC#"),
+    ('9', 357, InTerms, Just "GHC.PrimopWrappers", "addIntC#"),
+    ('9', 358, InTerms, Just "GHC.Prim", "subIntC#"),
+    ('9', 359, InTerms, Just "GHC.PrimopWrappers", "subIntC#"),
+    ('9', 360, InTerms, Just "GHC.Prim", ">#"),
+    ('9', 361, InTerms, Just "GHC.PrimopWrappers", ">#"),
+    ('9', 362, InTerms, Just "GHC.Prim", ">=#"),
+    ('9', 363, InTerms, Just "GHC.PrimopWrappers", ">=#"),
+    ('9', 364, InTerms, Just "GHC.Prim", "==#"),
+    ('9', 365, InTerms, Just "GHC.PrimopWrappers", "==#"),
+    ('9', 366, InTerms, Just "GHC.Prim", "/=#"),
+    ('9', 367, InTerms, Just "GHC.PrimopWrappers", "/=#"),
+    ('9', 368, InTerms, Just "GHC.Prim", "<#"),
+    ('9', 369, InTerms, Just "GHC.PrimopWrappers", "<#"),
+    ('9', 370, InTerms, Just "GHC.Prim", "<=#"),
+    ('9', 371, InTerms, Just "GHC.PrimopWrappers", "<=#"),
+    ('9', 372, InTerms, Just "GHC.Prim", "chr#"),
+    ('9', 373, InTerms, Just "GHC.PrimopWrappers", "chr#"),
+    ('9', 374, InTerms, Just "GHC.Prim", "int2Word#"),
+    ('9', 375, InTerms, Just "GHC.PrimopWrappers", "int2Word#"),
+    ('9', 376, InTerms, Just "GHC.Prim", "int2Float#"),
+    ('9', 377, InTerms, Just "GHC.PrimopWrappers", "int2Float#"),
+    ('9', 378, InTerms, Just "GHC.Prim", "int2Double#"),
+    ('9', 379, InTerms, Just "GHC.PrimopWrappers", "int2Double#"),
+    ('9', 380, InTerms, Just "GHC.Prim", "word2Float#"),
+    ('9', 381, InTerms, Just "GHC.PrimopWrappers", "word2Float#"),
+    ('9', 382, InTerms, Just "GHC.Prim", "word2Double#"),
+    ('9', 383, InTerms, Just "GHC.PrimopWrappers", "word2Double#"),
+    ('9', 384, InTerms, Just "GHC.Prim", "uncheckedIShiftL#"),
+    ('9', 385, InTerms, Just "GHC.PrimopWrappers", "uncheckedIShiftL#"),
+    ('9', 386, InTerms, Just "GHC.Prim", "uncheckedIShiftRA#"),
+    ('9', 387, InTerms, Just "GHC.PrimopWrappers", "uncheckedIShiftRA#"),
+    ('9', 388, InTerms, Just "GHC.Prim", "uncheckedIShiftRL#"),
+    ('9', 389, InTerms, Just "GHC.PrimopWrappers", "uncheckedIShiftRL#"),
+    ('9', 390, InTerms, Just "GHC.Prim", "plusWord#"),
+    ('9', 391, InTerms, Just "GHC.PrimopWrappers", "plusWord#"),
+    ('9', 392, InTerms, Just "GHC.Prim", "addWordC#"),
+    ('9', 393, InTerms, Just "GHC.PrimopWrappers", "addWordC#"),
+    ('9', 394, InTerms, Just "GHC.Prim", "subWordC#"),
+    ('9', 395, InTerms, Just "GHC.PrimopWrappers", "subWordC#"),
+    ('9', 396, InTerms, Just "GHC.Prim", "plusWord2#"),
+    ('9', 397, InTerms, Just "GHC.PrimopWrappers", "plusWord2#"),
+    ('9', 398, InTerms, Just "GHC.Prim", "minusWord#"),
+    ('9', 399, InTerms, Just "GHC.PrimopWrappers", "minusWord#"),
+    ('9', 400, InTerms, Just "GHC.Prim", "timesWord#"),
+    ('9', 401, InTerms, Just "GHC.PrimopWrappers", "timesWord#"),
+    ('9', 402, InTerms, Just "GHC.Prim", "timesWord2#"),
+    ('9', 403, InTerms, Just "GHC.PrimopWrappers", "timesWord2#"),
+    ('9', 404, InTerms, Just "GHC.Prim", "quotWord#"),
+    ('9', 405, InTerms, Just "GHC.PrimopWrappers", "quotWord#"),
+    ('9', 406, InTerms, Just "GHC.Prim", "remWord#"),
+    ('9', 407, InTerms, Just "GHC.PrimopWrappers", "remWord#"),
+    ('9', 408, InTerms, Just "GHC.Prim", "quotRemWord#"),
+    ('9', 409, InTerms, Just "GHC.PrimopWrappers", "quotRemWord#"),
+    ('9', 410, InTerms, Just "GHC.Prim", "quotRemWord2#"),
+    ('9', 411, InTerms, Just "GHC.PrimopWrappers", "quotRemWord2#"),
+    ('9', 412, InTerms, Just "GHC.Prim", "and#"),
+    ('9', 413, InTerms, Just "GHC.PrimopWrappers", "and#"),
+    ('9', 414, InTerms, Just "GHC.Prim", "or#"),
+    ('9', 415, InTerms, Just "GHC.PrimopWrappers", "or#"),
+    ('9', 416, InTerms, Just "GHC.Prim", "xor#"),
+    ('9', 417, InTerms, Just "GHC.PrimopWrappers", "xor#"),
+    ('9', 418, InTerms, Just "GHC.Prim", "not#"),
+    ('9', 419, InTerms, Just "GHC.PrimopWrappers", "not#"),
+    ('9', 420, InTerms, Just "GHC.Prim", "uncheckedShiftL#"),
+    ('9', 421, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftL#"),
+    ('9', 422, InTerms, Just "GHC.Prim", "uncheckedShiftRL#"),
+    ('9', 423, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftRL#"),
+    ('9', 424, InTerms, Just "GHC.Prim", "word2Int#"),
+    ('9', 425, InTerms, Just "GHC.PrimopWrappers", "word2Int#"),
+    ('9', 426, InTerms, Just "GHC.Prim", "gtWord#"),
+    ('9', 427, InTerms, Just "GHC.PrimopWrappers", "gtWord#"),
+    ('9', 428, InTerms, Just "GHC.Prim", "geWord#"),
+    ('9', 429, InTerms, Just "GHC.PrimopWrappers", "geWord#"),
+    ('9', 430, InTerms, Just "GHC.Prim", "eqWord#"),
+    ('9', 431, InTerms, Just "GHC.PrimopWrappers", "eqWord#"),
+    ('9', 432, InTerms, Just "GHC.Prim", "neWord#"),
+    ('9', 433, InTerms, Just "GHC.PrimopWrappers", "neWord#"),
+    ('9', 434, InTerms, Just "GHC.Prim", "ltWord#"),
+    ('9', 435, InTerms, Just "GHC.PrimopWrappers", "ltWord#"),
+    ('9', 436, InTerms, Just "GHC.Prim", "leWord#"),
+    ('9', 437, InTerms, Just "GHC.PrimopWrappers", "leWord#"),
+    ('9', 438, InTerms, Just "GHC.Prim", "popCnt8#"),
+    ('9', 439, InTerms, Just "GHC.PrimopWrappers", "popCnt8#"),
+    ('9', 440, InTerms, Just "GHC.Prim", "popCnt16#"),
+    ('9', 441, InTerms, Just "GHC.PrimopWrappers", "popCnt16#"),
+    ('9', 442, InTerms, Just "GHC.Prim", "popCnt32#"),
+    ('9', 443, InTerms, Just "GHC.PrimopWrappers", "popCnt32#"),
+    ('9', 444, InTerms, Just "GHC.Prim", "popCnt64#"),
+    ('9', 445, InTerms, Just "GHC.PrimopWrappers", "popCnt64#"),
+    ('9', 446, InTerms, Just "GHC.Prim", "popCnt#"),
+    ('9', 447, InTerms, Just "GHC.PrimopWrappers", "popCnt#"),
+    ('9', 448, InTerms, Just "GHC.Prim", "pdep8#"),
+    ('9', 449, InTerms, Just "GHC.PrimopWrappers", "pdep8#"),
+    ('9', 450, InTerms, Just "GHC.Prim", "pdep16#"),
+    ('9', 451, InTerms, Just "GHC.PrimopWrappers", "pdep16#"),
+    ('9', 452, InTerms, Just "GHC.Prim", "pdep32#"),
+    ('9', 453, InTerms, Just "GHC.PrimopWrappers", "pdep32#"),
+    ('9', 454, InTerms, Just "GHC.Prim", "pdep64#"),
+    ('9', 455, InTerms, Just "GHC.PrimopWrappers", "pdep64#"),
+    ('9', 456, InTerms, Just "GHC.Prim", "pdep#"),
+    ('9', 457, InTerms, Just "GHC.PrimopWrappers", "pdep#"),
+    ('9', 458, InTerms, Just "GHC.Prim", "pext8#"),
+    ('9', 459, InTerms, Just "GHC.PrimopWrappers", "pext8#"),
+    ('9', 460, InTerms, Just "GHC.Prim", "pext16#"),
+    ('9', 461, InTerms, Just "GHC.PrimopWrappers", "pext16#"),
+    ('9', 462, InTerms, Just "GHC.Prim", "pext32#"),
+    ('9', 463, InTerms, Just "GHC.PrimopWrappers", "pext32#"),
+    ('9', 464, InTerms, Just "GHC.Prim", "pext64#"),
+    ('9', 465, InTerms, Just "GHC.PrimopWrappers", "pext64#"),
+    ('9', 466, InTerms, Just "GHC.Prim", "pext#"),
+    ('9', 467, InTerms, Just "GHC.PrimopWrappers", "pext#"),
+    ('9', 468, InTerms, Just "GHC.Prim", "clz8#"),
+    ('9', 469, InTerms, Just "GHC.PrimopWrappers", "clz8#"),
+    ('9', 470, InTerms, Just "GHC.Prim", "clz16#"),
+    ('9', 471, InTerms, Just "GHC.PrimopWrappers", "clz16#"),
+    ('9', 472, InTerms, Just "GHC.Prim", "clz32#"),
+    ('9', 473, InTerms, Just "GHC.PrimopWrappers", "clz32#"),
+    ('9', 474, InTerms, Just "GHC.Prim", "clz64#"),
+    ('9', 475, InTerms, Just "GHC.PrimopWrappers", "clz64#"),
+    ('9', 476, InTerms, Just "GHC.Prim", "clz#"),
+    ('9', 477, InTerms, Just "GHC.PrimopWrappers", "clz#"),
+    ('9', 478, InTerms, Just "GHC.Prim", "ctz8#"),
+    ('9', 479, InTerms, Just "GHC.PrimopWrappers", "ctz8#"),
+    ('9', 480, InTerms, Just "GHC.Prim", "ctz16#"),
+    ('9', 481, InTerms, Just "GHC.PrimopWrappers", "ctz16#"),
+    ('9', 482, InTerms, Just "GHC.Prim", "ctz32#"),
+    ('9', 483, InTerms, Just "GHC.PrimopWrappers", "ctz32#"),
+    ('9', 484, InTerms, Just "GHC.Prim", "ctz64#"),
+    ('9', 485, InTerms, Just "GHC.PrimopWrappers", "ctz64#"),
+    ('9', 486, InTerms, Just "GHC.Prim", "ctz#"),
+    ('9', 487, InTerms, Just "GHC.PrimopWrappers", "ctz#"),
+    ('9', 488, InTerms, Just "GHC.Prim", "byteSwap16#"),
+    ('9', 489, InTerms, Just "GHC.PrimopWrappers", "byteSwap16#"),
+    ('9', 490, InTerms, Just "GHC.Prim", "byteSwap32#"),
+    ('9', 491, InTerms, Just "GHC.PrimopWrappers", "byteSwap32#"),
+    ('9', 492, InTerms, Just "GHC.Prim", "byteSwap64#"),
+    ('9', 493, InTerms, Just "GHC.PrimopWrappers", "byteSwap64#"),
+    ('9', 494, InTerms, Just "GHC.Prim", "byteSwap#"),
+    ('9', 495, InTerms, Just "GHC.PrimopWrappers", "byteSwap#"),
+    ('9', 496, InTerms, Just "GHC.Prim", "bitReverse8#"),
+    ('9', 497, InTerms, Just "GHC.PrimopWrappers", "bitReverse8#"),
+    ('9', 498, InTerms, Just "GHC.Prim", "bitReverse16#"),
+    ('9', 499, InTerms, Just "GHC.PrimopWrappers", "bitReverse16#"),
+    ('9', 500, InTerms, Just "GHC.Prim", "bitReverse32#"),
+    ('9', 501, InTerms, Just "GHC.PrimopWrappers", "bitReverse32#"),
+    ('9', 502, InTerms, Just "GHC.Prim", "bitReverse64#"),
+    ('9', 503, InTerms, Just "GHC.PrimopWrappers", "bitReverse64#"),
+    ('9', 504, InTerms, Just "GHC.Prim", "bitReverse#"),
+    ('9', 505, InTerms, Just "GHC.PrimopWrappers", "bitReverse#"),
+    ('9', 506, InTerms, Just "GHC.Prim", "narrow8Int#"),
+    ('9', 507, InTerms, Just "GHC.PrimopWrappers", "narrow8Int#"),
+    ('9', 508, InTerms, Just "GHC.Prim", "narrow16Int#"),
+    ('9', 509, InTerms, Just "GHC.PrimopWrappers", "narrow16Int#"),
+    ('9', 510, InTerms, Just "GHC.Prim", "narrow32Int#"),
+    ('9', 511, InTerms, Just "GHC.PrimopWrappers", "narrow32Int#"),
+    ('9', 512, InTerms, Just "GHC.Prim", "narrow8Word#"),
+    ('9', 513, InTerms, Just "GHC.PrimopWrappers", "narrow8Word#"),
+    ('9', 514, InTerms, Just "GHC.Prim", "narrow16Word#"),
+    ('9', 515, InTerms, Just "GHC.PrimopWrappers", "narrow16Word#"),
+    ('9', 516, InTerms, Just "GHC.Prim", "narrow32Word#"),
+    ('9', 517, InTerms, Just "GHC.PrimopWrappers", "narrow32Word#"),
+    ('9', 518, InTerms, Just "GHC.Prim", ">##"),
+    ('9', 519, InTerms, Just "GHC.PrimopWrappers", ">##"),
+    ('9', 520, InTerms, Just "GHC.Prim", ">=##"),
+    ('9', 521, InTerms, Just "GHC.PrimopWrappers", ">=##"),
+    ('9', 522, InTerms, Just "GHC.Prim", "==##"),
+    ('9', 523, InTerms, Just "GHC.PrimopWrappers", "==##"),
+    ('9', 524, InTerms, Just "GHC.Prim", "/=##"),
+    ('9', 525, InTerms, Just "GHC.PrimopWrappers", "/=##"),
+    ('9', 526, InTerms, Just "GHC.Prim", "<##"),
+    ('9', 527, InTerms, Just "GHC.PrimopWrappers", "<##"),
+    ('9', 528, InTerms, Just "GHC.Prim", "<=##"),
+    ('9', 529, InTerms, Just "GHC.PrimopWrappers", "<=##"),
+    ('9', 530, InTerms, Just "GHC.Prim", "+##"),
+    ('9', 531, InTerms, Just "GHC.PrimopWrappers", "+##"),
+    ('9', 532, InTerms, Just "GHC.Prim", "-##"),
+    ('9', 533, InTerms, Just "GHC.PrimopWrappers", "-##"),
+    ('9', 534, InTerms, Just "GHC.Prim", "*##"),
+    ('9', 535, InTerms, Just "GHC.PrimopWrappers", "*##"),
+    ('9', 536, InTerms, Just "GHC.Prim", "/##"),
+    ('9', 537, InTerms, Just "GHC.PrimopWrappers", "/##"),
+    ('9', 538, InTerms, Just "GHC.Prim", "negateDouble#"),
+    ('9', 539, InTerms, Just "GHC.PrimopWrappers", "negateDouble#"),
+    ('9', 540, InTerms, Just "GHC.Prim", "fabsDouble#"),
+    ('9', 541, InTerms, Just "GHC.PrimopWrappers", "fabsDouble#"),
+    ('9', 542, InTerms, Just "GHC.Prim", "double2Int#"),
+    ('9', 543, InTerms, Just "GHC.PrimopWrappers", "double2Int#"),
+    ('9', 544, InTerms, Just "GHC.Prim", "double2Float#"),
+    ('9', 545, InTerms, Just "GHC.PrimopWrappers", "double2Float#"),
+    ('9', 546, InTerms, Just "GHC.Prim", "expDouble#"),
+    ('9', 547, InTerms, Just "GHC.PrimopWrappers", "expDouble#"),
+    ('9', 548, InTerms, Just "GHC.Prim", "expm1Double#"),
+    ('9', 549, InTerms, Just "GHC.PrimopWrappers", "expm1Double#"),
+    ('9', 550, InTerms, Just "GHC.Prim", "logDouble#"),
+    ('9', 551, InTerms, Just "GHC.PrimopWrappers", "logDouble#"),
+    ('9', 552, InTerms, Just "GHC.Prim", "log1pDouble#"),
+    ('9', 553, InTerms, Just "GHC.PrimopWrappers", "log1pDouble#"),
+    ('9', 554, InTerms, Just "GHC.Prim", "sqrtDouble#"),
+    ('9', 555, InTerms, Just "GHC.PrimopWrappers", "sqrtDouble#"),
+    ('9', 556, InTerms, Just "GHC.Prim", "sinDouble#"),
+    ('9', 557, InTerms, Just "GHC.PrimopWrappers", "sinDouble#"),
+    ('9', 558, InTerms, Just "GHC.Prim", "cosDouble#"),
+    ('9', 559, InTerms, Just "GHC.PrimopWrappers", "cosDouble#"),
+    ('9', 560, InTerms, Just "GHC.Prim", "tanDouble#"),
+    ('9', 561, InTerms, Just "GHC.PrimopWrappers", "tanDouble#"),
+    ('9', 562, InTerms, Just "GHC.Prim", "asinDouble#"),
+    ('9', 563, InTerms, Just "GHC.PrimopWrappers", "asinDouble#"),
+    ('9', 564, InTerms, Just "GHC.Prim", "acosDouble#"),
+    ('9', 565, InTerms, Just "GHC.PrimopWrappers", "acosDouble#"),
+    ('9', 566, InTerms, Just "GHC.Prim", "atanDouble#"),
+    ('9', 567, InTerms, Just "GHC.PrimopWrappers", "atanDouble#"),
+    ('9', 568, InTerms, Just "GHC.Prim", "sinhDouble#"),
+    ('9', 569, InTerms, Just "GHC.PrimopWrappers", "sinhDouble#"),
+    ('9', 570, InTerms, Just "GHC.Prim", "coshDouble#"),
+    ('9', 571, InTerms, Just "GHC.PrimopWrappers", "coshDouble#"),
+    ('9', 572, InTerms, Just "GHC.Prim", "tanhDouble#"),
+    ('9', 573, InTerms, Just "GHC.PrimopWrappers", "tanhDouble#"),
+    ('9', 574, InTerms, Just "GHC.Prim", "asinhDouble#"),
+    ('9', 575, InTerms, Just "GHC.PrimopWrappers", "asinhDouble#"),
+    ('9', 576, InTerms, Just "GHC.Prim", "acoshDouble#"),
+    ('9', 577, InTerms, Just "GHC.PrimopWrappers", "acoshDouble#"),
+    ('9', 578, InTerms, Just "GHC.Prim", "atanhDouble#"),
+    ('9', 579, InTerms, Just "GHC.PrimopWrappers", "atanhDouble#"),
+    ('9', 580, InTerms, Just "GHC.Prim", "**##"),
+    ('9', 581, InTerms, Just "GHC.PrimopWrappers", "**##"),
+    ('9', 582, InTerms, Just "GHC.Prim", "decodeDouble_2Int#"),
+    ('9', 583, InTerms, Just "GHC.PrimopWrappers", "decodeDouble_2Int#"),
+    ('9', 584, InTerms, Just "GHC.Prim", "decodeDouble_Int64#"),
+    ('9', 585, InTerms, Just "GHC.PrimopWrappers", "decodeDouble_Int64#"),
+    ('9', 586, InTerms, Just "GHC.Prim", "castDoubleToWord64#"),
+    ('9', 587, InTerms, Just "GHC.PrimopWrappers", "castDoubleToWord64#"),
+    ('9', 588, InTerms, Just "GHC.Prim", "castWord64ToDouble#"),
+    ('9', 589, InTerms, Just "GHC.PrimopWrappers", "castWord64ToDouble#"),
+    ('9', 590, InTerms, Just "GHC.Prim", "gtFloat#"),
+    ('9', 591, InTerms, Just "GHC.PrimopWrappers", "gtFloat#"),
+    ('9', 592, InTerms, Just "GHC.Prim", "geFloat#"),
+    ('9', 593, InTerms, Just "GHC.PrimopWrappers", "geFloat#"),
+    ('9', 594, InTerms, Just "GHC.Prim", "eqFloat#"),
+    ('9', 595, InTerms, Just "GHC.PrimopWrappers", "eqFloat#"),
+    ('9', 596, InTerms, Just "GHC.Prim", "neFloat#"),
+    ('9', 597, InTerms, Just "GHC.PrimopWrappers", "neFloat#"),
+    ('9', 598, InTerms, Just "GHC.Prim", "ltFloat#"),
+    ('9', 599, InTerms, Just "GHC.PrimopWrappers", "ltFloat#"),
+    ('9', 600, InTerms, Just "GHC.Prim", "leFloat#"),
+    ('9', 601, InTerms, Just "GHC.PrimopWrappers", "leFloat#"),
+    ('9', 602, InTerms, Just "GHC.Prim", "plusFloat#"),
+    ('9', 603, InTerms, Just "GHC.PrimopWrappers", "plusFloat#"),
+    ('9', 604, InTerms, Just "GHC.Prim", "minusFloat#"),
+    ('9', 605, InTerms, Just "GHC.PrimopWrappers", "minusFloat#"),
+    ('9', 606, InTerms, Just "GHC.Prim", "timesFloat#"),
+    ('9', 607, InTerms, Just "GHC.PrimopWrappers", "timesFloat#"),
+    ('9', 608, InTerms, Just "GHC.Prim", "divideFloat#"),
+    ('9', 609, InTerms, Just "GHC.PrimopWrappers", "divideFloat#"),
+    ('9', 610, InTerms, Just "GHC.Prim", "negateFloat#"),
+    ('9', 611, InTerms, Just "GHC.PrimopWrappers", "negateFloat#"),
+    ('9', 612, InTerms, Just "GHC.Prim", "fabsFloat#"),
+    ('9', 613, InTerms, Just "GHC.PrimopWrappers", "fabsFloat#"),
+    ('9', 614, InTerms, Just "GHC.Prim", "float2Int#"),
+    ('9', 615, InTerms, Just "GHC.PrimopWrappers", "float2Int#"),
+    ('9', 616, InTerms, Just "GHC.Prim", "expFloat#"),
+    ('9', 617, InTerms, Just "GHC.PrimopWrappers", "expFloat#"),
+    ('9', 618, InTerms, Just "GHC.Prim", "expm1Float#"),
+    ('9', 619, InTerms, Just "GHC.PrimopWrappers", "expm1Float#"),
+    ('9', 620, InTerms, Just "GHC.Prim", "logFloat#"),
+    ('9', 621, InTerms, Just "GHC.PrimopWrappers", "logFloat#"),
+    ('9', 622, InTerms, Just "GHC.Prim", "log1pFloat#"),
+    ('9', 623, InTerms, Just "GHC.PrimopWrappers", "log1pFloat#"),
+    ('9', 624, InTerms, Just "GHC.Prim", "sqrtFloat#"),
+    ('9', 625, InTerms, Just "GHC.PrimopWrappers", "sqrtFloat#"),
+    ('9', 626, InTerms, Just "GHC.Prim", "sinFloat#"),
+    ('9', 627, InTerms, Just "GHC.PrimopWrappers", "sinFloat#"),
+    ('9', 628, InTerms, Just "GHC.Prim", "cosFloat#"),
+    ('9', 629, InTerms, Just "GHC.PrimopWrappers", "cosFloat#"),
+    ('9', 630, InTerms, Just "GHC.Prim", "tanFloat#"),
+    ('9', 631, InTerms, Just "GHC.PrimopWrappers", "tanFloat#"),
+    ('9', 632, InTerms, Just "GHC.Prim", "asinFloat#"),
+    ('9', 633, InTerms, Just "GHC.PrimopWrappers", "asinFloat#"),
+    ('9', 634, InTerms, Just "GHC.Prim", "acosFloat#"),
+    ('9', 635, InTerms, Just "GHC.PrimopWrappers", "acosFloat#"),
+    ('9', 636, InTerms, Just "GHC.Prim", "atanFloat#"),
+    ('9', 637, InTerms, Just "GHC.PrimopWrappers", "atanFloat#"),
+    ('9', 638, InTerms, Just "GHC.Prim", "sinhFloat#"),
+    ('9', 639, InTerms, Just "GHC.PrimopWrappers", "sinhFloat#"),
+    ('9', 640, InTerms, Just "GHC.Prim", "coshFloat#"),
+    ('9', 641, InTerms, Just "GHC.PrimopWrappers", "coshFloat#"),
+    ('9', 642, InTerms, Just "GHC.Prim", "tanhFloat#"),
+    ('9', 643, InTerms, Just "GHC.PrimopWrappers", "tanhFloat#"),
+    ('9', 644, InTerms, Just "GHC.Prim", "asinhFloat#"),
+    ('9', 645, InTerms, Just "GHC.PrimopWrappers", "asinhFloat#"),
+    ('9', 646, InTerms, Just "GHC.Prim", "acoshFloat#"),
+    ('9', 647, InTerms, Just "GHC.PrimopWrappers", "acoshFloat#"),
+    ('9', 648, InTerms, Just "GHC.Prim", "atanhFloat#"),
+    ('9', 649, InTerms, Just "GHC.PrimopWrappers", "atanhFloat#"),
+    ('9', 650, InTerms, Just "GHC.Prim", "powerFloat#"),
+    ('9', 651, InTerms, Just "GHC.PrimopWrappers", "powerFloat#"),
+    ('9', 652, InTerms, Just "GHC.Prim", "float2Double#"),
+    ('9', 653, InTerms, Just "GHC.PrimopWrappers", "float2Double#"),
+    ('9', 654, InTerms, Just "GHC.Prim", "decodeFloat_Int#"),
+    ('9', 655, InTerms, Just "GHC.PrimopWrappers", "decodeFloat_Int#"),
+    ('9', 656, InTerms, Just "GHC.Prim", "castFloatToWord32#"),
+    ('9', 657, InTerms, Just "GHC.PrimopWrappers", "castFloatToWord32#"),
+    ('9', 658, InTerms, Just "GHC.Prim", "castWord32ToFloat#"),
+    ('9', 659, InTerms, Just "GHC.PrimopWrappers", "castWord32ToFloat#"),
+    ('9', 660, InTerms, Just "GHC.Prim", "fmaddFloat#"),
+    ('9', 661, InTerms, Just "GHC.PrimopWrappers", "fmaddFloat#"),
+    ('9', 662, InTerms, Just "GHC.Prim", "fmsubFloat#"),
+    ('9', 663, InTerms, Just "GHC.PrimopWrappers", "fmsubFloat#"),
+    ('9', 664, InTerms, Just "GHC.Prim", "fnmaddFloat#"),
+    ('9', 665, InTerms, Just "GHC.PrimopWrappers", "fnmaddFloat#"),
+    ('9', 666, InTerms, Just "GHC.Prim", "fnmsubFloat#"),
+    ('9', 667, InTerms, Just "GHC.PrimopWrappers", "fnmsubFloat#"),
+    ('9', 668, InTerms, Just "GHC.Prim", "fmaddDouble#"),
+    ('9', 669, InTerms, Just "GHC.PrimopWrappers", "fmaddDouble#"),
+    ('9', 670, InTerms, Just "GHC.Prim", "fmsubDouble#"),
+    ('9', 671, InTerms, Just "GHC.PrimopWrappers", "fmsubDouble#"),
+    ('9', 672, InTerms, Just "GHC.Prim", "fnmaddDouble#"),
+    ('9', 673, InTerms, Just "GHC.PrimopWrappers", "fnmaddDouble#"),
+    ('9', 674, InTerms, Just "GHC.Prim", "fnmsubDouble#"),
+    ('9', 675, InTerms, Just "GHC.PrimopWrappers", "fnmsubDouble#"),
+    ('9', 676, InTerms, Just "GHC.Prim", "newArray#"),
+    ('9', 677, InTerms, Just "GHC.PrimopWrappers", "newArray#"),
+    ('9', 678, InTerms, Just "GHC.Prim", "readArray#"),
+    ('9', 679, InTerms, Just "GHC.PrimopWrappers", "readArray#"),
+    ('9', 680, InTerms, Just "GHC.Prim", "writeArray#"),
+    ('9', 681, InTerms, Just "GHC.PrimopWrappers", "writeArray#"),
+    ('9', 682, InTerms, Just "GHC.Prim", "sizeofArray#"),
+    ('9', 683, InTerms, Just "GHC.PrimopWrappers", "sizeofArray#"),
+    ('9', 684, InTerms, Just "GHC.Prim", "sizeofMutableArray#"),
+    ('9', 685, InTerms, Just "GHC.PrimopWrappers", "sizeofMutableArray#"),
+    ('9', 686, InTerms, Just "GHC.Prim", "indexArray#"),
+    ('9', 687, InTerms, Just "GHC.PrimopWrappers", "indexArray#"),
+    ('9', 688, InTerms, Just "GHC.Prim", "unsafeFreezeArray#"),
+    ('9', 689, InTerms, Just "GHC.PrimopWrappers", "unsafeFreezeArray#"),
+    ('9', 690, InTerms, Just "GHC.Prim", "unsafeThawArray#"),
+    ('9', 691, InTerms, Just "GHC.PrimopWrappers", "unsafeThawArray#"),
+    ('9', 692, InTerms, Just "GHC.Prim", "copyArray#"),
+    ('9', 693, InTerms, Just "GHC.PrimopWrappers", "copyArray#"),
+    ('9', 694, InTerms, Just "GHC.Prim", "copyMutableArray#"),
+    ('9', 695, InTerms, Just "GHC.PrimopWrappers", "copyMutableArray#"),
+    ('9', 696, InTerms, Just "GHC.Prim", "cloneArray#"),
+    ('9', 697, InTerms, Just "GHC.PrimopWrappers", "cloneArray#"),
+    ('9', 698, InTerms, Just "GHC.Prim", "cloneMutableArray#"),
+    ('9', 699, InTerms, Just "GHC.PrimopWrappers", "cloneMutableArray#"),
+    ('9', 700, InTerms, Just "GHC.Prim", "freezeArray#"),
+    ('9', 701, InTerms, Just "GHC.PrimopWrappers", "freezeArray#"),
+    ('9', 702, InTerms, Just "GHC.Prim", "thawArray#"),
+    ('9', 703, InTerms, Just "GHC.PrimopWrappers", "thawArray#"),
+    ('9', 704, InTerms, Just "GHC.Prim", "casArray#"),
+    ('9', 705, InTerms, Just "GHC.PrimopWrappers", "casArray#"),
+    ('9', 706, InTerms, Just "GHC.Prim", "newSmallArray#"),
+    ('9', 707, InTerms, Just "GHC.PrimopWrappers", "newSmallArray#"),
+    ('9', 708, InTerms, Just "GHC.Prim", "shrinkSmallMutableArray#"),
+    ('9', 709, InTerms, Just "GHC.PrimopWrappers", "shrinkSmallMutableArray#"),
+    ('9', 710, InTerms, Just "GHC.Prim", "readSmallArray#"),
+    ('9', 711, InTerms, Just "GHC.PrimopWrappers", "readSmallArray#"),
+    ('9', 712, InTerms, Just "GHC.Prim", "writeSmallArray#"),
+    ('9', 713, InTerms, Just "GHC.PrimopWrappers", "writeSmallArray#"),
+    ('9', 714, InTerms, Just "GHC.Prim", "sizeofSmallArray#"),
+    ('9', 715, InTerms, Just "GHC.PrimopWrappers", "sizeofSmallArray#"),
+    ('9', 716, InTerms, Just "GHC.Prim", "sizeofSmallMutableArray#"),
+    ('9', 717, InTerms, Just "GHC.PrimopWrappers", "sizeofSmallMutableArray#"),
+    ('9', 718, InTerms, Just "GHC.Prim", "getSizeofSmallMutableArray#"),
+    ('9', 719, InTerms, Just "GHC.PrimopWrappers", "getSizeofSmallMutableArray#"),
+    ('9', 720, InTerms, Just "GHC.Prim", "indexSmallArray#"),
+    ('9', 721, InTerms, Just "GHC.PrimopWrappers", "indexSmallArray#"),
+    ('9', 722, InTerms, Just "GHC.Prim", "unsafeFreezeSmallArray#"),
+    ('9', 723, InTerms, Just "GHC.PrimopWrappers", "unsafeFreezeSmallArray#"),
+    ('9', 724, InTerms, Just "GHC.Prim", "unsafeThawSmallArray#"),
+    ('9', 725, InTerms, Just "GHC.PrimopWrappers", "unsafeThawSmallArray#"),
+    ('9', 726, InTerms, Just "GHC.Prim", "copySmallArray#"),
+    ('9', 727, InTerms, Just "GHC.PrimopWrappers", "copySmallArray#"),
+    ('9', 728, InTerms, Just "GHC.Prim", "copySmallMutableArray#"),
+    ('9', 729, InTerms, Just "GHC.PrimopWrappers", "copySmallMutableArray#"),
+    ('9', 730, InTerms, Just "GHC.Prim", "cloneSmallArray#"),
+    ('9', 731, InTerms, Just "GHC.PrimopWrappers", "cloneSmallArray#"),
+    ('9', 732, InTerms, Just "GHC.Prim", "cloneSmallMutableArray#"),
+    ('9', 733, InTerms, Just "GHC.PrimopWrappers", "cloneSmallMutableArray#"),
+    ('9', 734, InTerms, Just "GHC.Prim", "freezeSmallArray#"),
+    ('9', 735, InTerms, Just "GHC.PrimopWrappers", "freezeSmallArray#"),
+    ('9', 736, InTerms, Just "GHC.Prim", "thawSmallArray#"),
+    ('9', 737, InTerms, Just "GHC.PrimopWrappers", "thawSmallArray#"),
+    ('9', 738, InTerms, Just "GHC.Prim", "casSmallArray#"),
+    ('9', 739, InTerms, Just "GHC.PrimopWrappers", "casSmallArray#"),
+    ('9', 740, InTerms, Just "GHC.Prim", "newByteArray#"),
+    ('9', 741, InTerms, Just "GHC.PrimopWrappers", "newByteArray#"),
+    ('9', 742, InTerms, Just "GHC.Prim", "newPinnedByteArray#"),
+    ('9', 743, InTerms, Just "GHC.PrimopWrappers", "newPinnedByteArray#"),
+    ('9', 744, InTerms, Just "GHC.Prim", "newAlignedPinnedByteArray#"),
+    ('9', 745, InTerms, Just "GHC.PrimopWrappers", "newAlignedPinnedByteArray#"),
+    ('9', 746, InTerms, Just "GHC.Prim", "isMutableByteArrayPinned#"),
+    ('9', 747, InTerms, Just "GHC.PrimopWrappers", "isMutableByteArrayPinned#"),
+    ('9', 748, InTerms, Just "GHC.Prim", "isByteArrayPinned#"),
+    ('9', 749, InTerms, Just "GHC.PrimopWrappers", "isByteArrayPinned#"),
+    ('9', 750, InTerms, Just "GHC.Prim", "byteArrayContents#"),
+    ('9', 751, InTerms, Just "GHC.PrimopWrappers", "byteArrayContents#"),
+    ('9', 752, InTerms, Just "GHC.Prim", "mutableByteArrayContents#"),
+    ('9', 753, InTerms, Just "GHC.PrimopWrappers", "mutableByteArrayContents#"),
+    ('9', 754, InTerms, Just "GHC.Prim", "shrinkMutableByteArray#"),
+    ('9', 755, InTerms, Just "GHC.PrimopWrappers", "shrinkMutableByteArray#"),
+    ('9', 756, InTerms, Just "GHC.Prim", "resizeMutableByteArray#"),
+    ('9', 757, InTerms, Just "GHC.PrimopWrappers", "resizeMutableByteArray#"),
+    ('9', 758, InTerms, Just "GHC.Prim", "unsafeFreezeByteArray#"),
+    ('9', 759, InTerms, Just "GHC.PrimopWrappers", "unsafeFreezeByteArray#"),
+    ('9', 760, InTerms, Just "GHC.Prim", "unsafeThawByteArray#"),
+    ('9', 761, InTerms, Just "GHC.PrimopWrappers", "unsafeThawByteArray#"),
+    ('9', 762, InTerms, Just "GHC.Prim", "sizeofByteArray#"),
+    ('9', 763, InTerms, Just "GHC.PrimopWrappers", "sizeofByteArray#"),
+    ('9', 764, InTerms, Just "GHC.Prim", "sizeofMutableByteArray#"),
+    ('9', 765, InTerms, Just "GHC.PrimopWrappers", "sizeofMutableByteArray#"),
+    ('9', 766, InTerms, Just "GHC.Prim", "getSizeofMutableByteArray#"),
+    ('9', 767, InTerms, Just "GHC.PrimopWrappers", "getSizeofMutableByteArray#"),
+    ('9', 768, InTerms, Just "GHC.Prim", "indexCharArray#"),
+    ('9', 769, InTerms, Just "GHC.PrimopWrappers", "indexCharArray#"),
+    ('9', 770, InTerms, Just "GHC.Prim", "indexWideCharArray#"),
+    ('9', 771, InTerms, Just "GHC.PrimopWrappers", "indexWideCharArray#"),
+    ('9', 772, InTerms, Just "GHC.Prim", "indexIntArray#"),
+    ('9', 773, InTerms, Just "GHC.PrimopWrappers", "indexIntArray#"),
+    ('9', 774, InTerms, Just "GHC.Prim", "indexWordArray#"),
+    ('9', 775, InTerms, Just "GHC.PrimopWrappers", "indexWordArray#"),
+    ('9', 776, InTerms, Just "GHC.Prim", "indexAddrArray#"),
+    ('9', 777, InTerms, Just "GHC.PrimopWrappers", "indexAddrArray#"),
+    ('9', 778, InTerms, Just "GHC.Prim", "indexFloatArray#"),
+    ('9', 779, InTerms, Just "GHC.PrimopWrappers", "indexFloatArray#"),
+    ('9', 780, InTerms, Just "GHC.Prim", "indexDoubleArray#"),
+    ('9', 781, InTerms, Just "GHC.PrimopWrappers", "indexDoubleArray#"),
+    ('9', 782, InTerms, Just "GHC.Prim", "indexStablePtrArray#"),
+    ('9', 783, InTerms, Just "GHC.PrimopWrappers", "indexStablePtrArray#"),
+    ('9', 784, InTerms, Just "GHC.Prim", "indexInt8Array#"),
+    ('9', 785, InTerms, Just "GHC.PrimopWrappers", "indexInt8Array#"),
+    ('9', 786, InTerms, Just "GHC.Prim", "indexWord8Array#"),
+    ('9', 787, InTerms, Just "GHC.PrimopWrappers", "indexWord8Array#"),
+    ('9', 788, InTerms, Just "GHC.Prim", "indexInt16Array#"),
+    ('9', 789, InTerms, Just "GHC.PrimopWrappers", "indexInt16Array#"),
+    ('9', 790, InTerms, Just "GHC.Prim", "indexWord16Array#"),
+    ('9', 791, InTerms, Just "GHC.PrimopWrappers", "indexWord16Array#"),
+    ('9', 792, InTerms, Just "GHC.Prim", "indexInt32Array#"),
+    ('9', 793, InTerms, Just "GHC.PrimopWrappers", "indexInt32Array#"),
+    ('9', 794, InTerms, Just "GHC.Prim", "indexWord32Array#"),
+    ('9', 795, InTerms, Just "GHC.PrimopWrappers", "indexWord32Array#"),
+    ('9', 796, InTerms, Just "GHC.Prim", "indexInt64Array#"),
+    ('9', 797, InTerms, Just "GHC.PrimopWrappers", "indexInt64Array#"),
+    ('9', 798, InTerms, Just "GHC.Prim", "indexWord64Array#"),
+    ('9', 799, InTerms, Just "GHC.PrimopWrappers", "indexWord64Array#"),
+    ('9', 800, InTerms, Just "GHC.Prim", "indexWord8ArrayAsChar#"),
+    ('9', 801, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsChar#"),
+    ('9', 802, InTerms, Just "GHC.Prim", "indexWord8ArrayAsWideChar#"),
+    ('9', 803, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsWideChar#"),
+    ('9', 804, InTerms, Just "GHC.Prim", "indexWord8ArrayAsInt#"),
+    ('9', 805, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsInt#"),
+    ('9', 806, InTerms, Just "GHC.Prim", "indexWord8ArrayAsWord#"),
+    ('9', 807, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsWord#"),
+    ('9', 808, InTerms, Just "GHC.Prim", "indexWord8ArrayAsAddr#"),
+    ('9', 809, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsAddr#"),
+    ('9', 810, InTerms, Just "GHC.Prim", "indexWord8ArrayAsFloat#"),
+    ('9', 811, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsFloat#"),
+    ('9', 812, InTerms, Just "GHC.Prim", "indexWord8ArrayAsDouble#"),
+    ('9', 813, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsDouble#"),
+    ('9', 814, InTerms, Just "GHC.Prim", "indexWord8ArrayAsStablePtr#"),
+    ('9', 815, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsStablePtr#"),
+    ('9', 816, InTerms, Just "GHC.Prim", "indexWord8ArrayAsInt16#"),
+    ('9', 817, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsInt16#"),
+    ('9', 818, InTerms, Just "GHC.Prim", "indexWord8ArrayAsWord16#"),
+    ('9', 819, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsWord16#"),
+    ('9', 820, InTerms, Just "GHC.Prim", "indexWord8ArrayAsInt32#"),
+    ('9', 821, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsInt32#"),
+    ('9', 822, InTerms, Just "GHC.Prim", "indexWord8ArrayAsWord32#"),
+    ('9', 823, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsWord32#"),
+    ('9', 824, InTerms, Just "GHC.Prim", "indexWord8ArrayAsInt64#"),
+    ('9', 825, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsInt64#"),
+    ('9', 826, InTerms, Just "GHC.Prim", "indexWord8ArrayAsWord64#"),
+    ('9', 827, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsWord64#"),
+    ('9', 828, InTerms, Just "GHC.Prim", "readCharArray#"),
+    ('9', 829, InTerms, Just "GHC.PrimopWrappers", "readCharArray#"),
+    ('9', 830, InTerms, Just "GHC.Prim", "readWideCharArray#"),
+    ('9', 831, InTerms, Just "GHC.PrimopWrappers", "readWideCharArray#"),
+    ('9', 832, InTerms, Just "GHC.Prim", "readIntArray#"),
+    ('9', 833, InTerms, Just "GHC.PrimopWrappers", "readIntArray#"),
+    ('9', 834, InTerms, Just "GHC.Prim", "readWordArray#"),
+    ('9', 835, InTerms, Just "GHC.PrimopWrappers", "readWordArray#"),
+    ('9', 836, InTerms, Just "GHC.Prim", "readAddrArray#"),
+    ('9', 837, InTerms, Just "GHC.PrimopWrappers", "readAddrArray#"),
+    ('9', 838, InTerms, Just "GHC.Prim", "readFloatArray#"),
+    ('9', 839, InTerms, Just "GHC.PrimopWrappers", "readFloatArray#"),
+    ('9', 840, InTerms, Just "GHC.Prim", "readDoubleArray#"),
+    ('9', 841, InTerms, Just "GHC.PrimopWrappers", "readDoubleArray#"),
+    ('9', 842, InTerms, Just "GHC.Prim", "readStablePtrArray#"),
+    ('9', 843, InTerms, Just "GHC.PrimopWrappers", "readStablePtrArray#"),
+    ('9', 844, InTerms, Just "GHC.Prim", "readInt8Array#"),
+    ('9', 845, InTerms, Just "GHC.PrimopWrappers", "readInt8Array#"),
+    ('9', 846, InTerms, Just "GHC.Prim", "readWord8Array#"),
+    ('9', 847, InTerms, Just "GHC.PrimopWrappers", "readWord8Array#"),
+    ('9', 848, InTerms, Just "GHC.Prim", "readInt16Array#"),
+    ('9', 849, InTerms, Just "GHC.PrimopWrappers", "readInt16Array#"),
+    ('9', 850, InTerms, Just "GHC.Prim", "readWord16Array#"),
+    ('9', 851, InTerms, Just "GHC.PrimopWrappers", "readWord16Array#"),
+    ('9', 852, InTerms, Just "GHC.Prim", "readInt32Array#"),
+    ('9', 853, InTerms, Just "GHC.PrimopWrappers", "readInt32Array#"),
+    ('9', 854, InTerms, Just "GHC.Prim", "readWord32Array#"),
+    ('9', 855, InTerms, Just "GHC.PrimopWrappers", "readWord32Array#"),
+    ('9', 856, InTerms, Just "GHC.Prim", "readInt64Array#"),
+    ('9', 857, InTerms, Just "GHC.PrimopWrappers", "readInt64Array#"),
+    ('9', 858, InTerms, Just "GHC.Prim", "readWord64Array#"),
+    ('9', 859, InTerms, Just "GHC.PrimopWrappers", "readWord64Array#"),
+    ('9', 860, InTerms, Just "GHC.Prim", "readWord8ArrayAsChar#"),
+    ('9', 861, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsChar#"),
+    ('9', 862, InTerms, Just "GHC.Prim", "readWord8ArrayAsWideChar#"),
+    ('9', 863, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsWideChar#"),
+    ('9', 864, InTerms, Just "GHC.Prim", "readWord8ArrayAsInt#"),
+    ('9', 865, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsInt#"),
+    ('9', 866, InTerms, Just "GHC.Prim", "readWord8ArrayAsWord#"),
+    ('9', 867, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsWord#"),
+    ('9', 868, InTerms, Just "GHC.Prim", "readWord8ArrayAsAddr#"),
+    ('9', 869, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsAddr#"),
+    ('9', 870, InTerms, Just "GHC.Prim", "readWord8ArrayAsFloat#"),
+    ('9', 871, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsFloat#"),
+    ('9', 872, InTerms, Just "GHC.Prim", "readWord8ArrayAsDouble#"),
+    ('9', 873, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsDouble#"),
+    ('9', 874, InTerms, Just "GHC.Prim", "readWord8ArrayAsStablePtr#"),
+    ('9', 875, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsStablePtr#"),
+    ('9', 876, InTerms, Just "GHC.Prim", "readWord8ArrayAsInt16#"),
+    ('9', 877, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsInt16#"),
+    ('9', 878, InTerms, Just "GHC.Prim", "readWord8ArrayAsWord16#"),
+    ('9', 879, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsWord16#"),
+    ('9', 880, InTerms, Just "GHC.Prim", "readWord8ArrayAsInt32#"),
+    ('9', 881, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsInt32#"),
+    ('9', 882, InTerms, Just "GHC.Prim", "readWord8ArrayAsWord32#"),
+    ('9', 883, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsWord32#"),
+    ('9', 884, InTerms, Just "GHC.Prim", "readWord8ArrayAsInt64#"),
+    ('9', 885, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsInt64#"),
+    ('9', 886, InTerms, Just "GHC.Prim", "readWord8ArrayAsWord64#"),
+    ('9', 887, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsWord64#"),
+    ('9', 888, InTerms, Just "GHC.Prim", "writeCharArray#"),
+    ('9', 889, InTerms, Just "GHC.PrimopWrappers", "writeCharArray#"),
+    ('9', 890, InTerms, Just "GHC.Prim", "writeWideCharArray#"),
+    ('9', 891, InTerms, Just "GHC.PrimopWrappers", "writeWideCharArray#"),
+    ('9', 892, InTerms, Just "GHC.Prim", "writeIntArray#"),
+    ('9', 893, InTerms, Just "GHC.PrimopWrappers", "writeIntArray#"),
+    ('9', 894, InTerms, Just "GHC.Prim", "writeWordArray#"),
+    ('9', 895, InTerms, Just "GHC.PrimopWrappers", "writeWordArray#"),
+    ('9', 896, InTerms, Just "GHC.Prim", "writeAddrArray#"),
+    ('9', 897, InTerms, Just "GHC.PrimopWrappers", "writeAddrArray#"),
+    ('9', 898, InTerms, Just "GHC.Prim", "writeFloatArray#"),
+    ('9', 899, InTerms, Just "GHC.PrimopWrappers", "writeFloatArray#"),
+    ('9', 900, InTerms, Just "GHC.Prim", "writeDoubleArray#"),
+    ('9', 901, InTerms, Just "GHC.PrimopWrappers", "writeDoubleArray#"),
+    ('9', 902, InTerms, Just "GHC.Prim", "writeStablePtrArray#"),
+    ('9', 903, InTerms, Just "GHC.PrimopWrappers", "writeStablePtrArray#"),
+    ('9', 904, InTerms, Just "GHC.Prim", "writeInt8Array#"),
+    ('9', 905, InTerms, Just "GHC.PrimopWrappers", "writeInt8Array#"),
+    ('9', 906, InTerms, Just "GHC.Prim", "writeWord8Array#"),
+    ('9', 907, InTerms, Just "GHC.PrimopWrappers", "writeWord8Array#"),
+    ('9', 908, InTerms, Just "GHC.Prim", "writeInt16Array#"),
+    ('9', 909, InTerms, Just "GHC.PrimopWrappers", "writeInt16Array#"),
+    ('9', 910, InTerms, Just "GHC.Prim", "writeWord16Array#"),
+    ('9', 911, InTerms, Just "GHC.PrimopWrappers", "writeWord16Array#"),
+    ('9', 912, InTerms, Just "GHC.Prim", "writeInt32Array#"),
+    ('9', 913, InTerms, Just "GHC.PrimopWrappers", "writeInt32Array#"),
+    ('9', 914, InTerms, Just "GHC.Prim", "writeWord32Array#"),
+    ('9', 915, InTerms, Just "GHC.PrimopWrappers", "writeWord32Array#"),
+    ('9', 916, InTerms, Just "GHC.Prim", "writeInt64Array#"),
+    ('9', 917, InTerms, Just "GHC.PrimopWrappers", "writeInt64Array#"),
+    ('9', 918, InTerms, Just "GHC.Prim", "writeWord64Array#"),
+    ('9', 919, InTerms, Just "GHC.PrimopWrappers", "writeWord64Array#"),
+    ('9', 920, InTerms, Just "GHC.Prim", "writeWord8ArrayAsChar#"),
+    ('9', 921, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsChar#"),
+    ('9', 922, InTerms, Just "GHC.Prim", "writeWord8ArrayAsWideChar#"),
+    ('9', 923, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsWideChar#"),
+    ('9', 924, InTerms, Just "GHC.Prim", "writeWord8ArrayAsInt#"),
+    ('9', 925, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsInt#"),
+    ('9', 926, InTerms, Just "GHC.Prim", "writeWord8ArrayAsWord#"),
+    ('9', 927, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsWord#"),
+    ('9', 928, InTerms, Just "GHC.Prim", "writeWord8ArrayAsAddr#"),
+    ('9', 929, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsAddr#"),
+    ('9', 930, InTerms, Just "GHC.Prim", "writeWord8ArrayAsFloat#"),
+    ('9', 931, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsFloat#"),
+    ('9', 932, InTerms, Just "GHC.Prim", "writeWord8ArrayAsDouble#"),
+    ('9', 933, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsDouble#"),
+    ('9', 934, InTerms, Just "GHC.Prim", "writeWord8ArrayAsStablePtr#"),
+    ('9', 935, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsStablePtr#"),
+    ('9', 936, InTerms, Just "GHC.Prim", "writeWord8ArrayAsInt16#"),
+    ('9', 937, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsInt16#"),
+    ('9', 938, InTerms, Just "GHC.Prim", "writeWord8ArrayAsWord16#"),
+    ('9', 939, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsWord16#"),
+    ('9', 940, InTerms, Just "GHC.Prim", "writeWord8ArrayAsInt32#"),
+    ('9', 941, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsInt32#"),
+    ('9', 942, InTerms, Just "GHC.Prim", "writeWord8ArrayAsWord32#"),
+    ('9', 943, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsWord32#"),
+    ('9', 944, InTerms, Just "GHC.Prim", "writeWord8ArrayAsInt64#"),
+    ('9', 945, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsInt64#"),
+    ('9', 946, InTerms, Just "GHC.Prim", "writeWord8ArrayAsWord64#"),
+    ('9', 947, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsWord64#"),
+    ('9', 948, InTerms, Just "GHC.Prim", "compareByteArrays#"),
+    ('9', 949, InTerms, Just "GHC.PrimopWrappers", "compareByteArrays#"),
+    ('9', 950, InTerms, Just "GHC.Prim", "copyByteArray#"),
+    ('9', 951, InTerms, Just "GHC.PrimopWrappers", "copyByteArray#"),
+    ('9', 952, InTerms, Just "GHC.Prim", "copyMutableByteArray#"),
+    ('9', 953, InTerms, Just "GHC.PrimopWrappers", "copyMutableByteArray#"),
+    ('9', 954, InTerms, Just "GHC.Prim", "copyMutableByteArrayNonOverlapping#"),
+    ('9', 955, InTerms, Just "GHC.PrimopWrappers", "copyMutableByteArrayNonOverlapping#"),
+    ('9', 956, InTerms, Just "GHC.Prim", "copyByteArrayToAddr#"),
+    ('9', 957, InTerms, Just "GHC.PrimopWrappers", "copyByteArrayToAddr#"),
+    ('9', 958, InTerms, Just "GHC.Prim", "copyMutableByteArrayToAddr#"),
+    ('9', 959, InTerms, Just "GHC.PrimopWrappers", "copyMutableByteArrayToAddr#"),
+    ('9', 960, InTerms, Just "GHC.Prim", "copyAddrToByteArray#"),
+    ('9', 961, InTerms, Just "GHC.PrimopWrappers", "copyAddrToByteArray#"),
+    ('9', 962, InTerms, Just "GHC.Prim", "copyAddrToAddr#"),
+    ('9', 963, InTerms, Just "GHC.PrimopWrappers", "copyAddrToAddr#"),
+    ('9', 964, InTerms, Just "GHC.Prim", "copyAddrToAddrNonOverlapping#"),
+    ('9', 965, InTerms, Just "GHC.PrimopWrappers", "copyAddrToAddrNonOverlapping#"),
+    ('9', 966, InTerms, Just "GHC.Prim", "setByteArray#"),
+    ('9', 967, InTerms, Just "GHC.PrimopWrappers", "setByteArray#"),
+    ('9', 968, InTerms, Just "GHC.Prim", "setAddrRange#"),
+    ('9', 969, InTerms, Just "GHC.PrimopWrappers", "setAddrRange#"),
+    ('9', 970, InTerms, Just "GHC.Prim", "atomicReadIntArray#"),
+    ('9', 971, InTerms, Just "GHC.PrimopWrappers", "atomicReadIntArray#"),
+    ('9', 972, InTerms, Just "GHC.Prim", "atomicWriteIntArray#"),
+    ('9', 973, InTerms, Just "GHC.PrimopWrappers", "atomicWriteIntArray#"),
+    ('9', 974, InTerms, Just "GHC.Prim", "casIntArray#"),
+    ('9', 975, InTerms, Just "GHC.PrimopWrappers", "casIntArray#"),
+    ('9', 976, InTerms, Just "GHC.Prim", "casInt8Array#"),
+    ('9', 977, InTerms, Just "GHC.PrimopWrappers", "casInt8Array#"),
+    ('9', 978, InTerms, Just "GHC.Prim", "casInt16Array#"),
+    ('9', 979, InTerms, Just "GHC.PrimopWrappers", "casInt16Array#"),
+    ('9', 980, InTerms, Just "GHC.Prim", "casInt32Array#"),
+    ('9', 981, InTerms, Just "GHC.PrimopWrappers", "casInt32Array#"),
+    ('9', 982, InTerms, Just "GHC.Prim", "casInt64Array#"),
+    ('9', 983, InTerms, Just "GHC.PrimopWrappers", "casInt64Array#"),
+    ('9', 984, InTerms, Just "GHC.Prim", "fetchAddIntArray#"),
+    ('9', 985, InTerms, Just "GHC.PrimopWrappers", "fetchAddIntArray#"),
+    ('9', 986, InTerms, Just "GHC.Prim", "fetchSubIntArray#"),
+    ('9', 987, InTerms, Just "GHC.PrimopWrappers", "fetchSubIntArray#"),
+    ('9', 988, InTerms, Just "GHC.Prim", "fetchAndIntArray#"),
+    ('9', 989, InTerms, Just "GHC.PrimopWrappers", "fetchAndIntArray#"),
+    ('9', 990, InTerms, Just "GHC.Prim", "fetchNandIntArray#"),
+    ('9', 991, InTerms, Just "GHC.PrimopWrappers", "fetchNandIntArray#"),
+    ('9', 992, InTerms, Just "GHC.Prim", "fetchOrIntArray#"),
+    ('9', 993, InTerms, Just "GHC.PrimopWrappers", "fetchOrIntArray#"),
+    ('9', 994, InTerms, Just "GHC.Prim", "fetchXorIntArray#"),
+    ('9', 995, InTerms, Just "GHC.PrimopWrappers", "fetchXorIntArray#"),
+    ('9', 996, InTerms, Just "GHC.Prim", "plusAddr#"),
+    ('9', 997, InTerms, Just "GHC.PrimopWrappers", "plusAddr#"),
+    ('9', 998, InTerms, Just "GHC.Prim", "minusAddr#"),
+    ('9', 999, InTerms, Just "GHC.PrimopWrappers", "minusAddr#"),
+    ('9', 1000, InTerms, Just "GHC.Prim", "remAddr#"),
+    ('9', 1001, InTerms, Just "GHC.PrimopWrappers", "remAddr#"),
+    ('9', 1002, InTerms, Just "GHC.Prim", "addr2Int#"),
+    ('9', 1003, InTerms, Just "GHC.PrimopWrappers", "addr2Int#"),
+    ('9', 1004, InTerms, Just "GHC.Prim", "int2Addr#"),
+    ('9', 1005, InTerms, Just "GHC.PrimopWrappers", "int2Addr#"),
+    ('9', 1006, InTerms, Just "GHC.Prim", "gtAddr#"),
+    ('9', 1007, InTerms, Just "GHC.PrimopWrappers", "gtAddr#"),
+    ('9', 1008, InTerms, Just "GHC.Prim", "geAddr#"),
+    ('9', 1009, InTerms, Just "GHC.PrimopWrappers", "geAddr#"),
+    ('9', 1010, InTerms, Just "GHC.Prim", "eqAddr#"),
+    ('9', 1011, InTerms, Just "GHC.PrimopWrappers", "eqAddr#"),
+    ('9', 1012, InTerms, Just "GHC.Prim", "neAddr#"),
+    ('9', 1013, InTerms, Just "GHC.PrimopWrappers", "neAddr#"),
+    ('9', 1014, InTerms, Just "GHC.Prim", "ltAddr#"),
+    ('9', 1015, InTerms, Just "GHC.PrimopWrappers", "ltAddr#"),
+    ('9', 1016, InTerms, Just "GHC.Prim", "leAddr#"),
+    ('9', 1017, InTerms, Just "GHC.PrimopWrappers", "leAddr#"),
+    ('9', 1018, InTerms, Just "GHC.Prim", "indexCharOffAddr#"),
+    ('9', 1019, InTerms, Just "GHC.PrimopWrappers", "indexCharOffAddr#"),
+    ('9', 1020, InTerms, Just "GHC.Prim", "indexWideCharOffAddr#"),
+    ('9', 1021, InTerms, Just "GHC.PrimopWrappers", "indexWideCharOffAddr#"),
+    ('9', 1022, InTerms, Just "GHC.Prim", "indexIntOffAddr#"),
+    ('9', 1023, InTerms, Just "GHC.PrimopWrappers", "indexIntOffAddr#"),
+    ('9', 1024, InTerms, Just "GHC.Prim", "indexWordOffAddr#"),
+    ('9', 1025, InTerms, Just "GHC.PrimopWrappers", "indexWordOffAddr#"),
+    ('9', 1026, InTerms, Just "GHC.Prim", "indexAddrOffAddr#"),
+    ('9', 1027, InTerms, Just "GHC.PrimopWrappers", "indexAddrOffAddr#"),
+    ('9', 1028, InTerms, Just "GHC.Prim", "indexFloatOffAddr#"),
+    ('9', 1029, InTerms, Just "GHC.PrimopWrappers", "indexFloatOffAddr#"),
+    ('9', 1030, InTerms, Just "GHC.Prim", "indexDoubleOffAddr#"),
+    ('9', 1031, InTerms, Just "GHC.PrimopWrappers", "indexDoubleOffAddr#"),
+    ('9', 1032, InTerms, Just "GHC.Prim", "indexStablePtrOffAddr#"),
+    ('9', 1033, InTerms, Just "GHC.PrimopWrappers", "indexStablePtrOffAddr#"),
+    ('9', 1034, InTerms, Just "GHC.Prim", "indexInt8OffAddr#"),
+    ('9', 1035, InTerms, Just "GHC.PrimopWrappers", "indexInt8OffAddr#"),
+    ('9', 1036, InTerms, Just "GHC.Prim", "indexWord8OffAddr#"),
+    ('9', 1037, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddr#"),
+    ('9', 1038, InTerms, Just "GHC.Prim", "indexInt16OffAddr#"),
+    ('9', 1039, InTerms, Just "GHC.PrimopWrappers", "indexInt16OffAddr#"),
+    ('9', 1040, InTerms, Just "GHC.Prim", "indexWord16OffAddr#"),
+    ('9', 1041, InTerms, Just "GHC.PrimopWrappers", "indexWord16OffAddr#"),
+    ('9', 1042, InTerms, Just "GHC.Prim", "indexInt32OffAddr#"),
+    ('9', 1043, InTerms, Just "GHC.PrimopWrappers", "indexInt32OffAddr#"),
+    ('9', 1044, InTerms, Just "GHC.Prim", "indexWord32OffAddr#"),
+    ('9', 1045, InTerms, Just "GHC.PrimopWrappers", "indexWord32OffAddr#"),
+    ('9', 1046, InTerms, Just "GHC.Prim", "indexInt64OffAddr#"),
+    ('9', 1047, InTerms, Just "GHC.PrimopWrappers", "indexInt64OffAddr#"),
+    ('9', 1048, InTerms, Just "GHC.Prim", "indexWord64OffAddr#"),
+    ('9', 1049, InTerms, Just "GHC.PrimopWrappers", "indexWord64OffAddr#"),
+    ('9', 1050, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsChar#"),
+    ('9', 1051, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsChar#"),
+    ('9', 1052, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsWideChar#"),
+    ('9', 1053, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsWideChar#"),
+    ('9', 1054, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsInt#"),
+    ('9', 1055, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsInt#"),
+    ('9', 1056, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsWord#"),
+    ('9', 1057, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsWord#"),
+    ('9', 1058, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsAddr#"),
+    ('9', 1059, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsAddr#"),
+    ('9', 1060, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsFloat#"),
+    ('9', 1061, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsFloat#"),
+    ('9', 1062, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsDouble#"),
+    ('9', 1063, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsDouble#"),
+    ('9', 1064, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsStablePtr#"),
+    ('9', 1065, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsStablePtr#"),
+    ('9', 1066, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsInt16#"),
+    ('9', 1067, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsInt16#"),
+    ('9', 1068, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsWord16#"),
+    ('9', 1069, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsWord16#"),
+    ('9', 1070, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsInt32#"),
+    ('9', 1071, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsInt32#"),
+    ('9', 1072, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsWord32#"),
+    ('9', 1073, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsWord32#"),
+    ('9', 1074, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsInt64#"),
+    ('9', 1075, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsInt64#"),
+    ('9', 1076, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsWord64#"),
+    ('9', 1077, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsWord64#"),
+    ('9', 1078, InTerms, Just "GHC.Prim", "readCharOffAddr#"),
+    ('9', 1079, InTerms, Just "GHC.PrimopWrappers", "readCharOffAddr#"),
+    ('9', 1080, InTerms, Just "GHC.Prim", "readWideCharOffAddr#"),
+    ('9', 1081, InTerms, Just "GHC.PrimopWrappers", "readWideCharOffAddr#"),
+    ('9', 1082, InTerms, Just "GHC.Prim", "readIntOffAddr#"),
+    ('9', 1083, InTerms, Just "GHC.PrimopWrappers", "readIntOffAddr#"),
+    ('9', 1084, InTerms, Just "GHC.Prim", "readWordOffAddr#"),
+    ('9', 1085, InTerms, Just "GHC.PrimopWrappers", "readWordOffAddr#"),
+    ('9', 1086, InTerms, Just "GHC.Prim", "readAddrOffAddr#"),
+    ('9', 1087, InTerms, Just "GHC.PrimopWrappers", "readAddrOffAddr#"),
+    ('9', 1088, InTerms, Just "GHC.Prim", "readFloatOffAddr#"),
+    ('9', 1089, InTerms, Just "GHC.PrimopWrappers", "readFloatOffAddr#"),
+    ('9', 1090, InTerms, Just "GHC.Prim", "readDoubleOffAddr#"),
+    ('9', 1091, InTerms, Just "GHC.PrimopWrappers", "readDoubleOffAddr#"),
+    ('9', 1092, InTerms, Just "GHC.Prim", "readStablePtrOffAddr#"),
+    ('9', 1093, InTerms, Just "GHC.PrimopWrappers", "readStablePtrOffAddr#"),
+    ('9', 1094, InTerms, Just "GHC.Prim", "readInt8OffAddr#"),
+    ('9', 1095, InTerms, Just "GHC.PrimopWrappers", "readInt8OffAddr#"),
+    ('9', 1096, InTerms, Just "GHC.Prim", "readWord8OffAddr#"),
+    ('9', 1097, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddr#"),
+    ('9', 1098, InTerms, Just "GHC.Prim", "readInt16OffAddr#"),
+    ('9', 1099, InTerms, Just "GHC.PrimopWrappers", "readInt16OffAddr#"),
+    ('9', 1100, InTerms, Just "GHC.Prim", "readWord16OffAddr#"),
+    ('9', 1101, InTerms, Just "GHC.PrimopWrappers", "readWord16OffAddr#"),
+    ('9', 1102, InTerms, Just "GHC.Prim", "readInt32OffAddr#"),
+    ('9', 1103, InTerms, Just "GHC.PrimopWrappers", "readInt32OffAddr#"),
+    ('9', 1104, InTerms, Just "GHC.Prim", "readWord32OffAddr#"),
+    ('9', 1105, InTerms, Just "GHC.PrimopWrappers", "readWord32OffAddr#"),
+    ('9', 1106, InTerms, Just "GHC.Prim", "readInt64OffAddr#"),
+    ('9', 1107, InTerms, Just "GHC.PrimopWrappers", "readInt64OffAddr#"),
+    ('9', 1108, InTerms, Just "GHC.Prim", "readWord64OffAddr#"),
+    ('9', 1109, InTerms, Just "GHC.PrimopWrappers", "readWord64OffAddr#"),
+    ('9', 1110, InTerms, Just "GHC.Prim", "readWord8OffAddrAsChar#"),
+    ('9', 1111, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsChar#"),
+    ('9', 1112, InTerms, Just "GHC.Prim", "readWord8OffAddrAsWideChar#"),
+    ('9', 1113, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsWideChar#"),
+    ('9', 1114, InTerms, Just "GHC.Prim", "readWord8OffAddrAsInt#"),
+    ('9', 1115, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsInt#"),
+    ('9', 1116, InTerms, Just "GHC.Prim", "readWord8OffAddrAsWord#"),
+    ('9', 1117, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsWord#"),
+    ('9', 1118, InTerms, Just "GHC.Prim", "readWord8OffAddrAsAddr#"),
+    ('9', 1119, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsAddr#"),
+    ('9', 1120, InTerms, Just "GHC.Prim", "readWord8OffAddrAsFloat#"),
+    ('9', 1121, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsFloat#"),
+    ('9', 1122, InTerms, Just "GHC.Prim", "readWord8OffAddrAsDouble#"),
+    ('9', 1123, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsDouble#"),
+    ('9', 1124, InTerms, Just "GHC.Prim", "readWord8OffAddrAsStablePtr#"),
+    ('9', 1125, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsStablePtr#"),
+    ('9', 1126, InTerms, Just "GHC.Prim", "readWord8OffAddrAsInt16#"),
+    ('9', 1127, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsInt16#"),
+    ('9', 1128, InTerms, Just "GHC.Prim", "readWord8OffAddrAsWord16#"),
+    ('9', 1129, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsWord16#"),
+    ('9', 1130, InTerms, Just "GHC.Prim", "readWord8OffAddrAsInt32#"),
+    ('9', 1131, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsInt32#"),
+    ('9', 1132, InTerms, Just "GHC.Prim", "readWord8OffAddrAsWord32#"),
+    ('9', 1133, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsWord32#"),
+    ('9', 1134, InTerms, Just "GHC.Prim", "readWord8OffAddrAsInt64#"),
+    ('9', 1135, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsInt64#"),
+    ('9', 1136, InTerms, Just "GHC.Prim", "readWord8OffAddrAsWord64#"),
+    ('9', 1137, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsWord64#"),
+    ('9', 1138, InTerms, Just "GHC.Prim", "writeCharOffAddr#"),
+    ('9', 1139, InTerms, Just "GHC.PrimopWrappers", "writeCharOffAddr#"),
+    ('9', 1140, InTerms, Just "GHC.Prim", "writeWideCharOffAddr#"),
+    ('9', 1141, InTerms, Just "GHC.PrimopWrappers", "writeWideCharOffAddr#"),
+    ('9', 1142, InTerms, Just "GHC.Prim", "writeIntOffAddr#"),
+    ('9', 1143, InTerms, Just "GHC.PrimopWrappers", "writeIntOffAddr#"),
+    ('9', 1144, InTerms, Just "GHC.Prim", "writeWordOffAddr#"),
+    ('9', 1145, InTerms, Just "GHC.PrimopWrappers", "writeWordOffAddr#"),
+    ('9', 1146, InTerms, Just "GHC.Prim", "writeAddrOffAddr#"),
+    ('9', 1147, InTerms, Just "GHC.PrimopWrappers", "writeAddrOffAddr#"),
+    ('9', 1148, InTerms, Just "GHC.Prim", "writeFloatOffAddr#"),
+    ('9', 1149, InTerms, Just "GHC.PrimopWrappers", "writeFloatOffAddr#"),
+    ('9', 1150, InTerms, Just "GHC.Prim", "writeDoubleOffAddr#"),
+    ('9', 1151, InTerms, Just "GHC.PrimopWrappers", "writeDoubleOffAddr#"),
+    ('9', 1152, InTerms, Just "GHC.Prim", "writeStablePtrOffAddr#"),
+    ('9', 1153, InTerms, Just "GHC.PrimopWrappers", "writeStablePtrOffAddr#"),
+    ('9', 1154, InTerms, Just "GHC.Prim", "writeInt8OffAddr#"),
+    ('9', 1155, InTerms, Just "GHC.PrimopWrappers", "writeInt8OffAddr#"),
+    ('9', 1156, InTerms, Just "GHC.Prim", "writeWord8OffAddr#"),
+    ('9', 1157, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddr#"),
+    ('9', 1158, InTerms, Just "GHC.Prim", "writeInt16OffAddr#"),
+    ('9', 1159, InTerms, Just "GHC.PrimopWrappers", "writeInt16OffAddr#"),
+    ('9', 1160, InTerms, Just "GHC.Prim", "writeWord16OffAddr#"),
+    ('9', 1161, InTerms, Just "GHC.PrimopWrappers", "writeWord16OffAddr#"),
+    ('9', 1162, InTerms, Just "GHC.Prim", "writeInt32OffAddr#"),
+    ('9', 1163, InTerms, Just "GHC.PrimopWrappers", "writeInt32OffAddr#"),
+    ('9', 1164, InTerms, Just "GHC.Prim", "writeWord32OffAddr#"),
+    ('9', 1165, InTerms, Just "GHC.PrimopWrappers", "writeWord32OffAddr#"),
+    ('9', 1166, InTerms, Just "GHC.Prim", "writeInt64OffAddr#"),
+    ('9', 1167, InTerms, Just "GHC.PrimopWrappers", "writeInt64OffAddr#"),
+    ('9', 1168, InTerms, Just "GHC.Prim", "writeWord64OffAddr#"),
+    ('9', 1169, InTerms, Just "GHC.PrimopWrappers", "writeWord64OffAddr#"),
+    ('9', 1170, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsChar#"),
+    ('9', 1171, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsChar#"),
+    ('9', 1172, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsWideChar#"),
+    ('9', 1173, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsWideChar#"),
+    ('9', 1174, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsInt#"),
+    ('9', 1175, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsInt#"),
+    ('9', 1176, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsWord#"),
+    ('9', 1177, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsWord#"),
+    ('9', 1178, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsAddr#"),
+    ('9', 1179, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsAddr#"),
+    ('9', 1180, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsFloat#"),
+    ('9', 1181, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsFloat#"),
+    ('9', 1182, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsDouble#"),
+    ('9', 1183, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsDouble#"),
+    ('9', 1184, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsStablePtr#"),
+    ('9', 1185, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsStablePtr#"),
+    ('9', 1186, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsInt16#"),
+    ('9', 1187, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsInt16#"),
+    ('9', 1188, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsWord16#"),
+    ('9', 1189, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsWord16#"),
+    ('9', 1190, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsInt32#"),
+    ('9', 1191, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsInt32#"),
+    ('9', 1192, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsWord32#"),
+    ('9', 1193, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsWord32#"),
+    ('9', 1194, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsInt64#"),
+    ('9', 1195, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsInt64#"),
+    ('9', 1196, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsWord64#"),
+    ('9', 1197, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsWord64#"),
+    ('9', 1198, InTerms, Just "GHC.Prim", "atomicExchangeAddrAddr#"),
+    ('9', 1199, InTerms, Just "GHC.PrimopWrappers", "atomicExchangeAddrAddr#"),
+    ('9', 1200, InTerms, Just "GHC.Prim", "atomicExchangeWordAddr#"),
+    ('9', 1201, InTerms, Just "GHC.PrimopWrappers", "atomicExchangeWordAddr#"),
+    ('9', 1202, InTerms, Just "GHC.Prim", "atomicCasAddrAddr#"),
+    ('9', 1203, InTerms, Just "GHC.PrimopWrappers", "atomicCasAddrAddr#"),
+    ('9', 1204, InTerms, Just "GHC.Prim", "atomicCasWordAddr#"),
+    ('9', 1205, InTerms, Just "GHC.PrimopWrappers", "atomicCasWordAddr#"),
+    ('9', 1206, InTerms, Just "GHC.Prim", "atomicCasWord8Addr#"),
+    ('9', 1207, InTerms, Just "GHC.PrimopWrappers", "atomicCasWord8Addr#"),
+    ('9', 1208, InTerms, Just "GHC.Prim", "atomicCasWord16Addr#"),
+    ('9', 1209, InTerms, Just "GHC.PrimopWrappers", "atomicCasWord16Addr#"),
+    ('9', 1210, InTerms, Just "GHC.Prim", "atomicCasWord32Addr#"),
+    ('9', 1211, InTerms, Just "GHC.PrimopWrappers", "atomicCasWord32Addr#"),
+    ('9', 1212, InTerms, Just "GHC.Prim", "atomicCasWord64Addr#"),
+    ('9', 1213, InTerms, Just "GHC.PrimopWrappers", "atomicCasWord64Addr#"),
+    ('9', 1214, InTerms, Just "GHC.Prim", "fetchAddWordAddr#"),
+    ('9', 1215, InTerms, Just "GHC.PrimopWrappers", "fetchAddWordAddr#"),
+    ('9', 1216, InTerms, Just "GHC.Prim", "fetchSubWordAddr#"),
+    ('9', 1217, InTerms, Just "GHC.PrimopWrappers", "fetchSubWordAddr#"),
+    ('9', 1218, InTerms, Just "GHC.Prim", "fetchAndWordAddr#"),
+    ('9', 1219, InTerms, Just "GHC.PrimopWrappers", "fetchAndWordAddr#"),
+    ('9', 1220, InTerms, Just "GHC.Prim", "fetchNandWordAddr#"),
+    ('9', 1221, InTerms, Just "GHC.PrimopWrappers", "fetchNandWordAddr#"),
+    ('9', 1222, InTerms, Just "GHC.Prim", "fetchOrWordAddr#"),
+    ('9', 1223, InTerms, Just "GHC.PrimopWrappers", "fetchOrWordAddr#"),
+    ('9', 1224, InTerms, Just "GHC.Prim", "fetchXorWordAddr#"),
+    ('9', 1225, InTerms, Just "GHC.PrimopWrappers", "fetchXorWordAddr#"),
+    ('9', 1226, InTerms, Just "GHC.Prim", "atomicReadWordAddr#"),
+    ('9', 1227, InTerms, Just "GHC.PrimopWrappers", "atomicReadWordAddr#"),
+    ('9', 1228, InTerms, Just "GHC.Prim", "atomicWriteWordAddr#"),
+    ('9', 1229, InTerms, Just "GHC.PrimopWrappers", "atomicWriteWordAddr#"),
+    ('9', 1230, InTerms, Just "GHC.Prim", "newMutVar#"),
+    ('9', 1231, InTerms, Just "GHC.PrimopWrappers", "newMutVar#"),
+    ('9', 1232, InTerms, Just "GHC.Prim", "readMutVar#"),
+    ('9', 1233, InTerms, Just "GHC.PrimopWrappers", "readMutVar#"),
+    ('9', 1234, InTerms, Just "GHC.Prim", "writeMutVar#"),
+    ('9', 1235, InTerms, Just "GHC.PrimopWrappers", "writeMutVar#"),
+    ('9', 1236, InTerms, Just "GHC.Prim", "atomicSwapMutVar#"),
+    ('9', 1237, InTerms, Just "GHC.PrimopWrappers", "atomicSwapMutVar#"),
+    ('9', 1238, InTerms, Just "GHC.Prim", "atomicModifyMutVar2#"),
+    ('9', 1239, InTerms, Just "GHC.PrimopWrappers", "atomicModifyMutVar2#"),
+    ('9', 1240, InTerms, Just "GHC.Prim", "atomicModifyMutVar_#"),
+    ('9', 1241, InTerms, Just "GHC.PrimopWrappers", "atomicModifyMutVar_#"),
+    ('9', 1242, InTerms, Just "GHC.Prim", "casMutVar#"),
+    ('9', 1243, InTerms, Just "GHC.PrimopWrappers", "casMutVar#"),
+    ('9', 1244, InTerms, Just "GHC.Prim", "catch#"),
+    ('9', 1245, InTerms, Just "GHC.PrimopWrappers", "catch#"),
+    ('9', 1246, InTerms, Just "GHC.Prim", "raise#"),
+    ('9', 1247, InTerms, Just "GHC.PrimopWrappers", "raise#"),
+    ('9', 1248, InTerms, Just "GHC.Prim", "raiseUnderflow#"),
+    ('9', 1249, InTerms, Just "GHC.PrimopWrappers", "raiseUnderflow#"),
+    ('9', 1250, InTerms, Just "GHC.Prim", "raiseOverflow#"),
+    ('9', 1251, InTerms, Just "GHC.PrimopWrappers", "raiseOverflow#"),
+    ('9', 1252, InTerms, Just "GHC.Prim", "raiseDivZero#"),
+    ('9', 1253, InTerms, Just "GHC.PrimopWrappers", "raiseDivZero#"),
+    ('9', 1254, InTerms, Just "GHC.Prim", "raiseIO#"),
+    ('9', 1255, InTerms, Just "GHC.PrimopWrappers", "raiseIO#"),
+    ('9', 1256, InTerms, Just "GHC.Prim", "maskAsyncExceptions#"),
+    ('9', 1257, InTerms, Just "GHC.PrimopWrappers", "maskAsyncExceptions#"),
+    ('9', 1258, InTerms, Just "GHC.Prim", "maskUninterruptible#"),
+    ('9', 1259, InTerms, Just "GHC.PrimopWrappers", "maskUninterruptible#"),
+    ('9', 1260, InTerms, Just "GHC.Prim", "unmaskAsyncExceptions#"),
+    ('9', 1261, InTerms, Just "GHC.PrimopWrappers", "unmaskAsyncExceptions#"),
+    ('9', 1262, InTerms, Just "GHC.Prim", "getMaskingState#"),
+    ('9', 1263, InTerms, Just "GHC.PrimopWrappers", "getMaskingState#"),
+    ('9', 1264, InTerms, Just "GHC.Prim", "newPromptTag#"),
+    ('9', 1265, InTerms, Just "GHC.PrimopWrappers", "newPromptTag#"),
+    ('9', 1266, InTerms, Just "GHC.Prim", "prompt#"),
+    ('9', 1267, InTerms, Just "GHC.PrimopWrappers", "prompt#"),
+    ('9', 1268, InTerms, Just "GHC.Prim", "control0#"),
+    ('9', 1269, InTerms, Just "GHC.PrimopWrappers", "control0#"),
+    ('9', 1270, InTerms, Just "GHC.Prim", "atomically#"),
+    ('9', 1271, InTerms, Just "GHC.PrimopWrappers", "atomically#"),
+    ('9', 1272, InTerms, Just "GHC.Prim", "retry#"),
+    ('9', 1273, InTerms, Just "GHC.PrimopWrappers", "retry#"),
+    ('9', 1274, InTerms, Just "GHC.Prim", "catchRetry#"),
+    ('9', 1275, InTerms, Just "GHC.PrimopWrappers", "catchRetry#"),
+    ('9', 1276, InTerms, Just "GHC.Prim", "catchSTM#"),
+    ('9', 1277, InTerms, Just "GHC.PrimopWrappers", "catchSTM#"),
+    ('9', 1278, InTerms, Just "GHC.Prim", "newTVar#"),
+    ('9', 1279, InTerms, Just "GHC.PrimopWrappers", "newTVar#"),
+    ('9', 1280, InTerms, Just "GHC.Prim", "readTVar#"),
+    ('9', 1281, InTerms, Just "GHC.PrimopWrappers", "readTVar#"),
+    ('9', 1282, InTerms, Just "GHC.Prim", "readTVarIO#"),
+    ('9', 1283, InTerms, Just "GHC.PrimopWrappers", "readTVarIO#"),
+    ('9', 1284, InTerms, Just "GHC.Prim", "writeTVar#"),
+    ('9', 1285, InTerms, Just "GHC.PrimopWrappers", "writeTVar#"),
+    ('9', 1286, InTerms, Just "GHC.Prim", "newMVar#"),
+    ('9', 1287, InTerms, Just "GHC.PrimopWrappers", "newMVar#"),
+    ('9', 1288, InTerms, Just "GHC.Prim", "takeMVar#"),
+    ('9', 1289, InTerms, Just "GHC.PrimopWrappers", "takeMVar#"),
+    ('9', 1290, InTerms, Just "GHC.Prim", "tryTakeMVar#"),
+    ('9', 1291, InTerms, Just "GHC.PrimopWrappers", "tryTakeMVar#"),
+    ('9', 1292, InTerms, Just "GHC.Prim", "putMVar#"),
+    ('9', 1293, InTerms, Just "GHC.PrimopWrappers", "putMVar#"),
+    ('9', 1294, InTerms, Just "GHC.Prim", "tryPutMVar#"),
+    ('9', 1295, InTerms, Just "GHC.PrimopWrappers", "tryPutMVar#"),
+    ('9', 1296, InTerms, Just "GHC.Prim", "readMVar#"),
+    ('9', 1297, InTerms, Just "GHC.PrimopWrappers", "readMVar#"),
+    ('9', 1298, InTerms, Just "GHC.Prim", "tryReadMVar#"),
+    ('9', 1299, InTerms, Just "GHC.PrimopWrappers", "tryReadMVar#"),
+    ('9', 1300, InTerms, Just "GHC.Prim", "isEmptyMVar#"),
+    ('9', 1301, InTerms, Just "GHC.PrimopWrappers", "isEmptyMVar#"),
+    ('9', 1302, InTerms, Just "GHC.Prim", "newIOPort#"),
+    ('9', 1303, InTerms, Just "GHC.PrimopWrappers", "newIOPort#"),
+    ('9', 1304, InTerms, Just "GHC.Prim", "readIOPort#"),
+    ('9', 1305, InTerms, Just "GHC.PrimopWrappers", "readIOPort#"),
+    ('9', 1306, InTerms, Just "GHC.Prim", "writeIOPort#"),
+    ('9', 1307, InTerms, Just "GHC.PrimopWrappers", "writeIOPort#"),
+    ('9', 1308, InTerms, Just "GHC.Prim", "delay#"),
+    ('9', 1309, InTerms, Just "GHC.PrimopWrappers", "delay#"),
+    ('9', 1310, InTerms, Just "GHC.Prim", "waitRead#"),
+    ('9', 1311, InTerms, Just "GHC.PrimopWrappers", "waitRead#"),
+    ('9', 1312, InTerms, Just "GHC.Prim", "waitWrite#"),
+    ('9', 1313, InTerms, Just "GHC.PrimopWrappers", "waitWrite#"),
+    ('9', 1314, InTerms, Just "GHC.Prim", "fork#"),
+    ('9', 1315, InTerms, Just "GHC.PrimopWrappers", "fork#"),
+    ('9', 1316, InTerms, Just "GHC.Prim", "forkOn#"),
+    ('9', 1317, InTerms, Just "GHC.PrimopWrappers", "forkOn#"),
+    ('9', 1318, InTerms, Just "GHC.Prim", "killThread#"),
+    ('9', 1319, InTerms, Just "GHC.PrimopWrappers", "killThread#"),
+    ('9', 1320, InTerms, Just "GHC.Prim", "yield#"),
+    ('9', 1321, InTerms, Just "GHC.PrimopWrappers", "yield#"),
+    ('9', 1322, InTerms, Just "GHC.Prim", "myThreadId#"),
+    ('9', 1323, InTerms, Just "GHC.PrimopWrappers", "myThreadId#"),
+    ('9', 1324, InTerms, Just "GHC.Prim", "labelThread#"),
+    ('9', 1325, InTerms, Just "GHC.PrimopWrappers", "labelThread#"),
+    ('9', 1326, InTerms, Just "GHC.Prim", "isCurrentThreadBound#"),
+    ('9', 1327, InTerms, Just "GHC.PrimopWrappers", "isCurrentThreadBound#"),
+    ('9', 1328, InTerms, Just "GHC.Prim", "noDuplicate#"),
+    ('9', 1329, InTerms, Just "GHC.PrimopWrappers", "noDuplicate#"),
+    ('9', 1330, InTerms, Just "GHC.Prim", "threadLabel#"),
+    ('9', 1331, InTerms, Just "GHC.PrimopWrappers", "threadLabel#"),
+    ('9', 1332, InTerms, Just "GHC.Prim", "threadStatus#"),
+    ('9', 1333, InTerms, Just "GHC.PrimopWrappers", "threadStatus#"),
+    ('9', 1334, InTerms, Just "GHC.Prim", "listThreads#"),
+    ('9', 1335, InTerms, Just "GHC.PrimopWrappers", "listThreads#"),
+    ('9', 1336, InTerms, Just "GHC.Prim", "mkWeak#"),
+    ('9', 1337, InTerms, Just "GHC.PrimopWrappers", "mkWeak#"),
+    ('9', 1338, InTerms, Just "GHC.Prim", "mkWeakNoFinalizer#"),
+    ('9', 1339, InTerms, Just "GHC.PrimopWrappers", "mkWeakNoFinalizer#"),
+    ('9', 1340, InTerms, Just "GHC.Prim", "addCFinalizerToWeak#"),
+    ('9', 1341, InTerms, Just "GHC.PrimopWrappers", "addCFinalizerToWeak#"),
+    ('9', 1342, InTerms, Just "GHC.Prim", "deRefWeak#"),
+    ('9', 1343, InTerms, Just "GHC.PrimopWrappers", "deRefWeak#"),
+    ('9', 1344, InTerms, Just "GHC.Prim", "finalizeWeak#"),
+    ('9', 1345, InTerms, Just "GHC.PrimopWrappers", "finalizeWeak#"),
+    ('9', 1346, InTerms, Just "GHC.Prim", "touch#"),
+    ('9', 1347, InTerms, Just "GHC.PrimopWrappers", "touch#"),
+    ('9', 1348, InTerms, Just "GHC.Prim", "makeStablePtr#"),
+    ('9', 1349, InTerms, Just "GHC.PrimopWrappers", "makeStablePtr#"),
+    ('9', 1350, InTerms, Just "GHC.Prim", "deRefStablePtr#"),
+    ('9', 1351, InTerms, Just "GHC.PrimopWrappers", "deRefStablePtr#"),
+    ('9', 1352, InTerms, Just "GHC.Prim", "eqStablePtr#"),
+    ('9', 1353, InTerms, Just "GHC.PrimopWrappers", "eqStablePtr#"),
+    ('9', 1354, InTerms, Just "GHC.Prim", "makeStableName#"),
+    ('9', 1355, InTerms, Just "GHC.PrimopWrappers", "makeStableName#"),
+    ('9', 1356, InTerms, Just "GHC.Prim", "stableNameToInt#"),
+    ('9', 1357, InTerms, Just "GHC.PrimopWrappers", "stableNameToInt#"),
+    ('9', 1358, InTerms, Just "GHC.Prim", "compactNew#"),
+    ('9', 1359, InTerms, Just "GHC.PrimopWrappers", "compactNew#"),
+    ('9', 1360, InTerms, Just "GHC.Prim", "compactResize#"),
+    ('9', 1361, InTerms, Just "GHC.PrimopWrappers", "compactResize#"),
+    ('9', 1362, InTerms, Just "GHC.Prim", "compactContains#"),
+    ('9', 1363, InTerms, Just "GHC.PrimopWrappers", "compactContains#"),
+    ('9', 1364, InTerms, Just "GHC.Prim", "compactContainsAny#"),
+    ('9', 1365, InTerms, Just "GHC.PrimopWrappers", "compactContainsAny#"),
+    ('9', 1366, InTerms, Just "GHC.Prim", "compactGetFirstBlock#"),
+    ('9', 1367, InTerms, Just "GHC.PrimopWrappers", "compactGetFirstBlock#"),
+    ('9', 1368, InTerms, Just "GHC.Prim", "compactGetNextBlock#"),
+    ('9', 1369, InTerms, Just "GHC.PrimopWrappers", "compactGetNextBlock#"),
+    ('9', 1370, InTerms, Just "GHC.Prim", "compactAllocateBlock#"),
+    ('9', 1371, InTerms, Just "GHC.PrimopWrappers", "compactAllocateBlock#"),
+    ('9', 1372, InTerms, Just "GHC.Prim", "compactFixupPointers#"),
+    ('9', 1373, InTerms, Just "GHC.PrimopWrappers", "compactFixupPointers#"),
+    ('9', 1374, InTerms, Just "GHC.Prim", "compactAdd#"),
+    ('9', 1375, InTerms, Just "GHC.PrimopWrappers", "compactAdd#"),
+    ('9', 1376, InTerms, Just "GHC.Prim", "compactAddWithSharing#"),
+    ('9', 1377, InTerms, Just "GHC.PrimopWrappers", "compactAddWithSharing#"),
+    ('9', 1378, InTerms, Just "GHC.Prim", "compactSize#"),
+    ('9', 1379, InTerms, Just "GHC.PrimopWrappers", "compactSize#"),
+    ('9', 1380, InTerms, Just "GHC.Prim", "reallyUnsafePtrEquality#"),
+    ('9', 1381, InTerms, Just "GHC.PrimopWrappers", "reallyUnsafePtrEquality#"),
+    ('9', 1382, InTerms, Just "GHC.Prim", "par#"),
+    ('9', 1383, InTerms, Just "GHC.PrimopWrappers", "par#"),
+    ('9', 1384, InTerms, Just "GHC.Prim", "spark#"),
+    ('9', 1385, InTerms, Just "GHC.PrimopWrappers", "spark#"),
+    ('9', 1386, InTerms, Just "GHC.Prim", "seq#"),
+    ('9', 1387, InTerms, Just "GHC.PrimopWrappers", "seq#"),
+    ('9', 1388, InTerms, Just "GHC.Prim", "getSpark#"),
+    ('9', 1389, InTerms, Just "GHC.PrimopWrappers", "getSpark#"),
+    ('9', 1390, InTerms, Just "GHC.Prim", "numSparks#"),
+    ('9', 1391, InTerms, Just "GHC.PrimopWrappers", "numSparks#"),
+    ('9', 1392, InTerms, Just "GHC.Prim", "keepAlive#"),
+    ('9', 1393, InTerms, Just "GHC.PrimopWrappers", "keepAlive#"),
+    ('9', 1394, InTerms, Just "GHC.Prim", "dataToTagSmall#"),
+    ('9', 1395, InTerms, Just "GHC.PrimopWrappers", "dataToTagSmall#"),
+    ('9', 1396, InTerms, Just "GHC.Prim", "dataToTagLarge#"),
+    ('9', 1397, InTerms, Just "GHC.PrimopWrappers", "dataToTagLarge#"),
+    ('9', 1398, InTerms, Just "GHC.Prim", "tagToEnum#"),
+    ('9', 1399, InTerms, Just "GHC.PrimopWrappers", "tagToEnum#"),
+    ('9', 1400, InTerms, Just "GHC.Prim", "addrToAny#"),
+    ('9', 1401, InTerms, Just "GHC.PrimopWrappers", "addrToAny#"),
+    ('9', 1402, InTerms, Just "GHC.Prim", "anyToAddr#"),
+    ('9', 1403, InTerms, Just "GHC.PrimopWrappers", "anyToAddr#"),
+    ('9', 1404, InTerms, Just "GHC.Prim", "mkApUpd0#"),
+    ('9', 1405, InTerms, Just "GHC.PrimopWrappers", "mkApUpd0#"),
+    ('9', 1406, InTerms, Just "GHC.Prim", "newBCO#"),
+    ('9', 1407, InTerms, Just "GHC.PrimopWrappers", "newBCO#"),
+    ('9', 1408, InTerms, Just "GHC.Prim", "unpackClosure#"),
+    ('9', 1409, InTerms, Just "GHC.PrimopWrappers", "unpackClosure#"),
+    ('9', 1410, InTerms, Just "GHC.Prim", "closureSize#"),
+    ('9', 1411, InTerms, Just "GHC.PrimopWrappers", "closureSize#"),
+    ('9', 1412, InTerms, Just "GHC.Prim", "getApStackVal#"),
+    ('9', 1413, InTerms, Just "GHC.PrimopWrappers", "getApStackVal#"),
+    ('9', 1414, InTerms, Just "GHC.Prim", "getCCSOf#"),
+    ('9', 1415, InTerms, Just "GHC.PrimopWrappers", "getCCSOf#"),
+    ('9', 1416, InTerms, Just "GHC.Prim", "getCurrentCCS#"),
+    ('9', 1417, InTerms, Just "GHC.PrimopWrappers", "getCurrentCCS#"),
+    ('9', 1418, InTerms, Just "GHC.Prim", "clearCCS#"),
+    ('9', 1419, InTerms, Just "GHC.PrimopWrappers", "clearCCS#"),
+    ('9', 1420, InTerms, Just "GHC.Prim", "whereFrom#"),
+    ('9', 1421, InTerms, Just "GHC.PrimopWrappers", "whereFrom#"),
+    ('9', 1422, InTerms, Just "GHC.Prim", "traceEvent#"),
+    ('9', 1423, InTerms, Just "GHC.PrimopWrappers", "traceEvent#"),
+    ('9', 1424, InTerms, Just "GHC.Prim", "traceBinaryEvent#"),
+    ('9', 1425, InTerms, Just "GHC.PrimopWrappers", "traceBinaryEvent#"),
+    ('9', 1426, InTerms, Just "GHC.Prim", "traceMarker#"),
+    ('9', 1427, InTerms, Just "GHC.PrimopWrappers", "traceMarker#"),
+    ('9', 1428, InTerms, Just "GHC.Prim", "setThreadAllocationCounter#"),
+    ('9', 1429, InTerms, Just "GHC.PrimopWrappers", "setThreadAllocationCounter#"),
+    ('9', 1430, InTerms, Just "GHC.Prim", "broadcastInt8X16#"),
+    ('9', 1431, InTerms, Just "GHC.PrimopWrappers", "broadcastInt8X16#"),
+    ('9', 1432, InTerms, Just "GHC.Prim", "broadcastInt16X8#"),
+    ('9', 1433, InTerms, Just "GHC.PrimopWrappers", "broadcastInt16X8#"),
+    ('9', 1434, InTerms, Just "GHC.Prim", "broadcastInt32X4#"),
+    ('9', 1435, InTerms, Just "GHC.PrimopWrappers", "broadcastInt32X4#"),
+    ('9', 1436, InTerms, Just "GHC.Prim", "broadcastInt64X2#"),
+    ('9', 1437, InTerms, Just "GHC.PrimopWrappers", "broadcastInt64X2#"),
+    ('9', 1438, InTerms, Just "GHC.Prim", "broadcastInt8X32#"),
+    ('9', 1439, InTerms, Just "GHC.PrimopWrappers", "broadcastInt8X32#"),
+    ('9', 1440, InTerms, Just "GHC.Prim", "broadcastInt16X16#"),
+    ('9', 1441, InTerms, Just "GHC.PrimopWrappers", "broadcastInt16X16#"),
+    ('9', 1442, InTerms, Just "GHC.Prim", "broadcastInt32X8#"),
+    ('9', 1443, InTerms, Just "GHC.PrimopWrappers", "broadcastInt32X8#"),
+    ('9', 1444, InTerms, Just "GHC.Prim", "broadcastInt64X4#"),
+    ('9', 1445, InTerms, Just "GHC.PrimopWrappers", "broadcastInt64X4#"),
+    ('9', 1446, InTerms, Just "GHC.Prim", "broadcastInt8X64#"),
+    ('9', 1447, InTerms, Just "GHC.PrimopWrappers", "broadcastInt8X64#"),
+    ('9', 1448, InTerms, Just "GHC.Prim", "broadcastInt16X32#"),
+    ('9', 1449, InTerms, Just "GHC.PrimopWrappers", "broadcastInt16X32#"),
+    ('9', 1450, InTerms, Just "GHC.Prim", "broadcastInt32X16#"),
+    ('9', 1451, InTerms, Just "GHC.PrimopWrappers", "broadcastInt32X16#"),
+    ('9', 1452, InTerms, Just "GHC.Prim", "broadcastInt64X8#"),
+    ('9', 1453, InTerms, Just "GHC.PrimopWrappers", "broadcastInt64X8#"),
+    ('9', 1454, InTerms, Just "GHC.Prim", "broadcastWord8X16#"),
+    ('9', 1455, InTerms, Just "GHC.PrimopWrappers", "broadcastWord8X16#"),
+    ('9', 1456, InTerms, Just "GHC.Prim", "broadcastWord16X8#"),
+    ('9', 1457, InTerms, Just "GHC.PrimopWrappers", "broadcastWord16X8#"),
+    ('9', 1458, InTerms, Just "GHC.Prim", "broadcastWord32X4#"),
+    ('9', 1459, InTerms, Just "GHC.PrimopWrappers", "broadcastWord32X4#"),
+    ('9', 1460, InTerms, Just "GHC.Prim", "broadcastWord64X2#"),
+    ('9', 1461, InTerms, Just "GHC.PrimopWrappers", "broadcastWord64X2#"),
+    ('9', 1462, InTerms, Just "GHC.Prim", "broadcastWord8X32#"),
+    ('9', 1463, InTerms, Just "GHC.PrimopWrappers", "broadcastWord8X32#"),
+    ('9', 1464, InTerms, Just "GHC.Prim", "broadcastWord16X16#"),
+    ('9', 1465, InTerms, Just "GHC.PrimopWrappers", "broadcastWord16X16#"),
+    ('9', 1466, InTerms, Just "GHC.Prim", "broadcastWord32X8#"),
+    ('9', 1467, InTerms, Just "GHC.PrimopWrappers", "broadcastWord32X8#"),
+    ('9', 1468, InTerms, Just "GHC.Prim", "broadcastWord64X4#"),
+    ('9', 1469, InTerms, Just "GHC.PrimopWrappers", "broadcastWord64X4#"),
+    ('9', 1470, InTerms, Just "GHC.Prim", "broadcastWord8X64#"),
+    ('9', 1471, InTerms, Just "GHC.PrimopWrappers", "broadcastWord8X64#"),
+    ('9', 1472, InTerms, Just "GHC.Prim", "broadcastWord16X32#"),
+    ('9', 1473, InTerms, Just "GHC.PrimopWrappers", "broadcastWord16X32#"),
+    ('9', 1474, InTerms, Just "GHC.Prim", "broadcastWord32X16#"),
+    ('9', 1475, InTerms, Just "GHC.PrimopWrappers", "broadcastWord32X16#"),
+    ('9', 1476, InTerms, Just "GHC.Prim", "broadcastWord64X8#"),
+    ('9', 1477, InTerms, Just "GHC.PrimopWrappers", "broadcastWord64X8#"),
+    ('9', 1478, InTerms, Just "GHC.Prim", "broadcastFloatX4#"),
+    ('9', 1479, InTerms, Just "GHC.PrimopWrappers", "broadcastFloatX4#"),
+    ('9', 1480, InTerms, Just "GHC.Prim", "broadcastDoubleX2#"),
+    ('9', 1481, InTerms, Just "GHC.PrimopWrappers", "broadcastDoubleX2#"),
+    ('9', 1482, InTerms, Just "GHC.Prim", "broadcastFloatX8#"),
+    ('9', 1483, InTerms, Just "GHC.PrimopWrappers", "broadcastFloatX8#"),
+    ('9', 1484, InTerms, Just "GHC.Prim", "broadcastDoubleX4#"),
+    ('9', 1485, InTerms, Just "GHC.PrimopWrappers", "broadcastDoubleX4#"),
+    ('9', 1486, InTerms, Just "GHC.Prim", "broadcastFloatX16#"),
+    ('9', 1487, InTerms, Just "GHC.PrimopWrappers", "broadcastFloatX16#"),
+    ('9', 1488, InTerms, Just "GHC.Prim", "broadcastDoubleX8#"),
+    ('9', 1489, InTerms, Just "GHC.PrimopWrappers", "broadcastDoubleX8#"),
+    ('9', 1490, InTerms, Just "GHC.Prim", "packInt8X16#"),
+    ('9', 1491, InTerms, Just "GHC.PrimopWrappers", "packInt8X16#"),
+    ('9', 1492, InTerms, Just "GHC.Prim", "packInt16X8#"),
+    ('9', 1493, InTerms, Just "GHC.PrimopWrappers", "packInt16X8#"),
+    ('9', 1494, InTerms, Just "GHC.Prim", "packInt32X4#"),
+    ('9', 1495, InTerms, Just "GHC.PrimopWrappers", "packInt32X4#"),
+    ('9', 1496, InTerms, Just "GHC.Prim", "packInt64X2#"),
+    ('9', 1497, InTerms, Just "GHC.PrimopWrappers", "packInt64X2#"),
+    ('9', 1498, InTerms, Just "GHC.Prim", "packInt8X32#"),
+    ('9', 1499, InTerms, Just "GHC.PrimopWrappers", "packInt8X32#"),
+    ('9', 1500, InTerms, Just "GHC.Prim", "packInt16X16#"),
+    ('9', 1501, InTerms, Just "GHC.PrimopWrappers", "packInt16X16#"),
+    ('9', 1502, InTerms, Just "GHC.Prim", "packInt32X8#"),
+    ('9', 1503, InTerms, Just "GHC.PrimopWrappers", "packInt32X8#"),
+    ('9', 1504, InTerms, Just "GHC.Prim", "packInt64X4#"),
+    ('9', 1505, InTerms, Just "GHC.PrimopWrappers", "packInt64X4#"),
+    ('9', 1506, InTerms, Just "GHC.Prim", "packInt8X64#"),
+    ('9', 1507, InTerms, Just "GHC.PrimopWrappers", "packInt8X64#"),
+    ('9', 1508, InTerms, Just "GHC.Prim", "packInt16X32#"),
+    ('9', 1509, InTerms, Just "GHC.PrimopWrappers", "packInt16X32#"),
+    ('9', 1510, InTerms, Just "GHC.Prim", "packInt32X16#"),
+    ('9', 1511, InTerms, Just "GHC.PrimopWrappers", "packInt32X16#"),
+    ('9', 1512, InTerms, Just "GHC.Prim", "packInt64X8#"),
+    ('9', 1513, InTerms, Just "GHC.PrimopWrappers", "packInt64X8#"),
+    ('9', 1514, InTerms, Just "GHC.Prim", "packWord8X16#"),
+    ('9', 1515, InTerms, Just "GHC.PrimopWrappers", "packWord8X16#"),
+    ('9', 1516, InTerms, Just "GHC.Prim", "packWord16X8#"),
+    ('9', 1517, InTerms, Just "GHC.PrimopWrappers", "packWord16X8#"),
+    ('9', 1518, InTerms, Just "GHC.Prim", "packWord32X4#"),
+    ('9', 1519, InTerms, Just "GHC.PrimopWrappers", "packWord32X4#"),
+    ('9', 1520, InTerms, Just "GHC.Prim", "packWord64X2#"),
+    ('9', 1521, InTerms, Just "GHC.PrimopWrappers", "packWord64X2#"),
+    ('9', 1522, InTerms, Just "GHC.Prim", "packWord8X32#"),
+    ('9', 1523, InTerms, Just "GHC.PrimopWrappers", "packWord8X32#"),
+    ('9', 1524, InTerms, Just "GHC.Prim", "packWord16X16#"),
+    ('9', 1525, InTerms, Just "GHC.PrimopWrappers", "packWord16X16#"),
+    ('9', 1526, InTerms, Just "GHC.Prim", "packWord32X8#"),
+    ('9', 1527, InTerms, Just "GHC.PrimopWrappers", "packWord32X8#"),
+    ('9', 1528, InTerms, Just "GHC.Prim", "packWord64X4#"),
+    ('9', 1529, InTerms, Just "GHC.PrimopWrappers", "packWord64X4#"),
+    ('9', 1530, InTerms, Just "GHC.Prim", "packWord8X64#"),
+    ('9', 1531, InTerms, Just "GHC.PrimopWrappers", "packWord8X64#"),
+    ('9', 1532, InTerms, Just "GHC.Prim", "packWord16X32#"),
+    ('9', 1533, InTerms, Just "GHC.PrimopWrappers", "packWord16X32#"),
+    ('9', 1534, InTerms, Just "GHC.Prim", "packWord32X16#"),
+    ('9', 1535, InTerms, Just "GHC.PrimopWrappers", "packWord32X16#"),
+    ('9', 1536, InTerms, Just "GHC.Prim", "packWord64X8#"),
+    ('9', 1537, InTerms, Just "GHC.PrimopWrappers", "packWord64X8#"),
+    ('9', 1538, InTerms, Just "GHC.Prim", "packFloatX4#"),
+    ('9', 1539, InTerms, Just "GHC.PrimopWrappers", "packFloatX4#"),
+    ('9', 1540, InTerms, Just "GHC.Prim", "packDoubleX2#"),
+    ('9', 1541, InTerms, Just "GHC.PrimopWrappers", "packDoubleX2#"),
+    ('9', 1542, InTerms, Just "GHC.Prim", "packFloatX8#"),
+    ('9', 1543, InTerms, Just "GHC.PrimopWrappers", "packFloatX8#"),
+    ('9', 1544, InTerms, Just "GHC.Prim", "packDoubleX4#"),
+    ('9', 1545, InTerms, Just "GHC.PrimopWrappers", "packDoubleX4#"),
+    ('9', 1546, InTerms, Just "GHC.Prim", "packFloatX16#"),
+    ('9', 1547, InTerms, Just "GHC.PrimopWrappers", "packFloatX16#"),
+    ('9', 1548, InTerms, Just "GHC.Prim", "packDoubleX8#"),
+    ('9', 1549, InTerms, Just "GHC.PrimopWrappers", "packDoubleX8#"),
+    ('9', 1550, InTerms, Just "GHC.Prim", "unpackInt8X16#"),
+    ('9', 1551, InTerms, Just "GHC.PrimopWrappers", "unpackInt8X16#"),
+    ('9', 1552, InTerms, Just "GHC.Prim", "unpackInt16X8#"),
+    ('9', 1553, InTerms, Just "GHC.PrimopWrappers", "unpackInt16X8#"),
+    ('9', 1554, InTerms, Just "GHC.Prim", "unpackInt32X4#"),
+    ('9', 1555, InTerms, Just "GHC.PrimopWrappers", "unpackInt32X4#"),
+    ('9', 1556, InTerms, Just "GHC.Prim", "unpackInt64X2#"),
+    ('9', 1557, InTerms, Just "GHC.PrimopWrappers", "unpackInt64X2#"),
+    ('9', 1558, InTerms, Just "GHC.Prim", "unpackInt8X32#"),
+    ('9', 1559, InTerms, Just "GHC.PrimopWrappers", "unpackInt8X32#"),
+    ('9', 1560, InTerms, Just "GHC.Prim", "unpackInt16X16#"),
+    ('9', 1561, InTerms, Just "GHC.PrimopWrappers", "unpackInt16X16#"),
+    ('9', 1562, InTerms, Just "GHC.Prim", "unpackInt32X8#"),
+    ('9', 1563, InTerms, Just "GHC.PrimopWrappers", "unpackInt32X8#"),
+    ('9', 1564, InTerms, Just "GHC.Prim", "unpackInt64X4#"),
+    ('9', 1565, InTerms, Just "GHC.PrimopWrappers", "unpackInt64X4#"),
+    ('9', 1566, InTerms, Just "GHC.Prim", "unpackInt8X64#"),
+    ('9', 1567, InTerms, Just "GHC.PrimopWrappers", "unpackInt8X64#"),
+    ('9', 1568, InTerms, Just "GHC.Prim", "unpackInt16X32#"),
+    ('9', 1569, InTerms, Just "GHC.PrimopWrappers", "unpackInt16X32#"),
+    ('9', 1570, InTerms, Just "GHC.Prim", "unpackInt32X16#"),
+    ('9', 1571, InTerms, Just "GHC.PrimopWrappers", "unpackInt32X16#"),
+    ('9', 1572, InTerms, Just "GHC.Prim", "unpackInt64X8#"),
+    ('9', 1573, InTerms, Just "GHC.PrimopWrappers", "unpackInt64X8#"),
+    ('9', 1574, InTerms, Just "GHC.Prim", "unpackWord8X16#"),
+    ('9', 1575, InTerms, Just "GHC.PrimopWrappers", "unpackWord8X16#"),
+    ('9', 1576, InTerms, Just "GHC.Prim", "unpackWord16X8#"),
+    ('9', 1577, InTerms, Just "GHC.PrimopWrappers", "unpackWord16X8#"),
+    ('9', 1578, InTerms, Just "GHC.Prim", "unpackWord32X4#"),
+    ('9', 1579, InTerms, Just "GHC.PrimopWrappers", "unpackWord32X4#"),
+    ('9', 1580, InTerms, Just "GHC.Prim", "unpackWord64X2#"),
+    ('9', 1581, InTerms, Just "GHC.PrimopWrappers", "unpackWord64X2#"),
+    ('9', 1582, InTerms, Just "GHC.Prim", "unpackWord8X32#"),
+    ('9', 1583, InTerms, Just "GHC.PrimopWrappers", "unpackWord8X32#"),
+    ('9', 1584, InTerms, Just "GHC.Prim", "unpackWord16X16#"),
+    ('9', 1585, InTerms, Just "GHC.PrimopWrappers", "unpackWord16X16#"),
+    ('9', 1586, InTerms, Just "GHC.Prim", "unpackWord32X8#"),
+    ('9', 1587, InTerms, Just "GHC.PrimopWrappers", "unpackWord32X8#"),
+    ('9', 1588, InTerms, Just "GHC.Prim", "unpackWord64X4#"),
+    ('9', 1589, InTerms, Just "GHC.PrimopWrappers", "unpackWord64X4#"),
+    ('9', 1590, InTerms, Just "GHC.Prim", "unpackWord8X64#"),
+    ('9', 1591, InTerms, Just "GHC.PrimopWrappers", "unpackWord8X64#"),
+    ('9', 1592, InTerms, Just "GHC.Prim", "unpackWord16X32#"),
+    ('9', 1593, InTerms, Just "GHC.PrimopWrappers", "unpackWord16X32#"),
+    ('9', 1594, InTerms, Just "GHC.Prim", "unpackWord32X16#"),
+    ('9', 1595, InTerms, Just "GHC.PrimopWrappers", "unpackWord32X16#"),
+    ('9', 1596, InTerms, Just "GHC.Prim", "unpackWord64X8#"),
+    ('9', 1597, InTerms, Just "GHC.PrimopWrappers", "unpackWord64X8#"),
+    ('9', 1598, InTerms, Just "GHC.Prim", "unpackFloatX4#"),
+    ('9', 1599, InTerms, Just "GHC.PrimopWrappers", "unpackFloatX4#"),
+    ('9', 1600, InTerms, Just "GHC.Prim", "unpackDoubleX2#"),
+    ('9', 1601, InTerms, Just "GHC.PrimopWrappers", "unpackDoubleX2#"),
+    ('9', 1602, InTerms, Just "GHC.Prim", "unpackFloatX8#"),
+    ('9', 1603, InTerms, Just "GHC.PrimopWrappers", "unpackFloatX8#"),
+    ('9', 1604, InTerms, Just "GHC.Prim", "unpackDoubleX4#"),
+    ('9', 1605, InTerms, Just "GHC.PrimopWrappers", "unpackDoubleX4#"),
+    ('9', 1606, InTerms, Just "GHC.Prim", "unpackFloatX16#"),
+    ('9', 1607, InTerms, Just "GHC.PrimopWrappers", "unpackFloatX16#"),
+    ('9', 1608, InTerms, Just "GHC.Prim", "unpackDoubleX8#"),
+    ('9', 1609, InTerms, Just "GHC.PrimopWrappers", "unpackDoubleX8#"),
+    ('9', 1610, InTerms, Just "GHC.Prim", "insertInt8X16#"),
+    ('9', 1611, InTerms, Just "GHC.PrimopWrappers", "insertInt8X16#"),
+    ('9', 1612, InTerms, Just "GHC.Prim", "insertInt16X8#"),
+    ('9', 1613, InTerms, Just "GHC.PrimopWrappers", "insertInt16X8#"),
+    ('9', 1614, InTerms, Just "GHC.Prim", "insertInt32X4#"),
+    ('9', 1615, InTerms, Just "GHC.PrimopWrappers", "insertInt32X4#"),
+    ('9', 1616, InTerms, Just "GHC.Prim", "insertInt64X2#"),
+    ('9', 1617, InTerms, Just "GHC.PrimopWrappers", "insertInt64X2#"),
+    ('9', 1618, InTerms, Just "GHC.Prim", "insertInt8X32#"),
+    ('9', 1619, InTerms, Just "GHC.PrimopWrappers", "insertInt8X32#"),
+    ('9', 1620, InTerms, Just "GHC.Prim", "insertInt16X16#"),
+    ('9', 1621, InTerms, Just "GHC.PrimopWrappers", "insertInt16X16#"),
+    ('9', 1622, InTerms, Just "GHC.Prim", "insertInt32X8#"),
+    ('9', 1623, InTerms, Just "GHC.PrimopWrappers", "insertInt32X8#"),
+    ('9', 1624, InTerms, Just "GHC.Prim", "insertInt64X4#"),
+    ('9', 1625, InTerms, Just "GHC.PrimopWrappers", "insertInt64X4#"),
+    ('9', 1626, InTerms, Just "GHC.Prim", "insertInt8X64#"),
+    ('9', 1627, InTerms, Just "GHC.PrimopWrappers", "insertInt8X64#"),
+    ('9', 1628, InTerms, Just "GHC.Prim", "insertInt16X32#"),
+    ('9', 1629, InTerms, Just "GHC.PrimopWrappers", "insertInt16X32#"),
+    ('9', 1630, InTerms, Just "GHC.Prim", "insertInt32X16#"),
+    ('9', 1631, InTerms, Just "GHC.PrimopWrappers", "insertInt32X16#"),
+    ('9', 1632, InTerms, Just "GHC.Prim", "insertInt64X8#"),
+    ('9', 1633, InTerms, Just "GHC.PrimopWrappers", "insertInt64X8#"),
+    ('9', 1634, InTerms, Just "GHC.Prim", "insertWord8X16#"),
+    ('9', 1635, InTerms, Just "GHC.PrimopWrappers", "insertWord8X16#"),
+    ('9', 1636, InTerms, Just "GHC.Prim", "insertWord16X8#"),
+    ('9', 1637, InTerms, Just "GHC.PrimopWrappers", "insertWord16X8#"),
+    ('9', 1638, InTerms, Just "GHC.Prim", "insertWord32X4#"),
+    ('9', 1639, InTerms, Just "GHC.PrimopWrappers", "insertWord32X4#"),
+    ('9', 1640, InTerms, Just "GHC.Prim", "insertWord64X2#"),
+    ('9', 1641, InTerms, Just "GHC.PrimopWrappers", "insertWord64X2#"),
+    ('9', 1642, InTerms, Just "GHC.Prim", "insertWord8X32#"),
+    ('9', 1643, InTerms, Just "GHC.PrimopWrappers", "insertWord8X32#"),
+    ('9', 1644, InTerms, Just "GHC.Prim", "insertWord16X16#"),
+    ('9', 1645, InTerms, Just "GHC.PrimopWrappers", "insertWord16X16#"),
+    ('9', 1646, InTerms, Just "GHC.Prim", "insertWord32X8#"),
+    ('9', 1647, InTerms, Just "GHC.PrimopWrappers", "insertWord32X8#"),
+    ('9', 1648, InTerms, Just "GHC.Prim", "insertWord64X4#"),
+    ('9', 1649, InTerms, Just "GHC.PrimopWrappers", "insertWord64X4#"),
+    ('9', 1650, InTerms, Just "GHC.Prim", "insertWord8X64#"),
+    ('9', 1651, InTerms, Just "GHC.PrimopWrappers", "insertWord8X64#"),
+    ('9', 1652, InTerms, Just "GHC.Prim", "insertWord16X32#"),
+    ('9', 1653, InTerms, Just "GHC.PrimopWrappers", "insertWord16X32#"),
+    ('9', 1654, InTerms, Just "GHC.Prim", "insertWord32X16#"),
+    ('9', 1655, InTerms, Just "GHC.PrimopWrappers", "insertWord32X16#"),
+    ('9', 1656, InTerms, Just "GHC.Prim", "insertWord64X8#"),
+    ('9', 1657, InTerms, Just "GHC.PrimopWrappers", "insertWord64X8#"),
+    ('9', 1658, InTerms, Just "GHC.Prim", "insertFloatX4#"),
+    ('9', 1659, InTerms, Just "GHC.PrimopWrappers", "insertFloatX4#"),
+    ('9', 1660, InTerms, Just "GHC.Prim", "insertDoubleX2#"),
+    ('9', 1661, InTerms, Just "GHC.PrimopWrappers", "insertDoubleX2#"),
+    ('9', 1662, InTerms, Just "GHC.Prim", "insertFloatX8#"),
+    ('9', 1663, InTerms, Just "GHC.PrimopWrappers", "insertFloatX8#"),
+    ('9', 1664, InTerms, Just "GHC.Prim", "insertDoubleX4#"),
+    ('9', 1665, InTerms, Just "GHC.PrimopWrappers", "insertDoubleX4#"),
+    ('9', 1666, InTerms, Just "GHC.Prim", "insertFloatX16#"),
+    ('9', 1667, InTerms, Just "GHC.PrimopWrappers", "insertFloatX16#"),
+    ('9', 1668, InTerms, Just "GHC.Prim", "insertDoubleX8#"),
+    ('9', 1669, InTerms, Just "GHC.PrimopWrappers", "insertDoubleX8#"),
+    ('9', 1670, InTerms, Just "GHC.Prim", "plusInt8X16#"),
+    ('9', 1671, InTerms, Just "GHC.PrimopWrappers", "plusInt8X16#"),
+    ('9', 1672, InTerms, Just "GHC.Prim", "plusInt16X8#"),
+    ('9', 1673, InTerms, Just "GHC.PrimopWrappers", "plusInt16X8#"),
+    ('9', 1674, InTerms, Just "GHC.Prim", "plusInt32X4#"),
+    ('9', 1675, InTerms, Just "GHC.PrimopWrappers", "plusInt32X4#"),
+    ('9', 1676, InTerms, Just "GHC.Prim", "plusInt64X2#"),
+    ('9', 1677, InTerms, Just "GHC.PrimopWrappers", "plusInt64X2#"),
+    ('9', 1678, InTerms, Just "GHC.Prim", "plusInt8X32#"),
+    ('9', 1679, InTerms, Just "GHC.PrimopWrappers", "plusInt8X32#"),
+    ('9', 1680, InTerms, Just "GHC.Prim", "plusInt16X16#"),
+    ('9', 1681, InTerms, Just "GHC.PrimopWrappers", "plusInt16X16#"),
+    ('9', 1682, InTerms, Just "GHC.Prim", "plusInt32X8#"),
+    ('9', 1683, InTerms, Just "GHC.PrimopWrappers", "plusInt32X8#"),
+    ('9', 1684, InTerms, Just "GHC.Prim", "plusInt64X4#"),
+    ('9', 1685, InTerms, Just "GHC.PrimopWrappers", "plusInt64X4#"),
+    ('9', 1686, InTerms, Just "GHC.Prim", "plusInt8X64#"),
+    ('9', 1687, InTerms, Just "GHC.PrimopWrappers", "plusInt8X64#"),
+    ('9', 1688, InTerms, Just "GHC.Prim", "plusInt16X32#"),
+    ('9', 1689, InTerms, Just "GHC.PrimopWrappers", "plusInt16X32#"),
+    ('9', 1690, InTerms, Just "GHC.Prim", "plusInt32X16#"),
+    ('9', 1691, InTerms, Just "GHC.PrimopWrappers", "plusInt32X16#"),
+    ('9', 1692, InTerms, Just "GHC.Prim", "plusInt64X8#"),
+    ('9', 1693, InTerms, Just "GHC.PrimopWrappers", "plusInt64X8#"),
+    ('9', 1694, InTerms, Just "GHC.Prim", "plusWord8X16#"),
+    ('9', 1695, InTerms, Just "GHC.PrimopWrappers", "plusWord8X16#"),
+    ('9', 1696, InTerms, Just "GHC.Prim", "plusWord16X8#"),
+    ('9', 1697, InTerms, Just "GHC.PrimopWrappers", "plusWord16X8#"),
+    ('9', 1698, InTerms, Just "GHC.Prim", "plusWord32X4#"),
+    ('9', 1699, InTerms, Just "GHC.PrimopWrappers", "plusWord32X4#"),
+    ('9', 1700, InTerms, Just "GHC.Prim", "plusWord64X2#"),
+    ('9', 1701, InTerms, Just "GHC.PrimopWrappers", "plusWord64X2#"),
+    ('9', 1702, InTerms, Just "GHC.Prim", "plusWord8X32#"),
+    ('9', 1703, InTerms, Just "GHC.PrimopWrappers", "plusWord8X32#"),
+    ('9', 1704, InTerms, Just "GHC.Prim", "plusWord16X16#"),
+    ('9', 1705, InTerms, Just "GHC.PrimopWrappers", "plusWord16X16#"),
+    ('9', 1706, InTerms, Just "GHC.Prim", "plusWord32X8#"),
+    ('9', 1707, InTerms, Just "GHC.PrimopWrappers", "plusWord32X8#"),
+    ('9', 1708, InTerms, Just "GHC.Prim", "plusWord64X4#"),
+    ('9', 1709, InTerms, Just "GHC.PrimopWrappers", "plusWord64X4#"),
+    ('9', 1710, InTerms, Just "GHC.Prim", "plusWord8X64#"),
+    ('9', 1711, InTerms, Just "GHC.PrimopWrappers", "plusWord8X64#"),
+    ('9', 1712, InTerms, Just "GHC.Prim", "plusWord16X32#"),
+    ('9', 1713, InTerms, Just "GHC.PrimopWrappers", "plusWord16X32#"),
+    ('9', 1714, InTerms, Just "GHC.Prim", "plusWord32X16#"),
+    ('9', 1715, InTerms, Just "GHC.PrimopWrappers", "plusWord32X16#"),
+    ('9', 1716, InTerms, Just "GHC.Prim", "plusWord64X8#"),
+    ('9', 1717, InTerms, Just "GHC.PrimopWrappers", "plusWord64X8#"),
+    ('9', 1718, InTerms, Just "GHC.Prim", "plusFloatX4#"),
+    ('9', 1719, InTerms, Just "GHC.PrimopWrappers", "plusFloatX4#"),
+    ('9', 1720, InTerms, Just "GHC.Prim", "plusDoubleX2#"),
+    ('9', 1721, InTerms, Just "GHC.PrimopWrappers", "plusDoubleX2#"),
+    ('9', 1722, InTerms, Just "GHC.Prim", "plusFloatX8#"),
+    ('9', 1723, InTerms, Just "GHC.PrimopWrappers", "plusFloatX8#"),
+    ('9', 1724, InTerms, Just "GHC.Prim", "plusDoubleX4#"),
+    ('9', 1725, InTerms, Just "GHC.PrimopWrappers", "plusDoubleX4#"),
+    ('9', 1726, InTerms, Just "GHC.Prim", "plusFloatX16#"),
+    ('9', 1727, InTerms, Just "GHC.PrimopWrappers", "plusFloatX16#"),
+    ('9', 1728, InTerms, Just "GHC.Prim", "plusDoubleX8#"),
+    ('9', 1729, InTerms, Just "GHC.PrimopWrappers", "plusDoubleX8#"),
+    ('9', 1730, InTerms, Just "GHC.Prim", "minusInt8X16#"),
+    ('9', 1731, InTerms, Just "GHC.PrimopWrappers", "minusInt8X16#"),
+    ('9', 1732, InTerms, Just "GHC.Prim", "minusInt16X8#"),
+    ('9', 1733, InTerms, Just "GHC.PrimopWrappers", "minusInt16X8#"),
+    ('9', 1734, InTerms, Just "GHC.Prim", "minusInt32X4#"),
+    ('9', 1735, InTerms, Just "GHC.PrimopWrappers", "minusInt32X4#"),
+    ('9', 1736, InTerms, Just "GHC.Prim", "minusInt64X2#"),
+    ('9', 1737, InTerms, Just "GHC.PrimopWrappers", "minusInt64X2#"),
+    ('9', 1738, InTerms, Just "GHC.Prim", "minusInt8X32#"),
+    ('9', 1739, InTerms, Just "GHC.PrimopWrappers", "minusInt8X32#"),
+    ('9', 1740, InTerms, Just "GHC.Prim", "minusInt16X16#"),
+    ('9', 1741, InTerms, Just "GHC.PrimopWrappers", "minusInt16X16#"),
+    ('9', 1742, InTerms, Just "GHC.Prim", "minusInt32X8#"),
+    ('9', 1743, InTerms, Just "GHC.PrimopWrappers", "minusInt32X8#"),
+    ('9', 1744, InTerms, Just "GHC.Prim", "minusInt64X4#"),
+    ('9', 1745, InTerms, Just "GHC.PrimopWrappers", "minusInt64X4#"),
+    ('9', 1746, InTerms, Just "GHC.Prim", "minusInt8X64#"),
+    ('9', 1747, InTerms, Just "GHC.PrimopWrappers", "minusInt8X64#"),
+    ('9', 1748, InTerms, Just "GHC.Prim", "minusInt16X32#"),
+    ('9', 1749, InTerms, Just "GHC.PrimopWrappers", "minusInt16X32#"),
+    ('9', 1750, InTerms, Just "GHC.Prim", "minusInt32X16#"),
+    ('9', 1751, InTerms, Just "GHC.PrimopWrappers", "minusInt32X16#"),
+    ('9', 1752, InTerms, Just "GHC.Prim", "minusInt64X8#"),
+    ('9', 1753, InTerms, Just "GHC.PrimopWrappers", "minusInt64X8#"),
+    ('9', 1754, InTerms, Just "GHC.Prim", "minusWord8X16#"),
+    ('9', 1755, InTerms, Just "GHC.PrimopWrappers", "minusWord8X16#"),
+    ('9', 1756, InTerms, Just "GHC.Prim", "minusWord16X8#"),
+    ('9', 1757, InTerms, Just "GHC.PrimopWrappers", "minusWord16X8#"),
+    ('9', 1758, InTerms, Just "GHC.Prim", "minusWord32X4#"),
+    ('9', 1759, InTerms, Just "GHC.PrimopWrappers", "minusWord32X4#"),
+    ('9', 1760, InTerms, Just "GHC.Prim", "minusWord64X2#"),
+    ('9', 1761, InTerms, Just "GHC.PrimopWrappers", "minusWord64X2#"),
+    ('9', 1762, InTerms, Just "GHC.Prim", "minusWord8X32#"),
+    ('9', 1763, InTerms, Just "GHC.PrimopWrappers", "minusWord8X32#"),
+    ('9', 1764, InTerms, Just "GHC.Prim", "minusWord16X16#"),
+    ('9', 1765, InTerms, Just "GHC.PrimopWrappers", "minusWord16X16#"),
+    ('9', 1766, InTerms, Just "GHC.Prim", "minusWord32X8#"),
+    ('9', 1767, InTerms, Just "GHC.PrimopWrappers", "minusWord32X8#"),
+    ('9', 1768, InTerms, Just "GHC.Prim", "minusWord64X4#"),
+    ('9', 1769, InTerms, Just "GHC.PrimopWrappers", "minusWord64X4#"),
+    ('9', 1770, InTerms, Just "GHC.Prim", "minusWord8X64#"),
+    ('9', 1771, InTerms, Just "GHC.PrimopWrappers", "minusWord8X64#"),
+    ('9', 1772, InTerms, Just "GHC.Prim", "minusWord16X32#"),
+    ('9', 1773, InTerms, Just "GHC.PrimopWrappers", "minusWord16X32#"),
+    ('9', 1774, InTerms, Just "GHC.Prim", "minusWord32X16#"),
+    ('9', 1775, InTerms, Just "GHC.PrimopWrappers", "minusWord32X16#"),
+    ('9', 1776, InTerms, Just "GHC.Prim", "minusWord64X8#"),
+    ('9', 1777, InTerms, Just "GHC.PrimopWrappers", "minusWord64X8#"),
+    ('9', 1778, InTerms, Just "GHC.Prim", "minusFloatX4#"),
+    ('9', 1779, InTerms, Just "GHC.PrimopWrappers", "minusFloatX4#"),
+    ('9', 1780, InTerms, Just "GHC.Prim", "minusDoubleX2#"),
+    ('9', 1781, InTerms, Just "GHC.PrimopWrappers", "minusDoubleX2#"),
+    ('9', 1782, InTerms, Just "GHC.Prim", "minusFloatX8#"),
+    ('9', 1783, InTerms, Just "GHC.PrimopWrappers", "minusFloatX8#"),
+    ('9', 1784, InTerms, Just "GHC.Prim", "minusDoubleX4#"),
+    ('9', 1785, InTerms, Just "GHC.PrimopWrappers", "minusDoubleX4#"),
+    ('9', 1786, InTerms, Just "GHC.Prim", "minusFloatX16#"),
+    ('9', 1787, InTerms, Just "GHC.PrimopWrappers", "minusFloatX16#"),
+    ('9', 1788, InTerms, Just "GHC.Prim", "minusDoubleX8#"),
+    ('9', 1789, InTerms, Just "GHC.PrimopWrappers", "minusDoubleX8#"),
+    ('9', 1790, InTerms, Just "GHC.Prim", "timesInt8X16#"),
+    ('9', 1791, InTerms, Just "GHC.PrimopWrappers", "timesInt8X16#"),
+    ('9', 1792, InTerms, Just "GHC.Prim", "timesInt16X8#"),
+    ('9', 1793, InTerms, Just "GHC.PrimopWrappers", "timesInt16X8#"),
+    ('9', 1794, InTerms, Just "GHC.Prim", "timesInt32X4#"),
+    ('9', 1795, InTerms, Just "GHC.PrimopWrappers", "timesInt32X4#"),
+    ('9', 1796, InTerms, Just "GHC.Prim", "timesInt64X2#"),
+    ('9', 1797, InTerms, Just "GHC.PrimopWrappers", "timesInt64X2#"),
+    ('9', 1798, InTerms, Just "GHC.Prim", "timesInt8X32#"),
+    ('9', 1799, InTerms, Just "GHC.PrimopWrappers", "timesInt8X32#"),
+    ('9', 1800, InTerms, Just "GHC.Prim", "timesInt16X16#"),
+    ('9', 1801, InTerms, Just "GHC.PrimopWrappers", "timesInt16X16#"),
+    ('9', 1802, InTerms, Just "GHC.Prim", "timesInt32X8#"),
+    ('9', 1803, InTerms, Just "GHC.PrimopWrappers", "timesInt32X8#"),
+    ('9', 1804, InTerms, Just "GHC.Prim", "timesInt64X4#"),
+    ('9', 1805, InTerms, Just "GHC.PrimopWrappers", "timesInt64X4#"),
+    ('9', 1806, InTerms, Just "GHC.Prim", "timesInt8X64#"),
+    ('9', 1807, InTerms, Just "GHC.PrimopWrappers", "timesInt8X64#"),
+    ('9', 1808, InTerms, Just "GHC.Prim", "timesInt16X32#"),
+    ('9', 1809, InTerms, Just "GHC.PrimopWrappers", "timesInt16X32#"),
+    ('9', 1810, InTerms, Just "GHC.Prim", "timesInt32X16#"),
+    ('9', 1811, InTerms, Just "GHC.PrimopWrappers", "timesInt32X16#"),
+    ('9', 1812, InTerms, Just "GHC.Prim", "timesInt64X8#"),
+    ('9', 1813, InTerms, Just "GHC.PrimopWrappers", "timesInt64X8#"),
+    ('9', 1814, InTerms, Just "GHC.Prim", "timesWord8X16#"),
+    ('9', 1815, InTerms, Just "GHC.PrimopWrappers", "timesWord8X16#"),
+    ('9', 1816, InTerms, Just "GHC.Prim", "timesWord16X8#"),
+    ('9', 1817, InTerms, Just "GHC.PrimopWrappers", "timesWord16X8#"),
+    ('9', 1818, InTerms, Just "GHC.Prim", "timesWord32X4#"),
+    ('9', 1819, InTerms, Just "GHC.PrimopWrappers", "timesWord32X4#"),
+    ('9', 1820, InTerms, Just "GHC.Prim", "timesWord64X2#"),
+    ('9', 1821, InTerms, Just "GHC.PrimopWrappers", "timesWord64X2#"),
+    ('9', 1822, InTerms, Just "GHC.Prim", "timesWord8X32#"),
+    ('9', 1823, InTerms, Just "GHC.PrimopWrappers", "timesWord8X32#"),
+    ('9', 1824, InTerms, Just "GHC.Prim", "timesWord16X16#"),
+    ('9', 1825, InTerms, Just "GHC.PrimopWrappers", "timesWord16X16#"),
+    ('9', 1826, InTerms, Just "GHC.Prim", "timesWord32X8#"),
+    ('9', 1827, InTerms, Just "GHC.PrimopWrappers", "timesWord32X8#"),
+    ('9', 1828, InTerms, Just "GHC.Prim", "timesWord64X4#"),
+    ('9', 1829, InTerms, Just "GHC.PrimopWrappers", "timesWord64X4#"),
+    ('9', 1830, InTerms, Just "GHC.Prim", "timesWord8X64#"),
+    ('9', 1831, InTerms, Just "GHC.PrimopWrappers", "timesWord8X64#"),
+    ('9', 1832, InTerms, Just "GHC.Prim", "timesWord16X32#"),
+    ('9', 1833, InTerms, Just "GHC.PrimopWrappers", "timesWord16X32#"),
+    ('9', 1834, InTerms, Just "GHC.Prim", "timesWord32X16#"),
+    ('9', 1835, InTerms, Just "GHC.PrimopWrappers", "timesWord32X16#"),
+    ('9', 1836, InTerms, Just "GHC.Prim", "timesWord64X8#"),
+    ('9', 1837, InTerms, Just "GHC.PrimopWrappers", "timesWord64X8#"),
+    ('9', 1838, InTerms, Just "GHC.Prim", "timesFloatX4#"),
+    ('9', 1839, InTerms, Just "GHC.PrimopWrappers", "timesFloatX4#"),
+    ('9', 1840, InTerms, Just "GHC.Prim", "timesDoubleX2#"),
+    ('9', 1841, InTerms, Just "GHC.PrimopWrappers", "timesDoubleX2#"),
+    ('9', 1842, InTerms, Just "GHC.Prim", "timesFloatX8#"),
+    ('9', 1843, InTerms, Just "GHC.PrimopWrappers", "timesFloatX8#"),
+    ('9', 1844, InTerms, Just "GHC.Prim", "timesDoubleX4#"),
+    ('9', 1845, InTerms, Just "GHC.PrimopWrappers", "timesDoubleX4#"),
+    ('9', 1846, InTerms, Just "GHC.Prim", "timesFloatX16#"),
+    ('9', 1847, InTerms, Just "GHC.PrimopWrappers", "timesFloatX16#"),
+    ('9', 1848, InTerms, Just "GHC.Prim", "timesDoubleX8#"),
+    ('9', 1849, InTerms, Just "GHC.PrimopWrappers", "timesDoubleX8#"),
+    ('9', 1850, InTerms, Just "GHC.Prim", "divideFloatX4#"),
+    ('9', 1851, InTerms, Just "GHC.PrimopWrappers", "divideFloatX4#"),
+    ('9', 1852, InTerms, Just "GHC.Prim", "divideDoubleX2#"),
+    ('9', 1853, InTerms, Just "GHC.PrimopWrappers", "divideDoubleX2#"),
+    ('9', 1854, InTerms, Just "GHC.Prim", "divideFloatX8#"),
+    ('9', 1855, InTerms, Just "GHC.PrimopWrappers", "divideFloatX8#"),
+    ('9', 1856, InTerms, Just "GHC.Prim", "divideDoubleX4#"),
+    ('9', 1857, InTerms, Just "GHC.PrimopWrappers", "divideDoubleX4#"),
+    ('9', 1858, InTerms, Just "GHC.Prim", "divideFloatX16#"),
+    ('9', 1859, InTerms, Just "GHC.PrimopWrappers", "divideFloatX16#"),
+    ('9', 1860, InTerms, Just "GHC.Prim", "divideDoubleX8#"),
+    ('9', 1861, InTerms, Just "GHC.PrimopWrappers", "divideDoubleX8#"),
+    ('9', 1862, InTerms, Just "GHC.Prim", "quotInt8X16#"),
+    ('9', 1863, InTerms, Just "GHC.PrimopWrappers", "quotInt8X16#"),
+    ('9', 1864, InTerms, Just "GHC.Prim", "quotInt16X8#"),
+    ('9', 1865, InTerms, Just "GHC.PrimopWrappers", "quotInt16X8#"),
+    ('9', 1866, InTerms, Just "GHC.Prim", "quotInt32X4#"),
+    ('9', 1867, InTerms, Just "GHC.PrimopWrappers", "quotInt32X4#"),
+    ('9', 1868, InTerms, Just "GHC.Prim", "quotInt64X2#"),
+    ('9', 1869, InTerms, Just "GHC.PrimopWrappers", "quotInt64X2#"),
+    ('9', 1870, InTerms, Just "GHC.Prim", "quotInt8X32#"),
+    ('9', 1871, InTerms, Just "GHC.PrimopWrappers", "quotInt8X32#"),
+    ('9', 1872, InTerms, Just "GHC.Prim", "quotInt16X16#"),
+    ('9', 1873, InTerms, Just "GHC.PrimopWrappers", "quotInt16X16#"),
+    ('9', 1874, InTerms, Just "GHC.Prim", "quotInt32X8#"),
+    ('9', 1875, InTerms, Just "GHC.PrimopWrappers", "quotInt32X8#"),
+    ('9', 1876, InTerms, Just "GHC.Prim", "quotInt64X4#"),
+    ('9', 1877, InTerms, Just "GHC.PrimopWrappers", "quotInt64X4#"),
+    ('9', 1878, InTerms, Just "GHC.Prim", "quotInt8X64#"),
+    ('9', 1879, InTerms, Just "GHC.PrimopWrappers", "quotInt8X64#"),
+    ('9', 1880, InTerms, Just "GHC.Prim", "quotInt16X32#"),
+    ('9', 1881, InTerms, Just "GHC.PrimopWrappers", "quotInt16X32#"),
+    ('9', 1882, InTerms, Just "GHC.Prim", "quotInt32X16#"),
+    ('9', 1883, InTerms, Just "GHC.PrimopWrappers", "quotInt32X16#"),
+    ('9', 1884, InTerms, Just "GHC.Prim", "quotInt64X8#"),
+    ('9', 1885, InTerms, Just "GHC.PrimopWrappers", "quotInt64X8#"),
+    ('9', 1886, InTerms, Just "GHC.Prim", "quotWord8X16#"),
+    ('9', 1887, InTerms, Just "GHC.PrimopWrappers", "quotWord8X16#"),
+    ('9', 1888, InTerms, Just "GHC.Prim", "quotWord16X8#"),
+    ('9', 1889, InTerms, Just "GHC.PrimopWrappers", "quotWord16X8#"),
+    ('9', 1890, InTerms, Just "GHC.Prim", "quotWord32X4#"),
+    ('9', 1891, InTerms, Just "GHC.PrimopWrappers", "quotWord32X4#"),
+    ('9', 1892, InTerms, Just "GHC.Prim", "quotWord64X2#"),
+    ('9', 1893, InTerms, Just "GHC.PrimopWrappers", "quotWord64X2#"),
+    ('9', 1894, InTerms, Just "GHC.Prim", "quotWord8X32#"),
+    ('9', 1895, InTerms, Just "GHC.PrimopWrappers", "quotWord8X32#"),
+    ('9', 1896, InTerms, Just "GHC.Prim", "quotWord16X16#"),
+    ('9', 1897, InTerms, Just "GHC.PrimopWrappers", "quotWord16X16#"),
+    ('9', 1898, InTerms, Just "GHC.Prim", "quotWord32X8#"),
+    ('9', 1899, InTerms, Just "GHC.PrimopWrappers", "quotWord32X8#"),
+    ('9', 1900, InTerms, Just "GHC.Prim", "quotWord64X4#"),
+    ('9', 1901, InTerms, Just "GHC.PrimopWrappers", "quotWord64X4#"),
+    ('9', 1902, InTerms, Just "GHC.Prim", "quotWord8X64#"),
+    ('9', 1903, InTerms, Just "GHC.PrimopWrappers", "quotWord8X64#"),
+    ('9', 1904, InTerms, Just "GHC.Prim", "quotWord16X32#"),
+    ('9', 1905, InTerms, Just "GHC.PrimopWrappers", "quotWord16X32#"),
+    ('9', 1906, InTerms, Just "GHC.Prim", "quotWord32X16#"),
+    ('9', 1907, InTerms, Just "GHC.PrimopWrappers", "quotWord32X16#"),
+    ('9', 1908, InTerms, Just "GHC.Prim", "quotWord64X8#"),
+    ('9', 1909, InTerms, Just "GHC.PrimopWrappers", "quotWord64X8#"),
+    ('9', 1910, InTerms, Just "GHC.Prim", "remInt8X16#"),
+    ('9', 1911, InTerms, Just "GHC.PrimopWrappers", "remInt8X16#"),
+    ('9', 1912, InTerms, Just "GHC.Prim", "remInt16X8#"),
+    ('9', 1913, InTerms, Just "GHC.PrimopWrappers", "remInt16X8#"),
+    ('9', 1914, InTerms, Just "GHC.Prim", "remInt32X4#"),
+    ('9', 1915, InTerms, Just "GHC.PrimopWrappers", "remInt32X4#"),
+    ('9', 1916, InTerms, Just "GHC.Prim", "remInt64X2#"),
+    ('9', 1917, InTerms, Just "GHC.PrimopWrappers", "remInt64X2#"),
+    ('9', 1918, InTerms, Just "GHC.Prim", "remInt8X32#"),
+    ('9', 1919, InTerms, Just "GHC.PrimopWrappers", "remInt8X32#"),
+    ('9', 1920, InTerms, Just "GHC.Prim", "remInt16X16#"),
+    ('9', 1921, InTerms, Just "GHC.PrimopWrappers", "remInt16X16#"),
+    ('9', 1922, InTerms, Just "GHC.Prim", "remInt32X8#"),
+    ('9', 1923, InTerms, Just "GHC.PrimopWrappers", "remInt32X8#"),
+    ('9', 1924, InTerms, Just "GHC.Prim", "remInt64X4#"),
+    ('9', 1925, InTerms, Just "GHC.PrimopWrappers", "remInt64X4#"),
+    ('9', 1926, InTerms, Just "GHC.Prim", "remInt8X64#"),
+    ('9', 1927, InTerms, Just "GHC.PrimopWrappers", "remInt8X64#"),
+    ('9', 1928, InTerms, Just "GHC.Prim", "remInt16X32#"),
+    ('9', 1929, InTerms, Just "GHC.PrimopWrappers", "remInt16X32#"),
+    ('9', 1930, InTerms, Just "GHC.Prim", "remInt32X16#"),
+    ('9', 1931, InTerms, Just "GHC.PrimopWrappers", "remInt32X16#"),
+    ('9', 1932, InTerms, Just "GHC.Prim", "remInt64X8#"),
+    ('9', 1933, InTerms, Just "GHC.PrimopWrappers", "remInt64X8#"),
+    ('9', 1934, InTerms, Just "GHC.Prim", "remWord8X16#"),
+    ('9', 1935, InTerms, Just "GHC.PrimopWrappers", "remWord8X16#"),
+    ('9', 1936, InTerms, Just "GHC.Prim", "remWord16X8#"),
+    ('9', 1937, InTerms, Just "GHC.PrimopWrappers", "remWord16X8#"),
+    ('9', 1938, InTerms, Just "GHC.Prim", "remWord32X4#"),
+    ('9', 1939, InTerms, Just "GHC.PrimopWrappers", "remWord32X4#"),
+    ('9', 1940, InTerms, Just "GHC.Prim", "remWord64X2#"),
+    ('9', 1941, InTerms, Just "GHC.PrimopWrappers", "remWord64X2#"),
+    ('9', 1942, InTerms, Just "GHC.Prim", "remWord8X32#"),
+    ('9', 1943, InTerms, Just "GHC.PrimopWrappers", "remWord8X32#"),
+    ('9', 1944, InTerms, Just "GHC.Prim", "remWord16X16#"),
+    ('9', 1945, InTerms, Just "GHC.PrimopWrappers", "remWord16X16#"),
+    ('9', 1946, InTerms, Just "GHC.Prim", "remWord32X8#"),
+    ('9', 1947, InTerms, Just "GHC.PrimopWrappers", "remWord32X8#"),
+    ('9', 1948, InTerms, Just "GHC.Prim", "remWord64X4#"),
+    ('9', 1949, InTerms, Just "GHC.PrimopWrappers", "remWord64X4#"),
+    ('9', 1950, InTerms, Just "GHC.Prim", "remWord8X64#"),
+    ('9', 1951, InTerms, Just "GHC.PrimopWrappers", "remWord8X64#"),
+    ('9', 1952, InTerms, Just "GHC.Prim", "remWord16X32#"),
+    ('9', 1953, InTerms, Just "GHC.PrimopWrappers", "remWord16X32#"),
+    ('9', 1954, InTerms, Just "GHC.Prim", "remWord32X16#"),
+    ('9', 1955, InTerms, Just "GHC.PrimopWrappers", "remWord32X16#"),
+    ('9', 1956, InTerms, Just "GHC.Prim", "remWord64X8#"),
+    ('9', 1957, InTerms, Just "GHC.PrimopWrappers", "remWord64X8#"),
+    ('9', 1958, InTerms, Just "GHC.Prim", "negateInt8X16#"),
+    ('9', 1959, InTerms, Just "GHC.PrimopWrappers", "negateInt8X16#"),
+    ('9', 1960, InTerms, Just "GHC.Prim", "negateInt16X8#"),
+    ('9', 1961, InTerms, Just "GHC.PrimopWrappers", "negateInt16X8#"),
+    ('9', 1962, InTerms, Just "GHC.Prim", "negateInt32X4#"),
+    ('9', 1963, InTerms, Just "GHC.PrimopWrappers", "negateInt32X4#"),
+    ('9', 1964, InTerms, Just "GHC.Prim", "negateInt64X2#"),
+    ('9', 1965, InTerms, Just "GHC.PrimopWrappers", "negateInt64X2#"),
+    ('9', 1966, InTerms, Just "GHC.Prim", "negateInt8X32#"),
+    ('9', 1967, InTerms, Just "GHC.PrimopWrappers", "negateInt8X32#"),
+    ('9', 1968, InTerms, Just "GHC.Prim", "negateInt16X16#"),
+    ('9', 1969, InTerms, Just "GHC.PrimopWrappers", "negateInt16X16#"),
+    ('9', 1970, InTerms, Just "GHC.Prim", "negateInt32X8#"),
+    ('9', 1971, InTerms, Just "GHC.PrimopWrappers", "negateInt32X8#"),
+    ('9', 1972, InTerms, Just "GHC.Prim", "negateInt64X4#"),
+    ('9', 1973, InTerms, Just "GHC.PrimopWrappers", "negateInt64X4#"),
+    ('9', 1974, InTerms, Just "GHC.Prim", "negateInt8X64#"),
+    ('9', 1975, InTerms, Just "GHC.PrimopWrappers", "negateInt8X64#"),
+    ('9', 1976, InTerms, Just "GHC.Prim", "negateInt16X32#"),
+    ('9', 1977, InTerms, Just "GHC.PrimopWrappers", "negateInt16X32#"),
+    ('9', 1978, InTerms, Just "GHC.Prim", "negateInt32X16#"),
+    ('9', 1979, InTerms, Just "GHC.PrimopWrappers", "negateInt32X16#"),
+    ('9', 1980, InTerms, Just "GHC.Prim", "negateInt64X8#"),
+    ('9', 1981, InTerms, Just "GHC.PrimopWrappers", "negateInt64X8#"),
+    ('9', 1982, InTerms, Just "GHC.Prim", "negateFloatX4#"),
+    ('9', 1983, InTerms, Just "GHC.PrimopWrappers", "negateFloatX4#"),
+    ('9', 1984, InTerms, Just "GHC.Prim", "negateDoubleX2#"),
+    ('9', 1985, InTerms, Just "GHC.PrimopWrappers", "negateDoubleX2#"),
+    ('9', 1986, InTerms, Just "GHC.Prim", "negateFloatX8#"),
+    ('9', 1987, InTerms, Just "GHC.PrimopWrappers", "negateFloatX8#"),
+    ('9', 1988, InTerms, Just "GHC.Prim", "negateDoubleX4#"),
+    ('9', 1989, InTerms, Just "GHC.PrimopWrappers", "negateDoubleX4#"),
+    ('9', 1990, InTerms, Just "GHC.Prim", "negateFloatX16#"),
+    ('9', 1991, InTerms, Just "GHC.PrimopWrappers", "negateFloatX16#"),
+    ('9', 1992, InTerms, Just "GHC.Prim", "negateDoubleX8#"),
+    ('9', 1993, InTerms, Just "GHC.PrimopWrappers", "negateDoubleX8#"),
+    ('9', 1994, InTerms, Just "GHC.Prim", "indexInt8X16Array#"),
+    ('9', 1995, InTerms, Just "GHC.PrimopWrappers", "indexInt8X16Array#"),
+    ('9', 1996, InTerms, Just "GHC.Prim", "indexInt16X8Array#"),
+    ('9', 1997, InTerms, Just "GHC.PrimopWrappers", "indexInt16X8Array#"),
+    ('9', 1998, InTerms, Just "GHC.Prim", "indexInt32X4Array#"),
+    ('9', 1999, InTerms, Just "GHC.PrimopWrappers", "indexInt32X4Array#"),
+    ('9', 2000, InTerms, Just "GHC.Prim", "indexInt64X2Array#"),
+    ('9', 2001, InTerms, Just "GHC.PrimopWrappers", "indexInt64X2Array#"),
+    ('9', 2002, InTerms, Just "GHC.Prim", "indexInt8X32Array#"),
+    ('9', 2003, InTerms, Just "GHC.PrimopWrappers", "indexInt8X32Array#"),
+    ('9', 2004, InTerms, Just "GHC.Prim", "indexInt16X16Array#"),
+    ('9', 2005, InTerms, Just "GHC.PrimopWrappers", "indexInt16X16Array#"),
+    ('9', 2006, InTerms, Just "GHC.Prim", "indexInt32X8Array#"),
+    ('9', 2007, InTerms, Just "GHC.PrimopWrappers", "indexInt32X8Array#"),
+    ('9', 2008, InTerms, Just "GHC.Prim", "indexInt64X4Array#"),
+    ('9', 2009, InTerms, Just "GHC.PrimopWrappers", "indexInt64X4Array#"),
+    ('9', 2010, InTerms, Just "GHC.Prim", "indexInt8X64Array#"),
+    ('9', 2011, InTerms, Just "GHC.PrimopWrappers", "indexInt8X64Array#"),
+    ('9', 2012, InTerms, Just "GHC.Prim", "indexInt16X32Array#"),
+    ('9', 2013, InTerms, Just "GHC.PrimopWrappers", "indexInt16X32Array#"),
+    ('9', 2014, InTerms, Just "GHC.Prim", "indexInt32X16Array#"),
+    ('9', 2015, InTerms, Just "GHC.PrimopWrappers", "indexInt32X16Array#"),
+    ('9', 2016, InTerms, Just "GHC.Prim", "indexInt64X8Array#"),
+    ('9', 2017, InTerms, Just "GHC.PrimopWrappers", "indexInt64X8Array#"),
+    ('9', 2018, InTerms, Just "GHC.Prim", "indexWord8X16Array#"),
+    ('9', 2019, InTerms, Just "GHC.PrimopWrappers", "indexWord8X16Array#"),
+    ('9', 2020, InTerms, Just "GHC.Prim", "indexWord16X8Array#"),
+    ('9', 2021, InTerms, Just "GHC.PrimopWrappers", "indexWord16X8Array#"),
+    ('9', 2022, InTerms, Just "GHC.Prim", "indexWord32X4Array#"),
+    ('9', 2023, InTerms, Just "GHC.PrimopWrappers", "indexWord32X4Array#"),
+    ('9', 2024, InTerms, Just "GHC.Prim", "indexWord64X2Array#"),
+    ('9', 2025, InTerms, Just "GHC.PrimopWrappers", "indexWord64X2Array#"),
+    ('9', 2026, InTerms, Just "GHC.Prim", "indexWord8X32Array#"),
+    ('9', 2027, InTerms, Just "GHC.PrimopWrappers", "indexWord8X32Array#"),
+    ('9', 2028, InTerms, Just "GHC.Prim", "indexWord16X16Array#"),
+    ('9', 2029, InTerms, Just "GHC.PrimopWrappers", "indexWord16X16Array#"),
+    ('9', 2030, InTerms, Just "GHC.Prim", "indexWord32X8Array#"),
+    ('9', 2031, InTerms, Just "GHC.PrimopWrappers", "indexWord32X8Array#"),
+    ('9', 2032, InTerms, Just "GHC.Prim", "indexWord64X4Array#"),
+    ('9', 2033, InTerms, Just "GHC.PrimopWrappers", "indexWord64X4Array#"),
+    ('9', 2034, InTerms, Just "GHC.Prim", "indexWord8X64Array#"),
+    ('9', 2035, InTerms, Just "GHC.PrimopWrappers", "indexWord8X64Array#"),
+    ('9', 2036, InTerms, Just "GHC.Prim", "indexWord16X32Array#"),
+    ('9', 2037, InTerms, Just "GHC.PrimopWrappers", "indexWord16X32Array#"),
+    ('9', 2038, InTerms, Just "GHC.Prim", "indexWord32X16Array#"),
+    ('9', 2039, InTerms, Just "GHC.PrimopWrappers", "indexWord32X16Array#"),
+    ('9', 2040, InTerms, Just "GHC.Prim", "indexWord64X8Array#"),
+    ('9', 2041, InTerms, Just "GHC.PrimopWrappers", "indexWord64X8Array#"),
+    ('9', 2042, InTerms, Just "GHC.Prim", "indexFloatX4Array#"),
+    ('9', 2043, InTerms, Just "GHC.PrimopWrappers", "indexFloatX4Array#"),
+    ('9', 2044, InTerms, Just "GHC.Prim", "indexDoubleX2Array#"),
+    ('9', 2045, InTerms, Just "GHC.PrimopWrappers", "indexDoubleX2Array#"),
+    ('9', 2046, InTerms, Just "GHC.Prim", "indexFloatX8Array#"),
+    ('9', 2047, InTerms, Just "GHC.PrimopWrappers", "indexFloatX8Array#"),
+    ('9', 2048, InTerms, Just "GHC.Prim", "indexDoubleX4Array#"),
+    ('9', 2049, InTerms, Just "GHC.PrimopWrappers", "indexDoubleX4Array#"),
+    ('9', 2050, InTerms, Just "GHC.Prim", "indexFloatX16Array#"),
+    ('9', 2051, InTerms, Just "GHC.PrimopWrappers", "indexFloatX16Array#"),
+    ('9', 2052, InTerms, Just "GHC.Prim", "indexDoubleX8Array#"),
+    ('9', 2053, InTerms, Just "GHC.PrimopWrappers", "indexDoubleX8Array#"),
+    ('9', 2054, InTerms, Just "GHC.Prim", "readInt8X16Array#"),
+    ('9', 2055, InTerms, Just "GHC.PrimopWrappers", "readInt8X16Array#"),
+    ('9', 2056, InTerms, Just "GHC.Prim", "readInt16X8Array#"),
+    ('9', 2057, InTerms, Just "GHC.PrimopWrappers", "readInt16X8Array#"),
+    ('9', 2058, InTerms, Just "GHC.Prim", "readInt32X4Array#"),
+    ('9', 2059, InTerms, Just "GHC.PrimopWrappers", "readInt32X4Array#"),
+    ('9', 2060, InTerms, Just "GHC.Prim", "readInt64X2Array#"),
+    ('9', 2061, InTerms, Just "GHC.PrimopWrappers", "readInt64X2Array#"),
+    ('9', 2062, InTerms, Just "GHC.Prim", "readInt8X32Array#"),
+    ('9', 2063, InTerms, Just "GHC.PrimopWrappers", "readInt8X32Array#"),
+    ('9', 2064, InTerms, Just "GHC.Prim", "readInt16X16Array#"),
+    ('9', 2065, InTerms, Just "GHC.PrimopWrappers", "readInt16X16Array#"),
+    ('9', 2066, InTerms, Just "GHC.Prim", "readInt32X8Array#"),
+    ('9', 2067, InTerms, Just "GHC.PrimopWrappers", "readInt32X8Array#"),
+    ('9', 2068, InTerms, Just "GHC.Prim", "readInt64X4Array#"),
+    ('9', 2069, InTerms, Just "GHC.PrimopWrappers", "readInt64X4Array#"),
+    ('9', 2070, InTerms, Just "GHC.Prim", "readInt8X64Array#"),
+    ('9', 2071, InTerms, Just "GHC.PrimopWrappers", "readInt8X64Array#"),
+    ('9', 2072, InTerms, Just "GHC.Prim", "readInt16X32Array#"),
+    ('9', 2073, InTerms, Just "GHC.PrimopWrappers", "readInt16X32Array#"),
+    ('9', 2074, InTerms, Just "GHC.Prim", "readInt32X16Array#"),
+    ('9', 2075, InTerms, Just "GHC.PrimopWrappers", "readInt32X16Array#"),
+    ('9', 2076, InTerms, Just "GHC.Prim", "readInt64X8Array#"),
+    ('9', 2077, InTerms, Just "GHC.PrimopWrappers", "readInt64X8Array#"),
+    ('9', 2078, InTerms, Just "GHC.Prim", "readWord8X16Array#"),
+    ('9', 2079, InTerms, Just "GHC.PrimopWrappers", "readWord8X16Array#"),
+    ('9', 2080, InTerms, Just "GHC.Prim", "readWord16X8Array#"),
+    ('9', 2081, InTerms, Just "GHC.PrimopWrappers", "readWord16X8Array#"),
+    ('9', 2082, InTerms, Just "GHC.Prim", "readWord32X4Array#"),
+    ('9', 2083, InTerms, Just "GHC.PrimopWrappers", "readWord32X4Array#"),
+    ('9', 2084, InTerms, Just "GHC.Prim", "readWord64X2Array#"),
+    ('9', 2085, InTerms, Just "GHC.PrimopWrappers", "readWord64X2Array#"),
+    ('9', 2086, InTerms, Just "GHC.Prim", "readWord8X32Array#"),
+    ('9', 2087, InTerms, Just "GHC.PrimopWrappers", "readWord8X32Array#"),
+    ('9', 2088, InTerms, Just "GHC.Prim", "readWord16X16Array#"),
+    ('9', 2089, InTerms, Just "GHC.PrimopWrappers", "readWord16X16Array#"),
+    ('9', 2090, InTerms, Just "GHC.Prim", "readWord32X8Array#"),
+    ('9', 2091, InTerms, Just "GHC.PrimopWrappers", "readWord32X8Array#"),
+    ('9', 2092, InTerms, Just "GHC.Prim", "readWord64X4Array#"),
+    ('9', 2093, InTerms, Just "GHC.PrimopWrappers", "readWord64X4Array#"),
+    ('9', 2094, InTerms, Just "GHC.Prim", "readWord8X64Array#"),
+    ('9', 2095, InTerms, Just "GHC.PrimopWrappers", "readWord8X64Array#"),
+    ('9', 2096, InTerms, Just "GHC.Prim", "readWord16X32Array#"),
+    ('9', 2097, InTerms, Just "GHC.PrimopWrappers", "readWord16X32Array#"),
+    ('9', 2098, InTerms, Just "GHC.Prim", "readWord32X16Array#"),
+    ('9', 2099, InTerms, Just "GHC.PrimopWrappers", "readWord32X16Array#"),
+    ('9', 2100, InTerms, Just "GHC.Prim", "readWord64X8Array#"),
+    ('9', 2101, InTerms, Just "GHC.PrimopWrappers", "readWord64X8Array#"),
+    ('9', 2102, InTerms, Just "GHC.Prim", "readFloatX4Array#"),
+    ('9', 2103, InTerms, Just "GHC.PrimopWrappers", "readFloatX4Array#"),
+    ('9', 2104, InTerms, Just "GHC.Prim", "readDoubleX2Array#"),
+    ('9', 2105, InTerms, Just "GHC.PrimopWrappers", "readDoubleX2Array#"),
+    ('9', 2106, InTerms, Just "GHC.Prim", "readFloatX8Array#"),
+    ('9', 2107, InTerms, Just "GHC.PrimopWrappers", "readFloatX8Array#"),
+    ('9', 2108, InTerms, Just "GHC.Prim", "readDoubleX4Array#"),
+    ('9', 2109, InTerms, Just "GHC.PrimopWrappers", "readDoubleX4Array#"),
+    ('9', 2110, InTerms, Just "GHC.Prim", "readFloatX16Array#"),
+    ('9', 2111, InTerms, Just "GHC.PrimopWrappers", "readFloatX16Array#"),
+    ('9', 2112, InTerms, Just "GHC.Prim", "readDoubleX8Array#"),
+    ('9', 2113, InTerms, Just "GHC.PrimopWrappers", "readDoubleX8Array#"),
+    ('9', 2114, InTerms, Just "GHC.Prim", "writeInt8X16Array#"),
+    ('9', 2115, InTerms, Just "GHC.PrimopWrappers", "writeInt8X16Array#"),
+    ('9', 2116, InTerms, Just "GHC.Prim", "writeInt16X8Array#"),
+    ('9', 2117, InTerms, Just "GHC.PrimopWrappers", "writeInt16X8Array#"),
+    ('9', 2118, InTerms, Just "GHC.Prim", "writeInt32X4Array#"),
+    ('9', 2119, InTerms, Just "GHC.PrimopWrappers", "writeInt32X4Array#"),
+    ('9', 2120, InTerms, Just "GHC.Prim", "writeInt64X2Array#"),
+    ('9', 2121, InTerms, Just "GHC.PrimopWrappers", "writeInt64X2Array#"),
+    ('9', 2122, InTerms, Just "GHC.Prim", "writeInt8X32Array#"),
+    ('9', 2123, InTerms, Just "GHC.PrimopWrappers", "writeInt8X32Array#"),
+    ('9', 2124, InTerms, Just "GHC.Prim", "writeInt16X16Array#"),
+    ('9', 2125, InTerms, Just "GHC.PrimopWrappers", "writeInt16X16Array#"),
+    ('9', 2126, InTerms, Just "GHC.Prim", "writeInt32X8Array#"),
+    ('9', 2127, InTerms, Just "GHC.PrimopWrappers", "writeInt32X8Array#"),
+    ('9', 2128, InTerms, Just "GHC.Prim", "writeInt64X4Array#"),
+    ('9', 2129, InTerms, Just "GHC.PrimopWrappers", "writeInt64X4Array#"),
+    ('9', 2130, InTerms, Just "GHC.Prim", "writeInt8X64Array#"),
+    ('9', 2131, InTerms, Just "GHC.PrimopWrappers", "writeInt8X64Array#"),
+    ('9', 2132, InTerms, Just "GHC.Prim", "writeInt16X32Array#"),
+    ('9', 2133, InTerms, Just "GHC.PrimopWrappers", "writeInt16X32Array#"),
+    ('9', 2134, InTerms, Just "GHC.Prim", "writeInt32X16Array#"),
+    ('9', 2135, InTerms, Just "GHC.PrimopWrappers", "writeInt32X16Array#"),
+    ('9', 2136, InTerms, Just "GHC.Prim", "writeInt64X8Array#"),
+    ('9', 2137, InTerms, Just "GHC.PrimopWrappers", "writeInt64X8Array#"),
+    ('9', 2138, InTerms, Just "GHC.Prim", "writeWord8X16Array#"),
+    ('9', 2139, InTerms, Just "GHC.PrimopWrappers", "writeWord8X16Array#"),
+    ('9', 2140, InTerms, Just "GHC.Prim", "writeWord16X8Array#"),
+    ('9', 2141, InTerms, Just "GHC.PrimopWrappers", "writeWord16X8Array#"),
+    ('9', 2142, InTerms, Just "GHC.Prim", "writeWord32X4Array#"),
+    ('9', 2143, InTerms, Just "GHC.PrimopWrappers", "writeWord32X4Array#"),
+    ('9', 2144, InTerms, Just "GHC.Prim", "writeWord64X2Array#"),
+    ('9', 2145, InTerms, Just "GHC.PrimopWrappers", "writeWord64X2Array#"),
+    ('9', 2146, InTerms, Just "GHC.Prim", "writeWord8X32Array#"),
+    ('9', 2147, InTerms, Just "GHC.PrimopWrappers", "writeWord8X32Array#"),
+    ('9', 2148, InTerms, Just "GHC.Prim", "writeWord16X16Array#"),
+    ('9', 2149, InTerms, Just "GHC.PrimopWrappers", "writeWord16X16Array#"),
+    ('9', 2150, InTerms, Just "GHC.Prim", "writeWord32X8Array#"),
+    ('9', 2151, InTerms, Just "GHC.PrimopWrappers", "writeWord32X8Array#"),
+    ('9', 2152, InTerms, Just "GHC.Prim", "writeWord64X4Array#"),
+    ('9', 2153, InTerms, Just "GHC.PrimopWrappers", "writeWord64X4Array#"),
+    ('9', 2154, InTerms, Just "GHC.Prim", "writeWord8X64Array#"),
+    ('9', 2155, InTerms, Just "GHC.PrimopWrappers", "writeWord8X64Array#"),
+    ('9', 2156, InTerms, Just "GHC.Prim", "writeWord16X32Array#"),
+    ('9', 2157, InTerms, Just "GHC.PrimopWrappers", "writeWord16X32Array#"),
+    ('9', 2158, InTerms, Just "GHC.Prim", "writeWord32X16Array#"),
+    ('9', 2159, InTerms, Just "GHC.PrimopWrappers", "writeWord32X16Array#"),
+    ('9', 2160, InTerms, Just "GHC.Prim", "writeWord64X8Array#"),
+    ('9', 2161, InTerms, Just "GHC.PrimopWrappers", "writeWord64X8Array#"),
+    ('9', 2162, InTerms, Just "GHC.Prim", "writeFloatX4Array#"),
+    ('9', 2163, InTerms, Just "GHC.PrimopWrappers", "writeFloatX4Array#"),
+    ('9', 2164, InTerms, Just "GHC.Prim", "writeDoubleX2Array#"),
+    ('9', 2165, InTerms, Just "GHC.PrimopWrappers", "writeDoubleX2Array#"),
+    ('9', 2166, InTerms, Just "GHC.Prim", "writeFloatX8Array#"),
+    ('9', 2167, InTerms, Just "GHC.PrimopWrappers", "writeFloatX8Array#"),
+    ('9', 2168, InTerms, Just "GHC.Prim", "writeDoubleX4Array#"),
+    ('9', 2169, InTerms, Just "GHC.PrimopWrappers", "writeDoubleX4Array#"),
+    ('9', 2170, InTerms, Just "GHC.Prim", "writeFloatX16Array#"),
+    ('9', 2171, InTerms, Just "GHC.PrimopWrappers", "writeFloatX16Array#"),
+    ('9', 2172, InTerms, Just "GHC.Prim", "writeDoubleX8Array#"),
+    ('9', 2173, InTerms, Just "GHC.PrimopWrappers", "writeDoubleX8Array#"),
+    ('9', 2174, InTerms, Just "GHC.Prim", "indexInt8X16OffAddr#"),
+    ('9', 2175, InTerms, Just "GHC.PrimopWrappers", "indexInt8X16OffAddr#"),
+    ('9', 2176, InTerms, Just "GHC.Prim", "indexInt16X8OffAddr#"),
+    ('9', 2177, InTerms, Just "GHC.PrimopWrappers", "indexInt16X8OffAddr#"),
+    ('9', 2178, InTerms, Just "GHC.Prim", "indexInt32X4OffAddr#"),
+    ('9', 2179, InTerms, Just "GHC.PrimopWrappers", "indexInt32X4OffAddr#"),
+    ('9', 2180, InTerms, Just "GHC.Prim", "indexInt64X2OffAddr#"),
+    ('9', 2181, InTerms, Just "GHC.PrimopWrappers", "indexInt64X2OffAddr#"),
+    ('9', 2182, InTerms, Just "GHC.Prim", "indexInt8X32OffAddr#"),
+    ('9', 2183, InTerms, Just "GHC.PrimopWrappers", "indexInt8X32OffAddr#"),
+    ('9', 2184, InTerms, Just "GHC.Prim", "indexInt16X16OffAddr#"),
+    ('9', 2185, InTerms, Just "GHC.PrimopWrappers", "indexInt16X16OffAddr#"),
+    ('9', 2186, InTerms, Just "GHC.Prim", "indexInt32X8OffAddr#"),
+    ('9', 2187, InTerms, Just "GHC.PrimopWrappers", "indexInt32X8OffAddr#"),
+    ('9', 2188, InTerms, Just "GHC.Prim", "indexInt64X4OffAddr#"),
+    ('9', 2189, InTerms, Just "GHC.PrimopWrappers", "indexInt64X4OffAddr#"),
+    ('9', 2190, InTerms, Just "GHC.Prim", "indexInt8X64OffAddr#"),
+    ('9', 2191, InTerms, Just "GHC.PrimopWrappers", "indexInt8X64OffAddr#"),
+    ('9', 2192, InTerms, Just "GHC.Prim", "indexInt16X32OffAddr#"),
+    ('9', 2193, InTerms, Just "GHC.PrimopWrappers", "indexInt16X32OffAddr#"),
+    ('9', 2194, InTerms, Just "GHC.Prim", "indexInt32X16OffAddr#"),
+    ('9', 2195, InTerms, Just "GHC.PrimopWrappers", "indexInt32X16OffAddr#"),
+    ('9', 2196, InTerms, Just "GHC.Prim", "indexInt64X8OffAddr#"),
+    ('9', 2197, InTerms, Just "GHC.PrimopWrappers", "indexInt64X8OffAddr#"),
+    ('9', 2198, InTerms, Just "GHC.Prim", "indexWord8X16OffAddr#"),
+    ('9', 2199, InTerms, Just "GHC.PrimopWrappers", "indexWord8X16OffAddr#"),
+    ('9', 2200, InTerms, Just "GHC.Prim", "indexWord16X8OffAddr#"),
+    ('9', 2201, InTerms, Just "GHC.PrimopWrappers", "indexWord16X8OffAddr#"),
+    ('9', 2202, InTerms, Just "GHC.Prim", "indexWord32X4OffAddr#"),
+    ('9', 2203, InTerms, Just "GHC.PrimopWrappers", "indexWord32X4OffAddr#"),
+    ('9', 2204, InTerms, Just "GHC.Prim", "indexWord64X2OffAddr#"),
+    ('9', 2205, InTerms, Just "GHC.PrimopWrappers", "indexWord64X2OffAddr#"),
+    ('9', 2206, InTerms, Just "GHC.Prim", "indexWord8X32OffAddr#"),
+    ('9', 2207, InTerms, Just "GHC.PrimopWrappers", "indexWord8X32OffAddr#"),
+    ('9', 2208, InTerms, Just "GHC.Prim", "indexWord16X16OffAddr#"),
+    ('9', 2209, InTerms, Just "GHC.PrimopWrappers", "indexWord16X16OffAddr#"),
+    ('9', 2210, InTerms, Just "GHC.Prim", "indexWord32X8OffAddr#"),
+    ('9', 2211, InTerms, Just "GHC.PrimopWrappers", "indexWord32X8OffAddr#"),
+    ('9', 2212, InTerms, Just "GHC.Prim", "indexWord64X4OffAddr#"),
+    ('9', 2213, InTerms, Just "GHC.PrimopWrappers", "indexWord64X4OffAddr#"),
+    ('9', 2214, InTerms, Just "GHC.Prim", "indexWord8X64OffAddr#"),
+    ('9', 2215, InTerms, Just "GHC.PrimopWrappers", "indexWord8X64OffAddr#"),
+    ('9', 2216, InTerms, Just "GHC.Prim", "indexWord16X32OffAddr#"),
+    ('9', 2217, InTerms, Just "GHC.PrimopWrappers", "indexWord16X32OffAddr#"),
+    ('9', 2218, InTerms, Just "GHC.Prim", "indexWord32X16OffAddr#"),
+    ('9', 2219, InTerms, Just "GHC.PrimopWrappers", "indexWord32X16OffAddr#"),
+    ('9', 2220, InTerms, Just "GHC.Prim", "indexWord64X8OffAddr#"),
+    ('9', 2221, InTerms, Just "GHC.PrimopWrappers", "indexWord64X8OffAddr#"),
+    ('9', 2222, InTerms, Just "GHC.Prim", "indexFloatX4OffAddr#"),
+    ('9', 2223, InTerms, Just "GHC.PrimopWrappers", "indexFloatX4OffAddr#"),
+    ('9', 2224, InTerms, Just "GHC.Prim", "indexDoubleX2OffAddr#"),
+    ('9', 2225, InTerms, Just "GHC.PrimopWrappers", "indexDoubleX2OffAddr#"),
+    ('9', 2226, InTerms, Just "GHC.Prim", "indexFloatX8OffAddr#"),
+    ('9', 2227, InTerms, Just "GHC.PrimopWrappers", "indexFloatX8OffAddr#"),
+    ('9', 2228, InTerms, Just "GHC.Prim", "indexDoubleX4OffAddr#"),
+    ('9', 2229, InTerms, Just "GHC.PrimopWrappers", "indexDoubleX4OffAddr#"),
+    ('9', 2230, InTerms, Just "GHC.Prim", "indexFloatX16OffAddr#"),
+    ('9', 2231, InTerms, Just "GHC.PrimopWrappers", "indexFloatX16OffAddr#"),
+    ('9', 2232, InTerms, Just "GHC.Prim", "indexDoubleX8OffAddr#"),
+    ('9', 2233, InTerms, Just "GHC.PrimopWrappers", "indexDoubleX8OffAddr#"),
+    ('9', 2234, InTerms, Just "GHC.Prim", "readInt8X16OffAddr#"),
+    ('9', 2235, InTerms, Just "GHC.PrimopWrappers", "readInt8X16OffAddr#"),
+    ('9', 2236, InTerms, Just "GHC.Prim", "readInt16X8OffAddr#"),
+    ('9', 2237, InTerms, Just "GHC.PrimopWrappers", "readInt16X8OffAddr#"),
+    ('9', 2238, InTerms, Just "GHC.Prim", "readInt32X4OffAddr#"),
+    ('9', 2239, InTerms, Just "GHC.PrimopWrappers", "readInt32X4OffAddr#"),
+    ('9', 2240, InTerms, Just "GHC.Prim", "readInt64X2OffAddr#"),
+    ('9', 2241, InTerms, Just "GHC.PrimopWrappers", "readInt64X2OffAddr#"),
+    ('9', 2242, InTerms, Just "GHC.Prim", "readInt8X32OffAddr#"),
+    ('9', 2243, InTerms, Just "GHC.PrimopWrappers", "readInt8X32OffAddr#"),
+    ('9', 2244, InTerms, Just "GHC.Prim", "readInt16X16OffAddr#"),
+    ('9', 2245, InTerms, Just "GHC.PrimopWrappers", "readInt16X16OffAddr#"),
+    ('9', 2246, InTerms, Just "GHC.Prim", "readInt32X8OffAddr#"),
+    ('9', 2247, InTerms, Just "GHC.PrimopWrappers", "readInt32X8OffAddr#"),
+    ('9', 2248, InTerms, Just "GHC.Prim", "readInt64X4OffAddr#"),
+    ('9', 2249, InTerms, Just "GHC.PrimopWrappers", "readInt64X4OffAddr#"),
+    ('9', 2250, InTerms, Just "GHC.Prim", "readInt8X64OffAddr#"),
+    ('9', 2251, InTerms, Just "GHC.PrimopWrappers", "readInt8X64OffAddr#"),
+    ('9', 2252, InTerms, Just "GHC.Prim", "readInt16X32OffAddr#"),
+    ('9', 2253, InTerms, Just "GHC.PrimopWrappers", "readInt16X32OffAddr#"),
+    ('9', 2254, InTerms, Just "GHC.Prim", "readInt32X16OffAddr#"),
+    ('9', 2255, InTerms, Just "GHC.PrimopWrappers", "readInt32X16OffAddr#"),
+    ('9', 2256, InTerms, Just "GHC.Prim", "readInt64X8OffAddr#"),
+    ('9', 2257, InTerms, Just "GHC.PrimopWrappers", "readInt64X8OffAddr#"),
+    ('9', 2258, InTerms, Just "GHC.Prim", "readWord8X16OffAddr#"),
+    ('9', 2259, InTerms, Just "GHC.PrimopWrappers", "readWord8X16OffAddr#"),
+    ('9', 2260, InTerms, Just "GHC.Prim", "readWord16X8OffAddr#"),
+    ('9', 2261, InTerms, Just "GHC.PrimopWrappers", "readWord16X8OffAddr#"),
+    ('9', 2262, InTerms, Just "GHC.Prim", "readWord32X4OffAddr#"),
+    ('9', 2263, InTerms, Just "GHC.PrimopWrappers", "readWord32X4OffAddr#"),
+    ('9', 2264, InTerms, Just "GHC.Prim", "readWord64X2OffAddr#"),
+    ('9', 2265, InTerms, Just "GHC.PrimopWrappers", "readWord64X2OffAddr#"),
+    ('9', 2266, InTerms, Just "GHC.Prim", "readWord8X32OffAddr#"),
+    ('9', 2267, InTerms, Just "GHC.PrimopWrappers", "readWord8X32OffAddr#"),
+    ('9', 2268, InTerms, Just "GHC.Prim", "readWord16X16OffAddr#"),
+    ('9', 2269, InTerms, Just "GHC.PrimopWrappers", "readWord16X16OffAddr#"),
+    ('9', 2270, InTerms, Just "GHC.Prim", "readWord32X8OffAddr#"),
+    ('9', 2271, InTerms, Just "GHC.PrimopWrappers", "readWord32X8OffAddr#"),
+    ('9', 2272, InTerms, Just "GHC.Prim", "readWord64X4OffAddr#"),
+    ('9', 2273, InTerms, Just "GHC.PrimopWrappers", "readWord64X4OffAddr#"),
+    ('9', 2274, InTerms, Just "GHC.Prim", "readWord8X64OffAddr#"),
+    ('9', 2275, InTerms, Just "GHC.PrimopWrappers", "readWord8X64OffAddr#"),
+    ('9', 2276, InTerms, Just "GHC.Prim", "readWord16X32OffAddr#"),
+    ('9', 2277, InTerms, Just "GHC.PrimopWrappers", "readWord16X32OffAddr#"),
+    ('9', 2278, InTerms, Just "GHC.Prim", "readWord32X16OffAddr#"),
+    ('9', 2279, InTerms, Just "GHC.PrimopWrappers", "readWord32X16OffAddr#"),
+    ('9', 2280, InTerms, Just "GHC.Prim", "readWord64X8OffAddr#"),
+    ('9', 2281, InTerms, Just "GHC.PrimopWrappers", "readWord64X8OffAddr#"),
+    ('9', 2282, InTerms, Just "GHC.Prim", "readFloatX4OffAddr#"),
+    ('9', 2283, InTerms, Just "GHC.PrimopWrappers", "readFloatX4OffAddr#"),
+    ('9', 2284, InTerms, Just "GHC.Prim", "readDoubleX2OffAddr#"),
+    ('9', 2285, InTerms, Just "GHC.PrimopWrappers", "readDoubleX2OffAddr#"),
+    ('9', 2286, InTerms, Just "GHC.Prim", "readFloatX8OffAddr#"),
+    ('9', 2287, InTerms, Just "GHC.PrimopWrappers", "readFloatX8OffAddr#"),
+    ('9', 2288, InTerms, Just "GHC.Prim", "readDoubleX4OffAddr#"),
+    ('9', 2289, InTerms, Just "GHC.PrimopWrappers", "readDoubleX4OffAddr#"),
+    ('9', 2290, InTerms, Just "GHC.Prim", "readFloatX16OffAddr#"),
+    ('9', 2291, InTerms, Just "GHC.PrimopWrappers", "readFloatX16OffAddr#"),
+    ('9', 2292, InTerms, Just "GHC.Prim", "readDoubleX8OffAddr#"),
+    ('9', 2293, InTerms, Just "GHC.PrimopWrappers", "readDoubleX8OffAddr#"),
+    ('9', 2294, InTerms, Just "GHC.Prim", "writeInt8X16OffAddr#"),
+    ('9', 2295, InTerms, Just "GHC.PrimopWrappers", "writeInt8X16OffAddr#"),
+    ('9', 2296, InTerms, Just "GHC.Prim", "writeInt16X8OffAddr#"),
+    ('9', 2297, InTerms, Just "GHC.PrimopWrappers", "writeInt16X8OffAddr#"),
+    ('9', 2298, InTerms, Just "GHC.Prim", "writeInt32X4OffAddr#"),
+    ('9', 2299, InTerms, Just "GHC.PrimopWrappers", "writeInt32X4OffAddr#"),
+    ('9', 2300, InTerms, Just "GHC.Prim", "writeInt64X2OffAddr#"),
+    ('9', 2301, InTerms, Just "GHC.PrimopWrappers", "writeInt64X2OffAddr#"),
+    ('9', 2302, InTerms, Just "GHC.Prim", "writeInt8X32OffAddr#"),
+    ('9', 2303, InTerms, Just "GHC.PrimopWrappers", "writeInt8X32OffAddr#"),
+    ('9', 2304, InTerms, Just "GHC.Prim", "writeInt16X16OffAddr#"),
+    ('9', 2305, InTerms, Just "GHC.PrimopWrappers", "writeInt16X16OffAddr#"),
+    ('9', 2306, InTerms, Just "GHC.Prim", "writeInt32X8OffAddr#"),
+    ('9', 2307, InTerms, Just "GHC.PrimopWrappers", "writeInt32X8OffAddr#"),
+    ('9', 2308, InTerms, Just "GHC.Prim", "writeInt64X4OffAddr#"),
+    ('9', 2309, InTerms, Just "GHC.PrimopWrappers", "writeInt64X4OffAddr#"),
+    ('9', 2310, InTerms, Just "GHC.Prim", "writeInt8X64OffAddr#"),
+    ('9', 2311, InTerms, Just "GHC.PrimopWrappers", "writeInt8X64OffAddr#"),
+    ('9', 2312, InTerms, Just "GHC.Prim", "writeInt16X32OffAddr#"),
+    ('9', 2313, InTerms, Just "GHC.PrimopWrappers", "writeInt16X32OffAddr#"),
+    ('9', 2314, InTerms, Just "GHC.Prim", "writeInt32X16OffAddr#"),
+    ('9', 2315, InTerms, Just "GHC.PrimopWrappers", "writeInt32X16OffAddr#"),
+    ('9', 2316, InTerms, Just "GHC.Prim", "writeInt64X8OffAddr#"),
+    ('9', 2317, InTerms, Just "GHC.PrimopWrappers", "writeInt64X8OffAddr#"),
+    ('9', 2318, InTerms, Just "GHC.Prim", "writeWord8X16OffAddr#"),
+    ('9', 2319, InTerms, Just "GHC.PrimopWrappers", "writeWord8X16OffAddr#"),
+    ('9', 2320, InTerms, Just "GHC.Prim", "writeWord16X8OffAddr#"),
+    ('9', 2321, InTerms, Just "GHC.PrimopWrappers", "writeWord16X8OffAddr#"),
+    ('9', 2322, InTerms, Just "GHC.Prim", "writeWord32X4OffAddr#"),
+    ('9', 2323, InTerms, Just "GHC.PrimopWrappers", "writeWord32X4OffAddr#"),
+    ('9', 2324, InTerms, Just "GHC.Prim", "writeWord64X2OffAddr#"),
+    ('9', 2325, InTerms, Just "GHC.PrimopWrappers", "writeWord64X2OffAddr#"),
+    ('9', 2326, InTerms, Just "GHC.Prim", "writeWord8X32OffAddr#"),
+    ('9', 2327, InTerms, Just "GHC.PrimopWrappers", "writeWord8X32OffAddr#"),
+    ('9', 2328, InTerms, Just "GHC.Prim", "writeWord16X16OffAddr#"),
+    ('9', 2329, InTerms, Just "GHC.PrimopWrappers", "writeWord16X16OffAddr#"),
+    ('9', 2330, InTerms, Just "GHC.Prim", "writeWord32X8OffAddr#"),
+    ('9', 2331, InTerms, Just "GHC.PrimopWrappers", "writeWord32X8OffAddr#"),
+    ('9', 2332, InTerms, Just "GHC.Prim", "writeWord64X4OffAddr#"),
+    ('9', 2333, InTerms, Just "GHC.PrimopWrappers", "writeWord64X4OffAddr#"),
+    ('9', 2334, InTerms, Just "GHC.Prim", "writeWord8X64OffAddr#"),
+    ('9', 2335, InTerms, Just "GHC.PrimopWrappers", "writeWord8X64OffAddr#"),
+    ('9', 2336, InTerms, Just "GHC.Prim", "writeWord16X32OffAddr#"),
+    ('9', 2337, InTerms, Just "GHC.PrimopWrappers", "writeWord16X32OffAddr#"),
+    ('9', 2338, InTerms, Just "GHC.Prim", "writeWord32X16OffAddr#"),
+    ('9', 2339, InTerms, Just "GHC.PrimopWrappers", "writeWord32X16OffAddr#"),
+    ('9', 2340, InTerms, Just "GHC.Prim", "writeWord64X8OffAddr#"),
+    ('9', 2341, InTerms, Just "GHC.PrimopWrappers", "writeWord64X8OffAddr#"),
+    ('9', 2342, InTerms, Just "GHC.Prim", "writeFloatX4OffAddr#"),
+    ('9', 2343, InTerms, Just "GHC.PrimopWrappers", "writeFloatX4OffAddr#"),
+    ('9', 2344, InTerms, Just "GHC.Prim", "writeDoubleX2OffAddr#"),
+    ('9', 2345, InTerms, Just "GHC.PrimopWrappers", "writeDoubleX2OffAddr#"),
+    ('9', 2346, InTerms, Just "GHC.Prim", "writeFloatX8OffAddr#"),
+    ('9', 2347, InTerms, Just "GHC.PrimopWrappers", "writeFloatX8OffAddr#"),
+    ('9', 2348, InTerms, Just "GHC.Prim", "writeDoubleX4OffAddr#"),
+    ('9', 2349, InTerms, Just "GHC.PrimopWrappers", "writeDoubleX4OffAddr#"),
+    ('9', 2350, InTerms, Just "GHC.Prim", "writeFloatX16OffAddr#"),
+    ('9', 2351, InTerms, Just "GHC.PrimopWrappers", "writeFloatX16OffAddr#"),
+    ('9', 2352, InTerms, Just "GHC.Prim", "writeDoubleX8OffAddr#"),
+    ('9', 2353, InTerms, Just "GHC.PrimopWrappers", "writeDoubleX8OffAddr#"),
+    ('9', 2354, InTerms, Just "GHC.Prim", "indexInt8ArrayAsInt8X16#"),
+    ('9', 2355, InTerms, Just "GHC.PrimopWrappers", "indexInt8ArrayAsInt8X16#"),
+    ('9', 2356, InTerms, Just "GHC.Prim", "indexInt16ArrayAsInt16X8#"),
+    ('9', 2357, InTerms, Just "GHC.PrimopWrappers", "indexInt16ArrayAsInt16X8#"),
+    ('9', 2358, InTerms, Just "GHC.Prim", "indexInt32ArrayAsInt32X4#"),
+    ('9', 2359, InTerms, Just "GHC.PrimopWrappers", "indexInt32ArrayAsInt32X4#"),
+    ('9', 2360, InTerms, Just "GHC.Prim", "indexInt64ArrayAsInt64X2#"),
+    ('9', 2361, InTerms, Just "GHC.PrimopWrappers", "indexInt64ArrayAsInt64X2#"),
+    ('9', 2362, InTerms, Just "GHC.Prim", "indexInt8ArrayAsInt8X32#"),
+    ('9', 2363, InTerms, Just "GHC.PrimopWrappers", "indexInt8ArrayAsInt8X32#"),
+    ('9', 2364, InTerms, Just "GHC.Prim", "indexInt16ArrayAsInt16X16#"),
+    ('9', 2365, InTerms, Just "GHC.PrimopWrappers", "indexInt16ArrayAsInt16X16#"),
+    ('9', 2366, InTerms, Just "GHC.Prim", "indexInt32ArrayAsInt32X8#"),
+    ('9', 2367, InTerms, Just "GHC.PrimopWrappers", "indexInt32ArrayAsInt32X8#"),
+    ('9', 2368, InTerms, Just "GHC.Prim", "indexInt64ArrayAsInt64X4#"),
+    ('9', 2369, InTerms, Just "GHC.PrimopWrappers", "indexInt64ArrayAsInt64X4#"),
+    ('9', 2370, InTerms, Just "GHC.Prim", "indexInt8ArrayAsInt8X64#"),
+    ('9', 2371, InTerms, Just "GHC.PrimopWrappers", "indexInt8ArrayAsInt8X64#"),
+    ('9', 2372, InTerms, Just "GHC.Prim", "indexInt16ArrayAsInt16X32#"),
+    ('9', 2373, InTerms, Just "GHC.PrimopWrappers", "indexInt16ArrayAsInt16X32#"),
+    ('9', 2374, InTerms, Just "GHC.Prim", "indexInt32ArrayAsInt32X16#"),
+    ('9', 2375, InTerms, Just "GHC.PrimopWrappers", "indexInt32ArrayAsInt32X16#"),
+    ('9', 2376, InTerms, Just "GHC.Prim", "indexInt64ArrayAsInt64X8#"),
+    ('9', 2377, InTerms, Just "GHC.PrimopWrappers", "indexInt64ArrayAsInt64X8#"),
+    ('9', 2378, InTerms, Just "GHC.Prim", "indexWord8ArrayAsWord8X16#"),
+    ('9', 2379, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsWord8X16#"),
+    ('9', 2380, InTerms, Just "GHC.Prim", "indexWord16ArrayAsWord16X8#"),
+    ('9', 2381, InTerms, Just "GHC.PrimopWrappers", "indexWord16ArrayAsWord16X8#"),
+    ('9', 2382, InTerms, Just "GHC.Prim", "indexWord32ArrayAsWord32X4#"),
+    ('9', 2383, InTerms, Just "GHC.PrimopWrappers", "indexWord32ArrayAsWord32X4#"),
+    ('9', 2384, InTerms, Just "GHC.Prim", "indexWord64ArrayAsWord64X2#"),
+    ('9', 2385, InTerms, Just "GHC.PrimopWrappers", "indexWord64ArrayAsWord64X2#"),
+    ('9', 2386, InTerms, Just "GHC.Prim", "indexWord8ArrayAsWord8X32#"),
+    ('9', 2387, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsWord8X32#"),
+    ('9', 2388, InTerms, Just "GHC.Prim", "indexWord16ArrayAsWord16X16#"),
+    ('9', 2389, InTerms, Just "GHC.PrimopWrappers", "indexWord16ArrayAsWord16X16#"),
+    ('9', 2390, InTerms, Just "GHC.Prim", "indexWord32ArrayAsWord32X8#"),
+    ('9', 2391, InTerms, Just "GHC.PrimopWrappers", "indexWord32ArrayAsWord32X8#"),
+    ('9', 2392, InTerms, Just "GHC.Prim", "indexWord64ArrayAsWord64X4#"),
+    ('9', 2393, InTerms, Just "GHC.PrimopWrappers", "indexWord64ArrayAsWord64X4#"),
+    ('9', 2394, InTerms, Just "GHC.Prim", "indexWord8ArrayAsWord8X64#"),
+    ('9', 2395, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsWord8X64#"),
+    ('9', 2396, InTerms, Just "GHC.Prim", "indexWord16ArrayAsWord16X32#"),
+    ('9', 2397, InTerms, Just "GHC.PrimopWrappers", "indexWord16ArrayAsWord16X32#"),
+    ('9', 2398, InTerms, Just "GHC.Prim", "indexWord32ArrayAsWord32X16#"),
+    ('9', 2399, InTerms, Just "GHC.PrimopWrappers", "indexWord32ArrayAsWord32X16#"),
+    ('9', 2400, InTerms, Just "GHC.Prim", "indexWord64ArrayAsWord64X8#"),
+    ('9', 2401, InTerms, Just "GHC.PrimopWrappers", "indexWord64ArrayAsWord64X8#"),
+    ('9', 2402, InTerms, Just "GHC.Prim", "indexFloatArrayAsFloatX4#"),
+    ('9', 2403, InTerms, Just "GHC.PrimopWrappers", "indexFloatArrayAsFloatX4#"),
+    ('9', 2404, InTerms, Just "GHC.Prim", "indexDoubleArrayAsDoubleX2#"),
+    ('9', 2405, InTerms, Just "GHC.PrimopWrappers", "indexDoubleArrayAsDoubleX2#"),
+    ('9', 2406, InTerms, Just "GHC.Prim", "indexFloatArrayAsFloatX8#"),
+    ('9', 2407, InTerms, Just "GHC.PrimopWrappers", "indexFloatArrayAsFloatX8#"),
+    ('9', 2408, InTerms, Just "GHC.Prim", "indexDoubleArrayAsDoubleX4#"),
+    ('9', 2409, InTerms, Just "GHC.PrimopWrappers", "indexDoubleArrayAsDoubleX4#"),
+    ('9', 2410, InTerms, Just "GHC.Prim", "indexFloatArrayAsFloatX16#"),
+    ('9', 2411, InTerms, Just "GHC.PrimopWrappers", "indexFloatArrayAsFloatX16#"),
+    ('9', 2412, InTerms, Just "GHC.Prim", "indexDoubleArrayAsDoubleX8#"),
+    ('9', 2413, InTerms, Just "GHC.PrimopWrappers", "indexDoubleArrayAsDoubleX8#"),
+    ('9', 2414, InTerms, Just "GHC.Prim", "readInt8ArrayAsInt8X16#"),
+    ('9', 2415, InTerms, Just "GHC.PrimopWrappers", "readInt8ArrayAsInt8X16#"),
+    ('9', 2416, InTerms, Just "GHC.Prim", "readInt16ArrayAsInt16X8#"),
+    ('9', 2417, InTerms, Just "GHC.PrimopWrappers", "readInt16ArrayAsInt16X8#"),
+    ('9', 2418, InTerms, Just "GHC.Prim", "readInt32ArrayAsInt32X4#"),
+    ('9', 2419, InTerms, Just "GHC.PrimopWrappers", "readInt32ArrayAsInt32X4#"),
+    ('9', 2420, InTerms, Just "GHC.Prim", "readInt64ArrayAsInt64X2#"),
+    ('9', 2421, InTerms, Just "GHC.PrimopWrappers", "readInt64ArrayAsInt64X2#"),
+    ('9', 2422, InTerms, Just "GHC.Prim", "readInt8ArrayAsInt8X32#"),
+    ('9', 2423, InTerms, Just "GHC.PrimopWrappers", "readInt8ArrayAsInt8X32#"),
+    ('9', 2424, InTerms, Just "GHC.Prim", "readInt16ArrayAsInt16X16#"),
+    ('9', 2425, InTerms, Just "GHC.PrimopWrappers", "readInt16ArrayAsInt16X16#"),
+    ('9', 2426, InTerms, Just "GHC.Prim", "readInt32ArrayAsInt32X8#"),
+    ('9', 2427, InTerms, Just "GHC.PrimopWrappers", "readInt32ArrayAsInt32X8#"),
+    ('9', 2428, InTerms, Just "GHC.Prim", "readInt64ArrayAsInt64X4#"),
+    ('9', 2429, InTerms, Just "GHC.PrimopWrappers", "readInt64ArrayAsInt64X4#"),
+    ('9', 2430, InTerms, Just "GHC.Prim", "readInt8ArrayAsInt8X64#"),
+    ('9', 2431, InTerms, Just "GHC.PrimopWrappers", "readInt8ArrayAsInt8X64#"),
+    ('9', 2432, InTerms, Just "GHC.Prim", "readInt16ArrayAsInt16X32#"),
+    ('9', 2433, InTerms, Just "GHC.PrimopWrappers", "readInt16ArrayAsInt16X32#"),
+    ('9', 2434, InTerms, Just "GHC.Prim", "readInt32ArrayAsInt32X16#"),
+    ('9', 2435, InTerms, Just "GHC.PrimopWrappers", "readInt32ArrayAsInt32X16#"),
+    ('9', 2436, InTerms, Just "GHC.Prim", "readInt64ArrayAsInt64X8#"),
+    ('9', 2437, InTerms, Just "GHC.PrimopWrappers", "readInt64ArrayAsInt64X8#"),
+    ('9', 2438, InTerms, Just "GHC.Prim", "readWord8ArrayAsWord8X16#"),
+    ('9', 2439, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsWord8X16#"),
+    ('9', 2440, InTerms, Just "GHC.Prim", "readWord16ArrayAsWord16X8#"),
+    ('9', 2441, InTerms, Just "GHC.PrimopWrappers", "readWord16ArrayAsWord16X8#"),
+    ('9', 2442, InTerms, Just "GHC.Prim", "readWord32ArrayAsWord32X4#"),
+    ('9', 2443, InTerms, Just "GHC.PrimopWrappers", "readWord32ArrayAsWord32X4#"),
+    ('9', 2444, InTerms, Just "GHC.Prim", "readWord64ArrayAsWord64X2#"),
+    ('9', 2445, InTerms, Just "GHC.PrimopWrappers", "readWord64ArrayAsWord64X2#"),
+    ('9', 2446, InTerms, Just "GHC.Prim", "readWord8ArrayAsWord8X32#"),
+    ('9', 2447, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsWord8X32#"),
+    ('9', 2448, InTerms, Just "GHC.Prim", "readWord16ArrayAsWord16X16#"),
+    ('9', 2449, InTerms, Just "GHC.PrimopWrappers", "readWord16ArrayAsWord16X16#"),
+    ('9', 2450, InTerms, Just "GHC.Prim", "readWord32ArrayAsWord32X8#"),
+    ('9', 2451, InTerms, Just "GHC.PrimopWrappers", "readWord32ArrayAsWord32X8#"),
+    ('9', 2452, InTerms, Just "GHC.Prim", "readWord64ArrayAsWord64X4#"),
+    ('9', 2453, InTerms, Just "GHC.PrimopWrappers", "readWord64ArrayAsWord64X4#"),
+    ('9', 2454, InTerms, Just "GHC.Prim", "readWord8ArrayAsWord8X64#"),
+    ('9', 2455, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsWord8X64#"),
+    ('9', 2456, InTerms, Just "GHC.Prim", "readWord16ArrayAsWord16X32#"),
+    ('9', 2457, InTerms, Just "GHC.PrimopWrappers", "readWord16ArrayAsWord16X32#"),
+    ('9', 2458, InTerms, Just "GHC.Prim", "readWord32ArrayAsWord32X16#"),
+    ('9', 2459, InTerms, Just "GHC.PrimopWrappers", "readWord32ArrayAsWord32X16#"),
+    ('9', 2460, InTerms, Just "GHC.Prim", "readWord64ArrayAsWord64X8#"),
+    ('9', 2461, InTerms, Just "GHC.PrimopWrappers", "readWord64ArrayAsWord64X8#"),
+    ('9', 2462, InTerms, Just "GHC.Prim", "readFloatArrayAsFloatX4#"),
+    ('9', 2463, InTerms, Just "GHC.PrimopWrappers", "readFloatArrayAsFloatX4#"),
+    ('9', 2464, InTerms, Just "GHC.Prim", "readDoubleArrayAsDoubleX2#"),
+    ('9', 2465, InTerms, Just "GHC.PrimopWrappers", "readDoubleArrayAsDoubleX2#"),
+    ('9', 2466, InTerms, Just "GHC.Prim", "readFloatArrayAsFloatX8#"),
+    ('9', 2467, InTerms, Just "GHC.PrimopWrappers", "readFloatArrayAsFloatX8#"),
+    ('9', 2468, InTerms, Just "GHC.Prim", "readDoubleArrayAsDoubleX4#"),
+    ('9', 2469, InTerms, Just "GHC.PrimopWrappers", "readDoubleArrayAsDoubleX4#"),
+    ('9', 2470, InTerms, Just "GHC.Prim", "readFloatArrayAsFloatX16#"),
+    ('9', 2471, InTerms, Just "GHC.PrimopWrappers", "readFloatArrayAsFloatX16#"),
+    ('9', 2472, InTerms, Just "GHC.Prim", "readDoubleArrayAsDoubleX8#"),
+    ('9', 2473, InTerms, Just "GHC.PrimopWrappers", "readDoubleArrayAsDoubleX8#"),
+    ('9', 2474, InTerms, Just "GHC.Prim", "writeInt8ArrayAsInt8X16#"),
+    ('9', 2475, InTerms, Just "GHC.PrimopWrappers", "writeInt8ArrayAsInt8X16#"),
+    ('9', 2476, InTerms, Just "GHC.Prim", "writeInt16ArrayAsInt16X8#"),
+    ('9', 2477, InTerms, Just "GHC.PrimopWrappers", "writeInt16ArrayAsInt16X8#"),
+    ('9', 2478, InTerms, Just "GHC.Prim", "writeInt32ArrayAsInt32X4#"),
+    ('9', 2479, InTerms, Just "GHC.PrimopWrappers", "writeInt32ArrayAsInt32X4#"),
+    ('9', 2480, InTerms, Just "GHC.Prim", "writeInt64ArrayAsInt64X2#"),
+    ('9', 2481, InTerms, Just "GHC.PrimopWrappers", "writeInt64ArrayAsInt64X2#"),
+    ('9', 2482, InTerms, Just "GHC.Prim", "writeInt8ArrayAsInt8X32#"),
+    ('9', 2483, InTerms, Just "GHC.PrimopWrappers", "writeInt8ArrayAsInt8X32#"),
+    ('9', 2484, InTerms, Just "GHC.Prim", "writeInt16ArrayAsInt16X16#"),
+    ('9', 2485, InTerms, Just "GHC.PrimopWrappers", "writeInt16ArrayAsInt16X16#"),
+    ('9', 2486, InTerms, Just "GHC.Prim", "writeInt32ArrayAsInt32X8#"),
+    ('9', 2487, InTerms, Just "GHC.PrimopWrappers", "writeInt32ArrayAsInt32X8#"),
+    ('9', 2488, InTerms, Just "GHC.Prim", "writeInt64ArrayAsInt64X4#"),
+    ('9', 2489, InTerms, Just "GHC.PrimopWrappers", "writeInt64ArrayAsInt64X4#"),
+    ('9', 2490, InTerms, Just "GHC.Prim", "writeInt8ArrayAsInt8X64#"),
+    ('9', 2491, InTerms, Just "GHC.PrimopWrappers", "writeInt8ArrayAsInt8X64#"),
+    ('9', 2492, InTerms, Just "GHC.Prim", "writeInt16ArrayAsInt16X32#"),
+    ('9', 2493, InTerms, Just "GHC.PrimopWrappers", "writeInt16ArrayAsInt16X32#"),
+    ('9', 2494, InTerms, Just "GHC.Prim", "writeInt32ArrayAsInt32X16#"),
+    ('9', 2495, InTerms, Just "GHC.PrimopWrappers", "writeInt32ArrayAsInt32X16#"),
+    ('9', 2496, InTerms, Just "GHC.Prim", "writeInt64ArrayAsInt64X8#"),
+    ('9', 2497, InTerms, Just "GHC.PrimopWrappers", "writeInt64ArrayAsInt64X8#"),
+    ('9', 2498, InTerms, Just "GHC.Prim", "writeWord8ArrayAsWord8X16#"),
+    ('9', 2499, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsWord8X16#"),
+    ('9', 2500, InTerms, Just "GHC.Prim", "writeWord16ArrayAsWord16X8#"),
+    ('9', 2501, InTerms, Just "GHC.PrimopWrappers", "writeWord16ArrayAsWord16X8#"),
+    ('9', 2502, InTerms, Just "GHC.Prim", "writeWord32ArrayAsWord32X4#"),
+    ('9', 2503, InTerms, Just "GHC.PrimopWrappers", "writeWord32ArrayAsWord32X4#"),
+    ('9', 2504, InTerms, Just "GHC.Prim", "writeWord64ArrayAsWord64X2#"),
+    ('9', 2505, InTerms, Just "GHC.PrimopWrappers", "writeWord64ArrayAsWord64X2#"),
+    ('9', 2506, InTerms, Just "GHC.Prim", "writeWord8ArrayAsWord8X32#"),
+    ('9', 2507, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsWord8X32#"),
+    ('9', 2508, InTerms, Just "GHC.Prim", "writeWord16ArrayAsWord16X16#"),
+    ('9', 2509, InTerms, Just "GHC.PrimopWrappers", "writeWord16ArrayAsWord16X16#"),
+    ('9', 2510, InTerms, Just "GHC.Prim", "writeWord32ArrayAsWord32X8#"),
+    ('9', 2511, InTerms, Just "GHC.PrimopWrappers", "writeWord32ArrayAsWord32X8#"),
+    ('9', 2512, InTerms, Just "GHC.Prim", "writeWord64ArrayAsWord64X4#"),
+    ('9', 2513, InTerms, Just "GHC.PrimopWrappers", "writeWord64ArrayAsWord64X4#"),
+    ('9', 2514, InTerms, Just "GHC.Prim", "writeWord8ArrayAsWord8X64#"),
+    ('9', 2515, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsWord8X64#"),
+    ('9', 2516, InTerms, Just "GHC.Prim", "writeWord16ArrayAsWord16X32#"),
+    ('9', 2517, InTerms, Just "GHC.PrimopWrappers", "writeWord16ArrayAsWord16X32#"),
+    ('9', 2518, InTerms, Just "GHC.Prim", "writeWord32ArrayAsWord32X16#"),
+    ('9', 2519, InTerms, Just "GHC.PrimopWrappers", "writeWord32ArrayAsWord32X16#"),
+    ('9', 2520, InTerms, Just "GHC.Prim", "writeWord64ArrayAsWord64X8#"),
+    ('9', 2521, InTerms, Just "GHC.PrimopWrappers", "writeWord64ArrayAsWord64X8#"),
+    ('9', 2522, InTerms, Just "GHC.Prim", "writeFloatArrayAsFloatX4#"),
+    ('9', 2523, InTerms, Just "GHC.PrimopWrappers", "writeFloatArrayAsFloatX4#"),
+    ('9', 2524, InTerms, Just "GHC.Prim", "writeDoubleArrayAsDoubleX2#"),
+    ('9', 2525, InTerms, Just "GHC.PrimopWrappers", "writeDoubleArrayAsDoubleX2#"),
+    ('9', 2526, InTerms, Just "GHC.Prim", "writeFloatArrayAsFloatX8#"),
+    ('9', 2527, InTerms, Just "GHC.PrimopWrappers", "writeFloatArrayAsFloatX8#"),
+    ('9', 2528, InTerms, Just "GHC.Prim", "writeDoubleArrayAsDoubleX4#"),
+    ('9', 2529, InTerms, Just "GHC.PrimopWrappers", "writeDoubleArrayAsDoubleX4#"),
+    ('9', 2530, InTerms, Just "GHC.Prim", "writeFloatArrayAsFloatX16#"),
+    ('9', 2531, InTerms, Just "GHC.PrimopWrappers", "writeFloatArrayAsFloatX16#"),
+    ('9', 2532, InTerms, Just "GHC.Prim", "writeDoubleArrayAsDoubleX8#"),
+    ('9', 2533, InTerms, Just "GHC.PrimopWrappers", "writeDoubleArrayAsDoubleX8#"),
+    ('9', 2534, InTerms, Just "GHC.Prim", "indexInt8OffAddrAsInt8X16#"),
+    ('9', 2535, InTerms, Just "GHC.PrimopWrappers", "indexInt8OffAddrAsInt8X16#"),
+    ('9', 2536, InTerms, Just "GHC.Prim", "indexInt16OffAddrAsInt16X8#"),
+    ('9', 2537, InTerms, Just "GHC.PrimopWrappers", "indexInt16OffAddrAsInt16X8#"),
+    ('9', 2538, InTerms, Just "GHC.Prim", "indexInt32OffAddrAsInt32X4#"),
+    ('9', 2539, InTerms, Just "GHC.PrimopWrappers", "indexInt32OffAddrAsInt32X4#"),
+    ('9', 2540, InTerms, Just "GHC.Prim", "indexInt64OffAddrAsInt64X2#"),
+    ('9', 2541, InTerms, Just "GHC.PrimopWrappers", "indexInt64OffAddrAsInt64X2#"),
+    ('9', 2542, InTerms, Just "GHC.Prim", "indexInt8OffAddrAsInt8X32#"),
+    ('9', 2543, InTerms, Just "GHC.PrimopWrappers", "indexInt8OffAddrAsInt8X32#"),
+    ('9', 2544, InTerms, Just "GHC.Prim", "indexInt16OffAddrAsInt16X16#"),
+    ('9', 2545, InTerms, Just "GHC.PrimopWrappers", "indexInt16OffAddrAsInt16X16#"),
+    ('9', 2546, InTerms, Just "GHC.Prim", "indexInt32OffAddrAsInt32X8#"),
+    ('9', 2547, InTerms, Just "GHC.PrimopWrappers", "indexInt32OffAddrAsInt32X8#"),
+    ('9', 2548, InTerms, Just "GHC.Prim", "indexInt64OffAddrAsInt64X4#"),
+    ('9', 2549, InTerms, Just "GHC.PrimopWrappers", "indexInt64OffAddrAsInt64X4#"),
+    ('9', 2550, InTerms, Just "GHC.Prim", "indexInt8OffAddrAsInt8X64#"),
+    ('9', 2551, InTerms, Just "GHC.PrimopWrappers", "indexInt8OffAddrAsInt8X64#"),
+    ('9', 2552, InTerms, Just "GHC.Prim", "indexInt16OffAddrAsInt16X32#"),
+    ('9', 2553, InTerms, Just "GHC.PrimopWrappers", "indexInt16OffAddrAsInt16X32#"),
+    ('9', 2554, InTerms, Just "GHC.Prim", "indexInt32OffAddrAsInt32X16#"),
+    ('9', 2555, InTerms, Just "GHC.PrimopWrappers", "indexInt32OffAddrAsInt32X16#"),
+    ('9', 2556, InTerms, Just "GHC.Prim", "indexInt64OffAddrAsInt64X8#"),
+    ('9', 2557, InTerms, Just "GHC.PrimopWrappers", "indexInt64OffAddrAsInt64X8#"),
+    ('9', 2558, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsWord8X16#"),
+    ('9', 2559, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsWord8X16#"),
+    ('9', 2560, InTerms, Just "GHC.Prim", "indexWord16OffAddrAsWord16X8#"),
+    ('9', 2561, InTerms, Just "GHC.PrimopWrappers", "indexWord16OffAddrAsWord16X8#"),
+    ('9', 2562, InTerms, Just "GHC.Prim", "indexWord32OffAddrAsWord32X4#"),
+    ('9', 2563, InTerms, Just "GHC.PrimopWrappers", "indexWord32OffAddrAsWord32X4#"),
+    ('9', 2564, InTerms, Just "GHC.Prim", "indexWord64OffAddrAsWord64X2#"),
+    ('9', 2565, InTerms, Just "GHC.PrimopWrappers", "indexWord64OffAddrAsWord64X2#"),
+    ('9', 2566, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsWord8X32#"),
+    ('9', 2567, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsWord8X32#"),
+    ('9', 2568, InTerms, Just "GHC.Prim", "indexWord16OffAddrAsWord16X16#"),
+    ('9', 2569, InTerms, Just "GHC.PrimopWrappers", "indexWord16OffAddrAsWord16X16#"),
+    ('9', 2570, InTerms, Just "GHC.Prim", "indexWord32OffAddrAsWord32X8#"),
+    ('9', 2571, InTerms, Just "GHC.PrimopWrappers", "indexWord32OffAddrAsWord32X8#"),
+    ('9', 2572, InTerms, Just "GHC.Prim", "indexWord64OffAddrAsWord64X4#"),
+    ('9', 2573, InTerms, Just "GHC.PrimopWrappers", "indexWord64OffAddrAsWord64X4#"),
+    ('9', 2574, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsWord8X64#"),
+    ('9', 2575, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsWord8X64#"),
+    ('9', 2576, InTerms, Just "GHC.Prim", "indexWord16OffAddrAsWord16X32#"),
+    ('9', 2577, InTerms, Just "GHC.PrimopWrappers", "indexWord16OffAddrAsWord16X32#"),
+    ('9', 2578, InTerms, Just "GHC.Prim", "indexWord32OffAddrAsWord32X16#"),
+    ('9', 2579, InTerms, Just "GHC.PrimopWrappers", "indexWord32OffAddrAsWord32X16#"),
+    ('9', 2580, InTerms, Just "GHC.Prim", "indexWord64OffAddrAsWord64X8#"),
+    ('9', 2581, InTerms, Just "GHC.PrimopWrappers", "indexWord64OffAddrAsWord64X8#"),
+    ('9', 2582, InTerms, Just "GHC.Prim", "indexFloatOffAddrAsFloatX4#"),
+    ('9', 2583, InTerms, Just "GHC.PrimopWrappers", "indexFloatOffAddrAsFloatX4#"),
+    ('9', 2584, InTerms, Just "GHC.Prim", "indexDoubleOffAddrAsDoubleX2#"),
+    ('9', 2585, InTerms, Just "GHC.PrimopWrappers", "indexDoubleOffAddrAsDoubleX2#"),
+    ('9', 2586, InTerms, Just "GHC.Prim", "indexFloatOffAddrAsFloatX8#"),
+    ('9', 2587, InTerms, Just "GHC.PrimopWrappers", "indexFloatOffAddrAsFloatX8#"),
+    ('9', 2588, InTerms, Just "GHC.Prim", "indexDoubleOffAddrAsDoubleX4#"),
+    ('9', 2589, InTerms, Just "GHC.PrimopWrappers", "indexDoubleOffAddrAsDoubleX4#"),
+    ('9', 2590, InTerms, Just "GHC.Prim", "indexFloatOffAddrAsFloatX16#"),
+    ('9', 2591, InTerms, Just "GHC.PrimopWrappers", "indexFloatOffAddrAsFloatX16#"),
+    ('9', 2592, InTerms, Just "GHC.Prim", "indexDoubleOffAddrAsDoubleX8#"),
+    ('9', 2593, InTerms, Just "GHC.PrimopWrappers", "indexDoubleOffAddrAsDoubleX8#"),
+    ('9', 2594, InTerms, Just "GHC.Prim", "readInt8OffAddrAsInt8X16#"),
+    ('9', 2595, InTerms, Just "GHC.PrimopWrappers", "readInt8OffAddrAsInt8X16#"),
+    ('9', 2596, InTerms, Just "GHC.Prim", "readInt16OffAddrAsInt16X8#"),
+    ('9', 2597, InTerms, Just "GHC.PrimopWrappers", "readInt16OffAddrAsInt16X8#"),
+    ('9', 2598, InTerms, Just "GHC.Prim", "readInt32OffAddrAsInt32X4#"),
+    ('9', 2599, InTerms, Just "GHC.PrimopWrappers", "readInt32OffAddrAsInt32X4#"),
+    ('9', 2600, InTerms, Just "GHC.Prim", "readInt64OffAddrAsInt64X2#"),
+    ('9', 2601, InTerms, Just "GHC.PrimopWrappers", "readInt64OffAddrAsInt64X2#"),
+    ('9', 2602, InTerms, Just "GHC.Prim", "readInt8OffAddrAsInt8X32#"),
+    ('9', 2603, InTerms, Just "GHC.PrimopWrappers", "readInt8OffAddrAsInt8X32#"),
+    ('9', 2604, InTerms, Just "GHC.Prim", "readInt16OffAddrAsInt16X16#"),
+    ('9', 2605, InTerms, Just "GHC.PrimopWrappers", "readInt16OffAddrAsInt16X16#"),
+    ('9', 2606, InTerms, Just "GHC.Prim", "readInt32OffAddrAsInt32X8#"),
+    ('9', 2607, InTerms, Just "GHC.PrimopWrappers", "readInt32OffAddrAsInt32X8#"),
+    ('9', 2608, InTerms, Just "GHC.Prim", "readInt64OffAddrAsInt64X4#"),
+    ('9', 2609, InTerms, Just "GHC.PrimopWrappers", "readInt64OffAddrAsInt64X4#"),
+    ('9', 2610, InTerms, Just "GHC.Prim", "readInt8OffAddrAsInt8X64#"),
+    ('9', 2611, InTerms, Just "GHC.PrimopWrappers", "readInt8OffAddrAsInt8X64#"),
+    ('9', 2612, InTerms, Just "GHC.Prim", "readInt16OffAddrAsInt16X32#"),
+    ('9', 2613, InTerms, Just "GHC.PrimopWrappers", "readInt16OffAddrAsInt16X32#"),
+    ('9', 2614, InTerms, Just "GHC.Prim", "readInt32OffAddrAsInt32X16#"),
+    ('9', 2615, InTerms, Just "GHC.PrimopWrappers", "readInt32OffAddrAsInt32X16#"),
+    ('9', 2616, InTerms, Just "GHC.Prim", "readInt64OffAddrAsInt64X8#"),
+    ('9', 2617, InTerms, Just "GHC.PrimopWrappers", "readInt64OffAddrAsInt64X8#"),
+    ('9', 2618, InTerms, Just "GHC.Prim", "readWord8OffAddrAsWord8X16#"),
+    ('9', 2619, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsWord8X16#"),
+    ('9', 2620, InTerms, Just "GHC.Prim", "readWord16OffAddrAsWord16X8#"),
+    ('9', 2621, InTerms, Just "GHC.PrimopWrappers", "readWord16OffAddrAsWord16X8#"),
+    ('9', 2622, InTerms, Just "GHC.Prim", "readWord32OffAddrAsWord32X4#"),
+    ('9', 2623, InTerms, Just "GHC.PrimopWrappers", "readWord32OffAddrAsWord32X4#"),
+    ('9', 2624, InTerms, Just "GHC.Prim", "readWord64OffAddrAsWord64X2#"),
+    ('9', 2625, InTerms, Just "GHC.PrimopWrappers", "readWord64OffAddrAsWord64X2#"),
+    ('9', 2626, InTerms, Just "GHC.Prim", "readWord8OffAddrAsWord8X32#"),
+    ('9', 2627, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsWord8X32#"),
+    ('9', 2628, InTerms, Just "GHC.Prim", "readWord16OffAddrAsWord16X16#"),
+    ('9', 2629, InTerms, Just "GHC.PrimopWrappers", "readWord16OffAddrAsWord16X16#"),
+    ('9', 2630, InTerms, Just "GHC.Prim", "readWord32OffAddrAsWord32X8#"),
+    ('9', 2631, InTerms, Just "GHC.PrimopWrappers", "readWord32OffAddrAsWord32X8#"),
+    ('9', 2632, InTerms, Just "GHC.Prim", "readWord64OffAddrAsWord64X4#"),
+    ('9', 2633, InTerms, Just "GHC.PrimopWrappers", "readWord64OffAddrAsWord64X4#"),
+    ('9', 2634, InTerms, Just "GHC.Prim", "readWord8OffAddrAsWord8X64#"),
+    ('9', 2635, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsWord8X64#"),
+    ('9', 2636, InTerms, Just "GHC.Prim", "readWord16OffAddrAsWord16X32#"),
+    ('9', 2637, InTerms, Just "GHC.PrimopWrappers", "readWord16OffAddrAsWord16X32#"),
+    ('9', 2638, InTerms, Just "GHC.Prim", "readWord32OffAddrAsWord32X16#"),
+    ('9', 2639, InTerms, Just "GHC.PrimopWrappers", "readWord32OffAddrAsWord32X16#"),
+    ('9', 2640, InTerms, Just "GHC.Prim", "readWord64OffAddrAsWord64X8#"),
+    ('9', 2641, InTerms, Just "GHC.PrimopWrappers", "readWord64OffAddrAsWord64X8#"),
+    ('9', 2642, InTerms, Just "GHC.Prim", "readFloatOffAddrAsFloatX4#"),
+    ('9', 2643, InTerms, Just "GHC.PrimopWrappers", "readFloatOffAddrAsFloatX4#"),
+    ('9', 2644, InTerms, Just "GHC.Prim", "readDoubleOffAddrAsDoubleX2#"),
+    ('9', 2645, InTerms, Just "GHC.PrimopWrappers", "readDoubleOffAddrAsDoubleX2#"),
+    ('9', 2646, InTerms, Just "GHC.Prim", "readFloatOffAddrAsFloatX8#"),
+    ('9', 2647, InTerms, Just "GHC.PrimopWrappers", "readFloatOffAddrAsFloatX8#"),
+    ('9', 2648, InTerms, Just "GHC.Prim", "readDoubleOffAddrAsDoubleX4#"),
+    ('9', 2649, InTerms, Just "GHC.PrimopWrappers", "readDoubleOffAddrAsDoubleX4#"),
+    ('9', 2650, InTerms, Just "GHC.Prim", "readFloatOffAddrAsFloatX16#"),
+    ('9', 2651, InTerms, Just "GHC.PrimopWrappers", "readFloatOffAddrAsFloatX16#"),
+    ('9', 2652, InTerms, Just "GHC.Prim", "readDoubleOffAddrAsDoubleX8#"),
+    ('9', 2653, InTerms, Just "GHC.PrimopWrappers", "readDoubleOffAddrAsDoubleX8#"),
+    ('9', 2654, InTerms, Just "GHC.Prim", "writeInt8OffAddrAsInt8X16#"),
+    ('9', 2655, InTerms, Just "GHC.PrimopWrappers", "writeInt8OffAddrAsInt8X16#"),
+    ('9', 2656, InTerms, Just "GHC.Prim", "writeInt16OffAddrAsInt16X8#"),
+    ('9', 2657, InTerms, Just "GHC.PrimopWrappers", "writeInt16OffAddrAsInt16X8#"),
+    ('9', 2658, InTerms, Just "GHC.Prim", "writeInt32OffAddrAsInt32X4#"),
+    ('9', 2659, InTerms, Just "GHC.PrimopWrappers", "writeInt32OffAddrAsInt32X4#"),
+    ('9', 2660, InTerms, Just "GHC.Prim", "writeInt64OffAddrAsInt64X2#"),
+    ('9', 2661, InTerms, Just "GHC.PrimopWrappers", "writeInt64OffAddrAsInt64X2#"),
+    ('9', 2662, InTerms, Just "GHC.Prim", "writeInt8OffAddrAsInt8X32#"),
+    ('9', 2663, InTerms, Just "GHC.PrimopWrappers", "writeInt8OffAddrAsInt8X32#"),
+    ('9', 2664, InTerms, Just "GHC.Prim", "writeInt16OffAddrAsInt16X16#"),
+    ('9', 2665, InTerms, Just "GHC.PrimopWrappers", "writeInt16OffAddrAsInt16X16#"),
+    ('9', 2666, InTerms, Just "GHC.Prim", "writeInt32OffAddrAsInt32X8#"),
+    ('9', 2667, InTerms, Just "GHC.PrimopWrappers", "writeInt32OffAddrAsInt32X8#"),
+    ('9', 2668, InTerms, Just "GHC.Prim", "writeInt64OffAddrAsInt64X4#"),
+    ('9', 2669, InTerms, Just "GHC.PrimopWrappers", "writeInt64OffAddrAsInt64X4#"),
+    ('9', 2670, InTerms, Just "GHC.Prim", "writeInt8OffAddrAsInt8X64#"),
+    ('9', 2671, InTerms, Just "GHC.PrimopWrappers", "writeInt8OffAddrAsInt8X64#"),
+    ('9', 2672, InTerms, Just "GHC.Prim", "writeInt16OffAddrAsInt16X32#"),
+    ('9', 2673, InTerms, Just "GHC.PrimopWrappers", "writeInt16OffAddrAsInt16X32#"),
+    ('9', 2674, InTerms, Just "GHC.Prim", "writeInt32OffAddrAsInt32X16#"),
+    ('9', 2675, InTerms, Just "GHC.PrimopWrappers", "writeInt32OffAddrAsInt32X16#"),
+    ('9', 2676, InTerms, Just "GHC.Prim", "writeInt64OffAddrAsInt64X8#"),
+    ('9', 2677, InTerms, Just "GHC.PrimopWrappers", "writeInt64OffAddrAsInt64X8#"),
+    ('9', 2678, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsWord8X16#"),
+    ('9', 2679, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsWord8X16#"),
+    ('9', 2680, InTerms, Just "GHC.Prim", "writeWord16OffAddrAsWord16X8#"),
+    ('9', 2681, InTerms, Just "GHC.PrimopWrappers", "writeWord16OffAddrAsWord16X8#"),
+    ('9', 2682, InTerms, Just "GHC.Prim", "writeWord32OffAddrAsWord32X4#"),
+    ('9', 2683, InTerms, Just "GHC.PrimopWrappers", "writeWord32OffAddrAsWord32X4#"),
+    ('9', 2684, InTerms, Just "GHC.Prim", "writeWord64OffAddrAsWord64X2#"),
+    ('9', 2685, InTerms, Just "GHC.PrimopWrappers", "writeWord64OffAddrAsWord64X2#"),
+    ('9', 2686, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsWord8X32#"),
+    ('9', 2687, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsWord8X32#"),
+    ('9', 2688, InTerms, Just "GHC.Prim", "writeWord16OffAddrAsWord16X16#"),
+    ('9', 2689, InTerms, Just "GHC.PrimopWrappers", "writeWord16OffAddrAsWord16X16#"),
+    ('9', 2690, InTerms, Just "GHC.Prim", "writeWord32OffAddrAsWord32X8#"),
+    ('9', 2691, InTerms, Just "GHC.PrimopWrappers", "writeWord32OffAddrAsWord32X8#"),
+    ('9', 2692, InTerms, Just "GHC.Prim", "writeWord64OffAddrAsWord64X4#"),
+    ('9', 2693, InTerms, Just "GHC.PrimopWrappers", "writeWord64OffAddrAsWord64X4#"),
+    ('9', 2694, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsWord8X64#"),
+    ('9', 2695, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsWord8X64#"),
+    ('9', 2696, InTerms, Just "GHC.Prim", "writeWord16OffAddrAsWord16X32#"),
+    ('9', 2697, InTerms, Just "GHC.PrimopWrappers", "writeWord16OffAddrAsWord16X32#"),
+    ('9', 2698, InTerms, Just "GHC.Prim", "writeWord32OffAddrAsWord32X16#"),
+    ('9', 2699, InTerms, Just "GHC.PrimopWrappers", "writeWord32OffAddrAsWord32X16#"),
+    ('9', 2700, InTerms, Just "GHC.Prim", "writeWord64OffAddrAsWord64X8#"),
+    ('9', 2701, InTerms, Just "GHC.PrimopWrappers", "writeWord64OffAddrAsWord64X8#"),
+    ('9', 2702, InTerms, Just "GHC.Prim", "writeFloatOffAddrAsFloatX4#"),
+    ('9', 2703, InTerms, Just "GHC.PrimopWrappers", "writeFloatOffAddrAsFloatX4#"),
+    ('9', 2704, InTerms, Just "GHC.Prim", "writeDoubleOffAddrAsDoubleX2#"),
+    ('9', 2705, InTerms, Just "GHC.PrimopWrappers", "writeDoubleOffAddrAsDoubleX2#"),
+    ('9', 2706, InTerms, Just "GHC.Prim", "writeFloatOffAddrAsFloatX8#"),
+    ('9', 2707, InTerms, Just "GHC.PrimopWrappers", "writeFloatOffAddrAsFloatX8#"),
+    ('9', 2708, InTerms, Just "GHC.Prim", "writeDoubleOffAddrAsDoubleX4#"),
+    ('9', 2709, InTerms, Just "GHC.PrimopWrappers", "writeDoubleOffAddrAsDoubleX4#"),
+    ('9', 2710, InTerms, Just "GHC.Prim", "writeFloatOffAddrAsFloatX16#"),
+    ('9', 2711, InTerms, Just "GHC.PrimopWrappers", "writeFloatOffAddrAsFloatX16#"),
+    ('9', 2712, InTerms, Just "GHC.Prim", "writeDoubleOffAddrAsDoubleX8#"),
+    ('9', 2713, InTerms, Just "GHC.PrimopWrappers", "writeDoubleOffAddrAsDoubleX8#"),
+    ('9', 2714, InTerms, Just "GHC.Prim", "prefetchByteArray3#"),
+    ('9', 2715, InTerms, Just "GHC.PrimopWrappers", "prefetchByteArray3#"),
+    ('9', 2716, InTerms, Just "GHC.Prim", "prefetchMutableByteArray3#"),
+    ('9', 2717, InTerms, Just "GHC.PrimopWrappers", "prefetchMutableByteArray3#"),
+    ('9', 2718, InTerms, Just "GHC.Prim", "prefetchAddr3#"),
+    ('9', 2719, InTerms, Just "GHC.PrimopWrappers", "prefetchAddr3#"),
+    ('9', 2720, InTerms, Just "GHC.Prim", "prefetchValue3#"),
+    ('9', 2721, InTerms, Just "GHC.PrimopWrappers", "prefetchValue3#"),
+    ('9', 2722, InTerms, Just "GHC.Prim", "prefetchByteArray2#"),
+    ('9', 2723, InTerms, Just "GHC.PrimopWrappers", "prefetchByteArray2#"),
+    ('9', 2724, InTerms, Just "GHC.Prim", "prefetchMutableByteArray2#"),
+    ('9', 2725, InTerms, Just "GHC.PrimopWrappers", "prefetchMutableByteArray2#"),
+    ('9', 2726, InTerms, Just "GHC.Prim", "prefetchAddr2#"),
+    ('9', 2727, InTerms, Just "GHC.PrimopWrappers", "prefetchAddr2#"),
+    ('9', 2728, InTerms, Just "GHC.Prim", "prefetchValue2#"),
+    ('9', 2729, InTerms, Just "GHC.PrimopWrappers", "prefetchValue2#"),
+    ('9', 2730, InTerms, Just "GHC.Prim", "prefetchByteArray1#"),
+    ('9', 2731, InTerms, Just "GHC.PrimopWrappers", "prefetchByteArray1#"),
+    ('9', 2732, InTerms, Just "GHC.Prim", "prefetchMutableByteArray1#"),
+    ('9', 2733, InTerms, Just "GHC.PrimopWrappers", "prefetchMutableByteArray1#"),
+    ('9', 2734, InTerms, Just "GHC.Prim", "prefetchAddr1#"),
+    ('9', 2735, InTerms, Just "GHC.PrimopWrappers", "prefetchAddr1#"),
+    ('9', 2736, InTerms, Just "GHC.Prim", "prefetchValue1#"),
+    ('9', 2737, InTerms, Just "GHC.PrimopWrappers", "prefetchValue1#"),
+    ('9', 2738, InTerms, Just "GHC.Prim", "prefetchByteArray0#"),
+    ('9', 2739, InTerms, Just "GHC.PrimopWrappers", "prefetchByteArray0#"),
+    ('9', 2740, InTerms, Just "GHC.Prim", "prefetchMutableByteArray0#"),
+    ('9', 2741, InTerms, Just "GHC.PrimopWrappers", "prefetchMutableByteArray0#"),
+    ('9', 2742, InTerms, Just "GHC.Prim", "prefetchAddr0#"),
+    ('9', 2743, InTerms, Just "GHC.PrimopWrappers", "prefetchAddr0#"),
+    ('9', 2744, InTerms, Just "GHC.Prim", "prefetchValue0#"),
+    ('9', 2745, InTerms, Just "GHC.PrimopWrappers", "prefetchValue0#"),
+    ('b', 5, InTypes, Just "GHC.Types", "WordBox"),
+    ('b', 6, InTerms, Just "GHC.Types", "$tcWordBox"),
+    ('b', 7, InTerms, Just "GHC.Types", "MkWordBox"),
+    ('b', 8, InTerms, Just "GHC.Types", "MkWordBox"),
+    ('b', 9, InTerms, Just "GHC.Types", "$tc'MkWordBox"),
+    ('b', 10, InTypes, Just "GHC.Types", "IntBox"),
+    ('b', 11, InTerms, Just "GHC.Types", "$tcIntBox"),
+    ('b', 12, InTerms, Just "GHC.Types", "MkIntBox"),
+    ('b', 13, InTerms, Just "GHC.Types", "MkIntBox"),
+    ('b', 14, InTerms, Just "GHC.Types", "$tc'MkIntBox"),
+    ('b', 15, InTypes, Just "GHC.Types", "FloatBox"),
+    ('b', 16, InTerms, Just "GHC.Types", "$tcFloatBox"),
+    ('b', 17, InTerms, Just "GHC.Types", "MkFloatBox"),
+    ('b', 18, InTerms, Just "GHC.Types", "MkFloatBox"),
+    ('b', 19, InTerms, Just "GHC.Types", "$tc'MkFloatBox"),
+    ('b', 20, InTypes, Just "GHC.Types", "DoubleBox"),
+    ('b', 21, InTerms, Just "GHC.Types", "$tcDoubleBox"),
+    ('b', 22, InTerms, Just "GHC.Types", "MkDoubleBox"),
+    ('b', 23, InTerms, Just "GHC.Types", "MkDoubleBox"),
+    ('b', 24, InTerms, Just "GHC.Types", "$tc'MkDoubleBox"),
+    ('b', 25, InTypes, Just "GHC.Types", "Int8Box"),
+    ('b', 26, InTerms, Just "GHC.Types", "$tcInt8Box"),
+    ('b', 27, InTerms, Just "GHC.Types", "MkInt8Box"),
+    ('b', 28, InTerms, Just "GHC.Types", "MkInt8Box"),
+    ('b', 29, InTerms, Just "GHC.Types", "$tc'MkInt8Box"),
+    ('b', 30, InTypes, Just "GHC.Types", "Int16Box"),
+    ('b', 31, InTerms, Just "GHC.Types", "$tcInt16Box"),
+    ('b', 32, InTerms, Just "GHC.Types", "MkInt16Box"),
+    ('b', 33, InTerms, Just "GHC.Types", "MkInt16Box"),
+    ('b', 34, InTerms, Just "GHC.Types", "$tc'MkInt16Box"),
+    ('b', 35, InTypes, Just "GHC.Types", "Int32Box"),
+    ('b', 36, InTerms, Just "GHC.Types", "$tcInt32Box"),
+    ('b', 37, InTerms, Just "GHC.Types", "MkInt32Box"),
+    ('b', 38, InTerms, Just "GHC.Types", "MkInt32Box"),
+    ('b', 39, InTerms, Just "GHC.Types", "$tc'MkInt32Box"),
+    ('b', 40, InTypes, Just "GHC.Types", "Int64Box"),
+    ('b', 41, InTerms, Just "GHC.Types", "$tcInt64Box"),
+    ('b', 42, InTerms, Just "GHC.Types", "MkInt64Box"),
+    ('b', 43, InTerms, Just "GHC.Types", "MkInt64Box"),
+    ('b', 44, InTerms, Just "GHC.Types", "$tc'MkInt64Box"),
+    ('b', 45, InTypes, Just "GHC.Types", "Word8Box"),
+    ('b', 46, InTerms, Just "GHC.Types", "$tcWord8Box"),
+    ('b', 47, InTerms, Just "GHC.Types", "MkWord8Box"),
+    ('b', 48, InTerms, Just "GHC.Types", "MkWord8Box"),
+    ('b', 49, InTerms, Just "GHC.Types", "$tc'MkWord8Box"),
+    ('b', 50, InTypes, Just "GHC.Types", "Word16Box"),
+    ('b', 51, InTerms, Just "GHC.Types", "$tcWord16Box"),
+    ('b', 52, InTerms, Just "GHC.Types", "MkWord16Box"),
+    ('b', 53, InTerms, Just "GHC.Types", "MkWord16Box"),
+    ('b', 54, InTerms, Just "GHC.Types", "$tc'MkWord16Box"),
+    ('b', 55, InTypes, Just "GHC.Types", "Word32Box"),
+    ('b', 56, InTerms, Just "GHC.Types", "$tcWord32Box"),
+    ('b', 57, InTerms, Just "GHC.Types", "MkWord32Box"),
+    ('b', 58, InTerms, Just "GHC.Types", "MkWord32Box"),
+    ('b', 59, InTerms, Just "GHC.Types", "$tc'MkWord32Box"),
+    ('b', 60, InTypes, Just "GHC.Types", "Word64Box"),
+    ('b', 61, InTerms, Just "GHC.Types", "$tcWord64Box"),
+    ('b', 62, InTerms, Just "GHC.Types", "MkWord64Box"),
+    ('b', 63, InTerms, Just "GHC.Types", "MkWord64Box"),
+    ('b', 64, InTerms, Just "GHC.Types", "$tc'MkWord64Box"),
+    ('b', 65, InTypes, Just "GHC.Types", "LiftBox"),
+    ('b', 66, InTerms, Just "GHC.Types", "$tcLiftBox"),
+    ('b', 67, InTerms, Just "GHC.Types", "MkLiftBox"),
+    ('b', 68, InTerms, Just "GHC.Types", "MkLiftBox"),
+    ('b', 69, InTerms, Just "GHC.Types", "$tc'MkLiftBox"),
+    ('b', 70, InTypes, Just "GHC.Types", "DictBox"),
+    ('b', 71, InTerms, Just "GHC.Types", "$tcDictBox"),
+    ('b', 72, InTerms, Just "GHC.Types", "MkDictBox"),
+    ('b', 73, InTerms, Just "GHC.Types", "MkDictBox"),
+    ('b', 74, InTerms, Just "GHC.Types", "$tc'MkDictBox")
+  ]
+
+-- | The module GHC keeps the primitive operations in, which has no
+-- interface file, and the fixities declared there.
+primops :: (Text, [(Text, Fixity)])
+primops =
+  ( "GHC.Prim",
+    [ ("*#", Fixity LeftAssoc 7),
+      ("*##", Fixity LeftAssoc 7),
+      ("**##", Fixity LeftAssoc 9),
+      ("+#", Fixity LeftAssoc 6),
+      ("+##", Fixity LeftAssoc 6),
+      ("-#", Fixity LeftAssoc 6),
+      ("-##", Fixity LeftAssoc 6),
+      ("/##", Fixity LeftAssoc 7),
+      ("/=#", Fixity NoAssoc 4),
+      ("/=##", Fixity NoAssoc 4),
+      ("<#", Fixity NoAssoc 4),
+      ("<##", Fixity NoAssoc 4),
+      ("<=#", Fixity NoAssoc 4),
+      ("<=##", Fixity NoAssoc 4),
+      ("==#", Fixity NoAssoc 4),
+      ("==##", Fixity NoAssoc 4),
+      (">#", Fixity NoAssoc 4),
+      (">##", Fixity NoAssoc 4),
+      (">=#", Fixity NoAssoc 4),
+      (">=##", Fixity NoAssoc 4),
+      ("seq", Fixity RightAssoc 0)
+    ]
+  )
diff --git a/src/Tilia/Fixity/KnownKeys/Ghc912.hs b/src/Tilia/Fixity/KnownKeys/Ghc912.hs
new file mode 100644
--- /dev/null
+++ b/src/Tilia/Fixity/KnownKeys/Ghc912.hs
@@ -0,0 +1,4134 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+-- | The names GHC 9.12 writes into interface files as keys, and the
+-- fixities of its primitive operations.
+--
+-- Generated by @generate-known-keys.py@ in the root of the repository, from
+-- GHC 9.12.2. Run that script again to update this table.
+module Tilia.Fixity.KnownKeys.Ghc912
+  ( knownKeys,
+    primops,
+  )
+where
+
+import Data.Text (Text)
+import Tilia.Fixity (Direction (..), Fixity (..), Namespace (..))
+
+-- | Every name a key stands for: the tag and index of its key, its
+-- namespace, the module GHC prints it with, if it prints one, and its name.
+knownKeys :: [(Char, Int, Namespace, Maybe Text, Text)]
+knownKeys =
+  [ ('0', 1, InTerms, Just "GHC.Prim.Panic", "absentError"),
+    ('0', 2, InTerms, Just "GHC.Prim.Panic", "absentConstraintError"),
+    ('0', 3, InTerms, Just "GHC.Internal.Base", "augment"),
+    ('0', 4, InTerms, Just "GHC.Internal.Base", "++"),
+    ('0', 5, InTerms, Just "GHC.Internal.Base", "build"),
+    ('0', 6, InTerms, Just "GHC.Internal.Base", "foldr"),
+    ('0', 7, InTerms, Just "GHC.Internal.Control.Exception.Base", "recSelError"),
+    ('0', 8, InTerms, Just "GHC.Prim", "seq"),
+    ('0', 9, InTerms, Just "GHC.Prim.Panic", "absentSumFieldError"),
+    ('0', 10, InTerms, Just "GHC.Internal.Base", "eqString"),
+    ('0', 11, InTerms, Just "GHC.Internal.Control.Exception.Base", "noMethodBindingError"),
+    ('0', 12, InTerms, Just "GHC.Internal.Control.Exception.Base", "nonExhaustiveGuardsError"),
+    ('0', 13, InTerms, Just "GHC.Internal.Control.Exception.Base", "impossibleError"),
+    ('0', 14, InTerms, Just "GHC.Internal.Control.Exception.Base", "impossibleConstraintError"),
+    ('0', 15, InTerms, Just "GHC.Internal.Control.Exception.Base", "patError"),
+    ('0', 16, InTerms, Just "GHC.Prim", "realWorld#"),
+    ('0', 17, InTerms, Just "GHC.Internal.Control.Exception.Base", "recConError"),
+    ('0', 18, InTerms, Just "GHC.CString", "unpackCStringUtf8#"),
+    ('0', 19, InTerms, Just "GHC.CString", "unpackAppendCStringUtf8#"),
+    ('0', 20, InTerms, Just "GHC.CString", "unpackFoldrCStringUtf8#"),
+    ('0', 21, InTerms, Just "GHC.CString", "unpackCString#"),
+    ('0', 22, InTerms, Just "GHC.CString", "unpackAppendCString#"),
+    ('0', 23, InTerms, Just "GHC.CString", "unpackFoldrCString#"),
+    ('0', 24, InTerms, Just "GHC.Prim", "void#"),
+    ('0', 25, InTerms, Just "GHC.Internal.Control.Exception.Base", "typeError"),
+    ('0', 26, InTerms, Just "GHC.Classes", "divInt#"),
+    ('0', 27, InTerms, Just "GHC.Classes", "modInt#"),
+    ('0', 28, InTerms, Just "GHC.CString", "cstringLength#"),
+    ('0', 31, InTerms, Just "GHC.Internal.List", "concat"),
+    ('0', 32, InTerms, Just "GHC.Internal.List", "filter"),
+    ('0', 33, InTerms, Just "GHC.Internal.List", "zip"),
+    ('0', 34, InTerms, Just "GHC.Internal.Base", "bindIO"),
+    ('0', 35, InTerms, Just "GHC.Internal.Base", "returnIO"),
+    ('0', 36, InTerms, Just "GHC.Internal.Stable", "newStablePtr"),
+    ('0', 37, InTerms, Just "GHC.Internal.System.IO", "print"),
+    ('0', 38, InTerms, Just "GHC.Internal.IO", "failIO"),
+    ('0', 39, InTerms, Just "GHC.Prim", "nullAddr#"),
+    ('0', 43, InTerms, Just "GHC.Internal.Base", "otherwise"),
+    ('0', 44, InTerms, Just "GHC.Internal.Base", "assert"),
+    ('0', 45, InTerms, Just "GHC.Prim", "leftSection"),
+    ('0', 46, InTerms, Just "GHC.Prim", "rightSection"),
+    ('0', 102, InTerms, Just "GHC.Internal.TopHandler", "runMainIO"),
+    ('0', 103, InTerms, Just "GHC.Internal.Base", "thenIO"),
+    ('0', 104, InTerms, Just "GHC.Magic", "lazy"),
+    ('0', 105, InTerms, Just "GHC.Internal.IO.Exception", "assertError"),
+    ('0', 106, InTerms, Just "GHC.Magic", "oneShot"),
+    ('0', 107, InTerms, Just "GHC.Magic", "runRW#"),
+    ('0', 108, InTerms, Just "GHC.Internal.Debug.Trace", "trace"),
+    ('0', 109, InTerms, Just "GHC.Magic", "nospec"),
+    ('0', 120, InTerms, Just "GHC.Magic", "inline"),
+    ('0', 121, InTerms, Just "GHC.Internal.Base", "map"),
+    ('0', 123, InTerms, Just "GHC.Internal.Base", "$"),
+    ('0', 125, InTerms, Just "GHC.Internal.Exts", "considerAccessible"),
+    ('0', 126, InTerms, Just "GHC.Magic", "noinline"),
+    ('0', 127, InTerms, Just "GHC.Magic", "noinlineConstraint"),
+    ('0', 128, InTerms, Just "GHC.Internal.Float", "integerToFloat#"),
+    ('0', 129, InTerms, Just "GHC.Internal.Float", "integerToDouble#"),
+    ('0', 130, InTerms, Just "GHC.Internal.Float", "naturalToFloat#"),
+    ('0', 131, InTerms, Just "GHC.Internal.Float", "naturalToDouble#"),
+    ('0', 132, InTerms, Just "GHC.Internal.Float", "rationalToFloat"),
+    ('0', 133, InTerms, Just "GHC.Internal.Float", "rationalToDouble"),
+    ('0', 134, InTerms, Just "GHC.Internal.IO", "seq#"),
+    ('0', 157, InTerms, Just "GHC.Prim", "coerce"),
+    ('0', 160, InTerms, Just "GHC.Internal.Num", "fromInteger"),
+    ('0', 161, InTerms, Just "GHC.Internal.Num", "-"),
+    ('0', 162, InTerms, Just "GHC.Internal.Real", "fromRational"),
+    ('0', 163, InTerms, Just "GHC.Internal.Enum", "enumFrom"),
+    ('0', 164, InTerms, Just "GHC.Internal.Enum", "enumFromThen"),
+    ('0', 165, InTerms, Just "GHC.Internal.Enum", "enumFromTo"),
+    ('0', 166, InTerms, Just "GHC.Internal.Enum", "enumFromThenTo"),
+    ('0', 167, InTerms, Just "GHC.Classes", "=="),
+    ('0', 168, InTerms, Just "GHC.Classes", ">="),
+    ('0', 169, InTerms, Just "GHC.Internal.Num", "negate"),
+    ('0', 171, InTerms, Just "GHC.Internal.Base", ">>="),
+    ('0', 172, InTerms, Just "GHC.Internal.Base", ">>"),
+    ('0', 173, InTerms, Just "GHC.Internal.Base", "fmap"),
+    ('0', 174, InTerms, Just "GHC.Internal.Base", "return"),
+    ('0', 175, InTerms, Just "GHC.Internal.Control.Monad.Fix", "mfix"),
+    ('0', 176, InTerms, Just "GHC.Internal.Control.Monad.Fail", "fail"),
+    ('0', 177, InTerms, Just "GHC.Internal.OverloadedLabels", "fromLabel"),
+    ('0', 180, InTerms, Just "GHC.Internal.Control.Arrow", "arr"),
+    ('0', 181, InTerms, Just "GHC.Internal.Desugar", ">>>"),
+    ('0', 182, InTerms, Just "GHC.Internal.Control.Arrow", "first"),
+    ('0', 183, InTerms, Just "GHC.Internal.Control.Arrow", "app"),
+    ('0', 184, InTerms, Just "GHC.Internal.Control.Arrow", "|||"),
+    ('0', 185, InTerms, Just "GHC.Internal.Control.Arrow", "loop"),
+    ('0', 186, InTerms, Just "GHC.Internal.Data.String", "fromString"),
+    ('0', 187, InTerms, Just "GHC.Internal.Desugar", "toAnnotationWrapper"),
+    ('0', 190, InTerms, Just "GHC.Internal.Real", "fromIntegral"),
+    ('0', 191, InTerms, Just "GHC.Internal.Real", "realToFrac"),
+    ('0', 192, InTerms, Just "GHC.Internal.Real", "toInteger"),
+    ('0', 193, InTerms, Just "GHC.Internal.Real", "toRational"),
+    ('0', 194, InTerms, Just "GHC.Internal.Control.Monad", "guard"),
+    ('0', 195, InTerms, Just "GHC.Internal.Control.Monad", "liftM"),
+    ('0', 196, InTerms, Just "GHC.Internal.Control.Monad.Zip", "mzip"),
+    ('0', 197, InTerms, Just "GHC.Internal.GHCi", "ghciStepIO"),
+    ('0', 198, InTypes, Just "GHC.Internal.IsList", "IsList"),
+    ('0', 199, InTerms, Just "GHC.Internal.IsList", "fromList"),
+    ('0', 200, InTerms, Just "GHC.Internal.TH.Syntax", "returnQ"),
+    ('0', 201, InTerms, Just "GHC.Internal.TH.Syntax", "bindQ"),
+    ('0', 202, InTerms, Just "GHC.Internal.TH.Syntax", "sequenceQ"),
+    ('0', 203, InTerms, Just "GHC.Internal.TH.Lift", "lift"),
+    ('0', 204, InTerms, Just "GHC.Internal.TH.Syntax", "newName"),
+    ('0', 205, InTerms, Just "GHC.Internal.TH.Syntax", "mkName"),
+    ('0', 206, InTerms, Just "GHC.Internal.TH.Syntax", "mkNameG_v"),
+    ('0', 207, InTerms, Just "GHC.Internal.TH.Syntax", "mkNameG_d"),
+    ('0', 208, InTerms, Just "GHC.Internal.TH.Syntax", "mkNameG_tc"),
+    ('0', 209, InTerms, Just "GHC.Internal.TH.Syntax", "mkNameL"),
+    ('0', 210, InTerms, Just "GHC.Internal.TH.Syntax", "mkNameS"),
+    ('0', 211, InTerms, Just "GHC.Internal.TH.Syntax", "unType"),
+    ('0', 212, InTerms, Just "GHC.Internal.TH.Syntax", "unTypeCode"),
+    ('0', 214, InTerms, Just "GHC.Internal.TH.Lift", "liftTyped"),
+    ('0', 215, InTerms, Just "GHC.Internal.TH.Syntax", "mkModName"),
+    ('0', 216, InTerms, Just "GHC.Internal.TH.Syntax", "unsafeCodeCoerce"),
+    ('0', 217, InTerms, Just "GHC.Internal.TH.Syntax", "mkNameQ"),
+    ('0', 218, InTerms, Just "GHC.Internal.TH.Syntax", "mkNameG_fld"),
+    ('0', 220, InTerms, Just "GHC.Internal.TH.Lib", "charL"),
+    ('0', 221, InTerms, Just "GHC.Internal.TH.Lib", "stringL"),
+    ('0', 222, InTerms, Just "GHC.Internal.TH.Lib", "integerL"),
+    ('0', 223, InTerms, Just "GHC.Internal.TH.Lib", "intPrimL"),
+    ('0', 224, InTerms, Just "GHC.Internal.TH.Lib", "wordPrimL"),
+    ('0', 225, InTerms, Just "GHC.Internal.TH.Lib", "floatPrimL"),
+    ('0', 226, InTerms, Just "GHC.Internal.TH.Lib", "doublePrimL"),
+    ('0', 227, InTerms, Just "GHC.Internal.TH.Lib", "rationalL"),
+    ('0', 228, InTerms, Just "GHC.Internal.TH.Lib", "stringPrimL"),
+    ('0', 229, InTerms, Just "GHC.Internal.TH.Lib", "charPrimL"),
+    ('0', 230, InTerms, Just "GHC.Internal.TH.Lift", "liftString"),
+    ('0', 240, InTerms, Just "GHC.Internal.TH.Lib", "litP"),
+    ('0', 241, InTerms, Just "GHC.Internal.TH.Lib", "varP"),
+    ('0', 242, InTerms, Just "GHC.Internal.TH.Lib", "tupP"),
+    ('0', 243, InTerms, Just "GHC.Internal.TH.Lib", "unboxedTupP"),
+    ('0', 244, InTerms, Just "GHC.Internal.TH.Lib", "unboxedSumP"),
+    ('0', 245, InTerms, Just "GHC.Internal.TH.Lib", "conP"),
+    ('0', 246, InTerms, Just "GHC.Internal.TH.Lib", "infixP"),
+    ('0', 247, InTerms, Just "GHC.Internal.TH.Lib", "tildeP"),
+    ('0', 248, InTerms, Just "GHC.Internal.TH.Lib", "bangP"),
+    ('0', 249, InTerms, Just "GHC.Internal.TH.Lib", "asP"),
+    ('0', 250, InTerms, Just "GHC.Internal.TH.Lib", "wildP"),
+    ('0', 251, InTerms, Just "GHC.Internal.TH.Lib", "recP"),
+    ('0', 252, InTerms, Just "GHC.Internal.TH.Lib", "listP"),
+    ('0', 253, InTerms, Just "GHC.Internal.TH.Lib", "sigP"),
+    ('0', 254, InTerms, Just "GHC.Internal.TH.Lib", "viewP"),
+    ('0', 255, InTerms, Just "GHC.Internal.TH.Lib", "typeP"),
+    ('0', 256, InTerms, Just "GHC.Internal.TH.Lib", "invisP"),
+    ('0', 257, InTerms, Just "GHC.Internal.TH.Lib", "orP"),
+    ('0', 260, InTerms, Just "GHC.Internal.TH.Lib", "fieldPat"),
+    ('0', 261, InTerms, Just "GHC.Internal.TH.Lib", "match"),
+    ('0', 262, InTerms, Just "GHC.Internal.TH.Lib", "clause"),
+    ('0', 270, InTerms, Just "GHC.Internal.TH.Lib", "varE"),
+    ('0', 271, InTerms, Just "GHC.Internal.TH.Lib", "conE"),
+    ('0', 272, InTerms, Just "GHC.Internal.TH.Lib", "litE"),
+    ('0', 273, InTerms, Just "GHC.Internal.TH.Lib", "appE"),
+    ('0', 274, InTerms, Just "GHC.Internal.TH.Lib", "appTypeE"),
+    ('0', 275, InTerms, Just "GHC.Internal.TH.Lib", "infixE"),
+    ('0', 276, InTerms, Just "GHC.Internal.TH.Lib", "infixApp"),
+    ('0', 277, InTerms, Just "GHC.Internal.TH.Lib", "sectionL"),
+    ('0', 278, InTerms, Just "GHC.Internal.TH.Lib", "sectionR"),
+    ('0', 279, InTerms, Just "GHC.Internal.TH.Lib", "lamE"),
+    ('0', 280, InTerms, Just "GHC.Internal.TH.Lib", "lamCaseE"),
+    ('0', 281, InTerms, Just "GHC.Internal.TH.Lib", "lamCasesE"),
+    ('0', 282, InTerms, Just "GHC.Internal.TH.Lib", "tupE"),
+    ('0', 283, InTerms, Just "GHC.Internal.TH.Lib", "unboxedTupE"),
+    ('0', 284, InTerms, Just "GHC.Internal.TH.Lib", "unboxedSumE"),
+    ('0', 285, InTerms, Just "GHC.Internal.TH.Lib", "condE"),
+    ('0', 286, InTerms, Just "GHC.Internal.TH.Lib", "multiIfE"),
+    ('0', 287, InTerms, Just "GHC.Internal.TH.Lib", "letE"),
+    ('0', 288, InTerms, Just "GHC.Internal.TH.Lib", "caseE"),
+    ('0', 289, InTerms, Just "GHC.Internal.TH.Lib", "doE"),
+    ('0', 290, InTerms, Just "GHC.Internal.TH.Lib", "compE"),
+    ('0', 291, InTerms, Just "GHC.Internal.TH.Lib", "fromE"),
+    ('0', 292, InTerms, Just "GHC.Internal.TH.Lib", "fromThenE"),
+    ('0', 293, InTerms, Just "GHC.Internal.TH.Lib", "fromToE"),
+    ('0', 294, InTerms, Just "GHC.Internal.TH.Lib", "fromThenToE"),
+    ('0', 295, InTerms, Just "GHC.Internal.TH.Lib", "listE"),
+    ('0', 296, InTerms, Just "GHC.Internal.TH.Lib", "sigE"),
+    ('0', 297, InTerms, Just "GHC.Internal.TH.Lib", "recConE"),
+    ('0', 298, InTerms, Just "GHC.Internal.TH.Lib", "recUpdE"),
+    ('0', 299, InTerms, Just "GHC.Internal.TH.Lib", "staticE"),
+    ('0', 300, InTerms, Just "GHC.Internal.TH.Lib", "unboundVarE"),
+    ('0', 301, InTerms, Just "GHC.Internal.TH.Lib", "labelE"),
+    ('0', 302, InTerms, Just "GHC.Internal.TH.Lib", "implicitParamVarE"),
+    ('0', 303, InTerms, Just "GHC.Internal.TH.Lib", "mdoE"),
+    ('0', 304, InTerms, Just "GHC.Internal.TH.Lib", "getFieldE"),
+    ('0', 305, InTerms, Just "GHC.Internal.TH.Lib", "projectionE"),
+    ('0', 306, InTerms, Just "GHC.Internal.TH.Lib", "typeE"),
+    ('0', 307, InTerms, Just "GHC.Internal.TH.Lib", "fieldExp"),
+    ('0', 308, InTerms, Just "GHC.Internal.TH.Lib", "guardedB"),
+    ('0', 309, InTerms, Just "GHC.Internal.TH.Lib", "normalB"),
+    ('0', 310, InTerms, Just "GHC.Internal.TH.Lib", "normalGE"),
+    ('0', 311, InTerms, Just "GHC.Internal.TH.Lib", "patGE"),
+    ('0', 312, InTerms, Just "GHC.Internal.TH.Lib", "bindS"),
+    ('0', 313, InTerms, Just "GHC.Internal.TH.Lib", "letS"),
+    ('0', 314, InTerms, Just "GHC.Internal.TH.Lib", "noBindS"),
+    ('0', 315, InTerms, Just "GHC.Internal.TH.Lib", "parS"),
+    ('0', 316, InTerms, Just "GHC.Internal.TH.Lib", "recS"),
+    ('0', 320, InTerms, Just "GHC.Internal.TH.Lib", "funD"),
+    ('0', 321, InTerms, Just "GHC.Internal.TH.Lib", "valD"),
+    ('0', 322, InTerms, Just "GHC.Internal.TH.Lib", "dataD"),
+    ('0', 323, InTerms, Just "GHC.Internal.TH.Lib", "newtypeD"),
+    ('0', 324, InTerms, Just "GHC.Internal.TH.Lib", "tySynD"),
+    ('0', 325, InTerms, Just "GHC.Internal.TH.Lib", "classD"),
+    ('0', 326, InTerms, Just "GHC.Internal.TH.Lib", "instanceWithOverlapD"),
+    ('0', 328, InTerms, Just "GHC.Internal.TH.Lib", "sigD"),
+    ('0', 329, InTerms, Just "GHC.Internal.TH.Lib", "forImpD"),
+    ('0', 330, InTerms, Just "GHC.Internal.TH.Lib", "pragInlD"),
+    ('0', 331, InTerms, Just "GHC.Internal.TH.Lib", "pragSpecD"),
+    ('0', 332, InTerms, Just "GHC.Internal.TH.Lib", "pragSpecInlD"),
+    ('0', 333, InTerms, Just "GHC.Internal.TH.Lib", "pragSpecInstD"),
+    ('0', 334, InTerms, Just "GHC.Internal.TH.Lib", "pragRuleD"),
+    ('0', 335, InTerms, Just "GHC.Internal.TH.Lib", "pragAnnD"),
+    ('0', 336, InTerms, Just "GHC.Internal.TH.Lib", "dataFamilyD"),
+    ('0', 337, InTerms, Just "GHC.Internal.TH.Lib", "openTypeFamilyD"),
+    ('0', 338, InTerms, Just "GHC.Internal.TH.Lib", "dataInstD"),
+    ('0', 339, InTerms, Just "GHC.Internal.TH.Lib", "newtypeInstD"),
+    ('0', 340, InTerms, Just "GHC.Internal.TH.Lib", "tySynInstD"),
+    ('0', 341, InTerms, Just "GHC.Internal.TH.Lib", "closedTypeFamilyD"),
+    ('0', 342, InTerms, Just "GHC.Internal.TH.Lib", "infixLWithSpecD"),
+    ('0', 343, InTerms, Just "GHC.Internal.TH.Lib", "infixRWithSpecD"),
+    ('0', 344, InTerms, Just "GHC.Internal.TH.Lib", "infixNWithSpecD"),
+    ('0', 345, InTerms, Just "GHC.Internal.TH.Lib", "roleAnnotD"),
+    ('0', 346, InTerms, Just "GHC.Internal.TH.Lib", "standaloneDerivWithStrategyD"),
+    ('0', 347, InTerms, Just "GHC.Internal.TH.Lib", "defaultSigD"),
+    ('0', 348, InTerms, Just "GHC.Internal.TH.Lib", "patSynD"),
+    ('0', 349, InTerms, Just "GHC.Internal.TH.Lib", "patSynSigD"),
+    ('0', 350, InTerms, Just "GHC.Internal.TH.Lib", "pragCompleteD"),
+    ('0', 351, InTerms, Just "GHC.Internal.TH.Lib", "implicitParamBindD"),
+    ('0', 352, InTerms, Just "GHC.Internal.TH.Lib", "kiSigD"),
+    ('0', 353, InTerms, Just "GHC.Internal.TH.Lib", "defaultD"),
+    ('0', 354, InTerms, Just "GHC.Internal.TH.Lib", "pragOpaqueD"),
+    ('0', 355, InTerms, Just "GHC.Internal.TH.Lib", "typeDataD"),
+    ('0', 356, InTerms, Just "GHC.Internal.TH.Lib", "pragSCCFunD"),
+    ('0', 357, InTerms, Just "GHC.Internal.TH.Lib", "pragSCCFunNamedD"),
+    ('0', 361, InTerms, Just "GHC.Internal.TH.Lib", "cxt"),
+    ('0', 362, InTerms, Just "GHC.Internal.TH.Lib", "noSourceUnpackedness"),
+    ('0', 363, InTerms, Just "GHC.Internal.TH.Lib", "sourceNoUnpack"),
+    ('0', 364, InTerms, Just "GHC.Internal.TH.Lib", "sourceUnpack"),
+    ('0', 365, InTerms, Just "GHC.Internal.TH.Lib", "noSourceStrictness"),
+    ('0', 366, InTerms, Just "GHC.Internal.TH.Lib", "sourceLazy"),
+    ('0', 367, InTerms, Just "GHC.Internal.TH.Lib", "sourceStrict"),
+    ('0', 368, InTerms, Just "GHC.Internal.TH.Lib", "normalC"),
+    ('0', 369, InTerms, Just "GHC.Internal.TH.Lib", "recC"),
+    ('0', 370, InTerms, Just "GHC.Internal.TH.Lib", "infixC"),
+    ('0', 371, InTerms, Just "GHC.Internal.TH.Lib", "forallC"),
+    ('0', 372, InTerms, Just "GHC.Internal.TH.Lib", "gadtC"),
+    ('0', 373, InTerms, Just "GHC.Internal.TH.Lib", "recGadtC"),
+    ('0', 374, InTerms, Just "GHC.Internal.TH.Lib", "bang"),
+    ('0', 375, InTerms, Just "GHC.Internal.TH.Lib", "bangType"),
+    ('0', 376, InTerms, Just "GHC.Internal.TH.Lib", "varBangType"),
+    ('0', 377, InTerms, Just "GHC.Internal.TH.Lib", "unidir"),
+    ('0', 378, InTerms, Just "GHC.Internal.TH.Lib", "implBidir"),
+    ('0', 379, InTerms, Just "GHC.Internal.TH.Lib", "explBidir"),
+    ('0', 380, InTerms, Just "GHC.Internal.TH.Lib", "prefixPatSyn"),
+    ('0', 381, InTerms, Just "GHC.Internal.TH.Lib", "infixPatSyn"),
+    ('0', 382, InTerms, Just "GHC.Internal.TH.Lib", "recordPatSyn"),
+    ('0', 390, InTerms, Just "GHC.Internal.TH.Lib", "forallT"),
+    ('0', 391, InTerms, Just "GHC.Internal.TH.Lib", "forallVisT"),
+    ('0', 392, InTerms, Just "GHC.Internal.TH.Lib", "varT"),
+    ('0', 393, InTerms, Just "GHC.Internal.TH.Lib", "conT"),
+    ('0', 394, InTerms, Just "GHC.Internal.TH.Lib", "tupleT"),
+    ('0', 395, InTerms, Just "GHC.Internal.TH.Lib", "unboxedTupleT"),
+    ('0', 396, InTerms, Just "GHC.Internal.TH.Lib", "unboxedSumT"),
+    ('0', 397, InTerms, Just "GHC.Internal.TH.Lib", "arrowT"),
+    ('0', 398, InTerms, Just "GHC.Internal.TH.Lib", "listT"),
+    ('0', 399, InTerms, Just "GHC.Internal.TH.Lib", "appT"),
+    ('0', 400, InTerms, Just "GHC.Internal.TH.Lib", "appKindT"),
+    ('0', 401, InTerms, Just "GHC.Internal.TH.Lib", "sigT"),
+    ('0', 402, InTerms, Just "GHC.Internal.TH.Lib", "equalityT"),
+    ('0', 403, InTerms, Just "GHC.Internal.TH.Lib", "litT"),
+    ('0', 404, InTerms, Just "GHC.Internal.TH.Lib", "promotedT"),
+    ('0', 405, InTerms, Just "GHC.Internal.TH.Lib", "promotedTupleT"),
+    ('0', 406, InTerms, Just "GHC.Internal.TH.Lib", "promotedNilT"),
+    ('0', 407, InTerms, Just "GHC.Internal.TH.Lib", "promotedConsT"),
+    ('0', 408, InTerms, Just "GHC.Internal.TH.Lib", "wildCardT"),
+    ('0', 409, InTerms, Just "GHC.Internal.TH.Lib", "implicitParamT"),
+    ('0', 410, InTerms, Just "GHC.Internal.TH.Lib", "infixT"),
+    ('0', 411, InTerms, Just "GHC.Internal.TH.Lib", "numTyLit"),
+    ('0', 412, InTerms, Just "GHC.Internal.TH.Lib", "strTyLit"),
+    ('0', 413, InTerms, Just "GHC.Internal.TH.Lib", "charTyLit"),
+    ('0', 414, InTerms, Just "GHC.Internal.TH.Lib", "plainTV"),
+    ('0', 415, InTerms, Just "GHC.Internal.TH.Lib", "kindedTV"),
+    ('0', 416, InTerms, Just "GHC.Internal.TH.Lib", "nominalR"),
+    ('0', 417, InTerms, Just "GHC.Internal.TH.Lib", "representationalR"),
+    ('0', 418, InTerms, Just "GHC.Internal.TH.Lib", "phantomR"),
+    ('0', 419, InTerms, Just "GHC.Internal.TH.Lib", "inferR"),
+    ('0', 425, InTerms, Just "GHC.Internal.TH.Lib", "starK"),
+    ('0', 426, InTerms, Just "GHC.Internal.TH.Lib", "constraintK"),
+    ('0', 427, InTerms, Just "GHC.Internal.TH.Lib", "noSig"),
+    ('0', 428, InTerms, Just "GHC.Internal.TH.Lib", "kindSig"),
+    ('0', 429, InTerms, Just "GHC.Internal.TH.Lib", "tyVarSig"),
+    ('0', 430, InTerms, Just "GHC.Internal.TH.Lib", "injectivityAnn"),
+    ('0', 431, InTerms, Just "GHC.Internal.TH.Lib", "cCall"),
+    ('0', 432, InTerms, Just "GHC.Internal.TH.Lib", "stdCall"),
+    ('0', 433, InTerms, Just "GHC.Internal.TH.Lib", "cApi"),
+    ('0', 434, InTerms, Just "GHC.Internal.TH.Lib", "prim"),
+    ('0', 435, InTerms, Just "GHC.Internal.TH.Lib", "javaScript"),
+    ('0', 440, InTerms, Just "GHC.Internal.TH.Lib", "unsafe"),
+    ('0', 441, InTerms, Just "GHC.Internal.TH.Lib", "safe"),
+    ('0', 442, InTerms, Just "GHC.Internal.TH.Lib", "interruptible"),
+    ('0', 445, InTerms, Just "GHC.Internal.TH.Lib", "funDep"),
+    ('0', 446, InTerms, Just "GHC.Internal.TH.Lib", "mulArrowT"),
+    ('0', 460, InTerms, Just "GHC.Internal.TH.Lib", "tySynEqn"),
+    ('0', 470, InTerms, Just "GHC.Internal.TH.Quote", "quoteExp"),
+    ('0', 471, InTerms, Just "GHC.Internal.TH.Quote", "quotePat"),
+    ('0', 472, InTerms, Just "GHC.Internal.TH.Quote", "quoteDec"),
+    ('0', 473, InTerms, Just "GHC.Internal.TH.Quote", "quoteType"),
+    ('0', 480, InTerms, Just "GHC.Internal.TH.Lib", "ruleVar"),
+    ('0', 481, InTerms, Just "GHC.Internal.TH.Lib", "typedRuleVar"),
+    ('0', 482, InTerms, Just "GHC.Internal.TH.Lib", "plainInvisTV"),
+    ('0', 483, InTerms, Just "GHC.Internal.TH.Lib", "kindedInvisTV"),
+    ('0', 484, InTerms, Just "GHC.Internal.TH.Lib", "plainBndrTV"),
+    ('0', 485, InTerms, Just "GHC.Internal.TH.Lib", "kindedBndrTV"),
+    ('0', 490, InTerms, Just "GHC.Internal.TH.Lib", "valueAnnotation"),
+    ('0', 491, InTerms, Just "GHC.Internal.TH.Lib", "typeAnnotation"),
+    ('0', 492, InTerms, Just "GHC.Internal.TH.Lib", "moduleAnnotation"),
+    ('0', 493, InTerms, Just "GHC.Internal.TH.Lib", "derivClause"),
+    ('0', 498, InTerms, Just "GHC.Internal.TH.Lib", "specifiedSpec"),
+    ('0', 499, InTerms, Just "GHC.Internal.TH.Lib", "inferredSpec"),
+    ('0', 500, InTerms, Just "GHC.Internal.IsList", "fromListN"),
+    ('0', 501, InTerms, Just "GHC.Internal.IsList", "toList"),
+    ('0', 502, InTerms, Just "GHC.Prim", "proxy#"),
+    ('0', 504, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "mkTrType"),
+    ('0', 505, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "mkTrCon"),
+    ('0', 506, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "mkTrApp"),
+    ('0', 507, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "typeNatTypeRep"),
+    ('0', 508, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "typeSymbolTypeRep"),
+    ('0', 509, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "typeCharTypeRep"),
+    ('0', 510, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "typeRep#"),
+    ('0', 511, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "mkTrFun"),
+    ('0', 520, InTerms, Just "GHC.Types", "krep$*"),
+    ('0', 521, InTerms, Just "GHC.Types", "krep$*Arr*"),
+    ('0', 522, InTerms, Just "GHC.Types", "krep$*->*->*"),
+    ('0', 523, InTerms, Just "GHC.Types", "krep$Constraint"),
+    ('0', 530, InTerms, Just "GHC.Internal.Data.Dynamic", "toDyn"),
+    ('0', 551, InTerms, Just "GHC.Types", "eq_sel"),
+    ('0', 552, InTerms, Just "GHC.Types", "heq_sel"),
+    ('0', 553, InTerms, Just "GHC.Types", "coercible_sel"),
+    ('0', 554, InTerms, Just "GHC.Internal.Base", "<>"),
+    ('0', 555, InTerms, Just "GHC.Internal.Base", "mempty"),
+    ('0', 556, InTerms, Just "GHC.Internal.Base", "mappend"),
+    ('0', 557, InTerms, Just "GHC.Internal.Base", "mconcat"),
+    ('0', 558, InTerms, Just "GHC.Internal.Stack.Types", "emptyCallStack"),
+    ('0', 559, InTerms, Just "GHC.Internal.Stack.Types", "pushCallStack"),
+    ('0', 560, InTerms, Just "GHC.Internal.StaticPtr", "fromStaticPtr"),
+    ('0', 561, InTerms, Just "GHC.Internal.StaticPtr.Internal", "makeStatic"),
+    ('0', 562, InTerms, Just "GHC.Internal.Exception.Context", "emptyExceptionContext"),
+    ('0', 570, InTerms, Just "GHC.Internal.Unsafe.Coerce", "unsafeEqualityProof"),
+    ('0', 571, InTerms, Just "GHC.Internal.Unsafe.Coerce", "unsafeCoerce#"),
+    ('0', 572, InTerms, Just "GHC.Internal.Records", "getField"),
+    ('0', 573, InTerms, Just "GHC.Internal.Records", "setField"),
+    ('0', 580, InTerms, Just "GHC.Internal.TypeError", "unsatisfiable"),
+    ('0', 600, InTerms, Just "GHC.Num.Integer", "integerFromNatural"),
+    ('0', 601, InTerms, Just "GHC.Num.Integer", "integerToNaturalClamp"),
+    ('0', 602, InTerms, Just "GHC.Num.Integer", "integerToNaturalThrow"),
+    ('0', 603, InTerms, Just "GHC.Num.Integer", "integerToNatural"),
+    ('0', 604, InTerms, Just "GHC.Num.Integer", "integerToWord#"),
+    ('0', 605, InTerms, Just "GHC.Num.Integer", "integerToInt#"),
+    ('0', 606, InTerms, Just "GHC.Num.Integer", "integerToWord64#"),
+    ('0', 607, InTerms, Just "GHC.Num.Integer", "integerToInt64#"),
+    ('0', 608, InTerms, Just "GHC.Num.Integer", "integerAdd"),
+    ('0', 609, InTerms, Just "GHC.Num.Integer", "integerMul"),
+    ('0', 610, InTerms, Just "GHC.Num.Integer", "integerSub"),
+    ('0', 611, InTerms, Just "GHC.Num.Integer", "integerNegate"),
+    ('0', 618, InTerms, Just "GHC.Num.Integer", "integerAbs"),
+    ('0', 621, InTerms, Just "GHC.Num.Integer", "integerPopCount#"),
+    ('0', 622, InTerms, Just "GHC.Num.Integer", "integerQuot"),
+    ('0', 623, InTerms, Just "GHC.Num.Integer", "integerRem"),
+    ('0', 624, InTerms, Just "GHC.Num.Integer", "integerDiv"),
+    ('0', 625, InTerms, Just "GHC.Num.Integer", "integerMod"),
+    ('0', 626, InTerms, Just "GHC.Num.Integer", "integerDivMod#"),
+    ('0', 627, InTerms, Just "GHC.Num.Integer", "integerQuotRem#"),
+    ('0', 630, InTerms, Just "GHC.Num.Integer", "integerEncodeFloat#"),
+    ('0', 631, InTerms, Just "GHC.Num.Integer", "integerEncodeDouble#"),
+    ('0', 632, InTerms, Just "GHC.Num.Integer", "integerGcd"),
+    ('0', 633, InTerms, Just "GHC.Num.Integer", "integerLcm"),
+    ('0', 634, InTerms, Just "GHC.Num.Integer", "integerAnd"),
+    ('0', 635, InTerms, Just "GHC.Num.Integer", "integerOr"),
+    ('0', 636, InTerms, Just "GHC.Num.Integer", "integerXor"),
+    ('0', 637, InTerms, Just "GHC.Num.Integer", "integerComplement"),
+    ('0', 638, InTerms, Just "GHC.Num.Integer", "integerBit#"),
+    ('0', 639, InTerms, Just "GHC.Num.Integer", "integerTestBit#"),
+    ('0', 640, InTerms, Just "GHC.Num.Integer", "integerShiftL#"),
+    ('0', 641, InTerms, Just "GHC.Num.Integer", "integerShiftR#"),
+    ('0', 642, InTerms, Just "GHC.Num.Integer", "integerFromWord#"),
+    ('0', 643, InTerms, Just "GHC.Num.Integer", "integerFromWord64#"),
+    ('0', 644, InTerms, Just "GHC.Num.Integer", "integerFromInt64#"),
+    ('0', 650, InTerms, Just "GHC.Num.Natural", "naturalToWord#"),
+    ('0', 659, InTerms, Just "GHC.Num.Natural", "naturalPopCount#"),
+    ('0', 660, InTerms, Just "GHC.Num.Natural", "naturalShiftR#"),
+    ('0', 661, InTerms, Just "GHC.Num.Natural", "naturalShiftL#"),
+    ('0', 662, InTerms, Just "GHC.Num.Natural", "naturalAdd"),
+    ('0', 663, InTerms, Just "GHC.Num.Natural", "naturalSub"),
+    ('0', 664, InTerms, Just "GHC.Num.Natural", "naturalSubThrow"),
+    ('0', 665, InTerms, Just "GHC.Num.Natural", "naturalSubUnsafe"),
+    ('0', 666, InTerms, Just "GHC.Num.Natural", "naturalMul"),
+    ('0', 669, InTerms, Just "GHC.Num.Natural", "naturalQuotRem#"),
+    ('0', 670, InTerms, Just "GHC.Num.Natural", "naturalQuot"),
+    ('0', 671, InTerms, Just "GHC.Num.Natural", "naturalRem"),
+    ('0', 672, InTerms, Just "GHC.Num.Natural", "naturalAnd"),
+    ('0', 673, InTerms, Just "GHC.Num.Natural", "naturalAndNot"),
+    ('0', 674, InTerms, Just "GHC.Num.Natural", "naturalOr"),
+    ('0', 675, InTerms, Just "GHC.Num.Natural", "naturalXor"),
+    ('0', 676, InTerms, Just "GHC.Num.Natural", "naturalTestBit#"),
+    ('0', 677, InTerms, Just "GHC.Num.Natural", "naturalBit#"),
+    ('0', 678, InTerms, Just "GHC.Num.Natural", "naturalGcd"),
+    ('0', 679, InTerms, Just "GHC.Num.Natural", "naturalLcm"),
+    ('0', 680, InTerms, Just "GHC.Num.Natural", "naturalLog2#"),
+    ('0', 681, InTerms, Just "GHC.Num.Natural", "naturalLogBaseWord#"),
+    ('0', 682, InTerms, Just "GHC.Num.Natural", "naturalLogBase#"),
+    ('0', 683, InTerms, Just "GHC.Num.Natural", "naturalPowMod"),
+    ('0', 684, InTerms, Just "GHC.Num.Natural", "naturalSizeInBase#"),
+    ('0', 691, InTerms, Just "GHC.Num.BigNat", "bigNatEq#"),
+    ('0', 700, InTerms, Just "GHC.Internal.Real", "mkRationalBase2"),
+    ('0', 701, InTerms, Just "GHC.Internal.Real", "mkRationalBase10"),
+    ('0', 750, InTerms, Just "GHC.Internal.Base", "join"),
+    ('0', 751, InTerms, Just "GHC.Internal.Base", "<*>"),
+    ('0', 752, InTerms, Just "GHC.Internal.Base", "pure"),
+    ('0', 753, InTerms, Just "GHC.Internal.Base", "*>"),
+    ('0', 754, InTypes, Just "GHC.Internal.Control.Monad", "Alternative"),
+    ('0', 800, InTerms, Just "GHC.Internal.TH.Lib", "bndrReq"),
+    ('0', 801, InTerms, Just "GHC.Internal.TH.Lib", "bndrInvis"),
+    ('0', 802, InTerms, Just "GHC.Internal.TH.Lib", "forallE"),
+    ('0', 803, InTerms, Just "GHC.Internal.TH.Lib", "forallVisE"),
+    ('0', 804, InTerms, Just "GHC.Internal.TH.Lib", "constrainedE"),
+    ('2', 1, InTypes, Just "GHC.Internal.Enum", "Bounded"),
+    ('2', 2, InTypes, Just "GHC.Internal.Enum", "Enum"),
+    ('2', 3, InTypes, Just "GHC.Classes", "Eq"),
+    ('2', 5, InTypes, Just "GHC.Internal.Float", "Floating"),
+    ('2', 6, InTypes, Just "GHC.Internal.Real", "Fractional"),
+    ('2', 7, InTypes, Just "GHC.Internal.Real", "Integral"),
+    ('2', 8, InTypes, Just "GHC.Internal.Base", "Monad"),
+    ('2', 9, InTypes, Just "GHC.Internal.Data.Data", "Data"),
+    ('2', 10, InTypes, Just "GHC.Internal.Base", "Functor"),
+    ('2', 11, InTypes, Just "GHC.Internal.Num", "Num"),
+    ('2', 12, InTypes, Just "GHC.Classes", "Ord"),
+    ('2', 13, InTypes, Just "GHC.Internal.Read", "Read"),
+    ('2', 14, InTypes, Just "GHC.Internal.Real", "Real"),
+    ('2', 15, InTypes, Just "GHC.Internal.Float", "RealFloat"),
+    ('2', 16, InTypes, Just "GHC.Internal.Real", "RealFrac"),
+    ('2', 17, InTypes, Just "GHC.Internal.Show", "Show"),
+    ('2', 18, InTypes, Just "GHC.Internal.Ix", "Ix"),
+    ('2', 20, InTypes, Just "GHC.Internal.Data.Typeable.Internal", "Typeable"),
+    ('2', 21, InTypes, Just "GHC.Magic.Dict", "WithDict"),
+    ('2', 23, InTypes, Just "GHC.Magic", "DataToTag"),
+    ('2', 28, InTypes, Just "GHC.Internal.Control.Monad.Fix", "MonadFix"),
+    ('2', 29, InTypes, Just "GHC.Internal.Control.Monad.Fail", "MonadFail"),
+    ('2', 30, InTypes, Just "GHC.Internal.Control.Monad", "MonadPlus"),
+    ('2', 33, InTypes, Just "GHC.Internal.Data.String", "IsString"),
+    ('2', 34, InTypes, Just "GHC.Internal.Base", "Applicative"),
+    ('2', 35, InTypes, Just "GHC.Internal.Data.Foldable", "Foldable"),
+    ('2', 36, InTypes, Just "GHC.Internal.Data.Traversable", "Traversable"),
+    ('2', 37, InTypes, Just "GHC.Internal.Generics", "Generic"),
+    ('2', 38, InTypes, Just "GHC.Internal.Generics", "Generic1"),
+    ('2', 39, InTypes, Just "GHC.Internal.Generics", "Datatype"),
+    ('2', 40, InTypes, Just "GHC.Internal.Generics", "Constructor"),
+    ('2', 41, InTypes, Just "GHC.Internal.Generics", "Selector"),
+    ('2', 42, InTypes, Just "GHC.Internal.TypeNats", "KnownNat"),
+    ('2', 43, InTypes, Just "GHC.Internal.TypeLits", "KnownSymbol"),
+    ('2', 44, InTypes, Just "GHC.Internal.TypeLits", "KnownChar"),
+    ('2', 45, InTypes, Just "GHC.Internal.GHCi", "GHCiSandboxIO"),
+    ('2', 47, InTypes, Just "GHC.Internal.Base", "Semigroup"),
+    ('2', 48, InTypes, Just "GHC.Internal.Base", "Monoid"),
+    ('2', 49, InTypes, Just "GHC.Classes", "IP"),
+    ('2', 50, InTypes, Just "GHC.Internal.Records", "HasField"),
+    ('2', 200, InTypes, Just "GHC.Internal.TH.Lift", "Lift"),
+    ('2', 201, InTypes, Just "GHC.Internal.TH.Syntax", "Quote"),
+    ('3', 2, InTypes, Just "GHC.Prim", "Addr#"),
+    ('3', 3, InTerms, Just "GHC.Types", "$tcAddr#"),
+    ('3', 6, InTypes, Just "GHC.Prim", "Array#"),
+    ('3', 7, InTerms, Just "GHC.Types", "$tcArray#"),
+    ('3', 8, InTypes, Just "GHC.Types", "Bool"),
+    ('3', 9, InTerms, Just "GHC.Types", "$tcBool"),
+    ('3', 10, InTypes, Just "GHC.Prim", "ByteArray#"),
+    ('3', 11, InTerms, Just "GHC.Types", "$tcByteArray#"),
+    ('3', 12, InTypes, Just "GHC.Internal.Base", "String"),
+    ('3', 14, InTypes, Just "GHC.Prim", "Char#"),
+    ('3', 15, InTerms, Just "GHC.Types", "$tcChar#"),
+    ('3', 16, InTypes, Just "GHC.Types", "Char"),
+    ('3', 17, InTerms, Just "GHC.Types", "$tcChar"),
+    ('3', 18, InTypes, Just "GHC.Prim", "Double#"),
+    ('3', 19, InTerms, Just "GHC.Types", "$tcDouble#"),
+    ('3', 20, InTypes, Just "GHC.Types", "Double"),
+    ('3', 21, InTerms, Just "GHC.Types", "$tcDouble"),
+    ('3', 22, InTypes, Just "GHC.Prim", "Float#"),
+    ('3', 23, InTerms, Just "GHC.Types", "$tcFloat#"),
+    ('3', 24, InTypes, Just "GHC.Types", "Float"),
+    ('3', 25, InTerms, Just "GHC.Types", "$tcFloat"),
+    ('3', 26, InTypes, Just "GHC.Prim", "FUN"),
+    ('3', 27, InTerms, Just "GHC.Types", "$tcFUN"),
+    ('3', 28, InTypes, Just "GHC.Prim", "Int#"),
+    ('3', 29, InTerms, Just "GHC.Types", "$tcInt#"),
+    ('3', 30, InTypes, Just "GHC.Types", "Int"),
+    ('3', 31, InTerms, Just "GHC.Types", "$tcInt"),
+    ('3', 32, InTypes, Just "GHC.Prim", "Int8#"),
+    ('3', 33, InTerms, Just "GHC.Types", "$tcInt8#"),
+    ('3', 34, InTypes, Just "GHC.Internal.Int", "Int8"),
+    ('3', 36, InTypes, Just "GHC.Prim", "Int16#"),
+    ('3', 37, InTerms, Just "GHC.Types", "$tcInt16#"),
+    ('3', 38, InTypes, Just "GHC.Internal.Int", "Int16"),
+    ('3', 40, InTypes, Just "GHC.Prim", "Int32#"),
+    ('3', 41, InTerms, Just "GHC.Types", "$tcInt32#"),
+    ('3', 42, InTypes, Just "GHC.Internal.Int", "Int32"),
+    ('3', 44, InTypes, Just "GHC.Prim", "Int64#"),
+    ('3', 45, InTerms, Just "GHC.Types", "$tcInt64#"),
+    ('3', 46, InTypes, Just "GHC.Internal.Int", "Int64"),
+    ('3', 48, InTypes, Just "GHC.Num.Integer", "Integer"),
+    ('3', 49, InTerms, Just "GHC.Num.Integer", "$tcInteger"),
+    ('3', 50, InTypes, Just "GHC.Num.Natural", "Natural"),
+    ('3', 51, InTerms, Just "GHC.Num.Natural", "$tcNatural"),
+    ('3', 52, InTypes, Nothing, "[]"),
+    ('3', 53, InTerms, Just "GHC.Types", "$tcList"),
+    ('3', 56, InTypes, Just "GHC.Internal.Maybe", "Maybe"),
+    ('3', 57, InTerms, Just "GHC.Internal.Maybe", "$tcMaybe"),
+    ('3', 58, InTypes, Just "GHC.Prim", "Weak#"),
+    ('3', 59, InTerms, Just "GHC.Types", "$tcWeak#"),
+    ('3', 60, InTypes, Just "GHC.Prim", "MutableArray#"),
+    ('3', 61, InTerms, Just "GHC.Types", "$tcMutableArray#"),
+    ('3', 62, InTypes, Just "GHC.Prim", "MutableByteArray#"),
+    ('3', 63, InTerms, Just "GHC.Types", "$tcMutableByteArray#"),
+    ('3', 64, InTypes, Just "GHC.Types", "Ordering"),
+    ('3', 65, InTerms, Just "GHC.Types", "$tcOrdering"),
+    ('3', 66, InTypes, Just "GHC.Prim", "MVar#"),
+    ('3', 67, InTerms, Just "GHC.Types", "$tcMVar#"),
+    ('3', 68, InTypes, Just "GHC.Prim", "IOPort#"),
+    ('3', 69, InTerms, Just "GHC.Types", "$tcIOPort#"),
+    ('3', 70, InTypes, Just "GHC.Internal.Real", "Ratio"),
+    ('3', 72, InTypes, Just "GHC.Internal.Real", "Rational"),
+    ('3', 74, InTypes, Just "GHC.Prim", "RealWorld"),
+    ('3', 75, InTerms, Just "GHC.Types", "$tcRealWorld"),
+    ('3', 76, InTypes, Just "GHC.Prim", "StablePtr#"),
+    ('3', 77, InTerms, Just "GHC.Types", "$tcStablePtr#"),
+    ('3', 78, InTypes, Just "GHC.Internal.Stable", "StablePtr"),
+    ('3', 80, InTypes, Just "GHC.Types", "~"),
+    ('3', 81, InTerms, Just "GHC.Types", "$tc~"),
+    ('3', 82, InTypes, Just "GHC.Types", "~~"),
+    ('3', 83, InTerms, Just "GHC.Types", "$tc~~"),
+    ('3', 84, InTypes, Nothing, "=>"),
+    ('3', 85, InTerms, Just "GHC.Types", "$tc=>"),
+    ('3', 86, InTypes, Nothing, "==>"),
+    ('3', 87, InTerms, Just "GHC.Types", "$tc==>"),
+    ('3', 88, InTypes, Nothing, "-=>"),
+    ('3', 89, InTerms, Just "GHC.Types", "$tc-=>"),
+    ('3', 100, InTypes, Just "GHC.Prim", "State#"),
+    ('3', 101, InTerms, Just "GHC.Types", "$tcState#"),
+    ('3', 102, InTypes, Just "GHC.Prim", "StableName#"),
+    ('3', 103, InTerms, Just "GHC.Types", "$tcStableName#"),
+    ('3', 106, InTypes, Just "GHC.Prim", "~#"),
+    ('3', 107, InTerms, Just "GHC.Types", "$tc~#"),
+    ('3', 108, InTypes, Nothing, "~R#"),
+    ('3', 109, InTerms, Just "GHC.Types", "$tc~R#"),
+    ('3', 110, InTypes, Nothing, "~P#"),
+    ('3', 111, InTerms, Just "GHC.Types", "$tc~P#"),
+    ('3', 112, InTypes, Just "GHC.Prim", "MutVar#"),
+    ('3', 113, InTerms, Just "GHC.Types", "$tcMutVar#"),
+    ('3', 114, InTypes, Just "GHC.Types", "IO"),
+    ('3', 118, InTypes, Just "GHC.Prim", "Word#"),
+    ('3', 119, InTerms, Just "GHC.Types", "$tcWord#"),
+    ('3', 120, InTypes, Just "GHC.Types", "Word"),
+    ('3', 121, InTerms, Just "GHC.Types", "$tcWord"),
+    ('3', 122, InTypes, Just "GHC.Prim", "Word8#"),
+    ('3', 123, InTerms, Just "GHC.Types", "$tcWord8#"),
+    ('3', 124, InTypes, Just "GHC.Internal.Word", "Word8"),
+    ('3', 126, InTypes, Just "GHC.Prim", "Word16#"),
+    ('3', 127, InTerms, Just "GHC.Types", "$tcWord16#"),
+    ('3', 128, InTypes, Just "GHC.Internal.Word", "Word16"),
+    ('3', 130, InTypes, Just "GHC.Prim", "Word32#"),
+    ('3', 131, InTerms, Just "GHC.Types", "$tcWord32#"),
+    ('3', 132, InTypes, Just "GHC.Internal.Word", "Word32"),
+    ('3', 134, InTypes, Just "GHC.Prim", "Word64#"),
+    ('3', 135, InTerms, Just "GHC.Types", "$tcWord64#"),
+    ('3', 136, InTypes, Just "GHC.Internal.Word", "Word64"),
+    ('3', 150, InTypes, Just "GHC.Prim", "ThreadId#"),
+    ('3', 151, InTerms, Just "GHC.Types", "$tcThreadId#"),
+    ('3', 152, InTypes, Just "GHC.Prim", "BCO"),
+    ('3', 153, InTerms, Just "GHC.Types", "$tcBCO"),
+    ('3', 154, InTypes, Just "GHC.Internal.Ptr", "Ptr"),
+    ('3', 156, InTypes, Just "GHC.Internal.Ptr", "FunPtr"),
+    ('3', 158, InTypes, Just "GHC.Prim", "TVar#"),
+    ('3', 159, InTerms, Just "GHC.Types", "$tcTVar#"),
+    ('3', 160, InTypes, Just "GHC.Prim", "Compact#"),
+    ('3', 161, InTerms, Just "GHC.Types", "$tcCompact#"),
+    ('3', 162, InTypes, Just "GHC.Prim", "StackSnapshot#"),
+    ('3', 163, InTerms, Just "GHC.Types", "$tcStackSnapshot#"),
+    ('3', 164, InTypes, Just "GHC.Prim", "PromptTag#"),
+    ('3', 165, InTerms, Just "GHC.Types", "$tcPromptTag#"),
+    ('3', 168, InTypes, Just "GHC.Internal.Data.Either", "Either"),
+    ('3', 170, InTypes, Just "GHC.Internal.Base", "Void"),
+    ('3', 172, InTypes, Just "GHC.Internal.Base", "NonEmpty"),
+    ('3', 176, InTypes, Just "GHC.Types", "Type"),
+    ('3', 178, InTypes, Just "GHC.Types", "UnliftedType"),
+    ('3', 182, InTypes, Just "GHC.Prim", "TYPE"),
+    ('3', 183, InTerms, Just "GHC.Types", "$tcTYPE"),
+    ('3', 184, InTypes, Just "GHC.Prim", "CONSTRAINT"),
+    ('3', 185, InTerms, Just "GHC.Types", "$tcCONSTRAINT"),
+    ('3', 186, InTypes, Just "GHC.Types", "Constraint"),
+    ('3', 188, InTypes, Just "GHC.Types", "Levity"),
+    ('3', 189, InTerms, Just "GHC.Types", "$tcLevity"),
+    ('3', 190, InTypes, Just "GHC.Types", "RuntimeRep"),
+    ('3', 191, InTerms, Just "GHC.Types", "$tcRuntimeRep"),
+    ('3', 192, InTypes, Just "GHC.Types", "VecCount"),
+    ('3', 193, InTerms, Just "GHC.Types", "$tcVecCount"),
+    ('3', 194, InTypes, Just "GHC.Types", "VecElem"),
+    ('3', 195, InTerms, Just "GHC.Types", "$tcVecElem"),
+    ('3', 196, InTypes, Just "GHC.Types", "LiftedRep"),
+    ('3', 198, InTypes, Just "GHC.Types", "UnliftedRep"),
+    ('3', 200, InTypes, Just "GHC.Types", "ZeroBitRep"),
+    ('3', 202, InTypes, Just "GHC.Types", "ZeroBitType"),
+    ('3', 204, InTypes, Just "GHC.Driver.Plugins", "Plugin"),
+    ('3', 206, InTypes, Just "GHC.Driver.Plugins", "FrontendPlugin"),
+    ('3', 208, InTypes, Just "GHC.Types", "TyCon"),
+    ('3', 210, InTypes, Just "GHC.Types", "Module"),
+    ('3', 212, InTypes, Just "GHC.Types", "TrName"),
+    ('3', 214, InTypes, Just "GHC.Types", "KindRep"),
+    ('3', 216, InTypes, Just "GHC.Types", "TypeLitSort"),
+    ('3', 270, InTypes, Just "GHC.Internal.Generics", "V1"),
+    ('3', 272, InTypes, Just "GHC.Internal.Generics", "U1"),
+    ('3', 274, InTypes, Just "GHC.Internal.Generics", "Par1"),
+    ('3', 276, InTypes, Just "GHC.Internal.Generics", "Rec1"),
+    ('3', 278, InTypes, Just "GHC.Internal.Generics", "K1"),
+    ('3', 280, InTypes, Just "GHC.Internal.Generics", "M1"),
+    ('3', 282, InTypes, Just "GHC.Internal.Generics", ":+:"),
+    ('3', 284, InTypes, Just "GHC.Internal.Generics", ":*:"),
+    ('3', 286, InTypes, Just "GHC.Internal.Generics", ":.:"),
+    ('3', 288, InTypes, Just "GHC.Internal.Generics", "R"),
+    ('3', 292, InTypes, Just "GHC.Internal.Generics", "D"),
+    ('3', 294, InTypes, Just "GHC.Internal.Generics", "C"),
+    ('3', 296, InTypes, Just "GHC.Internal.Generics", "S"),
+    ('3', 298, InTypes, Just "GHC.Internal.Generics", "Rec0"),
+    ('3', 302, InTypes, Just "GHC.Internal.Generics", "D1"),
+    ('3', 304, InTypes, Just "GHC.Internal.Generics", "C1"),
+    ('3', 306, InTypes, Just "GHC.Internal.Generics", "S1"),
+    ('3', 310, InTypes, Just "GHC.Internal.Generics", "Rep"),
+    ('3', 312, InTypes, Just "GHC.Internal.Generics", "Rep1"),
+    ('3', 314, InTypes, Just "GHC.Internal.Generics", "URec"),
+    ('3', 316, InTypes, Just "GHC.Internal.Generics", "UAddr"),
+    ('3', 318, InTypes, Just "GHC.Internal.Generics", "UChar"),
+    ('3', 320, InTypes, Just "GHC.Internal.Generics", "UDouble"),
+    ('3', 322, InTypes, Just "GHC.Internal.Generics", "UFloat"),
+    ('3', 324, InTypes, Just "GHC.Internal.Generics", "UInt"),
+    ('3', 326, InTypes, Just "GHC.Internal.Generics", "UWord"),
+    ('3', 340, InTypes, Just "GHC.Internal.TypeError", "Unsatisfiable"),
+    ('3', 342, InTypes, Just "GHC.Types", "Any"),
+    ('3', 344, InTypes, Just "GHC.Types", "ZonkAny"),
+    ('3', 362, InTypes, Just "GHC.Internal.TypeError", "TypeError"),
+    ('3', 366, InTypes, Just "GHC.Types", "Coercible"),
+    ('3', 367, InTerms, Just "GHC.Types", "$tcCoercible"),
+    ('3', 368, InTypes, Just "GHC.Prim", "Proxy#"),
+    ('3', 369, InTerms, Just "GHC.Types", "$tcProxy#"),
+    ('3', 370, InTypes, Just "GHC.Types", "SPEC"),
+    ('3', 374, InTypes, Just "GHC.Prim", "SmallArray#"),
+    ('3', 375, InTerms, Just "GHC.Types", "$tcSmallArray#"),
+    ('3', 376, InTypes, Just "GHC.Prim", "SmallMutableArray#"),
+    ('3', 377, InTerms, Just "GHC.Types", "$tcSmallMutableArray#"),
+    ('3', 378, InTypes, Just "GHC.Internal.StaticPtr", "StaticPtr"),
+    ('3', 382, InTypes, Just "GHC.Internal.Stack.Types", "CallStack"),
+    ('3', 384, InTypes, Just "GHC.Internal.Data.Typeable.Internal", "TypeRep"),
+    ('3', 386, InTypes, Just "GHC.Internal.Data.Typeable.Internal", "SomeTypeRep"),
+    ('3', 388, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "SomeTypeRep"),
+    ('3', 390, InTypes, Just "GHC.Internal.TypeLits", "AppendSymbol"),
+    ('3', 392, InTypes, Just "GHC.Internal.Unsafe.Coerce", "UnsafeEquality"),
+    ('3', 394, InTypes, Just "GHC.Types", "Multiplicity"),
+    ('3', 395, InTerms, Just "GHC.Types", "$tcMultiplicity"),
+    ('3', 400, InTypes, Just "GHC.Internal.TH.Syntax", "Exp"),
+    ('3', 402, InTypes, Just "GHC.Internal.TH.Syntax", "Match"),
+    ('3', 404, InTypes, Just "GHC.Internal.TH.Syntax", "Clause"),
+    ('3', 406, InTypes, Just "GHC.Internal.TH.Syntax", "Q"),
+    ('3', 408, InTypes, Just "GHC.Internal.TH.Lib", "ExpQ"),
+    ('3', 412, InTypes, Just "GHC.Internal.TH.Syntax", "Pat"),
+    ('3', 418, InTypes, Just "GHC.Internal.TH.Syntax", "Stmt"),
+    ('3', 420, InTypes, Just "GHC.Internal.TH.Syntax", "Con"),
+    ('3', 422, InTypes, Just "GHC.Internal.TH.Lib", "TypeQ"),
+    ('3', 424, InTypes, Just "GHC.Internal.TH.Syntax", "Type"),
+    ('3', 426, InTypes, Just "GHC.Internal.TH.Syntax", "Dec"),
+    ('3', 428, InTypes, Just "GHC.Internal.TH.Syntax", "BangType"),
+    ('3', 430, InTypes, Just "GHC.Internal.TH.Syntax", "VarBangType"),
+    ('3', 432, InTypes, Just "GHC.Internal.TH.Syntax", "FieldExp"),
+    ('3', 434, InTypes, Just "GHC.Internal.TH.Syntax", "FieldPat"),
+    ('3', 436, InTypes, Just "GHC.Internal.TH.Syntax", "Name"),
+    ('3', 438, InTypes, Just "GHC.Internal.TH.Lib", "PatQ"),
+    ('3', 444, InTypes, Just "GHC.Internal.TH.Syntax", "FunDep"),
+    ('3', 446, InTypes, Just "GHC.Internal.TH.Syntax", "Pred"),
+    ('3', 450, InTypes, Just "GHC.Internal.TH.Lib", "TyVarBndrUnit"),
+    ('3', 452, InTypes, Just "GHC.Internal.TH.Lib", "DecsQ"),
+    ('3', 454, InTypes, Just "GHC.Internal.TH.Syntax", "RuleBndr"),
+    ('3', 456, InTypes, Just "GHC.Internal.TH.Syntax", "TySynEqn"),
+    ('3', 458, InTypes, Just "GHC.Internal.TH.Lib", "Role"),
+    ('3', 462, InTypes, Just "GHC.Internal.TH.Syntax", "InjectivityAnn"),
+    ('3', 464, InTypes, Just "GHC.Internal.TH.Syntax", "Kind"),
+    ('3', 466, InTypes, Just "GHC.Internal.TH.Syntax", "Overlap"),
+    ('3', 468, InTypes, Just "GHC.Internal.TH.Syntax", "DerivClause"),
+    ('3', 470, InTypes, Just "GHC.Internal.TH.Syntax", "DerivStrategy"),
+    ('3', 472, InTypes, Just "GHC.Internal.TH.Lib", "Decs"),
+    ('3', 474, InTypes, Just "GHC.Internal.TH.Lib", "TyVarBndrSpec"),
+    ('3', 476, InTypes, Just "GHC.Internal.TH.Syntax", "Code"),
+    ('3', 478, InTypes, Just "GHC.Internal.TH.Syntax", "ModName"),
+    ('3', 480, InTypes, Just "GHC.Internal.TH.Lib", "TyVarBndrVis"),
+    ('3', 600, InTypes, Just "GHC.Prim", "Int8X16#"),
+    ('3', 601, InTerms, Just "GHC.Types", "$tcInt8X16#"),
+    ('3', 602, InTypes, Just "GHC.Prim", "Int16X8#"),
+    ('3', 603, InTerms, Just "GHC.Types", "$tcInt16X8#"),
+    ('3', 604, InTypes, Just "GHC.Prim", "Int32X4#"),
+    ('3', 605, InTerms, Just "GHC.Types", "$tcInt32X4#"),
+    ('3', 606, InTypes, Just "GHC.Prim", "Int64X2#"),
+    ('3', 607, InTerms, Just "GHC.Types", "$tcInt64X2#"),
+    ('3', 608, InTypes, Just "GHC.Prim", "Int8X32#"),
+    ('3', 609, InTerms, Just "GHC.Types", "$tcInt8X32#"),
+    ('3', 610, InTypes, Just "GHC.Prim", "Int16X16#"),
+    ('3', 611, InTerms, Just "GHC.Types", "$tcInt16X16#"),
+    ('3', 612, InTypes, Just "GHC.Prim", "Int32X8#"),
+    ('3', 613, InTerms, Just "GHC.Types", "$tcInt32X8#"),
+    ('3', 614, InTypes, Just "GHC.Prim", "Int64X4#"),
+    ('3', 615, InTerms, Just "GHC.Types", "$tcInt64X4#"),
+    ('3', 616, InTypes, Just "GHC.Prim", "Int8X64#"),
+    ('3', 617, InTerms, Just "GHC.Types", "$tcInt8X64#"),
+    ('3', 618, InTypes, Just "GHC.Prim", "Int16X32#"),
+    ('3', 619, InTerms, Just "GHC.Types", "$tcInt16X32#"),
+    ('3', 620, InTypes, Just "GHC.Prim", "Int32X16#"),
+    ('3', 621, InTerms, Just "GHC.Types", "$tcInt32X16#"),
+    ('3', 622, InTypes, Just "GHC.Prim", "Int64X8#"),
+    ('3', 623, InTerms, Just "GHC.Types", "$tcInt64X8#"),
+    ('3', 624, InTypes, Just "GHC.Prim", "Word8X16#"),
+    ('3', 625, InTerms, Just "GHC.Types", "$tcWord8X16#"),
+    ('3', 626, InTypes, Just "GHC.Prim", "Word16X8#"),
+    ('3', 627, InTerms, Just "GHC.Types", "$tcWord16X8#"),
+    ('3', 628, InTypes, Just "GHC.Prim", "Word32X4#"),
+    ('3', 629, InTerms, Just "GHC.Types", "$tcWord32X4#"),
+    ('3', 630, InTypes, Just "GHC.Prim", "Word64X2#"),
+    ('3', 631, InTerms, Just "GHC.Types", "$tcWord64X2#"),
+    ('3', 632, InTypes, Just "GHC.Prim", "Word8X32#"),
+    ('3', 633, InTerms, Just "GHC.Types", "$tcWord8X32#"),
+    ('3', 634, InTypes, Just "GHC.Prim", "Word16X16#"),
+    ('3', 635, InTerms, Just "GHC.Types", "$tcWord16X16#"),
+    ('3', 636, InTypes, Just "GHC.Prim", "Word32X8#"),
+    ('3', 637, InTerms, Just "GHC.Types", "$tcWord32X8#"),
+    ('3', 638, InTypes, Just "GHC.Prim", "Word64X4#"),
+    ('3', 639, InTerms, Just "GHC.Types", "$tcWord64X4#"),
+    ('3', 640, InTypes, Just "GHC.Prim", "Word8X64#"),
+    ('3', 641, InTerms, Just "GHC.Types", "$tcWord8X64#"),
+    ('3', 642, InTypes, Just "GHC.Prim", "Word16X32#"),
+    ('3', 643, InTerms, Just "GHC.Types", "$tcWord16X32#"),
+    ('3', 644, InTypes, Just "GHC.Prim", "Word32X16#"),
+    ('3', 645, InTerms, Just "GHC.Types", "$tcWord32X16#"),
+    ('3', 646, InTypes, Just "GHC.Prim", "Word64X8#"),
+    ('3', 647, InTerms, Just "GHC.Types", "$tcWord64X8#"),
+    ('3', 648, InTypes, Just "GHC.Prim", "FloatX4#"),
+    ('3', 649, InTerms, Just "GHC.Types", "$tcFloatX4#"),
+    ('3', 650, InTypes, Just "GHC.Prim", "DoubleX2#"),
+    ('3', 651, InTerms, Just "GHC.Types", "$tcDoubleX2#"),
+    ('3', 652, InTypes, Just "GHC.Prim", "FloatX8#"),
+    ('3', 653, InTerms, Just "GHC.Types", "$tcFloatX8#"),
+    ('3', 654, InTypes, Just "GHC.Prim", "DoubleX4#"),
+    ('3', 655, InTerms, Just "GHC.Types", "$tcDoubleX4#"),
+    ('3', 656, InTypes, Just "GHC.Prim", "FloatX16#"),
+    ('3', 657, InTerms, Just "GHC.Types", "$tcFloatX16#"),
+    ('3', 658, InTypes, Just "GHC.Prim", "DoubleX8#"),
+    ('3', 659, InTerms, Just "GHC.Types", "$tcDoubleX8#"),
+    ('3', 800, InTypes, Just "GHC.Types", "Symbol"),
+    ('3', 801, InTerms, Just "GHC.Types", "$tcSymbol"),
+    ('3', 804, InTypes, Just "GHC.Internal.TypeNats", "+"),
+    ('3', 806, InTypes, Just "GHC.Internal.TypeNats", "*"),
+    ('3', 808, InTypes, Just "GHC.Internal.TypeNats", "^"),
+    ('3', 810, InTypes, Just "GHC.Internal.TypeNats", "-"),
+    ('3', 812, InTypes, Just "GHC.Internal.TypeLits.Internal", "CmpSymbol"),
+    ('3', 814, InTypes, Just "GHC.Internal.TypeNats.Internal", "CmpNat"),
+    ('3', 816, InTypes, Just "GHC.Internal.TypeLits.Internal", "CmpChar"),
+    ('3', 820, InTypes, Just "GHC.Internal.TypeNats", "Div"),
+    ('3', 822, InTypes, Just "GHC.Internal.TypeNats", "Mod"),
+    ('3', 824, InTypes, Just "GHC.Internal.TypeNats", "Log2"),
+    ('3', 826, InTypes, Just "GHC.Internal.TypeLits", "ConsSymbol"),
+    ('3', 828, InTypes, Just "GHC.Internal.TypeLits", "UnconsSymbol"),
+    ('3', 830, InTypes, Just "GHC.Internal.TypeLits", "CharToNat"),
+    ('3', 832, InTypes, Just "GHC.Internal.TypeLits", "NatToChar"),
+    ('3', 834, InTypes, Just "GHC.Internal.Foreign.C.ConstPtr", "ConstPtr"),
+    ('3', 836, InTypes, Just "GHC.Internal.Wasm.Prim.Types", "JSVal"),
+    ('3', 840, InTypes, Just "GHC.Internal.Exception.Context", "ExceptionContext"),
+    ('4', 0, InTypes, Nothing, "()"),
+    ('4', 1, InTerms, Just "GHC.Tuple", "$tcUnit"),
+    ('4', 2, InTypes, Just "GHC.Tuple", "Solo"),
+    ('4', 3, InTerms, Just "GHC.Tuple", "$tcSolo"),
+    ('5', 0, InTypes, Nothing, "(##)"),
+    ('5', 1, InTerms, Just "GHC.Types", "$tcUnit#"),
+    ('6', 3, InTerms, Just "GHC.Types", "C#"),
+    ('6', 4, InTerms, Just "GHC.Types", "C#"),
+    ('6', 5, InTerms, Just "GHC.Types", "$tc'C#"),
+    ('6', 6, InTerms, Nothing, ":"),
+    ('6', 7, InTerms, Just "GHC.Types", ":"),
+    ('6', 8, InTerms, Just "GHC.Types", "$tc':"),
+    ('6', 9, InTerms, Just "GHC.Types", "D#"),
+    ('6', 10, InTerms, Just "GHC.Types", "D#"),
+    ('6', 11, InTerms, Just "GHC.Types", "$tc'D#"),
+    ('6', 12, InTerms, Just "GHC.Types", "False"),
+    ('6', 13, InTerms, Just "GHC.Types", "False"),
+    ('6', 14, InTerms, Just "GHC.Types", "$tc'False"),
+    ('6', 15, InTerms, Just "GHC.Types", "F#"),
+    ('6', 16, InTerms, Just "GHC.Types", "F#"),
+    ('6', 17, InTerms, Just "GHC.Types", "$tc'F#"),
+    ('6', 18, InTerms, Just "GHC.Types", "I#"),
+    ('6', 19, InTerms, Just "GHC.Types", "I#"),
+    ('6', 20, InTerms, Just "GHC.Types", "$tc'I#"),
+    ('6', 21, InTerms, Just "GHC.Internal.Maybe", "Nothing"),
+    ('6', 22, InTerms, Just "GHC.Internal.Maybe", "Nothing"),
+    ('6', 23, InTerms, Just "GHC.Internal.Maybe", "$tc'Nothing"),
+    ('6', 24, InTerms, Just "GHC.Internal.Maybe", "Just"),
+    ('6', 25, InTerms, Just "GHC.Internal.Maybe", "Just"),
+    ('6', 26, InTerms, Just "GHC.Internal.Maybe", "$tc'Just"),
+    ('6', 27, InTerms, Just "GHC.Types", "Eq#"),
+    ('6', 28, InTerms, Just "GHC.Types", "Eq#"),
+    ('6', 29, InTerms, Just "GHC.Types", "$tc'Eq#"),
+    ('6', 30, InTerms, Nothing, "[]"),
+    ('6', 31, InTerms, Just "GHC.Types", "[]"),
+    ('6', 32, InTerms, Just "GHC.Types", "$tc'[]"),
+    ('6', 33, InTerms, Just "GHC.Internal.Real", ":%"),
+    ('6', 42, InTerms, Just "GHC.Types", "True"),
+    ('6', 43, InTerms, Just "GHC.Types", "True"),
+    ('6', 44, InTerms, Just "GHC.Types", "$tc'True"),
+    ('6', 45, InTerms, Just "GHC.Types", "W#"),
+    ('6', 46, InTerms, Just "GHC.Types", "W#"),
+    ('6', 47, InTerms, Just "GHC.Types", "$tc'W#"),
+    ('6', 48, InTerms, Just "GHC.Types", "IO"),
+    ('6', 54, InTerms, Just "GHC.Types", "HEq#"),
+    ('6', 55, InTerms, Just "GHC.Types", "HEq#"),
+    ('6', 56, InTerms, Just "GHC.Types", "$tc'HEq#"),
+    ('6', 75, InTerms, Just "GHC.Internal.Data.Either", "Left"),
+    ('6', 78, InTerms, Just "GHC.Internal.Data.Either", "Right"),
+    ('6', 81, InTerms, Just "GHC.Types", "LT"),
+    ('6', 82, InTerms, Just "GHC.Types", "LT"),
+    ('6', 83, InTerms, Just "GHC.Types", "$tc'LT"),
+    ('6', 84, InTerms, Just "GHC.Types", "EQ"),
+    ('6', 85, InTerms, Just "GHC.Types", "EQ"),
+    ('6', 86, InTerms, Just "GHC.Types", "$tc'EQ"),
+    ('6', 87, InTerms, Just "GHC.Types", "GT"),
+    ('6', 88, InTerms, Just "GHC.Types", "GT"),
+    ('6', 89, InTerms, Just "GHC.Types", "$tc'GT"),
+    ('6', 96, InTerms, Just "GHC.Types", "MkCoercible"),
+    ('6', 97, InTerms, Just "GHC.Types", "MkCoercible"),
+    ('6', 98, InTerms, Just "GHC.Types", "$tc'MkCoercible"),
+    ('6', 99, InTerms, Just "GHC.Internal.StaticPtr", "StaticPtr"),
+    ('6', 102, InTerms, Just "GHC.Internal.StaticPtr", "StaticPtrInfo"),
+    ('6', 105, InTerms, Just "GHC.Internal.Fingerprint.Type", "Fingerprint"),
+    ('6', 111, InTerms, Just "GHC.Internal.Stack.Types", "SrcLoc"),
+    ('6', 123, InTerms, Just "GHC.Types", "TyCon"),
+    ('6', 129, InTerms, Just "GHC.Types", "Module"),
+    ('6', 135, InTerms, Just "GHC.Types", "TrNameS"),
+    ('6', 138, InTerms, Just "GHC.Types", "TrNameD"),
+    ('6', 141, InTerms, Just "GHC.Types", "tr$ModuleGHCPrim"),
+    ('6', 150, InTerms, Just "GHC.Internal.TypeError", "Text"),
+    ('6', 153, InTerms, Just "GHC.Internal.TypeError", ":<>:"),
+    ('6', 156, InTerms, Just "GHC.Internal.TypeError", ":$$:"),
+    ('6', 159, InTerms, Just "GHC.Internal.TypeError", "ShowType"),
+    ('6', 162, InTerms, Just "GHC.Internal.Generics", "PrefixI"),
+    ('6', 165, InTerms, Just "GHC.Internal.Generics", "InfixI"),
+    ('6', 168, InTerms, Just "GHC.Internal.Generics", "LeftAssociative"),
+    ('6', 171, InTerms, Just "GHC.Internal.Generics", "RightAssociative"),
+    ('6', 174, InTerms, Just "GHC.Internal.Generics", "NotAssociative"),
+    ('6', 177, InTerms, Just "GHC.Internal.Generics", "SourceUnpack"),
+    ('6', 180, InTerms, Just "GHC.Internal.Generics", "SourceNoUnpack"),
+    ('6', 183, InTerms, Just "GHC.Internal.Generics", "NoSourceUnpackedness"),
+    ('6', 186, InTerms, Just "GHC.Internal.Generics", "SourceLazy"),
+    ('6', 189, InTerms, Just "GHC.Internal.Generics", "SourceStrict"),
+    ('6', 192, InTerms, Just "GHC.Internal.Generics", "NoSourceStrictness"),
+    ('6', 195, InTerms, Just "GHC.Internal.Generics", "DecidedLazy"),
+    ('6', 198, InTerms, Just "GHC.Internal.Generics", "DecidedStrict"),
+    ('6', 201, InTerms, Just "GHC.Internal.Generics", "DecidedUnpack"),
+    ('6', 204, InTerms, Just "GHC.Internal.Generics", "MetaData"),
+    ('6', 207, InTerms, Just "GHC.Internal.Generics", "MetaCons"),
+    ('6', 210, InTerms, Just "GHC.Internal.Generics", "MetaSel"),
+    ('6', 213, InTerms, Just "GHC.Types", "VecRep"),
+    ('6', 214, InTerms, Just "GHC.Types", "VecRep"),
+    ('6', 215, InTerms, Just "GHC.Types", "$tc'VecRep"),
+    ('6', 216, InTerms, Just "GHC.Types", "TupleRep"),
+    ('6', 217, InTerms, Just "GHC.Types", "TupleRep"),
+    ('6', 218, InTerms, Just "GHC.Types", "$tc'TupleRep"),
+    ('6', 219, InTerms, Just "GHC.Types", "SumRep"),
+    ('6', 220, InTerms, Just "GHC.Types", "SumRep"),
+    ('6', 221, InTerms, Just "GHC.Types", "$tc'SumRep"),
+    ('6', 222, InTerms, Just "GHC.Types", "BoxedRep"),
+    ('6', 223, InTerms, Just "GHC.Types", "BoxedRep"),
+    ('6', 224, InTerms, Just "GHC.Types", "$tc'BoxedRep"),
+    ('6', 225, InTerms, Just "GHC.Types", "IntRep"),
+    ('6', 226, InTerms, Just "GHC.Types", "IntRep"),
+    ('6', 227, InTerms, Just "GHC.Types", "$tc'IntRep"),
+    ('6', 228, InTerms, Just "GHC.Types", "Int8Rep"),
+    ('6', 229, InTerms, Just "GHC.Types", "Int8Rep"),
+    ('6', 230, InTerms, Just "GHC.Types", "$tc'Int8Rep"),
+    ('6', 231, InTerms, Just "GHC.Types", "Int16Rep"),
+    ('6', 232, InTerms, Just "GHC.Types", "Int16Rep"),
+    ('6', 233, InTerms, Just "GHC.Types", "$tc'Int16Rep"),
+    ('6', 234, InTerms, Just "GHC.Types", "Int32Rep"),
+    ('6', 235, InTerms, Just "GHC.Types", "Int32Rep"),
+    ('6', 236, InTerms, Just "GHC.Types", "$tc'Int32Rep"),
+    ('6', 237, InTerms, Just "GHC.Types", "Int64Rep"),
+    ('6', 238, InTerms, Just "GHC.Types", "Int64Rep"),
+    ('6', 239, InTerms, Just "GHC.Types", "$tc'Int64Rep"),
+    ('6', 240, InTerms, Just "GHC.Types", "WordRep"),
+    ('6', 241, InTerms, Just "GHC.Types", "WordRep"),
+    ('6', 242, InTerms, Just "GHC.Types", "$tc'WordRep"),
+    ('6', 243, InTerms, Just "GHC.Types", "Word8Rep"),
+    ('6', 244, InTerms, Just "GHC.Types", "Word8Rep"),
+    ('6', 245, InTerms, Just "GHC.Types", "$tc'Word8Rep"),
+    ('6', 246, InTerms, Just "GHC.Types", "Word16Rep"),
+    ('6', 247, InTerms, Just "GHC.Types", "Word16Rep"),
+    ('6', 248, InTerms, Just "GHC.Types", "$tc'Word16Rep"),
+    ('6', 249, InTerms, Just "GHC.Types", "Word32Rep"),
+    ('6', 250, InTerms, Just "GHC.Types", "Word32Rep"),
+    ('6', 251, InTerms, Just "GHC.Types", "$tc'Word32Rep"),
+    ('6', 252, InTerms, Just "GHC.Types", "Word64Rep"),
+    ('6', 253, InTerms, Just "GHC.Types", "Word64Rep"),
+    ('6', 254, InTerms, Just "GHC.Types", "$tc'Word64Rep"),
+    ('6', 255, InTerms, Just "GHC.Types", "AddrRep"),
+    ('6', 256, InTerms, Just "GHC.Types", "AddrRep"),
+    ('6', 257, InTerms, Just "GHC.Types", "$tc'AddrRep"),
+    ('6', 258, InTerms, Just "GHC.Types", "FloatRep"),
+    ('6', 259, InTerms, Just "GHC.Types", "FloatRep"),
+    ('6', 260, InTerms, Just "GHC.Types", "$tc'FloatRep"),
+    ('6', 261, InTerms, Just "GHC.Types", "DoubleRep"),
+    ('6', 262, InTerms, Just "GHC.Types", "DoubleRep"),
+    ('6', 263, InTerms, Just "GHC.Types", "$tc'DoubleRep"),
+    ('6', 264, InTerms, Just "GHC.Types", "Lifted"),
+    ('6', 265, InTerms, Just "GHC.Types", "Lifted"),
+    ('6', 266, InTerms, Just "GHC.Types", "$tc'Lifted"),
+    ('6', 267, InTerms, Just "GHC.Types", "Unlifted"),
+    ('6', 268, InTerms, Just "GHC.Types", "Unlifted"),
+    ('6', 269, InTerms, Just "GHC.Types", "$tc'Unlifted"),
+    ('6', 270, InTerms, Just "GHC.Types", "Vec2"),
+    ('6', 271, InTerms, Just "GHC.Types", "Vec2"),
+    ('6', 272, InTerms, Just "GHC.Types", "$tc'Vec2"),
+    ('6', 273, InTerms, Just "GHC.Types", "Vec4"),
+    ('6', 274, InTerms, Just "GHC.Types", "Vec4"),
+    ('6', 275, InTerms, Just "GHC.Types", "$tc'Vec4"),
+    ('6', 276, InTerms, Just "GHC.Types", "Vec8"),
+    ('6', 277, InTerms, Just "GHC.Types", "Vec8"),
+    ('6', 278, InTerms, Just "GHC.Types", "$tc'Vec8"),
+    ('6', 279, InTerms, Just "GHC.Types", "Vec16"),
+    ('6', 280, InTerms, Just "GHC.Types", "Vec16"),
+    ('6', 281, InTerms, Just "GHC.Types", "$tc'Vec16"),
+    ('6', 282, InTerms, Just "GHC.Types", "Vec32"),
+    ('6', 283, InTerms, Just "GHC.Types", "Vec32"),
+    ('6', 284, InTerms, Just "GHC.Types", "$tc'Vec32"),
+    ('6', 285, InTerms, Just "GHC.Types", "Vec64"),
+    ('6', 286, InTerms, Just "GHC.Types", "Vec64"),
+    ('6', 287, InTerms, Just "GHC.Types", "$tc'Vec64"),
+    ('6', 288, InTerms, Just "GHC.Types", "Int8ElemRep"),
+    ('6', 289, InTerms, Just "GHC.Types", "Int8ElemRep"),
+    ('6', 290, InTerms, Just "GHC.Types", "$tc'Int8ElemRep"),
+    ('6', 291, InTerms, Just "GHC.Types", "Int16ElemRep"),
+    ('6', 292, InTerms, Just "GHC.Types", "Int16ElemRep"),
+    ('6', 293, InTerms, Just "GHC.Types", "$tc'Int16ElemRep"),
+    ('6', 294, InTerms, Just "GHC.Types", "Int32ElemRep"),
+    ('6', 295, InTerms, Just "GHC.Types", "Int32ElemRep"),
+    ('6', 296, InTerms, Just "GHC.Types", "$tc'Int32ElemRep"),
+    ('6', 297, InTerms, Just "GHC.Types", "Int64ElemRep"),
+    ('6', 298, InTerms, Just "GHC.Types", "Int64ElemRep"),
+    ('6', 299, InTerms, Just "GHC.Types", "$tc'Int64ElemRep"),
+    ('6', 300, InTerms, Just "GHC.Types", "Word8ElemRep"),
+    ('6', 301, InTerms, Just "GHC.Types", "Word8ElemRep"),
+    ('6', 302, InTerms, Just "GHC.Types", "$tc'Word8ElemRep"),
+    ('6', 303, InTerms, Just "GHC.Types", "Word16ElemRep"),
+    ('6', 304, InTerms, Just "GHC.Types", "Word16ElemRep"),
+    ('6', 305, InTerms, Just "GHC.Types", "$tc'Word16ElemRep"),
+    ('6', 306, InTerms, Just "GHC.Types", "Word32ElemRep"),
+    ('6', 307, InTerms, Just "GHC.Types", "Word32ElemRep"),
+    ('6', 308, InTerms, Just "GHC.Types", "$tc'Word32ElemRep"),
+    ('6', 309, InTerms, Just "GHC.Types", "Word64ElemRep"),
+    ('6', 310, InTerms, Just "GHC.Types", "Word64ElemRep"),
+    ('6', 311, InTerms, Just "GHC.Types", "$tc'Word64ElemRep"),
+    ('6', 312, InTerms, Just "GHC.Types", "FloatElemRep"),
+    ('6', 313, InTerms, Just "GHC.Types", "FloatElemRep"),
+    ('6', 314, InTerms, Just "GHC.Types", "$tc'FloatElemRep"),
+    ('6', 315, InTerms, Just "GHC.Types", "DoubleElemRep"),
+    ('6', 316, InTerms, Just "GHC.Types", "DoubleElemRep"),
+    ('6', 317, InTerms, Just "GHC.Types", "$tc'DoubleElemRep"),
+    ('6', 318, InTerms, Just "GHC.Types", "KindRepTyConApp"),
+    ('6', 321, InTerms, Just "GHC.Types", "KindRepVar"),
+    ('6', 324, InTerms, Just "GHC.Types", "KindRepApp"),
+    ('6', 327, InTerms, Just "GHC.Types", "KindRepFun"),
+    ('6', 330, InTerms, Just "GHC.Types", "KindRepTYPE"),
+    ('6', 333, InTerms, Just "GHC.Types", "KindRepTypeLitS"),
+    ('6', 336, InTerms, Just "GHC.Types", "KindRepTypeLitD"),
+    ('6', 339, InTerms, Just "GHC.Types", "TypeLitSymbol"),
+    ('6', 342, InTerms, Just "GHC.Types", "TypeLitNat"),
+    ('6', 345, InTerms, Just "GHC.Types", "TypeLitChar"),
+    ('6', 348, InTerms, Just "GHC.Internal.Unsafe.Coerce", "UnsafeRefl"),
+    ('6', 351, InTerms, Just "GHC.Types", "One"),
+    ('6', 352, InTerms, Just "GHC.Types", "One"),
+    ('6', 353, InTerms, Just "GHC.Types", "$tc'One"),
+    ('6', 354, InTerms, Just "GHC.Types", "Many"),
+    ('6', 355, InTerms, Just "GHC.Types", "Many"),
+    ('6', 356, InTerms, Just "GHC.Types", "$tc'Many"),
+    ('6', 360, InTerms, Just "GHC.Num.Integer", "IS"),
+    ('6', 361, InTerms, Just "GHC.Num.Integer", "IS"),
+    ('6', 362, InTerms, Just "GHC.Num.Integer", "$tc'IS"),
+    ('6', 363, InTerms, Just "GHC.Num.Integer", "IN"),
+    ('6', 364, InTerms, Just "GHC.Num.Integer", "IN"),
+    ('6', 365, InTerms, Just "GHC.Num.Integer", "$tc'IN"),
+    ('6', 366, InTerms, Just "GHC.Num.Integer", "IP"),
+    ('6', 367, InTerms, Just "GHC.Num.Integer", "IP"),
+    ('6', 368, InTerms, Just "GHC.Num.Integer", "$tc'IP"),
+    ('6', 369, InTerms, Just "GHC.Num.Natural", "NS"),
+    ('6', 370, InTerms, Just "GHC.Num.Natural", "NS"),
+    ('6', 371, InTerms, Just "GHC.Num.Natural", "$tc'NS"),
+    ('6', 372, InTerms, Just "GHC.Num.Natural", "NB"),
+    ('6', 373, InTerms, Just "GHC.Num.Natural", "NB"),
+    ('6', 374, InTerms, Just "GHC.Num.Natural", "$tc'NB"),
+    ('6', 600, InTerms, Just "GHC.Internal.TH.Syntax", "NoInline"),
+    ('6', 603, InTerms, Just "GHC.Internal.TH.Syntax", "Inline"),
+    ('6', 606, InTerms, Just "GHC.Internal.TH.Syntax", "Inlinable"),
+    ('6', 612, InTerms, Just "GHC.Internal.TH.Syntax", "ConLike"),
+    ('6', 615, InTerms, Just "GHC.Internal.TH.Syntax", "FunLike"),
+    ('6', 618, InTerms, Just "GHC.Internal.TH.Syntax", "AllPhases"),
+    ('6', 621, InTerms, Just "GHC.Internal.TH.Syntax", "FromPhase"),
+    ('6', 624, InTerms, Just "GHC.Internal.TH.Syntax", "BeforePhase"),
+    ('6', 627, InTerms, Just "GHC.Internal.TH.Syntax", "Overlappable"),
+    ('6', 630, InTerms, Just "GHC.Internal.TH.Syntax", "Overlapping"),
+    ('6', 633, InTerms, Just "GHC.Internal.TH.Syntax", "Overlaps"),
+    ('6', 636, InTerms, Just "GHC.Internal.TH.Syntax", "Incoherent"),
+    ('6', 639, InTerms, Just "GHC.Internal.TH.Syntax", "NoNamespaceSpecifier"),
+    ('6', 642, InTerms, Just "GHC.Internal.TH.Syntax", "TypeNamespaceSpecifier"),
+    ('6', 645, InTerms, Just "GHC.Internal.TH.Syntax", "DataNamespaceSpecifier"),
+    ('6', 1482, InTerms, Just "GHC.Internal.TH.Lib", "stockStrategy"),
+    ('6', 1485, InTerms, Just "GHC.Internal.TH.Lib", "anyclassStrategy"),
+    ('6', 1488, InTerms, Just "GHC.Internal.TH.Lib", "newtypeStrategy"),
+    ('6', 1491, InTerms, Just "GHC.Internal.TH.Lib", "viaStrategy"),
+    ('7', 0, InTerms, Nothing, "()"),
+    ('7', 1, InTerms, Just "GHC.Tuple", "()"),
+    ('7', 2, InTerms, Just "GHC.Tuple", "$tc'()"),
+    ('7', 3, InTerms, Nothing, "MkSolo"),
+    ('7', 4, InTerms, Just "GHC.Tuple", "MkSolo"),
+    ('7', 5, InTerms, Just "GHC.Tuple", "$tc'MkSolo"),
+    ('8', 0, InTerms, Nothing, "(##)"),
+    ('8', 1, InTerms, Just "GHC.Types", "(##)"),
+    ('8', 2, InTerms, Just "GHC.Types", "$tc'(##)"),
+    ('9', 0, InTerms, Just "GHC.Prim", "gtChar#"),
+    ('9', 1, InTerms, Just "GHC.PrimopWrappers", "gtChar#"),
+    ('9', 2, InTerms, Just "GHC.Prim", "geChar#"),
+    ('9', 3, InTerms, Just "GHC.PrimopWrappers", "geChar#"),
+    ('9', 4, InTerms, Just "GHC.Prim", "eqChar#"),
+    ('9', 5, InTerms, Just "GHC.PrimopWrappers", "eqChar#"),
+    ('9', 6, InTerms, Just "GHC.Prim", "neChar#"),
+    ('9', 7, InTerms, Just "GHC.PrimopWrappers", "neChar#"),
+    ('9', 8, InTerms, Just "GHC.Prim", "ltChar#"),
+    ('9', 9, InTerms, Just "GHC.PrimopWrappers", "ltChar#"),
+    ('9', 10, InTerms, Just "GHC.Prim", "leChar#"),
+    ('9', 11, InTerms, Just "GHC.PrimopWrappers", "leChar#"),
+    ('9', 12, InTerms, Just "GHC.Prim", "ord#"),
+    ('9', 13, InTerms, Just "GHC.PrimopWrappers", "ord#"),
+    ('9', 14, InTerms, Just "GHC.Prim", "int8ToInt#"),
+    ('9', 15, InTerms, Just "GHC.PrimopWrappers", "int8ToInt#"),
+    ('9', 16, InTerms, Just "GHC.Prim", "intToInt8#"),
+    ('9', 17, InTerms, Just "GHC.PrimopWrappers", "intToInt8#"),
+    ('9', 18, InTerms, Just "GHC.Prim", "negateInt8#"),
+    ('9', 19, InTerms, Just "GHC.PrimopWrappers", "negateInt8#"),
+    ('9', 20, InTerms, Just "GHC.Prim", "plusInt8#"),
+    ('9', 21, InTerms, Just "GHC.PrimopWrappers", "plusInt8#"),
+    ('9', 22, InTerms, Just "GHC.Prim", "subInt8#"),
+    ('9', 23, InTerms, Just "GHC.PrimopWrappers", "subInt8#"),
+    ('9', 24, InTerms, Just "GHC.Prim", "timesInt8#"),
+    ('9', 25, InTerms, Just "GHC.PrimopWrappers", "timesInt8#"),
+    ('9', 26, InTerms, Just "GHC.Prim", "quotInt8#"),
+    ('9', 27, InTerms, Just "GHC.PrimopWrappers", "quotInt8#"),
+    ('9', 28, InTerms, Just "GHC.Prim", "remInt8#"),
+    ('9', 29, InTerms, Just "GHC.PrimopWrappers", "remInt8#"),
+    ('9', 30, InTerms, Just "GHC.Prim", "quotRemInt8#"),
+    ('9', 31, InTerms, Just "GHC.PrimopWrappers", "quotRemInt8#"),
+    ('9', 32, InTerms, Just "GHC.Prim", "uncheckedShiftLInt8#"),
+    ('9', 33, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftLInt8#"),
+    ('9', 34, InTerms, Just "GHC.Prim", "uncheckedShiftRAInt8#"),
+    ('9', 35, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftRAInt8#"),
+    ('9', 36, InTerms, Just "GHC.Prim", "uncheckedShiftRLInt8#"),
+    ('9', 37, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftRLInt8#"),
+    ('9', 38, InTerms, Just "GHC.Prim", "int8ToWord8#"),
+    ('9', 39, InTerms, Just "GHC.PrimopWrappers", "int8ToWord8#"),
+    ('9', 40, InTerms, Just "GHC.Prim", "eqInt8#"),
+    ('9', 41, InTerms, Just "GHC.PrimopWrappers", "eqInt8#"),
+    ('9', 42, InTerms, Just "GHC.Prim", "geInt8#"),
+    ('9', 43, InTerms, Just "GHC.PrimopWrappers", "geInt8#"),
+    ('9', 44, InTerms, Just "GHC.Prim", "gtInt8#"),
+    ('9', 45, InTerms, Just "GHC.PrimopWrappers", "gtInt8#"),
+    ('9', 46, InTerms, Just "GHC.Prim", "leInt8#"),
+    ('9', 47, InTerms, Just "GHC.PrimopWrappers", "leInt8#"),
+    ('9', 48, InTerms, Just "GHC.Prim", "ltInt8#"),
+    ('9', 49, InTerms, Just "GHC.PrimopWrappers", "ltInt8#"),
+    ('9', 50, InTerms, Just "GHC.Prim", "neInt8#"),
+    ('9', 51, InTerms, Just "GHC.PrimopWrappers", "neInt8#"),
+    ('9', 52, InTerms, Just "GHC.Prim", "word8ToWord#"),
+    ('9', 53, InTerms, Just "GHC.PrimopWrappers", "word8ToWord#"),
+    ('9', 54, InTerms, Just "GHC.Prim", "wordToWord8#"),
+    ('9', 55, InTerms, Just "GHC.PrimopWrappers", "wordToWord8#"),
+    ('9', 56, InTerms, Just "GHC.Prim", "plusWord8#"),
+    ('9', 57, InTerms, Just "GHC.PrimopWrappers", "plusWord8#"),
+    ('9', 58, InTerms, Just "GHC.Prim", "subWord8#"),
+    ('9', 59, InTerms, Just "GHC.PrimopWrappers", "subWord8#"),
+    ('9', 60, InTerms, Just "GHC.Prim", "timesWord8#"),
+    ('9', 61, InTerms, Just "GHC.PrimopWrappers", "timesWord8#"),
+    ('9', 62, InTerms, Just "GHC.Prim", "quotWord8#"),
+    ('9', 63, InTerms, Just "GHC.PrimopWrappers", "quotWord8#"),
+    ('9', 64, InTerms, Just "GHC.Prim", "remWord8#"),
+    ('9', 65, InTerms, Just "GHC.PrimopWrappers", "remWord8#"),
+    ('9', 66, InTerms, Just "GHC.Prim", "quotRemWord8#"),
+    ('9', 67, InTerms, Just "GHC.PrimopWrappers", "quotRemWord8#"),
+    ('9', 68, InTerms, Just "GHC.Prim", "andWord8#"),
+    ('9', 69, InTerms, Just "GHC.PrimopWrappers", "andWord8#"),
+    ('9', 70, InTerms, Just "GHC.Prim", "orWord8#"),
+    ('9', 71, InTerms, Just "GHC.PrimopWrappers", "orWord8#"),
+    ('9', 72, InTerms, Just "GHC.Prim", "xorWord8#"),
+    ('9', 73, InTerms, Just "GHC.PrimopWrappers", "xorWord8#"),
+    ('9', 74, InTerms, Just "GHC.Prim", "notWord8#"),
+    ('9', 75, InTerms, Just "GHC.PrimopWrappers", "notWord8#"),
+    ('9', 76, InTerms, Just "GHC.Prim", "uncheckedShiftLWord8#"),
+    ('9', 77, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftLWord8#"),
+    ('9', 78, InTerms, Just "GHC.Prim", "uncheckedShiftRLWord8#"),
+    ('9', 79, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftRLWord8#"),
+    ('9', 80, InTerms, Just "GHC.Prim", "word8ToInt8#"),
+    ('9', 81, InTerms, Just "GHC.PrimopWrappers", "word8ToInt8#"),
+    ('9', 82, InTerms, Just "GHC.Prim", "eqWord8#"),
+    ('9', 83, InTerms, Just "GHC.PrimopWrappers", "eqWord8#"),
+    ('9', 84, InTerms, Just "GHC.Prim", "geWord8#"),
+    ('9', 85, InTerms, Just "GHC.PrimopWrappers", "geWord8#"),
+    ('9', 86, InTerms, Just "GHC.Prim", "gtWord8#"),
+    ('9', 87, InTerms, Just "GHC.PrimopWrappers", "gtWord8#"),
+    ('9', 88, InTerms, Just "GHC.Prim", "leWord8#"),
+    ('9', 89, InTerms, Just "GHC.PrimopWrappers", "leWord8#"),
+    ('9', 90, InTerms, Just "GHC.Prim", "ltWord8#"),
+    ('9', 91, InTerms, Just "GHC.PrimopWrappers", "ltWord8#"),
+    ('9', 92, InTerms, Just "GHC.Prim", "neWord8#"),
+    ('9', 93, InTerms, Just "GHC.PrimopWrappers", "neWord8#"),
+    ('9', 94, InTerms, Just "GHC.Prim", "int16ToInt#"),
+    ('9', 95, InTerms, Just "GHC.PrimopWrappers", "int16ToInt#"),
+    ('9', 96, InTerms, Just "GHC.Prim", "intToInt16#"),
+    ('9', 97, InTerms, Just "GHC.PrimopWrappers", "intToInt16#"),
+    ('9', 98, InTerms, Just "GHC.Prim", "negateInt16#"),
+    ('9', 99, InTerms, Just "GHC.PrimopWrappers", "negateInt16#"),
+    ('9', 100, InTerms, Just "GHC.Prim", "plusInt16#"),
+    ('9', 101, InTerms, Just "GHC.PrimopWrappers", "plusInt16#"),
+    ('9', 102, InTerms, Just "GHC.Prim", "subInt16#"),
+    ('9', 103, InTerms, Just "GHC.PrimopWrappers", "subInt16#"),
+    ('9', 104, InTerms, Just "GHC.Prim", "timesInt16#"),
+    ('9', 105, InTerms, Just "GHC.PrimopWrappers", "timesInt16#"),
+    ('9', 106, InTerms, Just "GHC.Prim", "quotInt16#"),
+    ('9', 107, InTerms, Just "GHC.PrimopWrappers", "quotInt16#"),
+    ('9', 108, InTerms, Just "GHC.Prim", "remInt16#"),
+    ('9', 109, InTerms, Just "GHC.PrimopWrappers", "remInt16#"),
+    ('9', 110, InTerms, Just "GHC.Prim", "quotRemInt16#"),
+    ('9', 111, InTerms, Just "GHC.PrimopWrappers", "quotRemInt16#"),
+    ('9', 112, InTerms, Just "GHC.Prim", "uncheckedShiftLInt16#"),
+    ('9', 113, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftLInt16#"),
+    ('9', 114, InTerms, Just "GHC.Prim", "uncheckedShiftRAInt16#"),
+    ('9', 115, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftRAInt16#"),
+    ('9', 116, InTerms, Just "GHC.Prim", "uncheckedShiftRLInt16#"),
+    ('9', 117, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftRLInt16#"),
+    ('9', 118, InTerms, Just "GHC.Prim", "int16ToWord16#"),
+    ('9', 119, InTerms, Just "GHC.PrimopWrappers", "int16ToWord16#"),
+    ('9', 120, InTerms, Just "GHC.Prim", "eqInt16#"),
+    ('9', 121, InTerms, Just "GHC.PrimopWrappers", "eqInt16#"),
+    ('9', 122, InTerms, Just "GHC.Prim", "geInt16#"),
+    ('9', 123, InTerms, Just "GHC.PrimopWrappers", "geInt16#"),
+    ('9', 124, InTerms, Just "GHC.Prim", "gtInt16#"),
+    ('9', 125, InTerms, Just "GHC.PrimopWrappers", "gtInt16#"),
+    ('9', 126, InTerms, Just "GHC.Prim", "leInt16#"),
+    ('9', 127, InTerms, Just "GHC.PrimopWrappers", "leInt16#"),
+    ('9', 128, InTerms, Just "GHC.Prim", "ltInt16#"),
+    ('9', 129, InTerms, Just "GHC.PrimopWrappers", "ltInt16#"),
+    ('9', 130, InTerms, Just "GHC.Prim", "neInt16#"),
+    ('9', 131, InTerms, Just "GHC.PrimopWrappers", "neInt16#"),
+    ('9', 132, InTerms, Just "GHC.Prim", "word16ToWord#"),
+    ('9', 133, InTerms, Just "GHC.PrimopWrappers", "word16ToWord#"),
+    ('9', 134, InTerms, Just "GHC.Prim", "wordToWord16#"),
+    ('9', 135, InTerms, Just "GHC.PrimopWrappers", "wordToWord16#"),
+    ('9', 136, InTerms, Just "GHC.Prim", "plusWord16#"),
+    ('9', 137, InTerms, Just "GHC.PrimopWrappers", "plusWord16#"),
+    ('9', 138, InTerms, Just "GHC.Prim", "subWord16#"),
+    ('9', 139, InTerms, Just "GHC.PrimopWrappers", "subWord16#"),
+    ('9', 140, InTerms, Just "GHC.Prim", "timesWord16#"),
+    ('9', 141, InTerms, Just "GHC.PrimopWrappers", "timesWord16#"),
+    ('9', 142, InTerms, Just "GHC.Prim", "quotWord16#"),
+    ('9', 143, InTerms, Just "GHC.PrimopWrappers", "quotWord16#"),
+    ('9', 144, InTerms, Just "GHC.Prim", "remWord16#"),
+    ('9', 145, InTerms, Just "GHC.PrimopWrappers", "remWord16#"),
+    ('9', 146, InTerms, Just "GHC.Prim", "quotRemWord16#"),
+    ('9', 147, InTerms, Just "GHC.PrimopWrappers", "quotRemWord16#"),
+    ('9', 148, InTerms, Just "GHC.Prim", "andWord16#"),
+    ('9', 149, InTerms, Just "GHC.PrimopWrappers", "andWord16#"),
+    ('9', 150, InTerms, Just "GHC.Prim", "orWord16#"),
+    ('9', 151, InTerms, Just "GHC.PrimopWrappers", "orWord16#"),
+    ('9', 152, InTerms, Just "GHC.Prim", "xorWord16#"),
+    ('9', 153, InTerms, Just "GHC.PrimopWrappers", "xorWord16#"),
+    ('9', 154, InTerms, Just "GHC.Prim", "notWord16#"),
+    ('9', 155, InTerms, Just "GHC.PrimopWrappers", "notWord16#"),
+    ('9', 156, InTerms, Just "GHC.Prim", "uncheckedShiftLWord16#"),
+    ('9', 157, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftLWord16#"),
+    ('9', 158, InTerms, Just "GHC.Prim", "uncheckedShiftRLWord16#"),
+    ('9', 159, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftRLWord16#"),
+    ('9', 160, InTerms, Just "GHC.Prim", "word16ToInt16#"),
+    ('9', 161, InTerms, Just "GHC.PrimopWrappers", "word16ToInt16#"),
+    ('9', 162, InTerms, Just "GHC.Prim", "eqWord16#"),
+    ('9', 163, InTerms, Just "GHC.PrimopWrappers", "eqWord16#"),
+    ('9', 164, InTerms, Just "GHC.Prim", "geWord16#"),
+    ('9', 165, InTerms, Just "GHC.PrimopWrappers", "geWord16#"),
+    ('9', 166, InTerms, Just "GHC.Prim", "gtWord16#"),
+    ('9', 167, InTerms, Just "GHC.PrimopWrappers", "gtWord16#"),
+    ('9', 168, InTerms, Just "GHC.Prim", "leWord16#"),
+    ('9', 169, InTerms, Just "GHC.PrimopWrappers", "leWord16#"),
+    ('9', 170, InTerms, Just "GHC.Prim", "ltWord16#"),
+    ('9', 171, InTerms, Just "GHC.PrimopWrappers", "ltWord16#"),
+    ('9', 172, InTerms, Just "GHC.Prim", "neWord16#"),
+    ('9', 173, InTerms, Just "GHC.PrimopWrappers", "neWord16#"),
+    ('9', 174, InTerms, Just "GHC.Prim", "int32ToInt#"),
+    ('9', 175, InTerms, Just "GHC.PrimopWrappers", "int32ToInt#"),
+    ('9', 176, InTerms, Just "GHC.Prim", "intToInt32#"),
+    ('9', 177, InTerms, Just "GHC.PrimopWrappers", "intToInt32#"),
+    ('9', 178, InTerms, Just "GHC.Prim", "negateInt32#"),
+    ('9', 179, InTerms, Just "GHC.PrimopWrappers", "negateInt32#"),
+    ('9', 180, InTerms, Just "GHC.Prim", "plusInt32#"),
+    ('9', 181, InTerms, Just "GHC.PrimopWrappers", "plusInt32#"),
+    ('9', 182, InTerms, Just "GHC.Prim", "subInt32#"),
+    ('9', 183, InTerms, Just "GHC.PrimopWrappers", "subInt32#"),
+    ('9', 184, InTerms, Just "GHC.Prim", "timesInt32#"),
+    ('9', 185, InTerms, Just "GHC.PrimopWrappers", "timesInt32#"),
+    ('9', 186, InTerms, Just "GHC.Prim", "quotInt32#"),
+    ('9', 187, InTerms, Just "GHC.PrimopWrappers", "quotInt32#"),
+    ('9', 188, InTerms, Just "GHC.Prim", "remInt32#"),
+    ('9', 189, InTerms, Just "GHC.PrimopWrappers", "remInt32#"),
+    ('9', 190, InTerms, Just "GHC.Prim", "quotRemInt32#"),
+    ('9', 191, InTerms, Just "GHC.PrimopWrappers", "quotRemInt32#"),
+    ('9', 192, InTerms, Just "GHC.Prim", "uncheckedShiftLInt32#"),
+    ('9', 193, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftLInt32#"),
+    ('9', 194, InTerms, Just "GHC.Prim", "uncheckedShiftRAInt32#"),
+    ('9', 195, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftRAInt32#"),
+    ('9', 196, InTerms, Just "GHC.Prim", "uncheckedShiftRLInt32#"),
+    ('9', 197, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftRLInt32#"),
+    ('9', 198, InTerms, Just "GHC.Prim", "int32ToWord32#"),
+    ('9', 199, InTerms, Just "GHC.PrimopWrappers", "int32ToWord32#"),
+    ('9', 200, InTerms, Just "GHC.Prim", "eqInt32#"),
+    ('9', 201, InTerms, Just "GHC.PrimopWrappers", "eqInt32#"),
+    ('9', 202, InTerms, Just "GHC.Prim", "geInt32#"),
+    ('9', 203, InTerms, Just "GHC.PrimopWrappers", "geInt32#"),
+    ('9', 204, InTerms, Just "GHC.Prim", "gtInt32#"),
+    ('9', 205, InTerms, Just "GHC.PrimopWrappers", "gtInt32#"),
+    ('9', 206, InTerms, Just "GHC.Prim", "leInt32#"),
+    ('9', 207, InTerms, Just "GHC.PrimopWrappers", "leInt32#"),
+    ('9', 208, InTerms, Just "GHC.Prim", "ltInt32#"),
+    ('9', 209, InTerms, Just "GHC.PrimopWrappers", "ltInt32#"),
+    ('9', 210, InTerms, Just "GHC.Prim", "neInt32#"),
+    ('9', 211, InTerms, Just "GHC.PrimopWrappers", "neInt32#"),
+    ('9', 212, InTerms, Just "GHC.Prim", "word32ToWord#"),
+    ('9', 213, InTerms, Just "GHC.PrimopWrappers", "word32ToWord#"),
+    ('9', 214, InTerms, Just "GHC.Prim", "wordToWord32#"),
+    ('9', 215, InTerms, Just "GHC.PrimopWrappers", "wordToWord32#"),
+    ('9', 216, InTerms, Just "GHC.Prim", "plusWord32#"),
+    ('9', 217, InTerms, Just "GHC.PrimopWrappers", "plusWord32#"),
+    ('9', 218, InTerms, Just "GHC.Prim", "subWord32#"),
+    ('9', 219, InTerms, Just "GHC.PrimopWrappers", "subWord32#"),
+    ('9', 220, InTerms, Just "GHC.Prim", "timesWord32#"),
+    ('9', 221, InTerms, Just "GHC.PrimopWrappers", "timesWord32#"),
+    ('9', 222, InTerms, Just "GHC.Prim", "quotWord32#"),
+    ('9', 223, InTerms, Just "GHC.PrimopWrappers", "quotWord32#"),
+    ('9', 224, InTerms, Just "GHC.Prim", "remWord32#"),
+    ('9', 225, InTerms, Just "GHC.PrimopWrappers", "remWord32#"),
+    ('9', 226, InTerms, Just "GHC.Prim", "quotRemWord32#"),
+    ('9', 227, InTerms, Just "GHC.PrimopWrappers", "quotRemWord32#"),
+    ('9', 228, InTerms, Just "GHC.Prim", "andWord32#"),
+    ('9', 229, InTerms, Just "GHC.PrimopWrappers", "andWord32#"),
+    ('9', 230, InTerms, Just "GHC.Prim", "orWord32#"),
+    ('9', 231, InTerms, Just "GHC.PrimopWrappers", "orWord32#"),
+    ('9', 232, InTerms, Just "GHC.Prim", "xorWord32#"),
+    ('9', 233, InTerms, Just "GHC.PrimopWrappers", "xorWord32#"),
+    ('9', 234, InTerms, Just "GHC.Prim", "notWord32#"),
+    ('9', 235, InTerms, Just "GHC.PrimopWrappers", "notWord32#"),
+    ('9', 236, InTerms, Just "GHC.Prim", "uncheckedShiftLWord32#"),
+    ('9', 237, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftLWord32#"),
+    ('9', 238, InTerms, Just "GHC.Prim", "uncheckedShiftRLWord32#"),
+    ('9', 239, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftRLWord32#"),
+    ('9', 240, InTerms, Just "GHC.Prim", "word32ToInt32#"),
+    ('9', 241, InTerms, Just "GHC.PrimopWrappers", "word32ToInt32#"),
+    ('9', 242, InTerms, Just "GHC.Prim", "eqWord32#"),
+    ('9', 243, InTerms, Just "GHC.PrimopWrappers", "eqWord32#"),
+    ('9', 244, InTerms, Just "GHC.Prim", "geWord32#"),
+    ('9', 245, InTerms, Just "GHC.PrimopWrappers", "geWord32#"),
+    ('9', 246, InTerms, Just "GHC.Prim", "gtWord32#"),
+    ('9', 247, InTerms, Just "GHC.PrimopWrappers", "gtWord32#"),
+    ('9', 248, InTerms, Just "GHC.Prim", "leWord32#"),
+    ('9', 249, InTerms, Just "GHC.PrimopWrappers", "leWord32#"),
+    ('9', 250, InTerms, Just "GHC.Prim", "ltWord32#"),
+    ('9', 251, InTerms, Just "GHC.PrimopWrappers", "ltWord32#"),
+    ('9', 252, InTerms, Just "GHC.Prim", "neWord32#"),
+    ('9', 253, InTerms, Just "GHC.PrimopWrappers", "neWord32#"),
+    ('9', 254, InTerms, Just "GHC.Prim", "int64ToInt#"),
+    ('9', 255, InTerms, Just "GHC.PrimopWrappers", "int64ToInt#"),
+    ('9', 256, InTerms, Just "GHC.Prim", "intToInt64#"),
+    ('9', 257, InTerms, Just "GHC.PrimopWrappers", "intToInt64#"),
+    ('9', 258, InTerms, Just "GHC.Prim", "negateInt64#"),
+    ('9', 259, InTerms, Just "GHC.PrimopWrappers", "negateInt64#"),
+    ('9', 260, InTerms, Just "GHC.Prim", "plusInt64#"),
+    ('9', 261, InTerms, Just "GHC.PrimopWrappers", "plusInt64#"),
+    ('9', 262, InTerms, Just "GHC.Prim", "subInt64#"),
+    ('9', 263, InTerms, Just "GHC.PrimopWrappers", "subInt64#"),
+    ('9', 264, InTerms, Just "GHC.Prim", "timesInt64#"),
+    ('9', 265, InTerms, Just "GHC.PrimopWrappers", "timesInt64#"),
+    ('9', 266, InTerms, Just "GHC.Prim", "quotInt64#"),
+    ('9', 267, InTerms, Just "GHC.PrimopWrappers", "quotInt64#"),
+    ('9', 268, InTerms, Just "GHC.Prim", "remInt64#"),
+    ('9', 269, InTerms, Just "GHC.PrimopWrappers", "remInt64#"),
+    ('9', 270, InTerms, Just "GHC.Prim", "uncheckedIShiftL64#"),
+    ('9', 271, InTerms, Just "GHC.PrimopWrappers", "uncheckedIShiftL64#"),
+    ('9', 272, InTerms, Just "GHC.Prim", "uncheckedIShiftRA64#"),
+    ('9', 273, InTerms, Just "GHC.PrimopWrappers", "uncheckedIShiftRA64#"),
+    ('9', 274, InTerms, Just "GHC.Prim", "uncheckedIShiftRL64#"),
+    ('9', 275, InTerms, Just "GHC.PrimopWrappers", "uncheckedIShiftRL64#"),
+    ('9', 276, InTerms, Just "GHC.Prim", "int64ToWord64#"),
+    ('9', 277, InTerms, Just "GHC.PrimopWrappers", "int64ToWord64#"),
+    ('9', 278, InTerms, Just "GHC.Prim", "eqInt64#"),
+    ('9', 279, InTerms, Just "GHC.PrimopWrappers", "eqInt64#"),
+    ('9', 280, InTerms, Just "GHC.Prim", "geInt64#"),
+    ('9', 281, InTerms, Just "GHC.PrimopWrappers", "geInt64#"),
+    ('9', 282, InTerms, Just "GHC.Prim", "gtInt64#"),
+    ('9', 283, InTerms, Just "GHC.PrimopWrappers", "gtInt64#"),
+    ('9', 284, InTerms, Just "GHC.Prim", "leInt64#"),
+    ('9', 285, InTerms, Just "GHC.PrimopWrappers", "leInt64#"),
+    ('9', 286, InTerms, Just "GHC.Prim", "ltInt64#"),
+    ('9', 287, InTerms, Just "GHC.PrimopWrappers", "ltInt64#"),
+    ('9', 288, InTerms, Just "GHC.Prim", "neInt64#"),
+    ('9', 289, InTerms, Just "GHC.PrimopWrappers", "neInt64#"),
+    ('9', 290, InTerms, Just "GHC.Prim", "word64ToWord#"),
+    ('9', 291, InTerms, Just "GHC.PrimopWrappers", "word64ToWord#"),
+    ('9', 292, InTerms, Just "GHC.Prim", "wordToWord64#"),
+    ('9', 293, InTerms, Just "GHC.PrimopWrappers", "wordToWord64#"),
+    ('9', 294, InTerms, Just "GHC.Prim", "plusWord64#"),
+    ('9', 295, InTerms, Just "GHC.PrimopWrappers", "plusWord64#"),
+    ('9', 296, InTerms, Just "GHC.Prim", "subWord64#"),
+    ('9', 297, InTerms, Just "GHC.PrimopWrappers", "subWord64#"),
+    ('9', 298, InTerms, Just "GHC.Prim", "timesWord64#"),
+    ('9', 299, InTerms, Just "GHC.PrimopWrappers", "timesWord64#"),
+    ('9', 300, InTerms, Just "GHC.Prim", "quotWord64#"),
+    ('9', 301, InTerms, Just "GHC.PrimopWrappers", "quotWord64#"),
+    ('9', 302, InTerms, Just "GHC.Prim", "remWord64#"),
+    ('9', 303, InTerms, Just "GHC.PrimopWrappers", "remWord64#"),
+    ('9', 304, InTerms, Just "GHC.Prim", "and64#"),
+    ('9', 305, InTerms, Just "GHC.PrimopWrappers", "and64#"),
+    ('9', 306, InTerms, Just "GHC.Prim", "or64#"),
+    ('9', 307, InTerms, Just "GHC.PrimopWrappers", "or64#"),
+    ('9', 308, InTerms, Just "GHC.Prim", "xor64#"),
+    ('9', 309, InTerms, Just "GHC.PrimopWrappers", "xor64#"),
+    ('9', 310, InTerms, Just "GHC.Prim", "not64#"),
+    ('9', 311, InTerms, Just "GHC.PrimopWrappers", "not64#"),
+    ('9', 312, InTerms, Just "GHC.Prim", "uncheckedShiftL64#"),
+    ('9', 313, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftL64#"),
+    ('9', 314, InTerms, Just "GHC.Prim", "uncheckedShiftRL64#"),
+    ('9', 315, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftRL64#"),
+    ('9', 316, InTerms, Just "GHC.Prim", "word64ToInt64#"),
+    ('9', 317, InTerms, Just "GHC.PrimopWrappers", "word64ToInt64#"),
+    ('9', 318, InTerms, Just "GHC.Prim", "eqWord64#"),
+    ('9', 319, InTerms, Just "GHC.PrimopWrappers", "eqWord64#"),
+    ('9', 320, InTerms, Just "GHC.Prim", "geWord64#"),
+    ('9', 321, InTerms, Just "GHC.PrimopWrappers", "geWord64#"),
+    ('9', 322, InTerms, Just "GHC.Prim", "gtWord64#"),
+    ('9', 323, InTerms, Just "GHC.PrimopWrappers", "gtWord64#"),
+    ('9', 324, InTerms, Just "GHC.Prim", "leWord64#"),
+    ('9', 325, InTerms, Just "GHC.PrimopWrappers", "leWord64#"),
+    ('9', 326, InTerms, Just "GHC.Prim", "ltWord64#"),
+    ('9', 327, InTerms, Just "GHC.PrimopWrappers", "ltWord64#"),
+    ('9', 328, InTerms, Just "GHC.Prim", "neWord64#"),
+    ('9', 329, InTerms, Just "GHC.PrimopWrappers", "neWord64#"),
+    ('9', 330, InTerms, Just "GHC.Prim", "+#"),
+    ('9', 331, InTerms, Just "GHC.PrimopWrappers", "+#"),
+    ('9', 332, InTerms, Just "GHC.Prim", "-#"),
+    ('9', 333, InTerms, Just "GHC.PrimopWrappers", "-#"),
+    ('9', 334, InTerms, Just "GHC.Prim", "*#"),
+    ('9', 335, InTerms, Just "GHC.PrimopWrappers", "*#"),
+    ('9', 336, InTerms, Just "GHC.Prim", "timesInt2#"),
+    ('9', 337, InTerms, Just "GHC.PrimopWrappers", "timesInt2#"),
+    ('9', 338, InTerms, Just "GHC.Prim", "mulIntMayOflo#"),
+    ('9', 339, InTerms, Just "GHC.PrimopWrappers", "mulIntMayOflo#"),
+    ('9', 340, InTerms, Just "GHC.Prim", "quotInt#"),
+    ('9', 341, InTerms, Just "GHC.PrimopWrappers", "quotInt#"),
+    ('9', 342, InTerms, Just "GHC.Prim", "remInt#"),
+    ('9', 343, InTerms, Just "GHC.PrimopWrappers", "remInt#"),
+    ('9', 344, InTerms, Just "GHC.Prim", "quotRemInt#"),
+    ('9', 345, InTerms, Just "GHC.PrimopWrappers", "quotRemInt#"),
+    ('9', 346, InTerms, Just "GHC.Prim", "andI#"),
+    ('9', 347, InTerms, Just "GHC.PrimopWrappers", "andI#"),
+    ('9', 348, InTerms, Just "GHC.Prim", "orI#"),
+    ('9', 349, InTerms, Just "GHC.PrimopWrappers", "orI#"),
+    ('9', 350, InTerms, Just "GHC.Prim", "xorI#"),
+    ('9', 351, InTerms, Just "GHC.PrimopWrappers", "xorI#"),
+    ('9', 352, InTerms, Just "GHC.Prim", "notI#"),
+    ('9', 353, InTerms, Just "GHC.PrimopWrappers", "notI#"),
+    ('9', 354, InTerms, Just "GHC.Prim", "negateInt#"),
+    ('9', 355, InTerms, Just "GHC.PrimopWrappers", "negateInt#"),
+    ('9', 356, InTerms, Just "GHC.Prim", "addIntC#"),
+    ('9', 357, InTerms, Just "GHC.PrimopWrappers", "addIntC#"),
+    ('9', 358, InTerms, Just "GHC.Prim", "subIntC#"),
+    ('9', 359, InTerms, Just "GHC.PrimopWrappers", "subIntC#"),
+    ('9', 360, InTerms, Just "GHC.Prim", ">#"),
+    ('9', 361, InTerms, Just "GHC.PrimopWrappers", ">#"),
+    ('9', 362, InTerms, Just "GHC.Prim", ">=#"),
+    ('9', 363, InTerms, Just "GHC.PrimopWrappers", ">=#"),
+    ('9', 364, InTerms, Just "GHC.Prim", "==#"),
+    ('9', 365, InTerms, Just "GHC.PrimopWrappers", "==#"),
+    ('9', 366, InTerms, Just "GHC.Prim", "/=#"),
+    ('9', 367, InTerms, Just "GHC.PrimopWrappers", "/=#"),
+    ('9', 368, InTerms, Just "GHC.Prim", "<#"),
+    ('9', 369, InTerms, Just "GHC.PrimopWrappers", "<#"),
+    ('9', 370, InTerms, Just "GHC.Prim", "<=#"),
+    ('9', 371, InTerms, Just "GHC.PrimopWrappers", "<=#"),
+    ('9', 372, InTerms, Just "GHC.Prim", "chr#"),
+    ('9', 373, InTerms, Just "GHC.PrimopWrappers", "chr#"),
+    ('9', 374, InTerms, Just "GHC.Prim", "int2Word#"),
+    ('9', 375, InTerms, Just "GHC.PrimopWrappers", "int2Word#"),
+    ('9', 376, InTerms, Just "GHC.Prim", "int2Float#"),
+    ('9', 377, InTerms, Just "GHC.PrimopWrappers", "int2Float#"),
+    ('9', 378, InTerms, Just "GHC.Prim", "int2Double#"),
+    ('9', 379, InTerms, Just "GHC.PrimopWrappers", "int2Double#"),
+    ('9', 380, InTerms, Just "GHC.Prim", "word2Float#"),
+    ('9', 381, InTerms, Just "GHC.PrimopWrappers", "word2Float#"),
+    ('9', 382, InTerms, Just "GHC.Prim", "word2Double#"),
+    ('9', 383, InTerms, Just "GHC.PrimopWrappers", "word2Double#"),
+    ('9', 384, InTerms, Just "GHC.Prim", "uncheckedIShiftL#"),
+    ('9', 385, InTerms, Just "GHC.PrimopWrappers", "uncheckedIShiftL#"),
+    ('9', 386, InTerms, Just "GHC.Prim", "uncheckedIShiftRA#"),
+    ('9', 387, InTerms, Just "GHC.PrimopWrappers", "uncheckedIShiftRA#"),
+    ('9', 388, InTerms, Just "GHC.Prim", "uncheckedIShiftRL#"),
+    ('9', 389, InTerms, Just "GHC.PrimopWrappers", "uncheckedIShiftRL#"),
+    ('9', 390, InTerms, Just "GHC.Prim", "plusWord#"),
+    ('9', 391, InTerms, Just "GHC.PrimopWrappers", "plusWord#"),
+    ('9', 392, InTerms, Just "GHC.Prim", "addWordC#"),
+    ('9', 393, InTerms, Just "GHC.PrimopWrappers", "addWordC#"),
+    ('9', 394, InTerms, Just "GHC.Prim", "subWordC#"),
+    ('9', 395, InTerms, Just "GHC.PrimopWrappers", "subWordC#"),
+    ('9', 396, InTerms, Just "GHC.Prim", "plusWord2#"),
+    ('9', 397, InTerms, Just "GHC.PrimopWrappers", "plusWord2#"),
+    ('9', 398, InTerms, Just "GHC.Prim", "minusWord#"),
+    ('9', 399, InTerms, Just "GHC.PrimopWrappers", "minusWord#"),
+    ('9', 400, InTerms, Just "GHC.Prim", "timesWord#"),
+    ('9', 401, InTerms, Just "GHC.PrimopWrappers", "timesWord#"),
+    ('9', 402, InTerms, Just "GHC.Prim", "timesWord2#"),
+    ('9', 403, InTerms, Just "GHC.PrimopWrappers", "timesWord2#"),
+    ('9', 404, InTerms, Just "GHC.Prim", "quotWord#"),
+    ('9', 405, InTerms, Just "GHC.PrimopWrappers", "quotWord#"),
+    ('9', 406, InTerms, Just "GHC.Prim", "remWord#"),
+    ('9', 407, InTerms, Just "GHC.PrimopWrappers", "remWord#"),
+    ('9', 408, InTerms, Just "GHC.Prim", "quotRemWord#"),
+    ('9', 409, InTerms, Just "GHC.PrimopWrappers", "quotRemWord#"),
+    ('9', 410, InTerms, Just "GHC.Prim", "quotRemWord2#"),
+    ('9', 411, InTerms, Just "GHC.PrimopWrappers", "quotRemWord2#"),
+    ('9', 412, InTerms, Just "GHC.Prim", "and#"),
+    ('9', 413, InTerms, Just "GHC.PrimopWrappers", "and#"),
+    ('9', 414, InTerms, Just "GHC.Prim", "or#"),
+    ('9', 415, InTerms, Just "GHC.PrimopWrappers", "or#"),
+    ('9', 416, InTerms, Just "GHC.Prim", "xor#"),
+    ('9', 417, InTerms, Just "GHC.PrimopWrappers", "xor#"),
+    ('9', 418, InTerms, Just "GHC.Prim", "not#"),
+    ('9', 419, InTerms, Just "GHC.PrimopWrappers", "not#"),
+    ('9', 420, InTerms, Just "GHC.Prim", "uncheckedShiftL#"),
+    ('9', 421, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftL#"),
+    ('9', 422, InTerms, Just "GHC.Prim", "uncheckedShiftRL#"),
+    ('9', 423, InTerms, Just "GHC.PrimopWrappers", "uncheckedShiftRL#"),
+    ('9', 424, InTerms, Just "GHC.Prim", "word2Int#"),
+    ('9', 425, InTerms, Just "GHC.PrimopWrappers", "word2Int#"),
+    ('9', 426, InTerms, Just "GHC.Prim", "gtWord#"),
+    ('9', 427, InTerms, Just "GHC.PrimopWrappers", "gtWord#"),
+    ('9', 428, InTerms, Just "GHC.Prim", "geWord#"),
+    ('9', 429, InTerms, Just "GHC.PrimopWrappers", "geWord#"),
+    ('9', 430, InTerms, Just "GHC.Prim", "eqWord#"),
+    ('9', 431, InTerms, Just "GHC.PrimopWrappers", "eqWord#"),
+    ('9', 432, InTerms, Just "GHC.Prim", "neWord#"),
+    ('9', 433, InTerms, Just "GHC.PrimopWrappers", "neWord#"),
+    ('9', 434, InTerms, Just "GHC.Prim", "ltWord#"),
+    ('9', 435, InTerms, Just "GHC.PrimopWrappers", "ltWord#"),
+    ('9', 436, InTerms, Just "GHC.Prim", "leWord#"),
+    ('9', 437, InTerms, Just "GHC.PrimopWrappers", "leWord#"),
+    ('9', 438, InTerms, Just "GHC.Prim", "popCnt8#"),
+    ('9', 439, InTerms, Just "GHC.PrimopWrappers", "popCnt8#"),
+    ('9', 440, InTerms, Just "GHC.Prim", "popCnt16#"),
+    ('9', 441, InTerms, Just "GHC.PrimopWrappers", "popCnt16#"),
+    ('9', 442, InTerms, Just "GHC.Prim", "popCnt32#"),
+    ('9', 443, InTerms, Just "GHC.PrimopWrappers", "popCnt32#"),
+    ('9', 444, InTerms, Just "GHC.Prim", "popCnt64#"),
+    ('9', 445, InTerms, Just "GHC.PrimopWrappers", "popCnt64#"),
+    ('9', 446, InTerms, Just "GHC.Prim", "popCnt#"),
+    ('9', 447, InTerms, Just "GHC.PrimopWrappers", "popCnt#"),
+    ('9', 448, InTerms, Just "GHC.Prim", "pdep8#"),
+    ('9', 449, InTerms, Just "GHC.PrimopWrappers", "pdep8#"),
+    ('9', 450, InTerms, Just "GHC.Prim", "pdep16#"),
+    ('9', 451, InTerms, Just "GHC.PrimopWrappers", "pdep16#"),
+    ('9', 452, InTerms, Just "GHC.Prim", "pdep32#"),
+    ('9', 453, InTerms, Just "GHC.PrimopWrappers", "pdep32#"),
+    ('9', 454, InTerms, Just "GHC.Prim", "pdep64#"),
+    ('9', 455, InTerms, Just "GHC.PrimopWrappers", "pdep64#"),
+    ('9', 456, InTerms, Just "GHC.Prim", "pdep#"),
+    ('9', 457, InTerms, Just "GHC.PrimopWrappers", "pdep#"),
+    ('9', 458, InTerms, Just "GHC.Prim", "pext8#"),
+    ('9', 459, InTerms, Just "GHC.PrimopWrappers", "pext8#"),
+    ('9', 460, InTerms, Just "GHC.Prim", "pext16#"),
+    ('9', 461, InTerms, Just "GHC.PrimopWrappers", "pext16#"),
+    ('9', 462, InTerms, Just "GHC.Prim", "pext32#"),
+    ('9', 463, InTerms, Just "GHC.PrimopWrappers", "pext32#"),
+    ('9', 464, InTerms, Just "GHC.Prim", "pext64#"),
+    ('9', 465, InTerms, Just "GHC.PrimopWrappers", "pext64#"),
+    ('9', 466, InTerms, Just "GHC.Prim", "pext#"),
+    ('9', 467, InTerms, Just "GHC.PrimopWrappers", "pext#"),
+    ('9', 468, InTerms, Just "GHC.Prim", "clz8#"),
+    ('9', 469, InTerms, Just "GHC.PrimopWrappers", "clz8#"),
+    ('9', 470, InTerms, Just "GHC.Prim", "clz16#"),
+    ('9', 471, InTerms, Just "GHC.PrimopWrappers", "clz16#"),
+    ('9', 472, InTerms, Just "GHC.Prim", "clz32#"),
+    ('9', 473, InTerms, Just "GHC.PrimopWrappers", "clz32#"),
+    ('9', 474, InTerms, Just "GHC.Prim", "clz64#"),
+    ('9', 475, InTerms, Just "GHC.PrimopWrappers", "clz64#"),
+    ('9', 476, InTerms, Just "GHC.Prim", "clz#"),
+    ('9', 477, InTerms, Just "GHC.PrimopWrappers", "clz#"),
+    ('9', 478, InTerms, Just "GHC.Prim", "ctz8#"),
+    ('9', 479, InTerms, Just "GHC.PrimopWrappers", "ctz8#"),
+    ('9', 480, InTerms, Just "GHC.Prim", "ctz16#"),
+    ('9', 481, InTerms, Just "GHC.PrimopWrappers", "ctz16#"),
+    ('9', 482, InTerms, Just "GHC.Prim", "ctz32#"),
+    ('9', 483, InTerms, Just "GHC.PrimopWrappers", "ctz32#"),
+    ('9', 484, InTerms, Just "GHC.Prim", "ctz64#"),
+    ('9', 485, InTerms, Just "GHC.PrimopWrappers", "ctz64#"),
+    ('9', 486, InTerms, Just "GHC.Prim", "ctz#"),
+    ('9', 487, InTerms, Just "GHC.PrimopWrappers", "ctz#"),
+    ('9', 488, InTerms, Just "GHC.Prim", "byteSwap16#"),
+    ('9', 489, InTerms, Just "GHC.PrimopWrappers", "byteSwap16#"),
+    ('9', 490, InTerms, Just "GHC.Prim", "byteSwap32#"),
+    ('9', 491, InTerms, Just "GHC.PrimopWrappers", "byteSwap32#"),
+    ('9', 492, InTerms, Just "GHC.Prim", "byteSwap64#"),
+    ('9', 493, InTerms, Just "GHC.PrimopWrappers", "byteSwap64#"),
+    ('9', 494, InTerms, Just "GHC.Prim", "byteSwap#"),
+    ('9', 495, InTerms, Just "GHC.PrimopWrappers", "byteSwap#"),
+    ('9', 496, InTerms, Just "GHC.Prim", "bitReverse8#"),
+    ('9', 497, InTerms, Just "GHC.PrimopWrappers", "bitReverse8#"),
+    ('9', 498, InTerms, Just "GHC.Prim", "bitReverse16#"),
+    ('9', 499, InTerms, Just "GHC.PrimopWrappers", "bitReverse16#"),
+    ('9', 500, InTerms, Just "GHC.Prim", "bitReverse32#"),
+    ('9', 501, InTerms, Just "GHC.PrimopWrappers", "bitReverse32#"),
+    ('9', 502, InTerms, Just "GHC.Prim", "bitReverse64#"),
+    ('9', 503, InTerms, Just "GHC.PrimopWrappers", "bitReverse64#"),
+    ('9', 504, InTerms, Just "GHC.Prim", "bitReverse#"),
+    ('9', 505, InTerms, Just "GHC.PrimopWrappers", "bitReverse#"),
+    ('9', 506, InTerms, Just "GHC.Prim", "narrow8Int#"),
+    ('9', 507, InTerms, Just "GHC.PrimopWrappers", "narrow8Int#"),
+    ('9', 508, InTerms, Just "GHC.Prim", "narrow16Int#"),
+    ('9', 509, InTerms, Just "GHC.PrimopWrappers", "narrow16Int#"),
+    ('9', 510, InTerms, Just "GHC.Prim", "narrow32Int#"),
+    ('9', 511, InTerms, Just "GHC.PrimopWrappers", "narrow32Int#"),
+    ('9', 512, InTerms, Just "GHC.Prim", "narrow8Word#"),
+    ('9', 513, InTerms, Just "GHC.PrimopWrappers", "narrow8Word#"),
+    ('9', 514, InTerms, Just "GHC.Prim", "narrow16Word#"),
+    ('9', 515, InTerms, Just "GHC.PrimopWrappers", "narrow16Word#"),
+    ('9', 516, InTerms, Just "GHC.Prim", "narrow32Word#"),
+    ('9', 517, InTerms, Just "GHC.PrimopWrappers", "narrow32Word#"),
+    ('9', 518, InTerms, Just "GHC.Prim", ">##"),
+    ('9', 519, InTerms, Just "GHC.PrimopWrappers", ">##"),
+    ('9', 520, InTerms, Just "GHC.Prim", ">=##"),
+    ('9', 521, InTerms, Just "GHC.PrimopWrappers", ">=##"),
+    ('9', 522, InTerms, Just "GHC.Prim", "==##"),
+    ('9', 523, InTerms, Just "GHC.PrimopWrappers", "==##"),
+    ('9', 524, InTerms, Just "GHC.Prim", "/=##"),
+    ('9', 525, InTerms, Just "GHC.PrimopWrappers", "/=##"),
+    ('9', 526, InTerms, Just "GHC.Prim", "<##"),
+    ('9', 527, InTerms, Just "GHC.PrimopWrappers", "<##"),
+    ('9', 528, InTerms, Just "GHC.Prim", "<=##"),
+    ('9', 529, InTerms, Just "GHC.PrimopWrappers", "<=##"),
+    ('9', 530, InTerms, Just "GHC.Prim", "minDouble#"),
+    ('9', 531, InTerms, Just "GHC.PrimopWrappers", "minDouble#"),
+    ('9', 532, InTerms, Just "GHC.Prim", "maxDouble#"),
+    ('9', 533, InTerms, Just "GHC.PrimopWrappers", "maxDouble#"),
+    ('9', 534, InTerms, Just "GHC.Prim", "+##"),
+    ('9', 535, InTerms, Just "GHC.PrimopWrappers", "+##"),
+    ('9', 536, InTerms, Just "GHC.Prim", "-##"),
+    ('9', 537, InTerms, Just "GHC.PrimopWrappers", "-##"),
+    ('9', 538, InTerms, Just "GHC.Prim", "*##"),
+    ('9', 539, InTerms, Just "GHC.PrimopWrappers", "*##"),
+    ('9', 540, InTerms, Just "GHC.Prim", "/##"),
+    ('9', 541, InTerms, Just "GHC.PrimopWrappers", "/##"),
+    ('9', 542, InTerms, Just "GHC.Prim", "negateDouble#"),
+    ('9', 543, InTerms, Just "GHC.PrimopWrappers", "negateDouble#"),
+    ('9', 544, InTerms, Just "GHC.Prim", "fabsDouble#"),
+    ('9', 545, InTerms, Just "GHC.PrimopWrappers", "fabsDouble#"),
+    ('9', 546, InTerms, Just "GHC.Prim", "double2Int#"),
+    ('9', 547, InTerms, Just "GHC.PrimopWrappers", "double2Int#"),
+    ('9', 548, InTerms, Just "GHC.Prim", "double2Float#"),
+    ('9', 549, InTerms, Just "GHC.PrimopWrappers", "double2Float#"),
+    ('9', 550, InTerms, Just "GHC.Prim", "expDouble#"),
+    ('9', 551, InTerms, Just "GHC.PrimopWrappers", "expDouble#"),
+    ('9', 552, InTerms, Just "GHC.Prim", "expm1Double#"),
+    ('9', 553, InTerms, Just "GHC.PrimopWrappers", "expm1Double#"),
+    ('9', 554, InTerms, Just "GHC.Prim", "logDouble#"),
+    ('9', 555, InTerms, Just "GHC.PrimopWrappers", "logDouble#"),
+    ('9', 556, InTerms, Just "GHC.Prim", "log1pDouble#"),
+    ('9', 557, InTerms, Just "GHC.PrimopWrappers", "log1pDouble#"),
+    ('9', 558, InTerms, Just "GHC.Prim", "sqrtDouble#"),
+    ('9', 559, InTerms, Just "GHC.PrimopWrappers", "sqrtDouble#"),
+    ('9', 560, InTerms, Just "GHC.Prim", "sinDouble#"),
+    ('9', 561, InTerms, Just "GHC.PrimopWrappers", "sinDouble#"),
+    ('9', 562, InTerms, Just "GHC.Prim", "cosDouble#"),
+    ('9', 563, InTerms, Just "GHC.PrimopWrappers", "cosDouble#"),
+    ('9', 564, InTerms, Just "GHC.Prim", "tanDouble#"),
+    ('9', 565, InTerms, Just "GHC.PrimopWrappers", "tanDouble#"),
+    ('9', 566, InTerms, Just "GHC.Prim", "asinDouble#"),
+    ('9', 567, InTerms, Just "GHC.PrimopWrappers", "asinDouble#"),
+    ('9', 568, InTerms, Just "GHC.Prim", "acosDouble#"),
+    ('9', 569, InTerms, Just "GHC.PrimopWrappers", "acosDouble#"),
+    ('9', 570, InTerms, Just "GHC.Prim", "atanDouble#"),
+    ('9', 571, InTerms, Just "GHC.PrimopWrappers", "atanDouble#"),
+    ('9', 572, InTerms, Just "GHC.Prim", "sinhDouble#"),
+    ('9', 573, InTerms, Just "GHC.PrimopWrappers", "sinhDouble#"),
+    ('9', 574, InTerms, Just "GHC.Prim", "coshDouble#"),
+    ('9', 575, InTerms, Just "GHC.PrimopWrappers", "coshDouble#"),
+    ('9', 576, InTerms, Just "GHC.Prim", "tanhDouble#"),
+    ('9', 577, InTerms, Just "GHC.PrimopWrappers", "tanhDouble#"),
+    ('9', 578, InTerms, Just "GHC.Prim", "asinhDouble#"),
+    ('9', 579, InTerms, Just "GHC.PrimopWrappers", "asinhDouble#"),
+    ('9', 580, InTerms, Just "GHC.Prim", "acoshDouble#"),
+    ('9', 581, InTerms, Just "GHC.PrimopWrappers", "acoshDouble#"),
+    ('9', 582, InTerms, Just "GHC.Prim", "atanhDouble#"),
+    ('9', 583, InTerms, Just "GHC.PrimopWrappers", "atanhDouble#"),
+    ('9', 584, InTerms, Just "GHC.Prim", "**##"),
+    ('9', 585, InTerms, Just "GHC.PrimopWrappers", "**##"),
+    ('9', 586, InTerms, Just "GHC.Prim", "decodeDouble_2Int#"),
+    ('9', 587, InTerms, Just "GHC.PrimopWrappers", "decodeDouble_2Int#"),
+    ('9', 588, InTerms, Just "GHC.Prim", "decodeDouble_Int64#"),
+    ('9', 589, InTerms, Just "GHC.PrimopWrappers", "decodeDouble_Int64#"),
+    ('9', 590, InTerms, Just "GHC.Prim", "castDoubleToWord64#"),
+    ('9', 591, InTerms, Just "GHC.PrimopWrappers", "castDoubleToWord64#"),
+    ('9', 592, InTerms, Just "GHC.Prim", "castWord64ToDouble#"),
+    ('9', 593, InTerms, Just "GHC.PrimopWrappers", "castWord64ToDouble#"),
+    ('9', 594, InTerms, Just "GHC.Prim", "gtFloat#"),
+    ('9', 595, InTerms, Just "GHC.PrimopWrappers", "gtFloat#"),
+    ('9', 596, InTerms, Just "GHC.Prim", "geFloat#"),
+    ('9', 597, InTerms, Just "GHC.PrimopWrappers", "geFloat#"),
+    ('9', 598, InTerms, Just "GHC.Prim", "eqFloat#"),
+    ('9', 599, InTerms, Just "GHC.PrimopWrappers", "eqFloat#"),
+    ('9', 600, InTerms, Just "GHC.Prim", "neFloat#"),
+    ('9', 601, InTerms, Just "GHC.PrimopWrappers", "neFloat#"),
+    ('9', 602, InTerms, Just "GHC.Prim", "ltFloat#"),
+    ('9', 603, InTerms, Just "GHC.PrimopWrappers", "ltFloat#"),
+    ('9', 604, InTerms, Just "GHC.Prim", "leFloat#"),
+    ('9', 605, InTerms, Just "GHC.PrimopWrappers", "leFloat#"),
+    ('9', 606, InTerms, Just "GHC.Prim", "minFloat#"),
+    ('9', 607, InTerms, Just "GHC.PrimopWrappers", "minFloat#"),
+    ('9', 608, InTerms, Just "GHC.Prim", "maxFloat#"),
+    ('9', 609, InTerms, Just "GHC.PrimopWrappers", "maxFloat#"),
+    ('9', 610, InTerms, Just "GHC.Prim", "plusFloat#"),
+    ('9', 611, InTerms, Just "GHC.PrimopWrappers", "plusFloat#"),
+    ('9', 612, InTerms, Just "GHC.Prim", "minusFloat#"),
+    ('9', 613, InTerms, Just "GHC.PrimopWrappers", "minusFloat#"),
+    ('9', 614, InTerms, Just "GHC.Prim", "timesFloat#"),
+    ('9', 615, InTerms, Just "GHC.PrimopWrappers", "timesFloat#"),
+    ('9', 616, InTerms, Just "GHC.Prim", "divideFloat#"),
+    ('9', 617, InTerms, Just "GHC.PrimopWrappers", "divideFloat#"),
+    ('9', 618, InTerms, Just "GHC.Prim", "negateFloat#"),
+    ('9', 619, InTerms, Just "GHC.PrimopWrappers", "negateFloat#"),
+    ('9', 620, InTerms, Just "GHC.Prim", "fabsFloat#"),
+    ('9', 621, InTerms, Just "GHC.PrimopWrappers", "fabsFloat#"),
+    ('9', 622, InTerms, Just "GHC.Prim", "float2Int#"),
+    ('9', 623, InTerms, Just "GHC.PrimopWrappers", "float2Int#"),
+    ('9', 624, InTerms, Just "GHC.Prim", "expFloat#"),
+    ('9', 625, InTerms, Just "GHC.PrimopWrappers", "expFloat#"),
+    ('9', 626, InTerms, Just "GHC.Prim", "expm1Float#"),
+    ('9', 627, InTerms, Just "GHC.PrimopWrappers", "expm1Float#"),
+    ('9', 628, InTerms, Just "GHC.Prim", "logFloat#"),
+    ('9', 629, InTerms, Just "GHC.PrimopWrappers", "logFloat#"),
+    ('9', 630, InTerms, Just "GHC.Prim", "log1pFloat#"),
+    ('9', 631, InTerms, Just "GHC.PrimopWrappers", "log1pFloat#"),
+    ('9', 632, InTerms, Just "GHC.Prim", "sqrtFloat#"),
+    ('9', 633, InTerms, Just "GHC.PrimopWrappers", "sqrtFloat#"),
+    ('9', 634, InTerms, Just "GHC.Prim", "sinFloat#"),
+    ('9', 635, InTerms, Just "GHC.PrimopWrappers", "sinFloat#"),
+    ('9', 636, InTerms, Just "GHC.Prim", "cosFloat#"),
+    ('9', 637, InTerms, Just "GHC.PrimopWrappers", "cosFloat#"),
+    ('9', 638, InTerms, Just "GHC.Prim", "tanFloat#"),
+    ('9', 639, InTerms, Just "GHC.PrimopWrappers", "tanFloat#"),
+    ('9', 640, InTerms, Just "GHC.Prim", "asinFloat#"),
+    ('9', 641, InTerms, Just "GHC.PrimopWrappers", "asinFloat#"),
+    ('9', 642, InTerms, Just "GHC.Prim", "acosFloat#"),
+    ('9', 643, InTerms, Just "GHC.PrimopWrappers", "acosFloat#"),
+    ('9', 644, InTerms, Just "GHC.Prim", "atanFloat#"),
+    ('9', 645, InTerms, Just "GHC.PrimopWrappers", "atanFloat#"),
+    ('9', 646, InTerms, Just "GHC.Prim", "sinhFloat#"),
+    ('9', 647, InTerms, Just "GHC.PrimopWrappers", "sinhFloat#"),
+    ('9', 648, InTerms, Just "GHC.Prim", "coshFloat#"),
+    ('9', 649, InTerms, Just "GHC.PrimopWrappers", "coshFloat#"),
+    ('9', 650, InTerms, Just "GHC.Prim", "tanhFloat#"),
+    ('9', 651, InTerms, Just "GHC.PrimopWrappers", "tanhFloat#"),
+    ('9', 652, InTerms, Just "GHC.Prim", "asinhFloat#"),
+    ('9', 653, InTerms, Just "GHC.PrimopWrappers", "asinhFloat#"),
+    ('9', 654, InTerms, Just "GHC.Prim", "acoshFloat#"),
+    ('9', 655, InTerms, Just "GHC.PrimopWrappers", "acoshFloat#"),
+    ('9', 656, InTerms, Just "GHC.Prim", "atanhFloat#"),
+    ('9', 657, InTerms, Just "GHC.PrimopWrappers", "atanhFloat#"),
+    ('9', 658, InTerms, Just "GHC.Prim", "powerFloat#"),
+    ('9', 659, InTerms, Just "GHC.PrimopWrappers", "powerFloat#"),
+    ('9', 660, InTerms, Just "GHC.Prim", "float2Double#"),
+    ('9', 661, InTerms, Just "GHC.PrimopWrappers", "float2Double#"),
+    ('9', 662, InTerms, Just "GHC.Prim", "decodeFloat_Int#"),
+    ('9', 663, InTerms, Just "GHC.PrimopWrappers", "decodeFloat_Int#"),
+    ('9', 664, InTerms, Just "GHC.Prim", "castFloatToWord32#"),
+    ('9', 665, InTerms, Just "GHC.PrimopWrappers", "castFloatToWord32#"),
+    ('9', 666, InTerms, Just "GHC.Prim", "castWord32ToFloat#"),
+    ('9', 667, InTerms, Just "GHC.PrimopWrappers", "castWord32ToFloat#"),
+    ('9', 668, InTerms, Just "GHC.Prim", "fmaddFloat#"),
+    ('9', 669, InTerms, Just "GHC.PrimopWrappers", "fmaddFloat#"),
+    ('9', 670, InTerms, Just "GHC.Prim", "fmsubFloat#"),
+    ('9', 671, InTerms, Just "GHC.PrimopWrappers", "fmsubFloat#"),
+    ('9', 672, InTerms, Just "GHC.Prim", "fnmaddFloat#"),
+    ('9', 673, InTerms, Just "GHC.PrimopWrappers", "fnmaddFloat#"),
+    ('9', 674, InTerms, Just "GHC.Prim", "fnmsubFloat#"),
+    ('9', 675, InTerms, Just "GHC.PrimopWrappers", "fnmsubFloat#"),
+    ('9', 676, InTerms, Just "GHC.Prim", "fmaddDouble#"),
+    ('9', 677, InTerms, Just "GHC.PrimopWrappers", "fmaddDouble#"),
+    ('9', 678, InTerms, Just "GHC.Prim", "fmsubDouble#"),
+    ('9', 679, InTerms, Just "GHC.PrimopWrappers", "fmsubDouble#"),
+    ('9', 680, InTerms, Just "GHC.Prim", "fnmaddDouble#"),
+    ('9', 681, InTerms, Just "GHC.PrimopWrappers", "fnmaddDouble#"),
+    ('9', 682, InTerms, Just "GHC.Prim", "fnmsubDouble#"),
+    ('9', 683, InTerms, Just "GHC.PrimopWrappers", "fnmsubDouble#"),
+    ('9', 684, InTerms, Just "GHC.Prim", "newArray#"),
+    ('9', 685, InTerms, Just "GHC.PrimopWrappers", "newArray#"),
+    ('9', 686, InTerms, Just "GHC.Prim", "readArray#"),
+    ('9', 687, InTerms, Just "GHC.PrimopWrappers", "readArray#"),
+    ('9', 688, InTerms, Just "GHC.Prim", "writeArray#"),
+    ('9', 689, InTerms, Just "GHC.PrimopWrappers", "writeArray#"),
+    ('9', 690, InTerms, Just "GHC.Prim", "sizeofArray#"),
+    ('9', 691, InTerms, Just "GHC.PrimopWrappers", "sizeofArray#"),
+    ('9', 692, InTerms, Just "GHC.Prim", "sizeofMutableArray#"),
+    ('9', 693, InTerms, Just "GHC.PrimopWrappers", "sizeofMutableArray#"),
+    ('9', 694, InTerms, Just "GHC.Prim", "indexArray#"),
+    ('9', 695, InTerms, Just "GHC.PrimopWrappers", "indexArray#"),
+    ('9', 696, InTerms, Just "GHC.Prim", "unsafeFreezeArray#"),
+    ('9', 697, InTerms, Just "GHC.PrimopWrappers", "unsafeFreezeArray#"),
+    ('9', 698, InTerms, Just "GHC.Prim", "unsafeThawArray#"),
+    ('9', 699, InTerms, Just "GHC.PrimopWrappers", "unsafeThawArray#"),
+    ('9', 700, InTerms, Just "GHC.Prim", "copyArray#"),
+    ('9', 701, InTerms, Just "GHC.PrimopWrappers", "copyArray#"),
+    ('9', 702, InTerms, Just "GHC.Prim", "copyMutableArray#"),
+    ('9', 703, InTerms, Just "GHC.PrimopWrappers", "copyMutableArray#"),
+    ('9', 704, InTerms, Just "GHC.Prim", "cloneArray#"),
+    ('9', 705, InTerms, Just "GHC.PrimopWrappers", "cloneArray#"),
+    ('9', 706, InTerms, Just "GHC.Prim", "cloneMutableArray#"),
+    ('9', 707, InTerms, Just "GHC.PrimopWrappers", "cloneMutableArray#"),
+    ('9', 708, InTerms, Just "GHC.Prim", "freezeArray#"),
+    ('9', 709, InTerms, Just "GHC.PrimopWrappers", "freezeArray#"),
+    ('9', 710, InTerms, Just "GHC.Prim", "thawArray#"),
+    ('9', 711, InTerms, Just "GHC.PrimopWrappers", "thawArray#"),
+    ('9', 712, InTerms, Just "GHC.Prim", "casArray#"),
+    ('9', 713, InTerms, Just "GHC.PrimopWrappers", "casArray#"),
+    ('9', 714, InTerms, Just "GHC.Prim", "newSmallArray#"),
+    ('9', 715, InTerms, Just "GHC.PrimopWrappers", "newSmallArray#"),
+    ('9', 716, InTerms, Just "GHC.Prim", "shrinkSmallMutableArray#"),
+    ('9', 717, InTerms, Just "GHC.PrimopWrappers", "shrinkSmallMutableArray#"),
+    ('9', 718, InTerms, Just "GHC.Prim", "readSmallArray#"),
+    ('9', 719, InTerms, Just "GHC.PrimopWrappers", "readSmallArray#"),
+    ('9', 720, InTerms, Just "GHC.Prim", "writeSmallArray#"),
+    ('9', 721, InTerms, Just "GHC.PrimopWrappers", "writeSmallArray#"),
+    ('9', 722, InTerms, Just "GHC.Prim", "sizeofSmallArray#"),
+    ('9', 723, InTerms, Just "GHC.PrimopWrappers", "sizeofSmallArray#"),
+    ('9', 724, InTerms, Just "GHC.Prim", "sizeofSmallMutableArray#"),
+    ('9', 725, InTerms, Just "GHC.PrimopWrappers", "sizeofSmallMutableArray#"),
+    ('9', 726, InTerms, Just "GHC.Prim", "getSizeofSmallMutableArray#"),
+    ('9', 727, InTerms, Just "GHC.PrimopWrappers", "getSizeofSmallMutableArray#"),
+    ('9', 728, InTerms, Just "GHC.Prim", "indexSmallArray#"),
+    ('9', 729, InTerms, Just "GHC.PrimopWrappers", "indexSmallArray#"),
+    ('9', 730, InTerms, Just "GHC.Prim", "unsafeFreezeSmallArray#"),
+    ('9', 731, InTerms, Just "GHC.PrimopWrappers", "unsafeFreezeSmallArray#"),
+    ('9', 732, InTerms, Just "GHC.Prim", "unsafeThawSmallArray#"),
+    ('9', 733, InTerms, Just "GHC.PrimopWrappers", "unsafeThawSmallArray#"),
+    ('9', 734, InTerms, Just "GHC.Prim", "copySmallArray#"),
+    ('9', 735, InTerms, Just "GHC.PrimopWrappers", "copySmallArray#"),
+    ('9', 736, InTerms, Just "GHC.Prim", "copySmallMutableArray#"),
+    ('9', 737, InTerms, Just "GHC.PrimopWrappers", "copySmallMutableArray#"),
+    ('9', 738, InTerms, Just "GHC.Prim", "cloneSmallArray#"),
+    ('9', 739, InTerms, Just "GHC.PrimopWrappers", "cloneSmallArray#"),
+    ('9', 740, InTerms, Just "GHC.Prim", "cloneSmallMutableArray#"),
+    ('9', 741, InTerms, Just "GHC.PrimopWrappers", "cloneSmallMutableArray#"),
+    ('9', 742, InTerms, Just "GHC.Prim", "freezeSmallArray#"),
+    ('9', 743, InTerms, Just "GHC.PrimopWrappers", "freezeSmallArray#"),
+    ('9', 744, InTerms, Just "GHC.Prim", "thawSmallArray#"),
+    ('9', 745, InTerms, Just "GHC.PrimopWrappers", "thawSmallArray#"),
+    ('9', 746, InTerms, Just "GHC.Prim", "casSmallArray#"),
+    ('9', 747, InTerms, Just "GHC.PrimopWrappers", "casSmallArray#"),
+    ('9', 748, InTerms, Just "GHC.Prim", "newByteArray#"),
+    ('9', 749, InTerms, Just "GHC.PrimopWrappers", "newByteArray#"),
+    ('9', 750, InTerms, Just "GHC.Prim", "newPinnedByteArray#"),
+    ('9', 751, InTerms, Just "GHC.PrimopWrappers", "newPinnedByteArray#"),
+    ('9', 752, InTerms, Just "GHC.Prim", "newAlignedPinnedByteArray#"),
+    ('9', 753, InTerms, Just "GHC.PrimopWrappers", "newAlignedPinnedByteArray#"),
+    ('9', 754, InTerms, Just "GHC.Prim", "isMutableByteArrayPinned#"),
+    ('9', 755, InTerms, Just "GHC.PrimopWrappers", "isMutableByteArrayPinned#"),
+    ('9', 756, InTerms, Just "GHC.Prim", "isByteArrayPinned#"),
+    ('9', 757, InTerms, Just "GHC.PrimopWrappers", "isByteArrayPinned#"),
+    ('9', 758, InTerms, Just "GHC.Prim", "isByteArrayWeaklyPinned#"),
+    ('9', 759, InTerms, Just "GHC.PrimopWrappers", "isByteArrayWeaklyPinned#"),
+    ('9', 760, InTerms, Just "GHC.Prim", "isMutableByteArrayWeaklyPinned#"),
+    ('9', 761, InTerms, Just "GHC.PrimopWrappers", "isMutableByteArrayWeaklyPinned#"),
+    ('9', 762, InTerms, Just "GHC.Prim", "byteArrayContents#"),
+    ('9', 763, InTerms, Just "GHC.PrimopWrappers", "byteArrayContents#"),
+    ('9', 764, InTerms, Just "GHC.Prim", "mutableByteArrayContents#"),
+    ('9', 765, InTerms, Just "GHC.PrimopWrappers", "mutableByteArrayContents#"),
+    ('9', 766, InTerms, Just "GHC.Prim", "shrinkMutableByteArray#"),
+    ('9', 767, InTerms, Just "GHC.PrimopWrappers", "shrinkMutableByteArray#"),
+    ('9', 768, InTerms, Just "GHC.Prim", "resizeMutableByteArray#"),
+    ('9', 769, InTerms, Just "GHC.PrimopWrappers", "resizeMutableByteArray#"),
+    ('9', 770, InTerms, Just "GHC.Prim", "unsafeFreezeByteArray#"),
+    ('9', 771, InTerms, Just "GHC.PrimopWrappers", "unsafeFreezeByteArray#"),
+    ('9', 772, InTerms, Just "GHC.Prim", "unsafeThawByteArray#"),
+    ('9', 773, InTerms, Just "GHC.PrimopWrappers", "unsafeThawByteArray#"),
+    ('9', 774, InTerms, Just "GHC.Prim", "sizeofByteArray#"),
+    ('9', 775, InTerms, Just "GHC.PrimopWrappers", "sizeofByteArray#"),
+    ('9', 776, InTerms, Just "GHC.Prim", "sizeofMutableByteArray#"),
+    ('9', 777, InTerms, Just "GHC.PrimopWrappers", "sizeofMutableByteArray#"),
+    ('9', 778, InTerms, Just "GHC.Prim", "getSizeofMutableByteArray#"),
+    ('9', 779, InTerms, Just "GHC.PrimopWrappers", "getSizeofMutableByteArray#"),
+    ('9', 780, InTerms, Just "GHC.Prim", "indexCharArray#"),
+    ('9', 781, InTerms, Just "GHC.PrimopWrappers", "indexCharArray#"),
+    ('9', 782, InTerms, Just "GHC.Prim", "indexWideCharArray#"),
+    ('9', 783, InTerms, Just "GHC.PrimopWrappers", "indexWideCharArray#"),
+    ('9', 784, InTerms, Just "GHC.Prim", "indexIntArray#"),
+    ('9', 785, InTerms, Just "GHC.PrimopWrappers", "indexIntArray#"),
+    ('9', 786, InTerms, Just "GHC.Prim", "indexWordArray#"),
+    ('9', 787, InTerms, Just "GHC.PrimopWrappers", "indexWordArray#"),
+    ('9', 788, InTerms, Just "GHC.Prim", "indexAddrArray#"),
+    ('9', 789, InTerms, Just "GHC.PrimopWrappers", "indexAddrArray#"),
+    ('9', 790, InTerms, Just "GHC.Prim", "indexFloatArray#"),
+    ('9', 791, InTerms, Just "GHC.PrimopWrappers", "indexFloatArray#"),
+    ('9', 792, InTerms, Just "GHC.Prim", "indexDoubleArray#"),
+    ('9', 793, InTerms, Just "GHC.PrimopWrappers", "indexDoubleArray#"),
+    ('9', 794, InTerms, Just "GHC.Prim", "indexStablePtrArray#"),
+    ('9', 795, InTerms, Just "GHC.PrimopWrappers", "indexStablePtrArray#"),
+    ('9', 796, InTerms, Just "GHC.Prim", "indexInt8Array#"),
+    ('9', 797, InTerms, Just "GHC.PrimopWrappers", "indexInt8Array#"),
+    ('9', 798, InTerms, Just "GHC.Prim", "indexWord8Array#"),
+    ('9', 799, InTerms, Just "GHC.PrimopWrappers", "indexWord8Array#"),
+    ('9', 800, InTerms, Just "GHC.Prim", "indexInt16Array#"),
+    ('9', 801, InTerms, Just "GHC.PrimopWrappers", "indexInt16Array#"),
+    ('9', 802, InTerms, Just "GHC.Prim", "indexWord16Array#"),
+    ('9', 803, InTerms, Just "GHC.PrimopWrappers", "indexWord16Array#"),
+    ('9', 804, InTerms, Just "GHC.Prim", "indexInt32Array#"),
+    ('9', 805, InTerms, Just "GHC.PrimopWrappers", "indexInt32Array#"),
+    ('9', 806, InTerms, Just "GHC.Prim", "indexWord32Array#"),
+    ('9', 807, InTerms, Just "GHC.PrimopWrappers", "indexWord32Array#"),
+    ('9', 808, InTerms, Just "GHC.Prim", "indexInt64Array#"),
+    ('9', 809, InTerms, Just "GHC.PrimopWrappers", "indexInt64Array#"),
+    ('9', 810, InTerms, Just "GHC.Prim", "indexWord64Array#"),
+    ('9', 811, InTerms, Just "GHC.PrimopWrappers", "indexWord64Array#"),
+    ('9', 812, InTerms, Just "GHC.Prim", "indexWord8ArrayAsChar#"),
+    ('9', 813, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsChar#"),
+    ('9', 814, InTerms, Just "GHC.Prim", "indexWord8ArrayAsWideChar#"),
+    ('9', 815, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsWideChar#"),
+    ('9', 816, InTerms, Just "GHC.Prim", "indexWord8ArrayAsInt#"),
+    ('9', 817, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsInt#"),
+    ('9', 818, InTerms, Just "GHC.Prim", "indexWord8ArrayAsWord#"),
+    ('9', 819, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsWord#"),
+    ('9', 820, InTerms, Just "GHC.Prim", "indexWord8ArrayAsAddr#"),
+    ('9', 821, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsAddr#"),
+    ('9', 822, InTerms, Just "GHC.Prim", "indexWord8ArrayAsFloat#"),
+    ('9', 823, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsFloat#"),
+    ('9', 824, InTerms, Just "GHC.Prim", "indexWord8ArrayAsDouble#"),
+    ('9', 825, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsDouble#"),
+    ('9', 826, InTerms, Just "GHC.Prim", "indexWord8ArrayAsStablePtr#"),
+    ('9', 827, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsStablePtr#"),
+    ('9', 828, InTerms, Just "GHC.Prim", "indexWord8ArrayAsInt16#"),
+    ('9', 829, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsInt16#"),
+    ('9', 830, InTerms, Just "GHC.Prim", "indexWord8ArrayAsWord16#"),
+    ('9', 831, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsWord16#"),
+    ('9', 832, InTerms, Just "GHC.Prim", "indexWord8ArrayAsInt32#"),
+    ('9', 833, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsInt32#"),
+    ('9', 834, InTerms, Just "GHC.Prim", "indexWord8ArrayAsWord32#"),
+    ('9', 835, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsWord32#"),
+    ('9', 836, InTerms, Just "GHC.Prim", "indexWord8ArrayAsInt64#"),
+    ('9', 837, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsInt64#"),
+    ('9', 838, InTerms, Just "GHC.Prim", "indexWord8ArrayAsWord64#"),
+    ('9', 839, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsWord64#"),
+    ('9', 840, InTerms, Just "GHC.Prim", "readCharArray#"),
+    ('9', 841, InTerms, Just "GHC.PrimopWrappers", "readCharArray#"),
+    ('9', 842, InTerms, Just "GHC.Prim", "readWideCharArray#"),
+    ('9', 843, InTerms, Just "GHC.PrimopWrappers", "readWideCharArray#"),
+    ('9', 844, InTerms, Just "GHC.Prim", "readIntArray#"),
+    ('9', 845, InTerms, Just "GHC.PrimopWrappers", "readIntArray#"),
+    ('9', 846, InTerms, Just "GHC.Prim", "readWordArray#"),
+    ('9', 847, InTerms, Just "GHC.PrimopWrappers", "readWordArray#"),
+    ('9', 848, InTerms, Just "GHC.Prim", "readAddrArray#"),
+    ('9', 849, InTerms, Just "GHC.PrimopWrappers", "readAddrArray#"),
+    ('9', 850, InTerms, Just "GHC.Prim", "readFloatArray#"),
+    ('9', 851, InTerms, Just "GHC.PrimopWrappers", "readFloatArray#"),
+    ('9', 852, InTerms, Just "GHC.Prim", "readDoubleArray#"),
+    ('9', 853, InTerms, Just "GHC.PrimopWrappers", "readDoubleArray#"),
+    ('9', 854, InTerms, Just "GHC.Prim", "readStablePtrArray#"),
+    ('9', 855, InTerms, Just "GHC.PrimopWrappers", "readStablePtrArray#"),
+    ('9', 856, InTerms, Just "GHC.Prim", "readInt8Array#"),
+    ('9', 857, InTerms, Just "GHC.PrimopWrappers", "readInt8Array#"),
+    ('9', 858, InTerms, Just "GHC.Prim", "readWord8Array#"),
+    ('9', 859, InTerms, Just "GHC.PrimopWrappers", "readWord8Array#"),
+    ('9', 860, InTerms, Just "GHC.Prim", "readInt16Array#"),
+    ('9', 861, InTerms, Just "GHC.PrimopWrappers", "readInt16Array#"),
+    ('9', 862, InTerms, Just "GHC.Prim", "readWord16Array#"),
+    ('9', 863, InTerms, Just "GHC.PrimopWrappers", "readWord16Array#"),
+    ('9', 864, InTerms, Just "GHC.Prim", "readInt32Array#"),
+    ('9', 865, InTerms, Just "GHC.PrimopWrappers", "readInt32Array#"),
+    ('9', 866, InTerms, Just "GHC.Prim", "readWord32Array#"),
+    ('9', 867, InTerms, Just "GHC.PrimopWrappers", "readWord32Array#"),
+    ('9', 868, InTerms, Just "GHC.Prim", "readInt64Array#"),
+    ('9', 869, InTerms, Just "GHC.PrimopWrappers", "readInt64Array#"),
+    ('9', 870, InTerms, Just "GHC.Prim", "readWord64Array#"),
+    ('9', 871, InTerms, Just "GHC.PrimopWrappers", "readWord64Array#"),
+    ('9', 872, InTerms, Just "GHC.Prim", "readWord8ArrayAsChar#"),
+    ('9', 873, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsChar#"),
+    ('9', 874, InTerms, Just "GHC.Prim", "readWord8ArrayAsWideChar#"),
+    ('9', 875, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsWideChar#"),
+    ('9', 876, InTerms, Just "GHC.Prim", "readWord8ArrayAsInt#"),
+    ('9', 877, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsInt#"),
+    ('9', 878, InTerms, Just "GHC.Prim", "readWord8ArrayAsWord#"),
+    ('9', 879, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsWord#"),
+    ('9', 880, InTerms, Just "GHC.Prim", "readWord8ArrayAsAddr#"),
+    ('9', 881, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsAddr#"),
+    ('9', 882, InTerms, Just "GHC.Prim", "readWord8ArrayAsFloat#"),
+    ('9', 883, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsFloat#"),
+    ('9', 884, InTerms, Just "GHC.Prim", "readWord8ArrayAsDouble#"),
+    ('9', 885, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsDouble#"),
+    ('9', 886, InTerms, Just "GHC.Prim", "readWord8ArrayAsStablePtr#"),
+    ('9', 887, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsStablePtr#"),
+    ('9', 888, InTerms, Just "GHC.Prim", "readWord8ArrayAsInt16#"),
+    ('9', 889, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsInt16#"),
+    ('9', 890, InTerms, Just "GHC.Prim", "readWord8ArrayAsWord16#"),
+    ('9', 891, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsWord16#"),
+    ('9', 892, InTerms, Just "GHC.Prim", "readWord8ArrayAsInt32#"),
+    ('9', 893, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsInt32#"),
+    ('9', 894, InTerms, Just "GHC.Prim", "readWord8ArrayAsWord32#"),
+    ('9', 895, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsWord32#"),
+    ('9', 896, InTerms, Just "GHC.Prim", "readWord8ArrayAsInt64#"),
+    ('9', 897, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsInt64#"),
+    ('9', 898, InTerms, Just "GHC.Prim", "readWord8ArrayAsWord64#"),
+    ('9', 899, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsWord64#"),
+    ('9', 900, InTerms, Just "GHC.Prim", "writeCharArray#"),
+    ('9', 901, InTerms, Just "GHC.PrimopWrappers", "writeCharArray#"),
+    ('9', 902, InTerms, Just "GHC.Prim", "writeWideCharArray#"),
+    ('9', 903, InTerms, Just "GHC.PrimopWrappers", "writeWideCharArray#"),
+    ('9', 904, InTerms, Just "GHC.Prim", "writeIntArray#"),
+    ('9', 905, InTerms, Just "GHC.PrimopWrappers", "writeIntArray#"),
+    ('9', 906, InTerms, Just "GHC.Prim", "writeWordArray#"),
+    ('9', 907, InTerms, Just "GHC.PrimopWrappers", "writeWordArray#"),
+    ('9', 908, InTerms, Just "GHC.Prim", "writeAddrArray#"),
+    ('9', 909, InTerms, Just "GHC.PrimopWrappers", "writeAddrArray#"),
+    ('9', 910, InTerms, Just "GHC.Prim", "writeFloatArray#"),
+    ('9', 911, InTerms, Just "GHC.PrimopWrappers", "writeFloatArray#"),
+    ('9', 912, InTerms, Just "GHC.Prim", "writeDoubleArray#"),
+    ('9', 913, InTerms, Just "GHC.PrimopWrappers", "writeDoubleArray#"),
+    ('9', 914, InTerms, Just "GHC.Prim", "writeStablePtrArray#"),
+    ('9', 915, InTerms, Just "GHC.PrimopWrappers", "writeStablePtrArray#"),
+    ('9', 916, InTerms, Just "GHC.Prim", "writeInt8Array#"),
+    ('9', 917, InTerms, Just "GHC.PrimopWrappers", "writeInt8Array#"),
+    ('9', 918, InTerms, Just "GHC.Prim", "writeWord8Array#"),
+    ('9', 919, InTerms, Just "GHC.PrimopWrappers", "writeWord8Array#"),
+    ('9', 920, InTerms, Just "GHC.Prim", "writeInt16Array#"),
+    ('9', 921, InTerms, Just "GHC.PrimopWrappers", "writeInt16Array#"),
+    ('9', 922, InTerms, Just "GHC.Prim", "writeWord16Array#"),
+    ('9', 923, InTerms, Just "GHC.PrimopWrappers", "writeWord16Array#"),
+    ('9', 924, InTerms, Just "GHC.Prim", "writeInt32Array#"),
+    ('9', 925, InTerms, Just "GHC.PrimopWrappers", "writeInt32Array#"),
+    ('9', 926, InTerms, Just "GHC.Prim", "writeWord32Array#"),
+    ('9', 927, InTerms, Just "GHC.PrimopWrappers", "writeWord32Array#"),
+    ('9', 928, InTerms, Just "GHC.Prim", "writeInt64Array#"),
+    ('9', 929, InTerms, Just "GHC.PrimopWrappers", "writeInt64Array#"),
+    ('9', 930, InTerms, Just "GHC.Prim", "writeWord64Array#"),
+    ('9', 931, InTerms, Just "GHC.PrimopWrappers", "writeWord64Array#"),
+    ('9', 932, InTerms, Just "GHC.Prim", "writeWord8ArrayAsChar#"),
+    ('9', 933, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsChar#"),
+    ('9', 934, InTerms, Just "GHC.Prim", "writeWord8ArrayAsWideChar#"),
+    ('9', 935, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsWideChar#"),
+    ('9', 936, InTerms, Just "GHC.Prim", "writeWord8ArrayAsInt#"),
+    ('9', 937, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsInt#"),
+    ('9', 938, InTerms, Just "GHC.Prim", "writeWord8ArrayAsWord#"),
+    ('9', 939, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsWord#"),
+    ('9', 940, InTerms, Just "GHC.Prim", "writeWord8ArrayAsAddr#"),
+    ('9', 941, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsAddr#"),
+    ('9', 942, InTerms, Just "GHC.Prim", "writeWord8ArrayAsFloat#"),
+    ('9', 943, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsFloat#"),
+    ('9', 944, InTerms, Just "GHC.Prim", "writeWord8ArrayAsDouble#"),
+    ('9', 945, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsDouble#"),
+    ('9', 946, InTerms, Just "GHC.Prim", "writeWord8ArrayAsStablePtr#"),
+    ('9', 947, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsStablePtr#"),
+    ('9', 948, InTerms, Just "GHC.Prim", "writeWord8ArrayAsInt16#"),
+    ('9', 949, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsInt16#"),
+    ('9', 950, InTerms, Just "GHC.Prim", "writeWord8ArrayAsWord16#"),
+    ('9', 951, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsWord16#"),
+    ('9', 952, InTerms, Just "GHC.Prim", "writeWord8ArrayAsInt32#"),
+    ('9', 953, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsInt32#"),
+    ('9', 954, InTerms, Just "GHC.Prim", "writeWord8ArrayAsWord32#"),
+    ('9', 955, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsWord32#"),
+    ('9', 956, InTerms, Just "GHC.Prim", "writeWord8ArrayAsInt64#"),
+    ('9', 957, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsInt64#"),
+    ('9', 958, InTerms, Just "GHC.Prim", "writeWord8ArrayAsWord64#"),
+    ('9', 959, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsWord64#"),
+    ('9', 960, InTerms, Just "GHC.Prim", "compareByteArrays#"),
+    ('9', 961, InTerms, Just "GHC.PrimopWrappers", "compareByteArrays#"),
+    ('9', 962, InTerms, Just "GHC.Prim", "copyByteArray#"),
+    ('9', 963, InTerms, Just "GHC.PrimopWrappers", "copyByteArray#"),
+    ('9', 964, InTerms, Just "GHC.Prim", "copyMutableByteArray#"),
+    ('9', 965, InTerms, Just "GHC.PrimopWrappers", "copyMutableByteArray#"),
+    ('9', 966, InTerms, Just "GHC.Prim", "copyMutableByteArrayNonOverlapping#"),
+    ('9', 967, InTerms, Just "GHC.PrimopWrappers", "copyMutableByteArrayNonOverlapping#"),
+    ('9', 968, InTerms, Just "GHC.Prim", "copyByteArrayToAddr#"),
+    ('9', 969, InTerms, Just "GHC.PrimopWrappers", "copyByteArrayToAddr#"),
+    ('9', 970, InTerms, Just "GHC.Prim", "copyMutableByteArrayToAddr#"),
+    ('9', 971, InTerms, Just "GHC.PrimopWrappers", "copyMutableByteArrayToAddr#"),
+    ('9', 972, InTerms, Just "GHC.Prim", "copyAddrToByteArray#"),
+    ('9', 973, InTerms, Just "GHC.PrimopWrappers", "copyAddrToByteArray#"),
+    ('9', 974, InTerms, Just "GHC.Prim", "copyAddrToAddr#"),
+    ('9', 975, InTerms, Just "GHC.PrimopWrappers", "copyAddrToAddr#"),
+    ('9', 976, InTerms, Just "GHC.Prim", "copyAddrToAddrNonOverlapping#"),
+    ('9', 977, InTerms, Just "GHC.PrimopWrappers", "copyAddrToAddrNonOverlapping#"),
+    ('9', 978, InTerms, Just "GHC.Prim", "setByteArray#"),
+    ('9', 979, InTerms, Just "GHC.PrimopWrappers", "setByteArray#"),
+    ('9', 980, InTerms, Just "GHC.Prim", "setAddrRange#"),
+    ('9', 981, InTerms, Just "GHC.PrimopWrappers", "setAddrRange#"),
+    ('9', 982, InTerms, Just "GHC.Prim", "atomicReadIntArray#"),
+    ('9', 983, InTerms, Just "GHC.PrimopWrappers", "atomicReadIntArray#"),
+    ('9', 984, InTerms, Just "GHC.Prim", "atomicWriteIntArray#"),
+    ('9', 985, InTerms, Just "GHC.PrimopWrappers", "atomicWriteIntArray#"),
+    ('9', 986, InTerms, Just "GHC.Prim", "casIntArray#"),
+    ('9', 987, InTerms, Just "GHC.PrimopWrappers", "casIntArray#"),
+    ('9', 988, InTerms, Just "GHC.Prim", "casInt8Array#"),
+    ('9', 989, InTerms, Just "GHC.PrimopWrappers", "casInt8Array#"),
+    ('9', 990, InTerms, Just "GHC.Prim", "casInt16Array#"),
+    ('9', 991, InTerms, Just "GHC.PrimopWrappers", "casInt16Array#"),
+    ('9', 992, InTerms, Just "GHC.Prim", "casInt32Array#"),
+    ('9', 993, InTerms, Just "GHC.PrimopWrappers", "casInt32Array#"),
+    ('9', 994, InTerms, Just "GHC.Prim", "casInt64Array#"),
+    ('9', 995, InTerms, Just "GHC.PrimopWrappers", "casInt64Array#"),
+    ('9', 996, InTerms, Just "GHC.Prim", "fetchAddIntArray#"),
+    ('9', 997, InTerms, Just "GHC.PrimopWrappers", "fetchAddIntArray#"),
+    ('9', 998, InTerms, Just "GHC.Prim", "fetchSubIntArray#"),
+    ('9', 999, InTerms, Just "GHC.PrimopWrappers", "fetchSubIntArray#"),
+    ('9', 1000, InTerms, Just "GHC.Prim", "fetchAndIntArray#"),
+    ('9', 1001, InTerms, Just "GHC.PrimopWrappers", "fetchAndIntArray#"),
+    ('9', 1002, InTerms, Just "GHC.Prim", "fetchNandIntArray#"),
+    ('9', 1003, InTerms, Just "GHC.PrimopWrappers", "fetchNandIntArray#"),
+    ('9', 1004, InTerms, Just "GHC.Prim", "fetchOrIntArray#"),
+    ('9', 1005, InTerms, Just "GHC.PrimopWrappers", "fetchOrIntArray#"),
+    ('9', 1006, InTerms, Just "GHC.Prim", "fetchXorIntArray#"),
+    ('9', 1007, InTerms, Just "GHC.PrimopWrappers", "fetchXorIntArray#"),
+    ('9', 1008, InTerms, Just "GHC.Prim", "plusAddr#"),
+    ('9', 1009, InTerms, Just "GHC.PrimopWrappers", "plusAddr#"),
+    ('9', 1010, InTerms, Just "GHC.Prim", "minusAddr#"),
+    ('9', 1011, InTerms, Just "GHC.PrimopWrappers", "minusAddr#"),
+    ('9', 1012, InTerms, Just "GHC.Prim", "remAddr#"),
+    ('9', 1013, InTerms, Just "GHC.PrimopWrappers", "remAddr#"),
+    ('9', 1014, InTerms, Just "GHC.Prim", "addr2Int#"),
+    ('9', 1015, InTerms, Just "GHC.PrimopWrappers", "addr2Int#"),
+    ('9', 1016, InTerms, Just "GHC.Prim", "int2Addr#"),
+    ('9', 1017, InTerms, Just "GHC.PrimopWrappers", "int2Addr#"),
+    ('9', 1018, InTerms, Just "GHC.Prim", "gtAddr#"),
+    ('9', 1019, InTerms, Just "GHC.PrimopWrappers", "gtAddr#"),
+    ('9', 1020, InTerms, Just "GHC.Prim", "geAddr#"),
+    ('9', 1021, InTerms, Just "GHC.PrimopWrappers", "geAddr#"),
+    ('9', 1022, InTerms, Just "GHC.Prim", "eqAddr#"),
+    ('9', 1023, InTerms, Just "GHC.PrimopWrappers", "eqAddr#"),
+    ('9', 1024, InTerms, Just "GHC.Prim", "neAddr#"),
+    ('9', 1025, InTerms, Just "GHC.PrimopWrappers", "neAddr#"),
+    ('9', 1026, InTerms, Just "GHC.Prim", "ltAddr#"),
+    ('9', 1027, InTerms, Just "GHC.PrimopWrappers", "ltAddr#"),
+    ('9', 1028, InTerms, Just "GHC.Prim", "leAddr#"),
+    ('9', 1029, InTerms, Just "GHC.PrimopWrappers", "leAddr#"),
+    ('9', 1030, InTerms, Just "GHC.Prim", "indexCharOffAddr#"),
+    ('9', 1031, InTerms, Just "GHC.PrimopWrappers", "indexCharOffAddr#"),
+    ('9', 1032, InTerms, Just "GHC.Prim", "indexWideCharOffAddr#"),
+    ('9', 1033, InTerms, Just "GHC.PrimopWrappers", "indexWideCharOffAddr#"),
+    ('9', 1034, InTerms, Just "GHC.Prim", "indexIntOffAddr#"),
+    ('9', 1035, InTerms, Just "GHC.PrimopWrappers", "indexIntOffAddr#"),
+    ('9', 1036, InTerms, Just "GHC.Prim", "indexWordOffAddr#"),
+    ('9', 1037, InTerms, Just "GHC.PrimopWrappers", "indexWordOffAddr#"),
+    ('9', 1038, InTerms, Just "GHC.Prim", "indexAddrOffAddr#"),
+    ('9', 1039, InTerms, Just "GHC.PrimopWrappers", "indexAddrOffAddr#"),
+    ('9', 1040, InTerms, Just "GHC.Prim", "indexFloatOffAddr#"),
+    ('9', 1041, InTerms, Just "GHC.PrimopWrappers", "indexFloatOffAddr#"),
+    ('9', 1042, InTerms, Just "GHC.Prim", "indexDoubleOffAddr#"),
+    ('9', 1043, InTerms, Just "GHC.PrimopWrappers", "indexDoubleOffAddr#"),
+    ('9', 1044, InTerms, Just "GHC.Prim", "indexStablePtrOffAddr#"),
+    ('9', 1045, InTerms, Just "GHC.PrimopWrappers", "indexStablePtrOffAddr#"),
+    ('9', 1046, InTerms, Just "GHC.Prim", "indexInt8OffAddr#"),
+    ('9', 1047, InTerms, Just "GHC.PrimopWrappers", "indexInt8OffAddr#"),
+    ('9', 1048, InTerms, Just "GHC.Prim", "indexWord8OffAddr#"),
+    ('9', 1049, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddr#"),
+    ('9', 1050, InTerms, Just "GHC.Prim", "indexInt16OffAddr#"),
+    ('9', 1051, InTerms, Just "GHC.PrimopWrappers", "indexInt16OffAddr#"),
+    ('9', 1052, InTerms, Just "GHC.Prim", "indexWord16OffAddr#"),
+    ('9', 1053, InTerms, Just "GHC.PrimopWrappers", "indexWord16OffAddr#"),
+    ('9', 1054, InTerms, Just "GHC.Prim", "indexInt32OffAddr#"),
+    ('9', 1055, InTerms, Just "GHC.PrimopWrappers", "indexInt32OffAddr#"),
+    ('9', 1056, InTerms, Just "GHC.Prim", "indexWord32OffAddr#"),
+    ('9', 1057, InTerms, Just "GHC.PrimopWrappers", "indexWord32OffAddr#"),
+    ('9', 1058, InTerms, Just "GHC.Prim", "indexInt64OffAddr#"),
+    ('9', 1059, InTerms, Just "GHC.PrimopWrappers", "indexInt64OffAddr#"),
+    ('9', 1060, InTerms, Just "GHC.Prim", "indexWord64OffAddr#"),
+    ('9', 1061, InTerms, Just "GHC.PrimopWrappers", "indexWord64OffAddr#"),
+    ('9', 1062, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsChar#"),
+    ('9', 1063, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsChar#"),
+    ('9', 1064, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsWideChar#"),
+    ('9', 1065, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsWideChar#"),
+    ('9', 1066, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsInt#"),
+    ('9', 1067, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsInt#"),
+    ('9', 1068, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsWord#"),
+    ('9', 1069, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsWord#"),
+    ('9', 1070, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsAddr#"),
+    ('9', 1071, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsAddr#"),
+    ('9', 1072, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsFloat#"),
+    ('9', 1073, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsFloat#"),
+    ('9', 1074, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsDouble#"),
+    ('9', 1075, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsDouble#"),
+    ('9', 1076, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsStablePtr#"),
+    ('9', 1077, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsStablePtr#"),
+    ('9', 1078, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsInt16#"),
+    ('9', 1079, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsInt16#"),
+    ('9', 1080, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsWord16#"),
+    ('9', 1081, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsWord16#"),
+    ('9', 1082, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsInt32#"),
+    ('9', 1083, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsInt32#"),
+    ('9', 1084, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsWord32#"),
+    ('9', 1085, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsWord32#"),
+    ('9', 1086, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsInt64#"),
+    ('9', 1087, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsInt64#"),
+    ('9', 1088, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsWord64#"),
+    ('9', 1089, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsWord64#"),
+    ('9', 1090, InTerms, Just "GHC.Prim", "readCharOffAddr#"),
+    ('9', 1091, InTerms, Just "GHC.PrimopWrappers", "readCharOffAddr#"),
+    ('9', 1092, InTerms, Just "GHC.Prim", "readWideCharOffAddr#"),
+    ('9', 1093, InTerms, Just "GHC.PrimopWrappers", "readWideCharOffAddr#"),
+    ('9', 1094, InTerms, Just "GHC.Prim", "readIntOffAddr#"),
+    ('9', 1095, InTerms, Just "GHC.PrimopWrappers", "readIntOffAddr#"),
+    ('9', 1096, InTerms, Just "GHC.Prim", "readWordOffAddr#"),
+    ('9', 1097, InTerms, Just "GHC.PrimopWrappers", "readWordOffAddr#"),
+    ('9', 1098, InTerms, Just "GHC.Prim", "readAddrOffAddr#"),
+    ('9', 1099, InTerms, Just "GHC.PrimopWrappers", "readAddrOffAddr#"),
+    ('9', 1100, InTerms, Just "GHC.Prim", "readFloatOffAddr#"),
+    ('9', 1101, InTerms, Just "GHC.PrimopWrappers", "readFloatOffAddr#"),
+    ('9', 1102, InTerms, Just "GHC.Prim", "readDoubleOffAddr#"),
+    ('9', 1103, InTerms, Just "GHC.PrimopWrappers", "readDoubleOffAddr#"),
+    ('9', 1104, InTerms, Just "GHC.Prim", "readStablePtrOffAddr#"),
+    ('9', 1105, InTerms, Just "GHC.PrimopWrappers", "readStablePtrOffAddr#"),
+    ('9', 1106, InTerms, Just "GHC.Prim", "readInt8OffAddr#"),
+    ('9', 1107, InTerms, Just "GHC.PrimopWrappers", "readInt8OffAddr#"),
+    ('9', 1108, InTerms, Just "GHC.Prim", "readWord8OffAddr#"),
+    ('9', 1109, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddr#"),
+    ('9', 1110, InTerms, Just "GHC.Prim", "readInt16OffAddr#"),
+    ('9', 1111, InTerms, Just "GHC.PrimopWrappers", "readInt16OffAddr#"),
+    ('9', 1112, InTerms, Just "GHC.Prim", "readWord16OffAddr#"),
+    ('9', 1113, InTerms, Just "GHC.PrimopWrappers", "readWord16OffAddr#"),
+    ('9', 1114, InTerms, Just "GHC.Prim", "readInt32OffAddr#"),
+    ('9', 1115, InTerms, Just "GHC.PrimopWrappers", "readInt32OffAddr#"),
+    ('9', 1116, InTerms, Just "GHC.Prim", "readWord32OffAddr#"),
+    ('9', 1117, InTerms, Just "GHC.PrimopWrappers", "readWord32OffAddr#"),
+    ('9', 1118, InTerms, Just "GHC.Prim", "readInt64OffAddr#"),
+    ('9', 1119, InTerms, Just "GHC.PrimopWrappers", "readInt64OffAddr#"),
+    ('9', 1120, InTerms, Just "GHC.Prim", "readWord64OffAddr#"),
+    ('9', 1121, InTerms, Just "GHC.PrimopWrappers", "readWord64OffAddr#"),
+    ('9', 1122, InTerms, Just "GHC.Prim", "readWord8OffAddrAsChar#"),
+    ('9', 1123, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsChar#"),
+    ('9', 1124, InTerms, Just "GHC.Prim", "readWord8OffAddrAsWideChar#"),
+    ('9', 1125, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsWideChar#"),
+    ('9', 1126, InTerms, Just "GHC.Prim", "readWord8OffAddrAsInt#"),
+    ('9', 1127, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsInt#"),
+    ('9', 1128, InTerms, Just "GHC.Prim", "readWord8OffAddrAsWord#"),
+    ('9', 1129, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsWord#"),
+    ('9', 1130, InTerms, Just "GHC.Prim", "readWord8OffAddrAsAddr#"),
+    ('9', 1131, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsAddr#"),
+    ('9', 1132, InTerms, Just "GHC.Prim", "readWord8OffAddrAsFloat#"),
+    ('9', 1133, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsFloat#"),
+    ('9', 1134, InTerms, Just "GHC.Prim", "readWord8OffAddrAsDouble#"),
+    ('9', 1135, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsDouble#"),
+    ('9', 1136, InTerms, Just "GHC.Prim", "readWord8OffAddrAsStablePtr#"),
+    ('9', 1137, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsStablePtr#"),
+    ('9', 1138, InTerms, Just "GHC.Prim", "readWord8OffAddrAsInt16#"),
+    ('9', 1139, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsInt16#"),
+    ('9', 1140, InTerms, Just "GHC.Prim", "readWord8OffAddrAsWord16#"),
+    ('9', 1141, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsWord16#"),
+    ('9', 1142, InTerms, Just "GHC.Prim", "readWord8OffAddrAsInt32#"),
+    ('9', 1143, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsInt32#"),
+    ('9', 1144, InTerms, Just "GHC.Prim", "readWord8OffAddrAsWord32#"),
+    ('9', 1145, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsWord32#"),
+    ('9', 1146, InTerms, Just "GHC.Prim", "readWord8OffAddrAsInt64#"),
+    ('9', 1147, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsInt64#"),
+    ('9', 1148, InTerms, Just "GHC.Prim", "readWord8OffAddrAsWord64#"),
+    ('9', 1149, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsWord64#"),
+    ('9', 1150, InTerms, Just "GHC.Prim", "writeCharOffAddr#"),
+    ('9', 1151, InTerms, Just "GHC.PrimopWrappers", "writeCharOffAddr#"),
+    ('9', 1152, InTerms, Just "GHC.Prim", "writeWideCharOffAddr#"),
+    ('9', 1153, InTerms, Just "GHC.PrimopWrappers", "writeWideCharOffAddr#"),
+    ('9', 1154, InTerms, Just "GHC.Prim", "writeIntOffAddr#"),
+    ('9', 1155, InTerms, Just "GHC.PrimopWrappers", "writeIntOffAddr#"),
+    ('9', 1156, InTerms, Just "GHC.Prim", "writeWordOffAddr#"),
+    ('9', 1157, InTerms, Just "GHC.PrimopWrappers", "writeWordOffAddr#"),
+    ('9', 1158, InTerms, Just "GHC.Prim", "writeAddrOffAddr#"),
+    ('9', 1159, InTerms, Just "GHC.PrimopWrappers", "writeAddrOffAddr#"),
+    ('9', 1160, InTerms, Just "GHC.Prim", "writeFloatOffAddr#"),
+    ('9', 1161, InTerms, Just "GHC.PrimopWrappers", "writeFloatOffAddr#"),
+    ('9', 1162, InTerms, Just "GHC.Prim", "writeDoubleOffAddr#"),
+    ('9', 1163, InTerms, Just "GHC.PrimopWrappers", "writeDoubleOffAddr#"),
+    ('9', 1164, InTerms, Just "GHC.Prim", "writeStablePtrOffAddr#"),
+    ('9', 1165, InTerms, Just "GHC.PrimopWrappers", "writeStablePtrOffAddr#"),
+    ('9', 1166, InTerms, Just "GHC.Prim", "writeInt8OffAddr#"),
+    ('9', 1167, InTerms, Just "GHC.PrimopWrappers", "writeInt8OffAddr#"),
+    ('9', 1168, InTerms, Just "GHC.Prim", "writeWord8OffAddr#"),
+    ('9', 1169, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddr#"),
+    ('9', 1170, InTerms, Just "GHC.Prim", "writeInt16OffAddr#"),
+    ('9', 1171, InTerms, Just "GHC.PrimopWrappers", "writeInt16OffAddr#"),
+    ('9', 1172, InTerms, Just "GHC.Prim", "writeWord16OffAddr#"),
+    ('9', 1173, InTerms, Just "GHC.PrimopWrappers", "writeWord16OffAddr#"),
+    ('9', 1174, InTerms, Just "GHC.Prim", "writeInt32OffAddr#"),
+    ('9', 1175, InTerms, Just "GHC.PrimopWrappers", "writeInt32OffAddr#"),
+    ('9', 1176, InTerms, Just "GHC.Prim", "writeWord32OffAddr#"),
+    ('9', 1177, InTerms, Just "GHC.PrimopWrappers", "writeWord32OffAddr#"),
+    ('9', 1178, InTerms, Just "GHC.Prim", "writeInt64OffAddr#"),
+    ('9', 1179, InTerms, Just "GHC.PrimopWrappers", "writeInt64OffAddr#"),
+    ('9', 1180, InTerms, Just "GHC.Prim", "writeWord64OffAddr#"),
+    ('9', 1181, InTerms, Just "GHC.PrimopWrappers", "writeWord64OffAddr#"),
+    ('9', 1182, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsChar#"),
+    ('9', 1183, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsChar#"),
+    ('9', 1184, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsWideChar#"),
+    ('9', 1185, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsWideChar#"),
+    ('9', 1186, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsInt#"),
+    ('9', 1187, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsInt#"),
+    ('9', 1188, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsWord#"),
+    ('9', 1189, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsWord#"),
+    ('9', 1190, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsAddr#"),
+    ('9', 1191, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsAddr#"),
+    ('9', 1192, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsFloat#"),
+    ('9', 1193, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsFloat#"),
+    ('9', 1194, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsDouble#"),
+    ('9', 1195, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsDouble#"),
+    ('9', 1196, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsStablePtr#"),
+    ('9', 1197, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsStablePtr#"),
+    ('9', 1198, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsInt16#"),
+    ('9', 1199, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsInt16#"),
+    ('9', 1200, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsWord16#"),
+    ('9', 1201, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsWord16#"),
+    ('9', 1202, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsInt32#"),
+    ('9', 1203, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsInt32#"),
+    ('9', 1204, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsWord32#"),
+    ('9', 1205, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsWord32#"),
+    ('9', 1206, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsInt64#"),
+    ('9', 1207, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsInt64#"),
+    ('9', 1208, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsWord64#"),
+    ('9', 1209, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsWord64#"),
+    ('9', 1210, InTerms, Just "GHC.Prim", "atomicExchangeAddrAddr#"),
+    ('9', 1211, InTerms, Just "GHC.PrimopWrappers", "atomicExchangeAddrAddr#"),
+    ('9', 1212, InTerms, Just "GHC.Prim", "atomicExchangeWordAddr#"),
+    ('9', 1213, InTerms, Just "GHC.PrimopWrappers", "atomicExchangeWordAddr#"),
+    ('9', 1214, InTerms, Just "GHC.Prim", "atomicCasAddrAddr#"),
+    ('9', 1215, InTerms, Just "GHC.PrimopWrappers", "atomicCasAddrAddr#"),
+    ('9', 1216, InTerms, Just "GHC.Prim", "atomicCasWordAddr#"),
+    ('9', 1217, InTerms, Just "GHC.PrimopWrappers", "atomicCasWordAddr#"),
+    ('9', 1218, InTerms, Just "GHC.Prim", "atomicCasWord8Addr#"),
+    ('9', 1219, InTerms, Just "GHC.PrimopWrappers", "atomicCasWord8Addr#"),
+    ('9', 1220, InTerms, Just "GHC.Prim", "atomicCasWord16Addr#"),
+    ('9', 1221, InTerms, Just "GHC.PrimopWrappers", "atomicCasWord16Addr#"),
+    ('9', 1222, InTerms, Just "GHC.Prim", "atomicCasWord32Addr#"),
+    ('9', 1223, InTerms, Just "GHC.PrimopWrappers", "atomicCasWord32Addr#"),
+    ('9', 1224, InTerms, Just "GHC.Prim", "atomicCasWord64Addr#"),
+    ('9', 1225, InTerms, Just "GHC.PrimopWrappers", "atomicCasWord64Addr#"),
+    ('9', 1226, InTerms, Just "GHC.Prim", "fetchAddWordAddr#"),
+    ('9', 1227, InTerms, Just "GHC.PrimopWrappers", "fetchAddWordAddr#"),
+    ('9', 1228, InTerms, Just "GHC.Prim", "fetchSubWordAddr#"),
+    ('9', 1229, InTerms, Just "GHC.PrimopWrappers", "fetchSubWordAddr#"),
+    ('9', 1230, InTerms, Just "GHC.Prim", "fetchAndWordAddr#"),
+    ('9', 1231, InTerms, Just "GHC.PrimopWrappers", "fetchAndWordAddr#"),
+    ('9', 1232, InTerms, Just "GHC.Prim", "fetchNandWordAddr#"),
+    ('9', 1233, InTerms, Just "GHC.PrimopWrappers", "fetchNandWordAddr#"),
+    ('9', 1234, InTerms, Just "GHC.Prim", "fetchOrWordAddr#"),
+    ('9', 1235, InTerms, Just "GHC.PrimopWrappers", "fetchOrWordAddr#"),
+    ('9', 1236, InTerms, Just "GHC.Prim", "fetchXorWordAddr#"),
+    ('9', 1237, InTerms, Just "GHC.PrimopWrappers", "fetchXorWordAddr#"),
+    ('9', 1238, InTerms, Just "GHC.Prim", "atomicReadWordAddr#"),
+    ('9', 1239, InTerms, Just "GHC.PrimopWrappers", "atomicReadWordAddr#"),
+    ('9', 1240, InTerms, Just "GHC.Prim", "atomicWriteWordAddr#"),
+    ('9', 1241, InTerms, Just "GHC.PrimopWrappers", "atomicWriteWordAddr#"),
+    ('9', 1242, InTerms, Just "GHC.Prim", "newMutVar#"),
+    ('9', 1243, InTerms, Just "GHC.PrimopWrappers", "newMutVar#"),
+    ('9', 1244, InTerms, Just "GHC.Prim", "readMutVar#"),
+    ('9', 1245, InTerms, Just "GHC.PrimopWrappers", "readMutVar#"),
+    ('9', 1246, InTerms, Just "GHC.Prim", "writeMutVar#"),
+    ('9', 1247, InTerms, Just "GHC.PrimopWrappers", "writeMutVar#"),
+    ('9', 1248, InTerms, Just "GHC.Prim", "atomicSwapMutVar#"),
+    ('9', 1249, InTerms, Just "GHC.PrimopWrappers", "atomicSwapMutVar#"),
+    ('9', 1250, InTerms, Just "GHC.Prim", "atomicModifyMutVar2#"),
+    ('9', 1251, InTerms, Just "GHC.PrimopWrappers", "atomicModifyMutVar2#"),
+    ('9', 1252, InTerms, Just "GHC.Prim", "atomicModifyMutVar_#"),
+    ('9', 1253, InTerms, Just "GHC.PrimopWrappers", "atomicModifyMutVar_#"),
+    ('9', 1254, InTerms, Just "GHC.Prim", "casMutVar#"),
+    ('9', 1255, InTerms, Just "GHC.PrimopWrappers", "casMutVar#"),
+    ('9', 1256, InTerms, Just "GHC.Prim", "catch#"),
+    ('9', 1257, InTerms, Just "GHC.PrimopWrappers", "catch#"),
+    ('9', 1258, InTerms, Just "GHC.Prim", "raise#"),
+    ('9', 1259, InTerms, Just "GHC.PrimopWrappers", "raise#"),
+    ('9', 1260, InTerms, Just "GHC.Prim", "raiseUnderflow#"),
+    ('9', 1261, InTerms, Just "GHC.PrimopWrappers", "raiseUnderflow#"),
+    ('9', 1262, InTerms, Just "GHC.Prim", "raiseOverflow#"),
+    ('9', 1263, InTerms, Just "GHC.PrimopWrappers", "raiseOverflow#"),
+    ('9', 1264, InTerms, Just "GHC.Prim", "raiseDivZero#"),
+    ('9', 1265, InTerms, Just "GHC.PrimopWrappers", "raiseDivZero#"),
+    ('9', 1266, InTerms, Just "GHC.Prim", "raiseIO#"),
+    ('9', 1267, InTerms, Just "GHC.PrimopWrappers", "raiseIO#"),
+    ('9', 1268, InTerms, Just "GHC.Prim", "maskAsyncExceptions#"),
+    ('9', 1269, InTerms, Just "GHC.PrimopWrappers", "maskAsyncExceptions#"),
+    ('9', 1270, InTerms, Just "GHC.Prim", "maskUninterruptible#"),
+    ('9', 1271, InTerms, Just "GHC.PrimopWrappers", "maskUninterruptible#"),
+    ('9', 1272, InTerms, Just "GHC.Prim", "unmaskAsyncExceptions#"),
+    ('9', 1273, InTerms, Just "GHC.PrimopWrappers", "unmaskAsyncExceptions#"),
+    ('9', 1274, InTerms, Just "GHC.Prim", "getMaskingState#"),
+    ('9', 1275, InTerms, Just "GHC.PrimopWrappers", "getMaskingState#"),
+    ('9', 1276, InTerms, Just "GHC.Prim", "newPromptTag#"),
+    ('9', 1277, InTerms, Just "GHC.PrimopWrappers", "newPromptTag#"),
+    ('9', 1278, InTerms, Just "GHC.Prim", "prompt#"),
+    ('9', 1279, InTerms, Just "GHC.PrimopWrappers", "prompt#"),
+    ('9', 1280, InTerms, Just "GHC.Prim", "control0#"),
+    ('9', 1281, InTerms, Just "GHC.PrimopWrappers", "control0#"),
+    ('9', 1282, InTerms, Just "GHC.Prim", "atomically#"),
+    ('9', 1283, InTerms, Just "GHC.PrimopWrappers", "atomically#"),
+    ('9', 1284, InTerms, Just "GHC.Prim", "retry#"),
+    ('9', 1285, InTerms, Just "GHC.PrimopWrappers", "retry#"),
+    ('9', 1286, InTerms, Just "GHC.Prim", "catchRetry#"),
+    ('9', 1287, InTerms, Just "GHC.PrimopWrappers", "catchRetry#"),
+    ('9', 1288, InTerms, Just "GHC.Prim", "catchSTM#"),
+    ('9', 1289, InTerms, Just "GHC.PrimopWrappers", "catchSTM#"),
+    ('9', 1290, InTerms, Just "GHC.Prim", "newTVar#"),
+    ('9', 1291, InTerms, Just "GHC.PrimopWrappers", "newTVar#"),
+    ('9', 1292, InTerms, Just "GHC.Prim", "readTVar#"),
+    ('9', 1293, InTerms, Just "GHC.PrimopWrappers", "readTVar#"),
+    ('9', 1294, InTerms, Just "GHC.Prim", "readTVarIO#"),
+    ('9', 1295, InTerms, Just "GHC.PrimopWrappers", "readTVarIO#"),
+    ('9', 1296, InTerms, Just "GHC.Prim", "writeTVar#"),
+    ('9', 1297, InTerms, Just "GHC.PrimopWrappers", "writeTVar#"),
+    ('9', 1298, InTerms, Just "GHC.Prim", "newMVar#"),
+    ('9', 1299, InTerms, Just "GHC.PrimopWrappers", "newMVar#"),
+    ('9', 1300, InTerms, Just "GHC.Prim", "takeMVar#"),
+    ('9', 1301, InTerms, Just "GHC.PrimopWrappers", "takeMVar#"),
+    ('9', 1302, InTerms, Just "GHC.Prim", "tryTakeMVar#"),
+    ('9', 1303, InTerms, Just "GHC.PrimopWrappers", "tryTakeMVar#"),
+    ('9', 1304, InTerms, Just "GHC.Prim", "putMVar#"),
+    ('9', 1305, InTerms, Just "GHC.PrimopWrappers", "putMVar#"),
+    ('9', 1306, InTerms, Just "GHC.Prim", "tryPutMVar#"),
+    ('9', 1307, InTerms, Just "GHC.PrimopWrappers", "tryPutMVar#"),
+    ('9', 1308, InTerms, Just "GHC.Prim", "readMVar#"),
+    ('9', 1309, InTerms, Just "GHC.PrimopWrappers", "readMVar#"),
+    ('9', 1310, InTerms, Just "GHC.Prim", "tryReadMVar#"),
+    ('9', 1311, InTerms, Just "GHC.PrimopWrappers", "tryReadMVar#"),
+    ('9', 1312, InTerms, Just "GHC.Prim", "isEmptyMVar#"),
+    ('9', 1313, InTerms, Just "GHC.PrimopWrappers", "isEmptyMVar#"),
+    ('9', 1314, InTerms, Just "GHC.Prim", "newIOPort#"),
+    ('9', 1315, InTerms, Just "GHC.PrimopWrappers", "newIOPort#"),
+    ('9', 1316, InTerms, Just "GHC.Prim", "readIOPort#"),
+    ('9', 1317, InTerms, Just "GHC.PrimopWrappers", "readIOPort#"),
+    ('9', 1318, InTerms, Just "GHC.Prim", "writeIOPort#"),
+    ('9', 1319, InTerms, Just "GHC.PrimopWrappers", "writeIOPort#"),
+    ('9', 1320, InTerms, Just "GHC.Prim", "delay#"),
+    ('9', 1321, InTerms, Just "GHC.PrimopWrappers", "delay#"),
+    ('9', 1322, InTerms, Just "GHC.Prim", "waitRead#"),
+    ('9', 1323, InTerms, Just "GHC.PrimopWrappers", "waitRead#"),
+    ('9', 1324, InTerms, Just "GHC.Prim", "waitWrite#"),
+    ('9', 1325, InTerms, Just "GHC.PrimopWrappers", "waitWrite#"),
+    ('9', 1326, InTerms, Just "GHC.Prim", "fork#"),
+    ('9', 1327, InTerms, Just "GHC.PrimopWrappers", "fork#"),
+    ('9', 1328, InTerms, Just "GHC.Prim", "forkOn#"),
+    ('9', 1329, InTerms, Just "GHC.PrimopWrappers", "forkOn#"),
+    ('9', 1330, InTerms, Just "GHC.Prim", "killThread#"),
+    ('9', 1331, InTerms, Just "GHC.PrimopWrappers", "killThread#"),
+    ('9', 1332, InTerms, Just "GHC.Prim", "yield#"),
+    ('9', 1333, InTerms, Just "GHC.PrimopWrappers", "yield#"),
+    ('9', 1334, InTerms, Just "GHC.Prim", "myThreadId#"),
+    ('9', 1335, InTerms, Just "GHC.PrimopWrappers", "myThreadId#"),
+    ('9', 1336, InTerms, Just "GHC.Prim", "labelThread#"),
+    ('9', 1337, InTerms, Just "GHC.PrimopWrappers", "labelThread#"),
+    ('9', 1338, InTerms, Just "GHC.Prim", "isCurrentThreadBound#"),
+    ('9', 1339, InTerms, Just "GHC.PrimopWrappers", "isCurrentThreadBound#"),
+    ('9', 1340, InTerms, Just "GHC.Prim", "noDuplicate#"),
+    ('9', 1341, InTerms, Just "GHC.PrimopWrappers", "noDuplicate#"),
+    ('9', 1342, InTerms, Just "GHC.Prim", "threadLabel#"),
+    ('9', 1343, InTerms, Just "GHC.PrimopWrappers", "threadLabel#"),
+    ('9', 1344, InTerms, Just "GHC.Prim", "threadStatus#"),
+    ('9', 1345, InTerms, Just "GHC.PrimopWrappers", "threadStatus#"),
+    ('9', 1346, InTerms, Just "GHC.Prim", "listThreads#"),
+    ('9', 1347, InTerms, Just "GHC.PrimopWrappers", "listThreads#"),
+    ('9', 1348, InTerms, Just "GHC.Prim", "mkWeak#"),
+    ('9', 1349, InTerms, Just "GHC.PrimopWrappers", "mkWeak#"),
+    ('9', 1350, InTerms, Just "GHC.Prim", "mkWeakNoFinalizer#"),
+    ('9', 1351, InTerms, Just "GHC.PrimopWrappers", "mkWeakNoFinalizer#"),
+    ('9', 1352, InTerms, Just "GHC.Prim", "addCFinalizerToWeak#"),
+    ('9', 1353, InTerms, Just "GHC.PrimopWrappers", "addCFinalizerToWeak#"),
+    ('9', 1354, InTerms, Just "GHC.Prim", "deRefWeak#"),
+    ('9', 1355, InTerms, Just "GHC.PrimopWrappers", "deRefWeak#"),
+    ('9', 1356, InTerms, Just "GHC.Prim", "finalizeWeak#"),
+    ('9', 1357, InTerms, Just "GHC.PrimopWrappers", "finalizeWeak#"),
+    ('9', 1358, InTerms, Just "GHC.Prim", "touch#"),
+    ('9', 1359, InTerms, Just "GHC.PrimopWrappers", "touch#"),
+    ('9', 1360, InTerms, Just "GHC.Prim", "makeStablePtr#"),
+    ('9', 1361, InTerms, Just "GHC.PrimopWrappers", "makeStablePtr#"),
+    ('9', 1362, InTerms, Just "GHC.Prim", "deRefStablePtr#"),
+    ('9', 1363, InTerms, Just "GHC.PrimopWrappers", "deRefStablePtr#"),
+    ('9', 1364, InTerms, Just "GHC.Prim", "eqStablePtr#"),
+    ('9', 1365, InTerms, Just "GHC.PrimopWrappers", "eqStablePtr#"),
+    ('9', 1366, InTerms, Just "GHC.Prim", "makeStableName#"),
+    ('9', 1367, InTerms, Just "GHC.PrimopWrappers", "makeStableName#"),
+    ('9', 1368, InTerms, Just "GHC.Prim", "stableNameToInt#"),
+    ('9', 1369, InTerms, Just "GHC.PrimopWrappers", "stableNameToInt#"),
+    ('9', 1370, InTerms, Just "GHC.Prim", "compactNew#"),
+    ('9', 1371, InTerms, Just "GHC.PrimopWrappers", "compactNew#"),
+    ('9', 1372, InTerms, Just "GHC.Prim", "compactResize#"),
+    ('9', 1373, InTerms, Just "GHC.PrimopWrappers", "compactResize#"),
+    ('9', 1374, InTerms, Just "GHC.Prim", "compactContains#"),
+    ('9', 1375, InTerms, Just "GHC.PrimopWrappers", "compactContains#"),
+    ('9', 1376, InTerms, Just "GHC.Prim", "compactContainsAny#"),
+    ('9', 1377, InTerms, Just "GHC.PrimopWrappers", "compactContainsAny#"),
+    ('9', 1378, InTerms, Just "GHC.Prim", "compactGetFirstBlock#"),
+    ('9', 1379, InTerms, Just "GHC.PrimopWrappers", "compactGetFirstBlock#"),
+    ('9', 1380, InTerms, Just "GHC.Prim", "compactGetNextBlock#"),
+    ('9', 1381, InTerms, Just "GHC.PrimopWrappers", "compactGetNextBlock#"),
+    ('9', 1382, InTerms, Just "GHC.Prim", "compactAllocateBlock#"),
+    ('9', 1383, InTerms, Just "GHC.PrimopWrappers", "compactAllocateBlock#"),
+    ('9', 1384, InTerms, Just "GHC.Prim", "compactFixupPointers#"),
+    ('9', 1385, InTerms, Just "GHC.PrimopWrappers", "compactFixupPointers#"),
+    ('9', 1386, InTerms, Just "GHC.Prim", "compactAdd#"),
+    ('9', 1387, InTerms, Just "GHC.PrimopWrappers", "compactAdd#"),
+    ('9', 1388, InTerms, Just "GHC.Prim", "compactAddWithSharing#"),
+    ('9', 1389, InTerms, Just "GHC.PrimopWrappers", "compactAddWithSharing#"),
+    ('9', 1390, InTerms, Just "GHC.Prim", "compactSize#"),
+    ('9', 1391, InTerms, Just "GHC.PrimopWrappers", "compactSize#"),
+    ('9', 1392, InTerms, Just "GHC.Prim", "reallyUnsafePtrEquality#"),
+    ('9', 1393, InTerms, Just "GHC.PrimopWrappers", "reallyUnsafePtrEquality#"),
+    ('9', 1394, InTerms, Just "GHC.Prim", "par#"),
+    ('9', 1395, InTerms, Just "GHC.PrimopWrappers", "par#"),
+    ('9', 1396, InTerms, Just "GHC.Prim", "spark#"),
+    ('9', 1397, InTerms, Just "GHC.PrimopWrappers", "spark#"),
+    ('9', 1398, InTerms, Just "GHC.Prim", "getSpark#"),
+    ('9', 1399, InTerms, Just "GHC.PrimopWrappers", "getSpark#"),
+    ('9', 1400, InTerms, Just "GHC.Prim", "numSparks#"),
+    ('9', 1401, InTerms, Just "GHC.PrimopWrappers", "numSparks#"),
+    ('9', 1402, InTerms, Just "GHC.Prim", "keepAlive#"),
+    ('9', 1403, InTerms, Just "GHC.PrimopWrappers", "keepAlive#"),
+    ('9', 1404, InTerms, Just "GHC.Prim", "dataToTagSmall#"),
+    ('9', 1405, InTerms, Just "GHC.PrimopWrappers", "dataToTagSmall#"),
+    ('9', 1406, InTerms, Just "GHC.Prim", "dataToTagLarge#"),
+    ('9', 1407, InTerms, Just "GHC.PrimopWrappers", "dataToTagLarge#"),
+    ('9', 1408, InTerms, Just "GHC.Prim", "tagToEnum#"),
+    ('9', 1409, InTerms, Just "GHC.PrimopWrappers", "tagToEnum#"),
+    ('9', 1410, InTerms, Just "GHC.Prim", "addrToAny#"),
+    ('9', 1411, InTerms, Just "GHC.PrimopWrappers", "addrToAny#"),
+    ('9', 1412, InTerms, Just "GHC.Prim", "anyToAddr#"),
+    ('9', 1413, InTerms, Just "GHC.PrimopWrappers", "anyToAddr#"),
+    ('9', 1414, InTerms, Just "GHC.Prim", "mkApUpd0#"),
+    ('9', 1415, InTerms, Just "GHC.PrimopWrappers", "mkApUpd0#"),
+    ('9', 1416, InTerms, Just "GHC.Prim", "newBCO#"),
+    ('9', 1417, InTerms, Just "GHC.PrimopWrappers", "newBCO#"),
+    ('9', 1418, InTerms, Just "GHC.Prim", "unpackClosure#"),
+    ('9', 1419, InTerms, Just "GHC.PrimopWrappers", "unpackClosure#"),
+    ('9', 1420, InTerms, Just "GHC.Prim", "closureSize#"),
+    ('9', 1421, InTerms, Just "GHC.PrimopWrappers", "closureSize#"),
+    ('9', 1422, InTerms, Just "GHC.Prim", "getApStackVal#"),
+    ('9', 1423, InTerms, Just "GHC.PrimopWrappers", "getApStackVal#"),
+    ('9', 1424, InTerms, Just "GHC.Prim", "getCCSOf#"),
+    ('9', 1425, InTerms, Just "GHC.PrimopWrappers", "getCCSOf#"),
+    ('9', 1426, InTerms, Just "GHC.Prim", "getCurrentCCS#"),
+    ('9', 1427, InTerms, Just "GHC.PrimopWrappers", "getCurrentCCS#"),
+    ('9', 1428, InTerms, Just "GHC.Prim", "clearCCS#"),
+    ('9', 1429, InTerms, Just "GHC.PrimopWrappers", "clearCCS#"),
+    ('9', 1430, InTerms, Just "GHC.Prim", "whereFrom#"),
+    ('9', 1431, InTerms, Just "GHC.PrimopWrappers", "whereFrom#"),
+    ('9', 1432, InTerms, Just "GHC.Prim", "traceEvent#"),
+    ('9', 1433, InTerms, Just "GHC.PrimopWrappers", "traceEvent#"),
+    ('9', 1434, InTerms, Just "GHC.Prim", "traceBinaryEvent#"),
+    ('9', 1435, InTerms, Just "GHC.PrimopWrappers", "traceBinaryEvent#"),
+    ('9', 1436, InTerms, Just "GHC.Prim", "traceMarker#"),
+    ('9', 1437, InTerms, Just "GHC.PrimopWrappers", "traceMarker#"),
+    ('9', 1438, InTerms, Just "GHC.Prim", "setThreadAllocationCounter#"),
+    ('9', 1439, InTerms, Just "GHC.PrimopWrappers", "setThreadAllocationCounter#"),
+    ('9', 1440, InTerms, Just "GHC.Prim", "broadcastInt8X16#"),
+    ('9', 1441, InTerms, Just "GHC.PrimopWrappers", "broadcastInt8X16#"),
+    ('9', 1442, InTerms, Just "GHC.Prim", "broadcastInt16X8#"),
+    ('9', 1443, InTerms, Just "GHC.PrimopWrappers", "broadcastInt16X8#"),
+    ('9', 1444, InTerms, Just "GHC.Prim", "broadcastInt32X4#"),
+    ('9', 1445, InTerms, Just "GHC.PrimopWrappers", "broadcastInt32X4#"),
+    ('9', 1446, InTerms, Just "GHC.Prim", "broadcastInt64X2#"),
+    ('9', 1447, InTerms, Just "GHC.PrimopWrappers", "broadcastInt64X2#"),
+    ('9', 1448, InTerms, Just "GHC.Prim", "broadcastInt8X32#"),
+    ('9', 1449, InTerms, Just "GHC.PrimopWrappers", "broadcastInt8X32#"),
+    ('9', 1450, InTerms, Just "GHC.Prim", "broadcastInt16X16#"),
+    ('9', 1451, InTerms, Just "GHC.PrimopWrappers", "broadcastInt16X16#"),
+    ('9', 1452, InTerms, Just "GHC.Prim", "broadcastInt32X8#"),
+    ('9', 1453, InTerms, Just "GHC.PrimopWrappers", "broadcastInt32X8#"),
+    ('9', 1454, InTerms, Just "GHC.Prim", "broadcastInt64X4#"),
+    ('9', 1455, InTerms, Just "GHC.PrimopWrappers", "broadcastInt64X4#"),
+    ('9', 1456, InTerms, Just "GHC.Prim", "broadcastInt8X64#"),
+    ('9', 1457, InTerms, Just "GHC.PrimopWrappers", "broadcastInt8X64#"),
+    ('9', 1458, InTerms, Just "GHC.Prim", "broadcastInt16X32#"),
+    ('9', 1459, InTerms, Just "GHC.PrimopWrappers", "broadcastInt16X32#"),
+    ('9', 1460, InTerms, Just "GHC.Prim", "broadcastInt32X16#"),
+    ('9', 1461, InTerms, Just "GHC.PrimopWrappers", "broadcastInt32X16#"),
+    ('9', 1462, InTerms, Just "GHC.Prim", "broadcastInt64X8#"),
+    ('9', 1463, InTerms, Just "GHC.PrimopWrappers", "broadcastInt64X8#"),
+    ('9', 1464, InTerms, Just "GHC.Prim", "broadcastWord8X16#"),
+    ('9', 1465, InTerms, Just "GHC.PrimopWrappers", "broadcastWord8X16#"),
+    ('9', 1466, InTerms, Just "GHC.Prim", "broadcastWord16X8#"),
+    ('9', 1467, InTerms, Just "GHC.PrimopWrappers", "broadcastWord16X8#"),
+    ('9', 1468, InTerms, Just "GHC.Prim", "broadcastWord32X4#"),
+    ('9', 1469, InTerms, Just "GHC.PrimopWrappers", "broadcastWord32X4#"),
+    ('9', 1470, InTerms, Just "GHC.Prim", "broadcastWord64X2#"),
+    ('9', 1471, InTerms, Just "GHC.PrimopWrappers", "broadcastWord64X2#"),
+    ('9', 1472, InTerms, Just "GHC.Prim", "broadcastWord8X32#"),
+    ('9', 1473, InTerms, Just "GHC.PrimopWrappers", "broadcastWord8X32#"),
+    ('9', 1474, InTerms, Just "GHC.Prim", "broadcastWord16X16#"),
+    ('9', 1475, InTerms, Just "GHC.PrimopWrappers", "broadcastWord16X16#"),
+    ('9', 1476, InTerms, Just "GHC.Prim", "broadcastWord32X8#"),
+    ('9', 1477, InTerms, Just "GHC.PrimopWrappers", "broadcastWord32X8#"),
+    ('9', 1478, InTerms, Just "GHC.Prim", "broadcastWord64X4#"),
+    ('9', 1479, InTerms, Just "GHC.PrimopWrappers", "broadcastWord64X4#"),
+    ('9', 1480, InTerms, Just "GHC.Prim", "broadcastWord8X64#"),
+    ('9', 1481, InTerms, Just "GHC.PrimopWrappers", "broadcastWord8X64#"),
+    ('9', 1482, InTerms, Just "GHC.Prim", "broadcastWord16X32#"),
+    ('9', 1483, InTerms, Just "GHC.PrimopWrappers", "broadcastWord16X32#"),
+    ('9', 1484, InTerms, Just "GHC.Prim", "broadcastWord32X16#"),
+    ('9', 1485, InTerms, Just "GHC.PrimopWrappers", "broadcastWord32X16#"),
+    ('9', 1486, InTerms, Just "GHC.Prim", "broadcastWord64X8#"),
+    ('9', 1487, InTerms, Just "GHC.PrimopWrappers", "broadcastWord64X8#"),
+    ('9', 1488, InTerms, Just "GHC.Prim", "broadcastFloatX4#"),
+    ('9', 1489, InTerms, Just "GHC.PrimopWrappers", "broadcastFloatX4#"),
+    ('9', 1490, InTerms, Just "GHC.Prim", "broadcastDoubleX2#"),
+    ('9', 1491, InTerms, Just "GHC.PrimopWrappers", "broadcastDoubleX2#"),
+    ('9', 1492, InTerms, Just "GHC.Prim", "broadcastFloatX8#"),
+    ('9', 1493, InTerms, Just "GHC.PrimopWrappers", "broadcastFloatX8#"),
+    ('9', 1494, InTerms, Just "GHC.Prim", "broadcastDoubleX4#"),
+    ('9', 1495, InTerms, Just "GHC.PrimopWrappers", "broadcastDoubleX4#"),
+    ('9', 1496, InTerms, Just "GHC.Prim", "broadcastFloatX16#"),
+    ('9', 1497, InTerms, Just "GHC.PrimopWrappers", "broadcastFloatX16#"),
+    ('9', 1498, InTerms, Just "GHC.Prim", "broadcastDoubleX8#"),
+    ('9', 1499, InTerms, Just "GHC.PrimopWrappers", "broadcastDoubleX8#"),
+    ('9', 1500, InTerms, Just "GHC.Prim", "packInt8X16#"),
+    ('9', 1501, InTerms, Just "GHC.PrimopWrappers", "packInt8X16#"),
+    ('9', 1502, InTerms, Just "GHC.Prim", "packInt16X8#"),
+    ('9', 1503, InTerms, Just "GHC.PrimopWrappers", "packInt16X8#"),
+    ('9', 1504, InTerms, Just "GHC.Prim", "packInt32X4#"),
+    ('9', 1505, InTerms, Just "GHC.PrimopWrappers", "packInt32X4#"),
+    ('9', 1506, InTerms, Just "GHC.Prim", "packInt64X2#"),
+    ('9', 1507, InTerms, Just "GHC.PrimopWrappers", "packInt64X2#"),
+    ('9', 1508, InTerms, Just "GHC.Prim", "packInt8X32#"),
+    ('9', 1509, InTerms, Just "GHC.PrimopWrappers", "packInt8X32#"),
+    ('9', 1510, InTerms, Just "GHC.Prim", "packInt16X16#"),
+    ('9', 1511, InTerms, Just "GHC.PrimopWrappers", "packInt16X16#"),
+    ('9', 1512, InTerms, Just "GHC.Prim", "packInt32X8#"),
+    ('9', 1513, InTerms, Just "GHC.PrimopWrappers", "packInt32X8#"),
+    ('9', 1514, InTerms, Just "GHC.Prim", "packInt64X4#"),
+    ('9', 1515, InTerms, Just "GHC.PrimopWrappers", "packInt64X4#"),
+    ('9', 1516, InTerms, Just "GHC.Prim", "packInt8X64#"),
+    ('9', 1517, InTerms, Just "GHC.PrimopWrappers", "packInt8X64#"),
+    ('9', 1518, InTerms, Just "GHC.Prim", "packInt16X32#"),
+    ('9', 1519, InTerms, Just "GHC.PrimopWrappers", "packInt16X32#"),
+    ('9', 1520, InTerms, Just "GHC.Prim", "packInt32X16#"),
+    ('9', 1521, InTerms, Just "GHC.PrimopWrappers", "packInt32X16#"),
+    ('9', 1522, InTerms, Just "GHC.Prim", "packInt64X8#"),
+    ('9', 1523, InTerms, Just "GHC.PrimopWrappers", "packInt64X8#"),
+    ('9', 1524, InTerms, Just "GHC.Prim", "packWord8X16#"),
+    ('9', 1525, InTerms, Just "GHC.PrimopWrappers", "packWord8X16#"),
+    ('9', 1526, InTerms, Just "GHC.Prim", "packWord16X8#"),
+    ('9', 1527, InTerms, Just "GHC.PrimopWrappers", "packWord16X8#"),
+    ('9', 1528, InTerms, Just "GHC.Prim", "packWord32X4#"),
+    ('9', 1529, InTerms, Just "GHC.PrimopWrappers", "packWord32X4#"),
+    ('9', 1530, InTerms, Just "GHC.Prim", "packWord64X2#"),
+    ('9', 1531, InTerms, Just "GHC.PrimopWrappers", "packWord64X2#"),
+    ('9', 1532, InTerms, Just "GHC.Prim", "packWord8X32#"),
+    ('9', 1533, InTerms, Just "GHC.PrimopWrappers", "packWord8X32#"),
+    ('9', 1534, InTerms, Just "GHC.Prim", "packWord16X16#"),
+    ('9', 1535, InTerms, Just "GHC.PrimopWrappers", "packWord16X16#"),
+    ('9', 1536, InTerms, Just "GHC.Prim", "packWord32X8#"),
+    ('9', 1537, InTerms, Just "GHC.PrimopWrappers", "packWord32X8#"),
+    ('9', 1538, InTerms, Just "GHC.Prim", "packWord64X4#"),
+    ('9', 1539, InTerms, Just "GHC.PrimopWrappers", "packWord64X4#"),
+    ('9', 1540, InTerms, Just "GHC.Prim", "packWord8X64#"),
+    ('9', 1541, InTerms, Just "GHC.PrimopWrappers", "packWord8X64#"),
+    ('9', 1542, InTerms, Just "GHC.Prim", "packWord16X32#"),
+    ('9', 1543, InTerms, Just "GHC.PrimopWrappers", "packWord16X32#"),
+    ('9', 1544, InTerms, Just "GHC.Prim", "packWord32X16#"),
+    ('9', 1545, InTerms, Just "GHC.PrimopWrappers", "packWord32X16#"),
+    ('9', 1546, InTerms, Just "GHC.Prim", "packWord64X8#"),
+    ('9', 1547, InTerms, Just "GHC.PrimopWrappers", "packWord64X8#"),
+    ('9', 1548, InTerms, Just "GHC.Prim", "packFloatX4#"),
+    ('9', 1549, InTerms, Just "GHC.PrimopWrappers", "packFloatX4#"),
+    ('9', 1550, InTerms, Just "GHC.Prim", "packDoubleX2#"),
+    ('9', 1551, InTerms, Just "GHC.PrimopWrappers", "packDoubleX2#"),
+    ('9', 1552, InTerms, Just "GHC.Prim", "packFloatX8#"),
+    ('9', 1553, InTerms, Just "GHC.PrimopWrappers", "packFloatX8#"),
+    ('9', 1554, InTerms, Just "GHC.Prim", "packDoubleX4#"),
+    ('9', 1555, InTerms, Just "GHC.PrimopWrappers", "packDoubleX4#"),
+    ('9', 1556, InTerms, Just "GHC.Prim", "packFloatX16#"),
+    ('9', 1557, InTerms, Just "GHC.PrimopWrappers", "packFloatX16#"),
+    ('9', 1558, InTerms, Just "GHC.Prim", "packDoubleX8#"),
+    ('9', 1559, InTerms, Just "GHC.PrimopWrappers", "packDoubleX8#"),
+    ('9', 1560, InTerms, Just "GHC.Prim", "unpackInt8X16#"),
+    ('9', 1561, InTerms, Just "GHC.PrimopWrappers", "unpackInt8X16#"),
+    ('9', 1562, InTerms, Just "GHC.Prim", "unpackInt16X8#"),
+    ('9', 1563, InTerms, Just "GHC.PrimopWrappers", "unpackInt16X8#"),
+    ('9', 1564, InTerms, Just "GHC.Prim", "unpackInt32X4#"),
+    ('9', 1565, InTerms, Just "GHC.PrimopWrappers", "unpackInt32X4#"),
+    ('9', 1566, InTerms, Just "GHC.Prim", "unpackInt64X2#"),
+    ('9', 1567, InTerms, Just "GHC.PrimopWrappers", "unpackInt64X2#"),
+    ('9', 1568, InTerms, Just "GHC.Prim", "unpackInt8X32#"),
+    ('9', 1569, InTerms, Just "GHC.PrimopWrappers", "unpackInt8X32#"),
+    ('9', 1570, InTerms, Just "GHC.Prim", "unpackInt16X16#"),
+    ('9', 1571, InTerms, Just "GHC.PrimopWrappers", "unpackInt16X16#"),
+    ('9', 1572, InTerms, Just "GHC.Prim", "unpackInt32X8#"),
+    ('9', 1573, InTerms, Just "GHC.PrimopWrappers", "unpackInt32X8#"),
+    ('9', 1574, InTerms, Just "GHC.Prim", "unpackInt64X4#"),
+    ('9', 1575, InTerms, Just "GHC.PrimopWrappers", "unpackInt64X4#"),
+    ('9', 1576, InTerms, Just "GHC.Prim", "unpackInt8X64#"),
+    ('9', 1577, InTerms, Just "GHC.PrimopWrappers", "unpackInt8X64#"),
+    ('9', 1578, InTerms, Just "GHC.Prim", "unpackInt16X32#"),
+    ('9', 1579, InTerms, Just "GHC.PrimopWrappers", "unpackInt16X32#"),
+    ('9', 1580, InTerms, Just "GHC.Prim", "unpackInt32X16#"),
+    ('9', 1581, InTerms, Just "GHC.PrimopWrappers", "unpackInt32X16#"),
+    ('9', 1582, InTerms, Just "GHC.Prim", "unpackInt64X8#"),
+    ('9', 1583, InTerms, Just "GHC.PrimopWrappers", "unpackInt64X8#"),
+    ('9', 1584, InTerms, Just "GHC.Prim", "unpackWord8X16#"),
+    ('9', 1585, InTerms, Just "GHC.PrimopWrappers", "unpackWord8X16#"),
+    ('9', 1586, InTerms, Just "GHC.Prim", "unpackWord16X8#"),
+    ('9', 1587, InTerms, Just "GHC.PrimopWrappers", "unpackWord16X8#"),
+    ('9', 1588, InTerms, Just "GHC.Prim", "unpackWord32X4#"),
+    ('9', 1589, InTerms, Just "GHC.PrimopWrappers", "unpackWord32X4#"),
+    ('9', 1590, InTerms, Just "GHC.Prim", "unpackWord64X2#"),
+    ('9', 1591, InTerms, Just "GHC.PrimopWrappers", "unpackWord64X2#"),
+    ('9', 1592, InTerms, Just "GHC.Prim", "unpackWord8X32#"),
+    ('9', 1593, InTerms, Just "GHC.PrimopWrappers", "unpackWord8X32#"),
+    ('9', 1594, InTerms, Just "GHC.Prim", "unpackWord16X16#"),
+    ('9', 1595, InTerms, Just "GHC.PrimopWrappers", "unpackWord16X16#"),
+    ('9', 1596, InTerms, Just "GHC.Prim", "unpackWord32X8#"),
+    ('9', 1597, InTerms, Just "GHC.PrimopWrappers", "unpackWord32X8#"),
+    ('9', 1598, InTerms, Just "GHC.Prim", "unpackWord64X4#"),
+    ('9', 1599, InTerms, Just "GHC.PrimopWrappers", "unpackWord64X4#"),
+    ('9', 1600, InTerms, Just "GHC.Prim", "unpackWord8X64#"),
+    ('9', 1601, InTerms, Just "GHC.PrimopWrappers", "unpackWord8X64#"),
+    ('9', 1602, InTerms, Just "GHC.Prim", "unpackWord16X32#"),
+    ('9', 1603, InTerms, Just "GHC.PrimopWrappers", "unpackWord16X32#"),
+    ('9', 1604, InTerms, Just "GHC.Prim", "unpackWord32X16#"),
+    ('9', 1605, InTerms, Just "GHC.PrimopWrappers", "unpackWord32X16#"),
+    ('9', 1606, InTerms, Just "GHC.Prim", "unpackWord64X8#"),
+    ('9', 1607, InTerms, Just "GHC.PrimopWrappers", "unpackWord64X8#"),
+    ('9', 1608, InTerms, Just "GHC.Prim", "unpackFloatX4#"),
+    ('9', 1609, InTerms, Just "GHC.PrimopWrappers", "unpackFloatX4#"),
+    ('9', 1610, InTerms, Just "GHC.Prim", "unpackDoubleX2#"),
+    ('9', 1611, InTerms, Just "GHC.PrimopWrappers", "unpackDoubleX2#"),
+    ('9', 1612, InTerms, Just "GHC.Prim", "unpackFloatX8#"),
+    ('9', 1613, InTerms, Just "GHC.PrimopWrappers", "unpackFloatX8#"),
+    ('9', 1614, InTerms, Just "GHC.Prim", "unpackDoubleX4#"),
+    ('9', 1615, InTerms, Just "GHC.PrimopWrappers", "unpackDoubleX4#"),
+    ('9', 1616, InTerms, Just "GHC.Prim", "unpackFloatX16#"),
+    ('9', 1617, InTerms, Just "GHC.PrimopWrappers", "unpackFloatX16#"),
+    ('9', 1618, InTerms, Just "GHC.Prim", "unpackDoubleX8#"),
+    ('9', 1619, InTerms, Just "GHC.PrimopWrappers", "unpackDoubleX8#"),
+    ('9', 1620, InTerms, Just "GHC.Prim", "insertInt8X16#"),
+    ('9', 1621, InTerms, Just "GHC.PrimopWrappers", "insertInt8X16#"),
+    ('9', 1622, InTerms, Just "GHC.Prim", "insertInt16X8#"),
+    ('9', 1623, InTerms, Just "GHC.PrimopWrappers", "insertInt16X8#"),
+    ('9', 1624, InTerms, Just "GHC.Prim", "insertInt32X4#"),
+    ('9', 1625, InTerms, Just "GHC.PrimopWrappers", "insertInt32X4#"),
+    ('9', 1626, InTerms, Just "GHC.Prim", "insertInt64X2#"),
+    ('9', 1627, InTerms, Just "GHC.PrimopWrappers", "insertInt64X2#"),
+    ('9', 1628, InTerms, Just "GHC.Prim", "insertInt8X32#"),
+    ('9', 1629, InTerms, Just "GHC.PrimopWrappers", "insertInt8X32#"),
+    ('9', 1630, InTerms, Just "GHC.Prim", "insertInt16X16#"),
+    ('9', 1631, InTerms, Just "GHC.PrimopWrappers", "insertInt16X16#"),
+    ('9', 1632, InTerms, Just "GHC.Prim", "insertInt32X8#"),
+    ('9', 1633, InTerms, Just "GHC.PrimopWrappers", "insertInt32X8#"),
+    ('9', 1634, InTerms, Just "GHC.Prim", "insertInt64X4#"),
+    ('9', 1635, InTerms, Just "GHC.PrimopWrappers", "insertInt64X4#"),
+    ('9', 1636, InTerms, Just "GHC.Prim", "insertInt8X64#"),
+    ('9', 1637, InTerms, Just "GHC.PrimopWrappers", "insertInt8X64#"),
+    ('9', 1638, InTerms, Just "GHC.Prim", "insertInt16X32#"),
+    ('9', 1639, InTerms, Just "GHC.PrimopWrappers", "insertInt16X32#"),
+    ('9', 1640, InTerms, Just "GHC.Prim", "insertInt32X16#"),
+    ('9', 1641, InTerms, Just "GHC.PrimopWrappers", "insertInt32X16#"),
+    ('9', 1642, InTerms, Just "GHC.Prim", "insertInt64X8#"),
+    ('9', 1643, InTerms, Just "GHC.PrimopWrappers", "insertInt64X8#"),
+    ('9', 1644, InTerms, Just "GHC.Prim", "insertWord8X16#"),
+    ('9', 1645, InTerms, Just "GHC.PrimopWrappers", "insertWord8X16#"),
+    ('9', 1646, InTerms, Just "GHC.Prim", "insertWord16X8#"),
+    ('9', 1647, InTerms, Just "GHC.PrimopWrappers", "insertWord16X8#"),
+    ('9', 1648, InTerms, Just "GHC.Prim", "insertWord32X4#"),
+    ('9', 1649, InTerms, Just "GHC.PrimopWrappers", "insertWord32X4#"),
+    ('9', 1650, InTerms, Just "GHC.Prim", "insertWord64X2#"),
+    ('9', 1651, InTerms, Just "GHC.PrimopWrappers", "insertWord64X2#"),
+    ('9', 1652, InTerms, Just "GHC.Prim", "insertWord8X32#"),
+    ('9', 1653, InTerms, Just "GHC.PrimopWrappers", "insertWord8X32#"),
+    ('9', 1654, InTerms, Just "GHC.Prim", "insertWord16X16#"),
+    ('9', 1655, InTerms, Just "GHC.PrimopWrappers", "insertWord16X16#"),
+    ('9', 1656, InTerms, Just "GHC.Prim", "insertWord32X8#"),
+    ('9', 1657, InTerms, Just "GHC.PrimopWrappers", "insertWord32X8#"),
+    ('9', 1658, InTerms, Just "GHC.Prim", "insertWord64X4#"),
+    ('9', 1659, InTerms, Just "GHC.PrimopWrappers", "insertWord64X4#"),
+    ('9', 1660, InTerms, Just "GHC.Prim", "insertWord8X64#"),
+    ('9', 1661, InTerms, Just "GHC.PrimopWrappers", "insertWord8X64#"),
+    ('9', 1662, InTerms, Just "GHC.Prim", "insertWord16X32#"),
+    ('9', 1663, InTerms, Just "GHC.PrimopWrappers", "insertWord16X32#"),
+    ('9', 1664, InTerms, Just "GHC.Prim", "insertWord32X16#"),
+    ('9', 1665, InTerms, Just "GHC.PrimopWrappers", "insertWord32X16#"),
+    ('9', 1666, InTerms, Just "GHC.Prim", "insertWord64X8#"),
+    ('9', 1667, InTerms, Just "GHC.PrimopWrappers", "insertWord64X8#"),
+    ('9', 1668, InTerms, Just "GHC.Prim", "insertFloatX4#"),
+    ('9', 1669, InTerms, Just "GHC.PrimopWrappers", "insertFloatX4#"),
+    ('9', 1670, InTerms, Just "GHC.Prim", "insertDoubleX2#"),
+    ('9', 1671, InTerms, Just "GHC.PrimopWrappers", "insertDoubleX2#"),
+    ('9', 1672, InTerms, Just "GHC.Prim", "insertFloatX8#"),
+    ('9', 1673, InTerms, Just "GHC.PrimopWrappers", "insertFloatX8#"),
+    ('9', 1674, InTerms, Just "GHC.Prim", "insertDoubleX4#"),
+    ('9', 1675, InTerms, Just "GHC.PrimopWrappers", "insertDoubleX4#"),
+    ('9', 1676, InTerms, Just "GHC.Prim", "insertFloatX16#"),
+    ('9', 1677, InTerms, Just "GHC.PrimopWrappers", "insertFloatX16#"),
+    ('9', 1678, InTerms, Just "GHC.Prim", "insertDoubleX8#"),
+    ('9', 1679, InTerms, Just "GHC.PrimopWrappers", "insertDoubleX8#"),
+    ('9', 1680, InTerms, Just "GHC.Prim", "plusInt8X16#"),
+    ('9', 1681, InTerms, Just "GHC.PrimopWrappers", "plusInt8X16#"),
+    ('9', 1682, InTerms, Just "GHC.Prim", "plusInt16X8#"),
+    ('9', 1683, InTerms, Just "GHC.PrimopWrappers", "plusInt16X8#"),
+    ('9', 1684, InTerms, Just "GHC.Prim", "plusInt32X4#"),
+    ('9', 1685, InTerms, Just "GHC.PrimopWrappers", "plusInt32X4#"),
+    ('9', 1686, InTerms, Just "GHC.Prim", "plusInt64X2#"),
+    ('9', 1687, InTerms, Just "GHC.PrimopWrappers", "plusInt64X2#"),
+    ('9', 1688, InTerms, Just "GHC.Prim", "plusInt8X32#"),
+    ('9', 1689, InTerms, Just "GHC.PrimopWrappers", "plusInt8X32#"),
+    ('9', 1690, InTerms, Just "GHC.Prim", "plusInt16X16#"),
+    ('9', 1691, InTerms, Just "GHC.PrimopWrappers", "plusInt16X16#"),
+    ('9', 1692, InTerms, Just "GHC.Prim", "plusInt32X8#"),
+    ('9', 1693, InTerms, Just "GHC.PrimopWrappers", "plusInt32X8#"),
+    ('9', 1694, InTerms, Just "GHC.Prim", "plusInt64X4#"),
+    ('9', 1695, InTerms, Just "GHC.PrimopWrappers", "plusInt64X4#"),
+    ('9', 1696, InTerms, Just "GHC.Prim", "plusInt8X64#"),
+    ('9', 1697, InTerms, Just "GHC.PrimopWrappers", "plusInt8X64#"),
+    ('9', 1698, InTerms, Just "GHC.Prim", "plusInt16X32#"),
+    ('9', 1699, InTerms, Just "GHC.PrimopWrappers", "plusInt16X32#"),
+    ('9', 1700, InTerms, Just "GHC.Prim", "plusInt32X16#"),
+    ('9', 1701, InTerms, Just "GHC.PrimopWrappers", "plusInt32X16#"),
+    ('9', 1702, InTerms, Just "GHC.Prim", "plusInt64X8#"),
+    ('9', 1703, InTerms, Just "GHC.PrimopWrappers", "plusInt64X8#"),
+    ('9', 1704, InTerms, Just "GHC.Prim", "plusWord8X16#"),
+    ('9', 1705, InTerms, Just "GHC.PrimopWrappers", "plusWord8X16#"),
+    ('9', 1706, InTerms, Just "GHC.Prim", "plusWord16X8#"),
+    ('9', 1707, InTerms, Just "GHC.PrimopWrappers", "plusWord16X8#"),
+    ('9', 1708, InTerms, Just "GHC.Prim", "plusWord32X4#"),
+    ('9', 1709, InTerms, Just "GHC.PrimopWrappers", "plusWord32X4#"),
+    ('9', 1710, InTerms, Just "GHC.Prim", "plusWord64X2#"),
+    ('9', 1711, InTerms, Just "GHC.PrimopWrappers", "plusWord64X2#"),
+    ('9', 1712, InTerms, Just "GHC.Prim", "plusWord8X32#"),
+    ('9', 1713, InTerms, Just "GHC.PrimopWrappers", "plusWord8X32#"),
+    ('9', 1714, InTerms, Just "GHC.Prim", "plusWord16X16#"),
+    ('9', 1715, InTerms, Just "GHC.PrimopWrappers", "plusWord16X16#"),
+    ('9', 1716, InTerms, Just "GHC.Prim", "plusWord32X8#"),
+    ('9', 1717, InTerms, Just "GHC.PrimopWrappers", "plusWord32X8#"),
+    ('9', 1718, InTerms, Just "GHC.Prim", "plusWord64X4#"),
+    ('9', 1719, InTerms, Just "GHC.PrimopWrappers", "plusWord64X4#"),
+    ('9', 1720, InTerms, Just "GHC.Prim", "plusWord8X64#"),
+    ('9', 1721, InTerms, Just "GHC.PrimopWrappers", "plusWord8X64#"),
+    ('9', 1722, InTerms, Just "GHC.Prim", "plusWord16X32#"),
+    ('9', 1723, InTerms, Just "GHC.PrimopWrappers", "plusWord16X32#"),
+    ('9', 1724, InTerms, Just "GHC.Prim", "plusWord32X16#"),
+    ('9', 1725, InTerms, Just "GHC.PrimopWrappers", "plusWord32X16#"),
+    ('9', 1726, InTerms, Just "GHC.Prim", "plusWord64X8#"),
+    ('9', 1727, InTerms, Just "GHC.PrimopWrappers", "plusWord64X8#"),
+    ('9', 1728, InTerms, Just "GHC.Prim", "plusFloatX4#"),
+    ('9', 1729, InTerms, Just "GHC.PrimopWrappers", "plusFloatX4#"),
+    ('9', 1730, InTerms, Just "GHC.Prim", "plusDoubleX2#"),
+    ('9', 1731, InTerms, Just "GHC.PrimopWrappers", "plusDoubleX2#"),
+    ('9', 1732, InTerms, Just "GHC.Prim", "plusFloatX8#"),
+    ('9', 1733, InTerms, Just "GHC.PrimopWrappers", "plusFloatX8#"),
+    ('9', 1734, InTerms, Just "GHC.Prim", "plusDoubleX4#"),
+    ('9', 1735, InTerms, Just "GHC.PrimopWrappers", "plusDoubleX4#"),
+    ('9', 1736, InTerms, Just "GHC.Prim", "plusFloatX16#"),
+    ('9', 1737, InTerms, Just "GHC.PrimopWrappers", "plusFloatX16#"),
+    ('9', 1738, InTerms, Just "GHC.Prim", "plusDoubleX8#"),
+    ('9', 1739, InTerms, Just "GHC.PrimopWrappers", "plusDoubleX8#"),
+    ('9', 1740, InTerms, Just "GHC.Prim", "minusInt8X16#"),
+    ('9', 1741, InTerms, Just "GHC.PrimopWrappers", "minusInt8X16#"),
+    ('9', 1742, InTerms, Just "GHC.Prim", "minusInt16X8#"),
+    ('9', 1743, InTerms, Just "GHC.PrimopWrappers", "minusInt16X8#"),
+    ('9', 1744, InTerms, Just "GHC.Prim", "minusInt32X4#"),
+    ('9', 1745, InTerms, Just "GHC.PrimopWrappers", "minusInt32X4#"),
+    ('9', 1746, InTerms, Just "GHC.Prim", "minusInt64X2#"),
+    ('9', 1747, InTerms, Just "GHC.PrimopWrappers", "minusInt64X2#"),
+    ('9', 1748, InTerms, Just "GHC.Prim", "minusInt8X32#"),
+    ('9', 1749, InTerms, Just "GHC.PrimopWrappers", "minusInt8X32#"),
+    ('9', 1750, InTerms, Just "GHC.Prim", "minusInt16X16#"),
+    ('9', 1751, InTerms, Just "GHC.PrimopWrappers", "minusInt16X16#"),
+    ('9', 1752, InTerms, Just "GHC.Prim", "minusInt32X8#"),
+    ('9', 1753, InTerms, Just "GHC.PrimopWrappers", "minusInt32X8#"),
+    ('9', 1754, InTerms, Just "GHC.Prim", "minusInt64X4#"),
+    ('9', 1755, InTerms, Just "GHC.PrimopWrappers", "minusInt64X4#"),
+    ('9', 1756, InTerms, Just "GHC.Prim", "minusInt8X64#"),
+    ('9', 1757, InTerms, Just "GHC.PrimopWrappers", "minusInt8X64#"),
+    ('9', 1758, InTerms, Just "GHC.Prim", "minusInt16X32#"),
+    ('9', 1759, InTerms, Just "GHC.PrimopWrappers", "minusInt16X32#"),
+    ('9', 1760, InTerms, Just "GHC.Prim", "minusInt32X16#"),
+    ('9', 1761, InTerms, Just "GHC.PrimopWrappers", "minusInt32X16#"),
+    ('9', 1762, InTerms, Just "GHC.Prim", "minusInt64X8#"),
+    ('9', 1763, InTerms, Just "GHC.PrimopWrappers", "minusInt64X8#"),
+    ('9', 1764, InTerms, Just "GHC.Prim", "minusWord8X16#"),
+    ('9', 1765, InTerms, Just "GHC.PrimopWrappers", "minusWord8X16#"),
+    ('9', 1766, InTerms, Just "GHC.Prim", "minusWord16X8#"),
+    ('9', 1767, InTerms, Just "GHC.PrimopWrappers", "minusWord16X8#"),
+    ('9', 1768, InTerms, Just "GHC.Prim", "minusWord32X4#"),
+    ('9', 1769, InTerms, Just "GHC.PrimopWrappers", "minusWord32X4#"),
+    ('9', 1770, InTerms, Just "GHC.Prim", "minusWord64X2#"),
+    ('9', 1771, InTerms, Just "GHC.PrimopWrappers", "minusWord64X2#"),
+    ('9', 1772, InTerms, Just "GHC.Prim", "minusWord8X32#"),
+    ('9', 1773, InTerms, Just "GHC.PrimopWrappers", "minusWord8X32#"),
+    ('9', 1774, InTerms, Just "GHC.Prim", "minusWord16X16#"),
+    ('9', 1775, InTerms, Just "GHC.PrimopWrappers", "minusWord16X16#"),
+    ('9', 1776, InTerms, Just "GHC.Prim", "minusWord32X8#"),
+    ('9', 1777, InTerms, Just "GHC.PrimopWrappers", "minusWord32X8#"),
+    ('9', 1778, InTerms, Just "GHC.Prim", "minusWord64X4#"),
+    ('9', 1779, InTerms, Just "GHC.PrimopWrappers", "minusWord64X4#"),
+    ('9', 1780, InTerms, Just "GHC.Prim", "minusWord8X64#"),
+    ('9', 1781, InTerms, Just "GHC.PrimopWrappers", "minusWord8X64#"),
+    ('9', 1782, InTerms, Just "GHC.Prim", "minusWord16X32#"),
+    ('9', 1783, InTerms, Just "GHC.PrimopWrappers", "minusWord16X32#"),
+    ('9', 1784, InTerms, Just "GHC.Prim", "minusWord32X16#"),
+    ('9', 1785, InTerms, Just "GHC.PrimopWrappers", "minusWord32X16#"),
+    ('9', 1786, InTerms, Just "GHC.Prim", "minusWord64X8#"),
+    ('9', 1787, InTerms, Just "GHC.PrimopWrappers", "minusWord64X8#"),
+    ('9', 1788, InTerms, Just "GHC.Prim", "minusFloatX4#"),
+    ('9', 1789, InTerms, Just "GHC.PrimopWrappers", "minusFloatX4#"),
+    ('9', 1790, InTerms, Just "GHC.Prim", "minusDoubleX2#"),
+    ('9', 1791, InTerms, Just "GHC.PrimopWrappers", "minusDoubleX2#"),
+    ('9', 1792, InTerms, Just "GHC.Prim", "minusFloatX8#"),
+    ('9', 1793, InTerms, Just "GHC.PrimopWrappers", "minusFloatX8#"),
+    ('9', 1794, InTerms, Just "GHC.Prim", "minusDoubleX4#"),
+    ('9', 1795, InTerms, Just "GHC.PrimopWrappers", "minusDoubleX4#"),
+    ('9', 1796, InTerms, Just "GHC.Prim", "minusFloatX16#"),
+    ('9', 1797, InTerms, Just "GHC.PrimopWrappers", "minusFloatX16#"),
+    ('9', 1798, InTerms, Just "GHC.Prim", "minusDoubleX8#"),
+    ('9', 1799, InTerms, Just "GHC.PrimopWrappers", "minusDoubleX8#"),
+    ('9', 1800, InTerms, Just "GHC.Prim", "timesInt8X16#"),
+    ('9', 1801, InTerms, Just "GHC.PrimopWrappers", "timesInt8X16#"),
+    ('9', 1802, InTerms, Just "GHC.Prim", "timesInt16X8#"),
+    ('9', 1803, InTerms, Just "GHC.PrimopWrappers", "timesInt16X8#"),
+    ('9', 1804, InTerms, Just "GHC.Prim", "timesInt32X4#"),
+    ('9', 1805, InTerms, Just "GHC.PrimopWrappers", "timesInt32X4#"),
+    ('9', 1806, InTerms, Just "GHC.Prim", "timesInt64X2#"),
+    ('9', 1807, InTerms, Just "GHC.PrimopWrappers", "timesInt64X2#"),
+    ('9', 1808, InTerms, Just "GHC.Prim", "timesInt8X32#"),
+    ('9', 1809, InTerms, Just "GHC.PrimopWrappers", "timesInt8X32#"),
+    ('9', 1810, InTerms, Just "GHC.Prim", "timesInt16X16#"),
+    ('9', 1811, InTerms, Just "GHC.PrimopWrappers", "timesInt16X16#"),
+    ('9', 1812, InTerms, Just "GHC.Prim", "timesInt32X8#"),
+    ('9', 1813, InTerms, Just "GHC.PrimopWrappers", "timesInt32X8#"),
+    ('9', 1814, InTerms, Just "GHC.Prim", "timesInt64X4#"),
+    ('9', 1815, InTerms, Just "GHC.PrimopWrappers", "timesInt64X4#"),
+    ('9', 1816, InTerms, Just "GHC.Prim", "timesInt8X64#"),
+    ('9', 1817, InTerms, Just "GHC.PrimopWrappers", "timesInt8X64#"),
+    ('9', 1818, InTerms, Just "GHC.Prim", "timesInt16X32#"),
+    ('9', 1819, InTerms, Just "GHC.PrimopWrappers", "timesInt16X32#"),
+    ('9', 1820, InTerms, Just "GHC.Prim", "timesInt32X16#"),
+    ('9', 1821, InTerms, Just "GHC.PrimopWrappers", "timesInt32X16#"),
+    ('9', 1822, InTerms, Just "GHC.Prim", "timesInt64X8#"),
+    ('9', 1823, InTerms, Just "GHC.PrimopWrappers", "timesInt64X8#"),
+    ('9', 1824, InTerms, Just "GHC.Prim", "timesWord8X16#"),
+    ('9', 1825, InTerms, Just "GHC.PrimopWrappers", "timesWord8X16#"),
+    ('9', 1826, InTerms, Just "GHC.Prim", "timesWord16X8#"),
+    ('9', 1827, InTerms, Just "GHC.PrimopWrappers", "timesWord16X8#"),
+    ('9', 1828, InTerms, Just "GHC.Prim", "timesWord32X4#"),
+    ('9', 1829, InTerms, Just "GHC.PrimopWrappers", "timesWord32X4#"),
+    ('9', 1830, InTerms, Just "GHC.Prim", "timesWord64X2#"),
+    ('9', 1831, InTerms, Just "GHC.PrimopWrappers", "timesWord64X2#"),
+    ('9', 1832, InTerms, Just "GHC.Prim", "timesWord8X32#"),
+    ('9', 1833, InTerms, Just "GHC.PrimopWrappers", "timesWord8X32#"),
+    ('9', 1834, InTerms, Just "GHC.Prim", "timesWord16X16#"),
+    ('9', 1835, InTerms, Just "GHC.PrimopWrappers", "timesWord16X16#"),
+    ('9', 1836, InTerms, Just "GHC.Prim", "timesWord32X8#"),
+    ('9', 1837, InTerms, Just "GHC.PrimopWrappers", "timesWord32X8#"),
+    ('9', 1838, InTerms, Just "GHC.Prim", "timesWord64X4#"),
+    ('9', 1839, InTerms, Just "GHC.PrimopWrappers", "timesWord64X4#"),
+    ('9', 1840, InTerms, Just "GHC.Prim", "timesWord8X64#"),
+    ('9', 1841, InTerms, Just "GHC.PrimopWrappers", "timesWord8X64#"),
+    ('9', 1842, InTerms, Just "GHC.Prim", "timesWord16X32#"),
+    ('9', 1843, InTerms, Just "GHC.PrimopWrappers", "timesWord16X32#"),
+    ('9', 1844, InTerms, Just "GHC.Prim", "timesWord32X16#"),
+    ('9', 1845, InTerms, Just "GHC.PrimopWrappers", "timesWord32X16#"),
+    ('9', 1846, InTerms, Just "GHC.Prim", "timesWord64X8#"),
+    ('9', 1847, InTerms, Just "GHC.PrimopWrappers", "timesWord64X8#"),
+    ('9', 1848, InTerms, Just "GHC.Prim", "timesFloatX4#"),
+    ('9', 1849, InTerms, Just "GHC.PrimopWrappers", "timesFloatX4#"),
+    ('9', 1850, InTerms, Just "GHC.Prim", "timesDoubleX2#"),
+    ('9', 1851, InTerms, Just "GHC.PrimopWrappers", "timesDoubleX2#"),
+    ('9', 1852, InTerms, Just "GHC.Prim", "timesFloatX8#"),
+    ('9', 1853, InTerms, Just "GHC.PrimopWrappers", "timesFloatX8#"),
+    ('9', 1854, InTerms, Just "GHC.Prim", "timesDoubleX4#"),
+    ('9', 1855, InTerms, Just "GHC.PrimopWrappers", "timesDoubleX4#"),
+    ('9', 1856, InTerms, Just "GHC.Prim", "timesFloatX16#"),
+    ('9', 1857, InTerms, Just "GHC.PrimopWrappers", "timesFloatX16#"),
+    ('9', 1858, InTerms, Just "GHC.Prim", "timesDoubleX8#"),
+    ('9', 1859, InTerms, Just "GHC.PrimopWrappers", "timesDoubleX8#"),
+    ('9', 1860, InTerms, Just "GHC.Prim", "divideFloatX4#"),
+    ('9', 1861, InTerms, Just "GHC.PrimopWrappers", "divideFloatX4#"),
+    ('9', 1862, InTerms, Just "GHC.Prim", "divideDoubleX2#"),
+    ('9', 1863, InTerms, Just "GHC.PrimopWrappers", "divideDoubleX2#"),
+    ('9', 1864, InTerms, Just "GHC.Prim", "divideFloatX8#"),
+    ('9', 1865, InTerms, Just "GHC.PrimopWrappers", "divideFloatX8#"),
+    ('9', 1866, InTerms, Just "GHC.Prim", "divideDoubleX4#"),
+    ('9', 1867, InTerms, Just "GHC.PrimopWrappers", "divideDoubleX4#"),
+    ('9', 1868, InTerms, Just "GHC.Prim", "divideFloatX16#"),
+    ('9', 1869, InTerms, Just "GHC.PrimopWrappers", "divideFloatX16#"),
+    ('9', 1870, InTerms, Just "GHC.Prim", "divideDoubleX8#"),
+    ('9', 1871, InTerms, Just "GHC.PrimopWrappers", "divideDoubleX8#"),
+    ('9', 1872, InTerms, Just "GHC.Prim", "quotInt8X16#"),
+    ('9', 1873, InTerms, Just "GHC.PrimopWrappers", "quotInt8X16#"),
+    ('9', 1874, InTerms, Just "GHC.Prim", "quotInt16X8#"),
+    ('9', 1875, InTerms, Just "GHC.PrimopWrappers", "quotInt16X8#"),
+    ('9', 1876, InTerms, Just "GHC.Prim", "quotInt32X4#"),
+    ('9', 1877, InTerms, Just "GHC.PrimopWrappers", "quotInt32X4#"),
+    ('9', 1878, InTerms, Just "GHC.Prim", "quotInt64X2#"),
+    ('9', 1879, InTerms, Just "GHC.PrimopWrappers", "quotInt64X2#"),
+    ('9', 1880, InTerms, Just "GHC.Prim", "quotInt8X32#"),
+    ('9', 1881, InTerms, Just "GHC.PrimopWrappers", "quotInt8X32#"),
+    ('9', 1882, InTerms, Just "GHC.Prim", "quotInt16X16#"),
+    ('9', 1883, InTerms, Just "GHC.PrimopWrappers", "quotInt16X16#"),
+    ('9', 1884, InTerms, Just "GHC.Prim", "quotInt32X8#"),
+    ('9', 1885, InTerms, Just "GHC.PrimopWrappers", "quotInt32X8#"),
+    ('9', 1886, InTerms, Just "GHC.Prim", "quotInt64X4#"),
+    ('9', 1887, InTerms, Just "GHC.PrimopWrappers", "quotInt64X4#"),
+    ('9', 1888, InTerms, Just "GHC.Prim", "quotInt8X64#"),
+    ('9', 1889, InTerms, Just "GHC.PrimopWrappers", "quotInt8X64#"),
+    ('9', 1890, InTerms, Just "GHC.Prim", "quotInt16X32#"),
+    ('9', 1891, InTerms, Just "GHC.PrimopWrappers", "quotInt16X32#"),
+    ('9', 1892, InTerms, Just "GHC.Prim", "quotInt32X16#"),
+    ('9', 1893, InTerms, Just "GHC.PrimopWrappers", "quotInt32X16#"),
+    ('9', 1894, InTerms, Just "GHC.Prim", "quotInt64X8#"),
+    ('9', 1895, InTerms, Just "GHC.PrimopWrappers", "quotInt64X8#"),
+    ('9', 1896, InTerms, Just "GHC.Prim", "quotWord8X16#"),
+    ('9', 1897, InTerms, Just "GHC.PrimopWrappers", "quotWord8X16#"),
+    ('9', 1898, InTerms, Just "GHC.Prim", "quotWord16X8#"),
+    ('9', 1899, InTerms, Just "GHC.PrimopWrappers", "quotWord16X8#"),
+    ('9', 1900, InTerms, Just "GHC.Prim", "quotWord32X4#"),
+    ('9', 1901, InTerms, Just "GHC.PrimopWrappers", "quotWord32X4#"),
+    ('9', 1902, InTerms, Just "GHC.Prim", "quotWord64X2#"),
+    ('9', 1903, InTerms, Just "GHC.PrimopWrappers", "quotWord64X2#"),
+    ('9', 1904, InTerms, Just "GHC.Prim", "quotWord8X32#"),
+    ('9', 1905, InTerms, Just "GHC.PrimopWrappers", "quotWord8X32#"),
+    ('9', 1906, InTerms, Just "GHC.Prim", "quotWord16X16#"),
+    ('9', 1907, InTerms, Just "GHC.PrimopWrappers", "quotWord16X16#"),
+    ('9', 1908, InTerms, Just "GHC.Prim", "quotWord32X8#"),
+    ('9', 1909, InTerms, Just "GHC.PrimopWrappers", "quotWord32X8#"),
+    ('9', 1910, InTerms, Just "GHC.Prim", "quotWord64X4#"),
+    ('9', 1911, InTerms, Just "GHC.PrimopWrappers", "quotWord64X4#"),
+    ('9', 1912, InTerms, Just "GHC.Prim", "quotWord8X64#"),
+    ('9', 1913, InTerms, Just "GHC.PrimopWrappers", "quotWord8X64#"),
+    ('9', 1914, InTerms, Just "GHC.Prim", "quotWord16X32#"),
+    ('9', 1915, InTerms, Just "GHC.PrimopWrappers", "quotWord16X32#"),
+    ('9', 1916, InTerms, Just "GHC.Prim", "quotWord32X16#"),
+    ('9', 1917, InTerms, Just "GHC.PrimopWrappers", "quotWord32X16#"),
+    ('9', 1918, InTerms, Just "GHC.Prim", "quotWord64X8#"),
+    ('9', 1919, InTerms, Just "GHC.PrimopWrappers", "quotWord64X8#"),
+    ('9', 1920, InTerms, Just "GHC.Prim", "remInt8X16#"),
+    ('9', 1921, InTerms, Just "GHC.PrimopWrappers", "remInt8X16#"),
+    ('9', 1922, InTerms, Just "GHC.Prim", "remInt16X8#"),
+    ('9', 1923, InTerms, Just "GHC.PrimopWrappers", "remInt16X8#"),
+    ('9', 1924, InTerms, Just "GHC.Prim", "remInt32X4#"),
+    ('9', 1925, InTerms, Just "GHC.PrimopWrappers", "remInt32X4#"),
+    ('9', 1926, InTerms, Just "GHC.Prim", "remInt64X2#"),
+    ('9', 1927, InTerms, Just "GHC.PrimopWrappers", "remInt64X2#"),
+    ('9', 1928, InTerms, Just "GHC.Prim", "remInt8X32#"),
+    ('9', 1929, InTerms, Just "GHC.PrimopWrappers", "remInt8X32#"),
+    ('9', 1930, InTerms, Just "GHC.Prim", "remInt16X16#"),
+    ('9', 1931, InTerms, Just "GHC.PrimopWrappers", "remInt16X16#"),
+    ('9', 1932, InTerms, Just "GHC.Prim", "remInt32X8#"),
+    ('9', 1933, InTerms, Just "GHC.PrimopWrappers", "remInt32X8#"),
+    ('9', 1934, InTerms, Just "GHC.Prim", "remInt64X4#"),
+    ('9', 1935, InTerms, Just "GHC.PrimopWrappers", "remInt64X4#"),
+    ('9', 1936, InTerms, Just "GHC.Prim", "remInt8X64#"),
+    ('9', 1937, InTerms, Just "GHC.PrimopWrappers", "remInt8X64#"),
+    ('9', 1938, InTerms, Just "GHC.Prim", "remInt16X32#"),
+    ('9', 1939, InTerms, Just "GHC.PrimopWrappers", "remInt16X32#"),
+    ('9', 1940, InTerms, Just "GHC.Prim", "remInt32X16#"),
+    ('9', 1941, InTerms, Just "GHC.PrimopWrappers", "remInt32X16#"),
+    ('9', 1942, InTerms, Just "GHC.Prim", "remInt64X8#"),
+    ('9', 1943, InTerms, Just "GHC.PrimopWrappers", "remInt64X8#"),
+    ('9', 1944, InTerms, Just "GHC.Prim", "remWord8X16#"),
+    ('9', 1945, InTerms, Just "GHC.PrimopWrappers", "remWord8X16#"),
+    ('9', 1946, InTerms, Just "GHC.Prim", "remWord16X8#"),
+    ('9', 1947, InTerms, Just "GHC.PrimopWrappers", "remWord16X8#"),
+    ('9', 1948, InTerms, Just "GHC.Prim", "remWord32X4#"),
+    ('9', 1949, InTerms, Just "GHC.PrimopWrappers", "remWord32X4#"),
+    ('9', 1950, InTerms, Just "GHC.Prim", "remWord64X2#"),
+    ('9', 1951, InTerms, Just "GHC.PrimopWrappers", "remWord64X2#"),
+    ('9', 1952, InTerms, Just "GHC.Prim", "remWord8X32#"),
+    ('9', 1953, InTerms, Just "GHC.PrimopWrappers", "remWord8X32#"),
+    ('9', 1954, InTerms, Just "GHC.Prim", "remWord16X16#"),
+    ('9', 1955, InTerms, Just "GHC.PrimopWrappers", "remWord16X16#"),
+    ('9', 1956, InTerms, Just "GHC.Prim", "remWord32X8#"),
+    ('9', 1957, InTerms, Just "GHC.PrimopWrappers", "remWord32X8#"),
+    ('9', 1958, InTerms, Just "GHC.Prim", "remWord64X4#"),
+    ('9', 1959, InTerms, Just "GHC.PrimopWrappers", "remWord64X4#"),
+    ('9', 1960, InTerms, Just "GHC.Prim", "remWord8X64#"),
+    ('9', 1961, InTerms, Just "GHC.PrimopWrappers", "remWord8X64#"),
+    ('9', 1962, InTerms, Just "GHC.Prim", "remWord16X32#"),
+    ('9', 1963, InTerms, Just "GHC.PrimopWrappers", "remWord16X32#"),
+    ('9', 1964, InTerms, Just "GHC.Prim", "remWord32X16#"),
+    ('9', 1965, InTerms, Just "GHC.PrimopWrappers", "remWord32X16#"),
+    ('9', 1966, InTerms, Just "GHC.Prim", "remWord64X8#"),
+    ('9', 1967, InTerms, Just "GHC.PrimopWrappers", "remWord64X8#"),
+    ('9', 1968, InTerms, Just "GHC.Prim", "negateInt8X16#"),
+    ('9', 1969, InTerms, Just "GHC.PrimopWrappers", "negateInt8X16#"),
+    ('9', 1970, InTerms, Just "GHC.Prim", "negateInt16X8#"),
+    ('9', 1971, InTerms, Just "GHC.PrimopWrappers", "negateInt16X8#"),
+    ('9', 1972, InTerms, Just "GHC.Prim", "negateInt32X4#"),
+    ('9', 1973, InTerms, Just "GHC.PrimopWrappers", "negateInt32X4#"),
+    ('9', 1974, InTerms, Just "GHC.Prim", "negateInt64X2#"),
+    ('9', 1975, InTerms, Just "GHC.PrimopWrappers", "negateInt64X2#"),
+    ('9', 1976, InTerms, Just "GHC.Prim", "negateInt8X32#"),
+    ('9', 1977, InTerms, Just "GHC.PrimopWrappers", "negateInt8X32#"),
+    ('9', 1978, InTerms, Just "GHC.Prim", "negateInt16X16#"),
+    ('9', 1979, InTerms, Just "GHC.PrimopWrappers", "negateInt16X16#"),
+    ('9', 1980, InTerms, Just "GHC.Prim", "negateInt32X8#"),
+    ('9', 1981, InTerms, Just "GHC.PrimopWrappers", "negateInt32X8#"),
+    ('9', 1982, InTerms, Just "GHC.Prim", "negateInt64X4#"),
+    ('9', 1983, InTerms, Just "GHC.PrimopWrappers", "negateInt64X4#"),
+    ('9', 1984, InTerms, Just "GHC.Prim", "negateInt8X64#"),
+    ('9', 1985, InTerms, Just "GHC.PrimopWrappers", "negateInt8X64#"),
+    ('9', 1986, InTerms, Just "GHC.Prim", "negateInt16X32#"),
+    ('9', 1987, InTerms, Just "GHC.PrimopWrappers", "negateInt16X32#"),
+    ('9', 1988, InTerms, Just "GHC.Prim", "negateInt32X16#"),
+    ('9', 1989, InTerms, Just "GHC.PrimopWrappers", "negateInt32X16#"),
+    ('9', 1990, InTerms, Just "GHC.Prim", "negateInt64X8#"),
+    ('9', 1991, InTerms, Just "GHC.PrimopWrappers", "negateInt64X8#"),
+    ('9', 1992, InTerms, Just "GHC.Prim", "negateFloatX4#"),
+    ('9', 1993, InTerms, Just "GHC.PrimopWrappers", "negateFloatX4#"),
+    ('9', 1994, InTerms, Just "GHC.Prim", "negateDoubleX2#"),
+    ('9', 1995, InTerms, Just "GHC.PrimopWrappers", "negateDoubleX2#"),
+    ('9', 1996, InTerms, Just "GHC.Prim", "negateFloatX8#"),
+    ('9', 1997, InTerms, Just "GHC.PrimopWrappers", "negateFloatX8#"),
+    ('9', 1998, InTerms, Just "GHC.Prim", "negateDoubleX4#"),
+    ('9', 1999, InTerms, Just "GHC.PrimopWrappers", "negateDoubleX4#"),
+    ('9', 2000, InTerms, Just "GHC.Prim", "negateFloatX16#"),
+    ('9', 2001, InTerms, Just "GHC.PrimopWrappers", "negateFloatX16#"),
+    ('9', 2002, InTerms, Just "GHC.Prim", "negateDoubleX8#"),
+    ('9', 2003, InTerms, Just "GHC.PrimopWrappers", "negateDoubleX8#"),
+    ('9', 2004, InTerms, Just "GHC.Prim", "indexInt8X16Array#"),
+    ('9', 2005, InTerms, Just "GHC.PrimopWrappers", "indexInt8X16Array#"),
+    ('9', 2006, InTerms, Just "GHC.Prim", "indexInt16X8Array#"),
+    ('9', 2007, InTerms, Just "GHC.PrimopWrappers", "indexInt16X8Array#"),
+    ('9', 2008, InTerms, Just "GHC.Prim", "indexInt32X4Array#"),
+    ('9', 2009, InTerms, Just "GHC.PrimopWrappers", "indexInt32X4Array#"),
+    ('9', 2010, InTerms, Just "GHC.Prim", "indexInt64X2Array#"),
+    ('9', 2011, InTerms, Just "GHC.PrimopWrappers", "indexInt64X2Array#"),
+    ('9', 2012, InTerms, Just "GHC.Prim", "indexInt8X32Array#"),
+    ('9', 2013, InTerms, Just "GHC.PrimopWrappers", "indexInt8X32Array#"),
+    ('9', 2014, InTerms, Just "GHC.Prim", "indexInt16X16Array#"),
+    ('9', 2015, InTerms, Just "GHC.PrimopWrappers", "indexInt16X16Array#"),
+    ('9', 2016, InTerms, Just "GHC.Prim", "indexInt32X8Array#"),
+    ('9', 2017, InTerms, Just "GHC.PrimopWrappers", "indexInt32X8Array#"),
+    ('9', 2018, InTerms, Just "GHC.Prim", "indexInt64X4Array#"),
+    ('9', 2019, InTerms, Just "GHC.PrimopWrappers", "indexInt64X4Array#"),
+    ('9', 2020, InTerms, Just "GHC.Prim", "indexInt8X64Array#"),
+    ('9', 2021, InTerms, Just "GHC.PrimopWrappers", "indexInt8X64Array#"),
+    ('9', 2022, InTerms, Just "GHC.Prim", "indexInt16X32Array#"),
+    ('9', 2023, InTerms, Just "GHC.PrimopWrappers", "indexInt16X32Array#"),
+    ('9', 2024, InTerms, Just "GHC.Prim", "indexInt32X16Array#"),
+    ('9', 2025, InTerms, Just "GHC.PrimopWrappers", "indexInt32X16Array#"),
+    ('9', 2026, InTerms, Just "GHC.Prim", "indexInt64X8Array#"),
+    ('9', 2027, InTerms, Just "GHC.PrimopWrappers", "indexInt64X8Array#"),
+    ('9', 2028, InTerms, Just "GHC.Prim", "indexWord8X16Array#"),
+    ('9', 2029, InTerms, Just "GHC.PrimopWrappers", "indexWord8X16Array#"),
+    ('9', 2030, InTerms, Just "GHC.Prim", "indexWord16X8Array#"),
+    ('9', 2031, InTerms, Just "GHC.PrimopWrappers", "indexWord16X8Array#"),
+    ('9', 2032, InTerms, Just "GHC.Prim", "indexWord32X4Array#"),
+    ('9', 2033, InTerms, Just "GHC.PrimopWrappers", "indexWord32X4Array#"),
+    ('9', 2034, InTerms, Just "GHC.Prim", "indexWord64X2Array#"),
+    ('9', 2035, InTerms, Just "GHC.PrimopWrappers", "indexWord64X2Array#"),
+    ('9', 2036, InTerms, Just "GHC.Prim", "indexWord8X32Array#"),
+    ('9', 2037, InTerms, Just "GHC.PrimopWrappers", "indexWord8X32Array#"),
+    ('9', 2038, InTerms, Just "GHC.Prim", "indexWord16X16Array#"),
+    ('9', 2039, InTerms, Just "GHC.PrimopWrappers", "indexWord16X16Array#"),
+    ('9', 2040, InTerms, Just "GHC.Prim", "indexWord32X8Array#"),
+    ('9', 2041, InTerms, Just "GHC.PrimopWrappers", "indexWord32X8Array#"),
+    ('9', 2042, InTerms, Just "GHC.Prim", "indexWord64X4Array#"),
+    ('9', 2043, InTerms, Just "GHC.PrimopWrappers", "indexWord64X4Array#"),
+    ('9', 2044, InTerms, Just "GHC.Prim", "indexWord8X64Array#"),
+    ('9', 2045, InTerms, Just "GHC.PrimopWrappers", "indexWord8X64Array#"),
+    ('9', 2046, InTerms, Just "GHC.Prim", "indexWord16X32Array#"),
+    ('9', 2047, InTerms, Just "GHC.PrimopWrappers", "indexWord16X32Array#"),
+    ('9', 2048, InTerms, Just "GHC.Prim", "indexWord32X16Array#"),
+    ('9', 2049, InTerms, Just "GHC.PrimopWrappers", "indexWord32X16Array#"),
+    ('9', 2050, InTerms, Just "GHC.Prim", "indexWord64X8Array#"),
+    ('9', 2051, InTerms, Just "GHC.PrimopWrappers", "indexWord64X8Array#"),
+    ('9', 2052, InTerms, Just "GHC.Prim", "indexFloatX4Array#"),
+    ('9', 2053, InTerms, Just "GHC.PrimopWrappers", "indexFloatX4Array#"),
+    ('9', 2054, InTerms, Just "GHC.Prim", "indexDoubleX2Array#"),
+    ('9', 2055, InTerms, Just "GHC.PrimopWrappers", "indexDoubleX2Array#"),
+    ('9', 2056, InTerms, Just "GHC.Prim", "indexFloatX8Array#"),
+    ('9', 2057, InTerms, Just "GHC.PrimopWrappers", "indexFloatX8Array#"),
+    ('9', 2058, InTerms, Just "GHC.Prim", "indexDoubleX4Array#"),
+    ('9', 2059, InTerms, Just "GHC.PrimopWrappers", "indexDoubleX4Array#"),
+    ('9', 2060, InTerms, Just "GHC.Prim", "indexFloatX16Array#"),
+    ('9', 2061, InTerms, Just "GHC.PrimopWrappers", "indexFloatX16Array#"),
+    ('9', 2062, InTerms, Just "GHC.Prim", "indexDoubleX8Array#"),
+    ('9', 2063, InTerms, Just "GHC.PrimopWrappers", "indexDoubleX8Array#"),
+    ('9', 2064, InTerms, Just "GHC.Prim", "readInt8X16Array#"),
+    ('9', 2065, InTerms, Just "GHC.PrimopWrappers", "readInt8X16Array#"),
+    ('9', 2066, InTerms, Just "GHC.Prim", "readInt16X8Array#"),
+    ('9', 2067, InTerms, Just "GHC.PrimopWrappers", "readInt16X8Array#"),
+    ('9', 2068, InTerms, Just "GHC.Prim", "readInt32X4Array#"),
+    ('9', 2069, InTerms, Just "GHC.PrimopWrappers", "readInt32X4Array#"),
+    ('9', 2070, InTerms, Just "GHC.Prim", "readInt64X2Array#"),
+    ('9', 2071, InTerms, Just "GHC.PrimopWrappers", "readInt64X2Array#"),
+    ('9', 2072, InTerms, Just "GHC.Prim", "readInt8X32Array#"),
+    ('9', 2073, InTerms, Just "GHC.PrimopWrappers", "readInt8X32Array#"),
+    ('9', 2074, InTerms, Just "GHC.Prim", "readInt16X16Array#"),
+    ('9', 2075, InTerms, Just "GHC.PrimopWrappers", "readInt16X16Array#"),
+    ('9', 2076, InTerms, Just "GHC.Prim", "readInt32X8Array#"),
+    ('9', 2077, InTerms, Just "GHC.PrimopWrappers", "readInt32X8Array#"),
+    ('9', 2078, InTerms, Just "GHC.Prim", "readInt64X4Array#"),
+    ('9', 2079, InTerms, Just "GHC.PrimopWrappers", "readInt64X4Array#"),
+    ('9', 2080, InTerms, Just "GHC.Prim", "readInt8X64Array#"),
+    ('9', 2081, InTerms, Just "GHC.PrimopWrappers", "readInt8X64Array#"),
+    ('9', 2082, InTerms, Just "GHC.Prim", "readInt16X32Array#"),
+    ('9', 2083, InTerms, Just "GHC.PrimopWrappers", "readInt16X32Array#"),
+    ('9', 2084, InTerms, Just "GHC.Prim", "readInt32X16Array#"),
+    ('9', 2085, InTerms, Just "GHC.PrimopWrappers", "readInt32X16Array#"),
+    ('9', 2086, InTerms, Just "GHC.Prim", "readInt64X8Array#"),
+    ('9', 2087, InTerms, Just "GHC.PrimopWrappers", "readInt64X8Array#"),
+    ('9', 2088, InTerms, Just "GHC.Prim", "readWord8X16Array#"),
+    ('9', 2089, InTerms, Just "GHC.PrimopWrappers", "readWord8X16Array#"),
+    ('9', 2090, InTerms, Just "GHC.Prim", "readWord16X8Array#"),
+    ('9', 2091, InTerms, Just "GHC.PrimopWrappers", "readWord16X8Array#"),
+    ('9', 2092, InTerms, Just "GHC.Prim", "readWord32X4Array#"),
+    ('9', 2093, InTerms, Just "GHC.PrimopWrappers", "readWord32X4Array#"),
+    ('9', 2094, InTerms, Just "GHC.Prim", "readWord64X2Array#"),
+    ('9', 2095, InTerms, Just "GHC.PrimopWrappers", "readWord64X2Array#"),
+    ('9', 2096, InTerms, Just "GHC.Prim", "readWord8X32Array#"),
+    ('9', 2097, InTerms, Just "GHC.PrimopWrappers", "readWord8X32Array#"),
+    ('9', 2098, InTerms, Just "GHC.Prim", "readWord16X16Array#"),
+    ('9', 2099, InTerms, Just "GHC.PrimopWrappers", "readWord16X16Array#"),
+    ('9', 2100, InTerms, Just "GHC.Prim", "readWord32X8Array#"),
+    ('9', 2101, InTerms, Just "GHC.PrimopWrappers", "readWord32X8Array#"),
+    ('9', 2102, InTerms, Just "GHC.Prim", "readWord64X4Array#"),
+    ('9', 2103, InTerms, Just "GHC.PrimopWrappers", "readWord64X4Array#"),
+    ('9', 2104, InTerms, Just "GHC.Prim", "readWord8X64Array#"),
+    ('9', 2105, InTerms, Just "GHC.PrimopWrappers", "readWord8X64Array#"),
+    ('9', 2106, InTerms, Just "GHC.Prim", "readWord16X32Array#"),
+    ('9', 2107, InTerms, Just "GHC.PrimopWrappers", "readWord16X32Array#"),
+    ('9', 2108, InTerms, Just "GHC.Prim", "readWord32X16Array#"),
+    ('9', 2109, InTerms, Just "GHC.PrimopWrappers", "readWord32X16Array#"),
+    ('9', 2110, InTerms, Just "GHC.Prim", "readWord64X8Array#"),
+    ('9', 2111, InTerms, Just "GHC.PrimopWrappers", "readWord64X8Array#"),
+    ('9', 2112, InTerms, Just "GHC.Prim", "readFloatX4Array#"),
+    ('9', 2113, InTerms, Just "GHC.PrimopWrappers", "readFloatX4Array#"),
+    ('9', 2114, InTerms, Just "GHC.Prim", "readDoubleX2Array#"),
+    ('9', 2115, InTerms, Just "GHC.PrimopWrappers", "readDoubleX2Array#"),
+    ('9', 2116, InTerms, Just "GHC.Prim", "readFloatX8Array#"),
+    ('9', 2117, InTerms, Just "GHC.PrimopWrappers", "readFloatX8Array#"),
+    ('9', 2118, InTerms, Just "GHC.Prim", "readDoubleX4Array#"),
+    ('9', 2119, InTerms, Just "GHC.PrimopWrappers", "readDoubleX4Array#"),
+    ('9', 2120, InTerms, Just "GHC.Prim", "readFloatX16Array#"),
+    ('9', 2121, InTerms, Just "GHC.PrimopWrappers", "readFloatX16Array#"),
+    ('9', 2122, InTerms, Just "GHC.Prim", "readDoubleX8Array#"),
+    ('9', 2123, InTerms, Just "GHC.PrimopWrappers", "readDoubleX8Array#"),
+    ('9', 2124, InTerms, Just "GHC.Prim", "writeInt8X16Array#"),
+    ('9', 2125, InTerms, Just "GHC.PrimopWrappers", "writeInt8X16Array#"),
+    ('9', 2126, InTerms, Just "GHC.Prim", "writeInt16X8Array#"),
+    ('9', 2127, InTerms, Just "GHC.PrimopWrappers", "writeInt16X8Array#"),
+    ('9', 2128, InTerms, Just "GHC.Prim", "writeInt32X4Array#"),
+    ('9', 2129, InTerms, Just "GHC.PrimopWrappers", "writeInt32X4Array#"),
+    ('9', 2130, InTerms, Just "GHC.Prim", "writeInt64X2Array#"),
+    ('9', 2131, InTerms, Just "GHC.PrimopWrappers", "writeInt64X2Array#"),
+    ('9', 2132, InTerms, Just "GHC.Prim", "writeInt8X32Array#"),
+    ('9', 2133, InTerms, Just "GHC.PrimopWrappers", "writeInt8X32Array#"),
+    ('9', 2134, InTerms, Just "GHC.Prim", "writeInt16X16Array#"),
+    ('9', 2135, InTerms, Just "GHC.PrimopWrappers", "writeInt16X16Array#"),
+    ('9', 2136, InTerms, Just "GHC.Prim", "writeInt32X8Array#"),
+    ('9', 2137, InTerms, Just "GHC.PrimopWrappers", "writeInt32X8Array#"),
+    ('9', 2138, InTerms, Just "GHC.Prim", "writeInt64X4Array#"),
+    ('9', 2139, InTerms, Just "GHC.PrimopWrappers", "writeInt64X4Array#"),
+    ('9', 2140, InTerms, Just "GHC.Prim", "writeInt8X64Array#"),
+    ('9', 2141, InTerms, Just "GHC.PrimopWrappers", "writeInt8X64Array#"),
+    ('9', 2142, InTerms, Just "GHC.Prim", "writeInt16X32Array#"),
+    ('9', 2143, InTerms, Just "GHC.PrimopWrappers", "writeInt16X32Array#"),
+    ('9', 2144, InTerms, Just "GHC.Prim", "writeInt32X16Array#"),
+    ('9', 2145, InTerms, Just "GHC.PrimopWrappers", "writeInt32X16Array#"),
+    ('9', 2146, InTerms, Just "GHC.Prim", "writeInt64X8Array#"),
+    ('9', 2147, InTerms, Just "GHC.PrimopWrappers", "writeInt64X8Array#"),
+    ('9', 2148, InTerms, Just "GHC.Prim", "writeWord8X16Array#"),
+    ('9', 2149, InTerms, Just "GHC.PrimopWrappers", "writeWord8X16Array#"),
+    ('9', 2150, InTerms, Just "GHC.Prim", "writeWord16X8Array#"),
+    ('9', 2151, InTerms, Just "GHC.PrimopWrappers", "writeWord16X8Array#"),
+    ('9', 2152, InTerms, Just "GHC.Prim", "writeWord32X4Array#"),
+    ('9', 2153, InTerms, Just "GHC.PrimopWrappers", "writeWord32X4Array#"),
+    ('9', 2154, InTerms, Just "GHC.Prim", "writeWord64X2Array#"),
+    ('9', 2155, InTerms, Just "GHC.PrimopWrappers", "writeWord64X2Array#"),
+    ('9', 2156, InTerms, Just "GHC.Prim", "writeWord8X32Array#"),
+    ('9', 2157, InTerms, Just "GHC.PrimopWrappers", "writeWord8X32Array#"),
+    ('9', 2158, InTerms, Just "GHC.Prim", "writeWord16X16Array#"),
+    ('9', 2159, InTerms, Just "GHC.PrimopWrappers", "writeWord16X16Array#"),
+    ('9', 2160, InTerms, Just "GHC.Prim", "writeWord32X8Array#"),
+    ('9', 2161, InTerms, Just "GHC.PrimopWrappers", "writeWord32X8Array#"),
+    ('9', 2162, InTerms, Just "GHC.Prim", "writeWord64X4Array#"),
+    ('9', 2163, InTerms, Just "GHC.PrimopWrappers", "writeWord64X4Array#"),
+    ('9', 2164, InTerms, Just "GHC.Prim", "writeWord8X64Array#"),
+    ('9', 2165, InTerms, Just "GHC.PrimopWrappers", "writeWord8X64Array#"),
+    ('9', 2166, InTerms, Just "GHC.Prim", "writeWord16X32Array#"),
+    ('9', 2167, InTerms, Just "GHC.PrimopWrappers", "writeWord16X32Array#"),
+    ('9', 2168, InTerms, Just "GHC.Prim", "writeWord32X16Array#"),
+    ('9', 2169, InTerms, Just "GHC.PrimopWrappers", "writeWord32X16Array#"),
+    ('9', 2170, InTerms, Just "GHC.Prim", "writeWord64X8Array#"),
+    ('9', 2171, InTerms, Just "GHC.PrimopWrappers", "writeWord64X8Array#"),
+    ('9', 2172, InTerms, Just "GHC.Prim", "writeFloatX4Array#"),
+    ('9', 2173, InTerms, Just "GHC.PrimopWrappers", "writeFloatX4Array#"),
+    ('9', 2174, InTerms, Just "GHC.Prim", "writeDoubleX2Array#"),
+    ('9', 2175, InTerms, Just "GHC.PrimopWrappers", "writeDoubleX2Array#"),
+    ('9', 2176, InTerms, Just "GHC.Prim", "writeFloatX8Array#"),
+    ('9', 2177, InTerms, Just "GHC.PrimopWrappers", "writeFloatX8Array#"),
+    ('9', 2178, InTerms, Just "GHC.Prim", "writeDoubleX4Array#"),
+    ('9', 2179, InTerms, Just "GHC.PrimopWrappers", "writeDoubleX4Array#"),
+    ('9', 2180, InTerms, Just "GHC.Prim", "writeFloatX16Array#"),
+    ('9', 2181, InTerms, Just "GHC.PrimopWrappers", "writeFloatX16Array#"),
+    ('9', 2182, InTerms, Just "GHC.Prim", "writeDoubleX8Array#"),
+    ('9', 2183, InTerms, Just "GHC.PrimopWrappers", "writeDoubleX8Array#"),
+    ('9', 2184, InTerms, Just "GHC.Prim", "indexInt8X16OffAddr#"),
+    ('9', 2185, InTerms, Just "GHC.PrimopWrappers", "indexInt8X16OffAddr#"),
+    ('9', 2186, InTerms, Just "GHC.Prim", "indexInt16X8OffAddr#"),
+    ('9', 2187, InTerms, Just "GHC.PrimopWrappers", "indexInt16X8OffAddr#"),
+    ('9', 2188, InTerms, Just "GHC.Prim", "indexInt32X4OffAddr#"),
+    ('9', 2189, InTerms, Just "GHC.PrimopWrappers", "indexInt32X4OffAddr#"),
+    ('9', 2190, InTerms, Just "GHC.Prim", "indexInt64X2OffAddr#"),
+    ('9', 2191, InTerms, Just "GHC.PrimopWrappers", "indexInt64X2OffAddr#"),
+    ('9', 2192, InTerms, Just "GHC.Prim", "indexInt8X32OffAddr#"),
+    ('9', 2193, InTerms, Just "GHC.PrimopWrappers", "indexInt8X32OffAddr#"),
+    ('9', 2194, InTerms, Just "GHC.Prim", "indexInt16X16OffAddr#"),
+    ('9', 2195, InTerms, Just "GHC.PrimopWrappers", "indexInt16X16OffAddr#"),
+    ('9', 2196, InTerms, Just "GHC.Prim", "indexInt32X8OffAddr#"),
+    ('9', 2197, InTerms, Just "GHC.PrimopWrappers", "indexInt32X8OffAddr#"),
+    ('9', 2198, InTerms, Just "GHC.Prim", "indexInt64X4OffAddr#"),
+    ('9', 2199, InTerms, Just "GHC.PrimopWrappers", "indexInt64X4OffAddr#"),
+    ('9', 2200, InTerms, Just "GHC.Prim", "indexInt8X64OffAddr#"),
+    ('9', 2201, InTerms, Just "GHC.PrimopWrappers", "indexInt8X64OffAddr#"),
+    ('9', 2202, InTerms, Just "GHC.Prim", "indexInt16X32OffAddr#"),
+    ('9', 2203, InTerms, Just "GHC.PrimopWrappers", "indexInt16X32OffAddr#"),
+    ('9', 2204, InTerms, Just "GHC.Prim", "indexInt32X16OffAddr#"),
+    ('9', 2205, InTerms, Just "GHC.PrimopWrappers", "indexInt32X16OffAddr#"),
+    ('9', 2206, InTerms, Just "GHC.Prim", "indexInt64X8OffAddr#"),
+    ('9', 2207, InTerms, Just "GHC.PrimopWrappers", "indexInt64X8OffAddr#"),
+    ('9', 2208, InTerms, Just "GHC.Prim", "indexWord8X16OffAddr#"),
+    ('9', 2209, InTerms, Just "GHC.PrimopWrappers", "indexWord8X16OffAddr#"),
+    ('9', 2210, InTerms, Just "GHC.Prim", "indexWord16X8OffAddr#"),
+    ('9', 2211, InTerms, Just "GHC.PrimopWrappers", "indexWord16X8OffAddr#"),
+    ('9', 2212, InTerms, Just "GHC.Prim", "indexWord32X4OffAddr#"),
+    ('9', 2213, InTerms, Just "GHC.PrimopWrappers", "indexWord32X4OffAddr#"),
+    ('9', 2214, InTerms, Just "GHC.Prim", "indexWord64X2OffAddr#"),
+    ('9', 2215, InTerms, Just "GHC.PrimopWrappers", "indexWord64X2OffAddr#"),
+    ('9', 2216, InTerms, Just "GHC.Prim", "indexWord8X32OffAddr#"),
+    ('9', 2217, InTerms, Just "GHC.PrimopWrappers", "indexWord8X32OffAddr#"),
+    ('9', 2218, InTerms, Just "GHC.Prim", "indexWord16X16OffAddr#"),
+    ('9', 2219, InTerms, Just "GHC.PrimopWrappers", "indexWord16X16OffAddr#"),
+    ('9', 2220, InTerms, Just "GHC.Prim", "indexWord32X8OffAddr#"),
+    ('9', 2221, InTerms, Just "GHC.PrimopWrappers", "indexWord32X8OffAddr#"),
+    ('9', 2222, InTerms, Just "GHC.Prim", "indexWord64X4OffAddr#"),
+    ('9', 2223, InTerms, Just "GHC.PrimopWrappers", "indexWord64X4OffAddr#"),
+    ('9', 2224, InTerms, Just "GHC.Prim", "indexWord8X64OffAddr#"),
+    ('9', 2225, InTerms, Just "GHC.PrimopWrappers", "indexWord8X64OffAddr#"),
+    ('9', 2226, InTerms, Just "GHC.Prim", "indexWord16X32OffAddr#"),
+    ('9', 2227, InTerms, Just "GHC.PrimopWrappers", "indexWord16X32OffAddr#"),
+    ('9', 2228, InTerms, Just "GHC.Prim", "indexWord32X16OffAddr#"),
+    ('9', 2229, InTerms, Just "GHC.PrimopWrappers", "indexWord32X16OffAddr#"),
+    ('9', 2230, InTerms, Just "GHC.Prim", "indexWord64X8OffAddr#"),
+    ('9', 2231, InTerms, Just "GHC.PrimopWrappers", "indexWord64X8OffAddr#"),
+    ('9', 2232, InTerms, Just "GHC.Prim", "indexFloatX4OffAddr#"),
+    ('9', 2233, InTerms, Just "GHC.PrimopWrappers", "indexFloatX4OffAddr#"),
+    ('9', 2234, InTerms, Just "GHC.Prim", "indexDoubleX2OffAddr#"),
+    ('9', 2235, InTerms, Just "GHC.PrimopWrappers", "indexDoubleX2OffAddr#"),
+    ('9', 2236, InTerms, Just "GHC.Prim", "indexFloatX8OffAddr#"),
+    ('9', 2237, InTerms, Just "GHC.PrimopWrappers", "indexFloatX8OffAddr#"),
+    ('9', 2238, InTerms, Just "GHC.Prim", "indexDoubleX4OffAddr#"),
+    ('9', 2239, InTerms, Just "GHC.PrimopWrappers", "indexDoubleX4OffAddr#"),
+    ('9', 2240, InTerms, Just "GHC.Prim", "indexFloatX16OffAddr#"),
+    ('9', 2241, InTerms, Just "GHC.PrimopWrappers", "indexFloatX16OffAddr#"),
+    ('9', 2242, InTerms, Just "GHC.Prim", "indexDoubleX8OffAddr#"),
+    ('9', 2243, InTerms, Just "GHC.PrimopWrappers", "indexDoubleX8OffAddr#"),
+    ('9', 2244, InTerms, Just "GHC.Prim", "readInt8X16OffAddr#"),
+    ('9', 2245, InTerms, Just "GHC.PrimopWrappers", "readInt8X16OffAddr#"),
+    ('9', 2246, InTerms, Just "GHC.Prim", "readInt16X8OffAddr#"),
+    ('9', 2247, InTerms, Just "GHC.PrimopWrappers", "readInt16X8OffAddr#"),
+    ('9', 2248, InTerms, Just "GHC.Prim", "readInt32X4OffAddr#"),
+    ('9', 2249, InTerms, Just "GHC.PrimopWrappers", "readInt32X4OffAddr#"),
+    ('9', 2250, InTerms, Just "GHC.Prim", "readInt64X2OffAddr#"),
+    ('9', 2251, InTerms, Just "GHC.PrimopWrappers", "readInt64X2OffAddr#"),
+    ('9', 2252, InTerms, Just "GHC.Prim", "readInt8X32OffAddr#"),
+    ('9', 2253, InTerms, Just "GHC.PrimopWrappers", "readInt8X32OffAddr#"),
+    ('9', 2254, InTerms, Just "GHC.Prim", "readInt16X16OffAddr#"),
+    ('9', 2255, InTerms, Just "GHC.PrimopWrappers", "readInt16X16OffAddr#"),
+    ('9', 2256, InTerms, Just "GHC.Prim", "readInt32X8OffAddr#"),
+    ('9', 2257, InTerms, Just "GHC.PrimopWrappers", "readInt32X8OffAddr#"),
+    ('9', 2258, InTerms, Just "GHC.Prim", "readInt64X4OffAddr#"),
+    ('9', 2259, InTerms, Just "GHC.PrimopWrappers", "readInt64X4OffAddr#"),
+    ('9', 2260, InTerms, Just "GHC.Prim", "readInt8X64OffAddr#"),
+    ('9', 2261, InTerms, Just "GHC.PrimopWrappers", "readInt8X64OffAddr#"),
+    ('9', 2262, InTerms, Just "GHC.Prim", "readInt16X32OffAddr#"),
+    ('9', 2263, InTerms, Just "GHC.PrimopWrappers", "readInt16X32OffAddr#"),
+    ('9', 2264, InTerms, Just "GHC.Prim", "readInt32X16OffAddr#"),
+    ('9', 2265, InTerms, Just "GHC.PrimopWrappers", "readInt32X16OffAddr#"),
+    ('9', 2266, InTerms, Just "GHC.Prim", "readInt64X8OffAddr#"),
+    ('9', 2267, InTerms, Just "GHC.PrimopWrappers", "readInt64X8OffAddr#"),
+    ('9', 2268, InTerms, Just "GHC.Prim", "readWord8X16OffAddr#"),
+    ('9', 2269, InTerms, Just "GHC.PrimopWrappers", "readWord8X16OffAddr#"),
+    ('9', 2270, InTerms, Just "GHC.Prim", "readWord16X8OffAddr#"),
+    ('9', 2271, InTerms, Just "GHC.PrimopWrappers", "readWord16X8OffAddr#"),
+    ('9', 2272, InTerms, Just "GHC.Prim", "readWord32X4OffAddr#"),
+    ('9', 2273, InTerms, Just "GHC.PrimopWrappers", "readWord32X4OffAddr#"),
+    ('9', 2274, InTerms, Just "GHC.Prim", "readWord64X2OffAddr#"),
+    ('9', 2275, InTerms, Just "GHC.PrimopWrappers", "readWord64X2OffAddr#"),
+    ('9', 2276, InTerms, Just "GHC.Prim", "readWord8X32OffAddr#"),
+    ('9', 2277, InTerms, Just "GHC.PrimopWrappers", "readWord8X32OffAddr#"),
+    ('9', 2278, InTerms, Just "GHC.Prim", "readWord16X16OffAddr#"),
+    ('9', 2279, InTerms, Just "GHC.PrimopWrappers", "readWord16X16OffAddr#"),
+    ('9', 2280, InTerms, Just "GHC.Prim", "readWord32X8OffAddr#"),
+    ('9', 2281, InTerms, Just "GHC.PrimopWrappers", "readWord32X8OffAddr#"),
+    ('9', 2282, InTerms, Just "GHC.Prim", "readWord64X4OffAddr#"),
+    ('9', 2283, InTerms, Just "GHC.PrimopWrappers", "readWord64X4OffAddr#"),
+    ('9', 2284, InTerms, Just "GHC.Prim", "readWord8X64OffAddr#"),
+    ('9', 2285, InTerms, Just "GHC.PrimopWrappers", "readWord8X64OffAddr#"),
+    ('9', 2286, InTerms, Just "GHC.Prim", "readWord16X32OffAddr#"),
+    ('9', 2287, InTerms, Just "GHC.PrimopWrappers", "readWord16X32OffAddr#"),
+    ('9', 2288, InTerms, Just "GHC.Prim", "readWord32X16OffAddr#"),
+    ('9', 2289, InTerms, Just "GHC.PrimopWrappers", "readWord32X16OffAddr#"),
+    ('9', 2290, InTerms, Just "GHC.Prim", "readWord64X8OffAddr#"),
+    ('9', 2291, InTerms, Just "GHC.PrimopWrappers", "readWord64X8OffAddr#"),
+    ('9', 2292, InTerms, Just "GHC.Prim", "readFloatX4OffAddr#"),
+    ('9', 2293, InTerms, Just "GHC.PrimopWrappers", "readFloatX4OffAddr#"),
+    ('9', 2294, InTerms, Just "GHC.Prim", "readDoubleX2OffAddr#"),
+    ('9', 2295, InTerms, Just "GHC.PrimopWrappers", "readDoubleX2OffAddr#"),
+    ('9', 2296, InTerms, Just "GHC.Prim", "readFloatX8OffAddr#"),
+    ('9', 2297, InTerms, Just "GHC.PrimopWrappers", "readFloatX8OffAddr#"),
+    ('9', 2298, InTerms, Just "GHC.Prim", "readDoubleX4OffAddr#"),
+    ('9', 2299, InTerms, Just "GHC.PrimopWrappers", "readDoubleX4OffAddr#"),
+    ('9', 2300, InTerms, Just "GHC.Prim", "readFloatX16OffAddr#"),
+    ('9', 2301, InTerms, Just "GHC.PrimopWrappers", "readFloatX16OffAddr#"),
+    ('9', 2302, InTerms, Just "GHC.Prim", "readDoubleX8OffAddr#"),
+    ('9', 2303, InTerms, Just "GHC.PrimopWrappers", "readDoubleX8OffAddr#"),
+    ('9', 2304, InTerms, Just "GHC.Prim", "writeInt8X16OffAddr#"),
+    ('9', 2305, InTerms, Just "GHC.PrimopWrappers", "writeInt8X16OffAddr#"),
+    ('9', 2306, InTerms, Just "GHC.Prim", "writeInt16X8OffAddr#"),
+    ('9', 2307, InTerms, Just "GHC.PrimopWrappers", "writeInt16X8OffAddr#"),
+    ('9', 2308, InTerms, Just "GHC.Prim", "writeInt32X4OffAddr#"),
+    ('9', 2309, InTerms, Just "GHC.PrimopWrappers", "writeInt32X4OffAddr#"),
+    ('9', 2310, InTerms, Just "GHC.Prim", "writeInt64X2OffAddr#"),
+    ('9', 2311, InTerms, Just "GHC.PrimopWrappers", "writeInt64X2OffAddr#"),
+    ('9', 2312, InTerms, Just "GHC.Prim", "writeInt8X32OffAddr#"),
+    ('9', 2313, InTerms, Just "GHC.PrimopWrappers", "writeInt8X32OffAddr#"),
+    ('9', 2314, InTerms, Just "GHC.Prim", "writeInt16X16OffAddr#"),
+    ('9', 2315, InTerms, Just "GHC.PrimopWrappers", "writeInt16X16OffAddr#"),
+    ('9', 2316, InTerms, Just "GHC.Prim", "writeInt32X8OffAddr#"),
+    ('9', 2317, InTerms, Just "GHC.PrimopWrappers", "writeInt32X8OffAddr#"),
+    ('9', 2318, InTerms, Just "GHC.Prim", "writeInt64X4OffAddr#"),
+    ('9', 2319, InTerms, Just "GHC.PrimopWrappers", "writeInt64X4OffAddr#"),
+    ('9', 2320, InTerms, Just "GHC.Prim", "writeInt8X64OffAddr#"),
+    ('9', 2321, InTerms, Just "GHC.PrimopWrappers", "writeInt8X64OffAddr#"),
+    ('9', 2322, InTerms, Just "GHC.Prim", "writeInt16X32OffAddr#"),
+    ('9', 2323, InTerms, Just "GHC.PrimopWrappers", "writeInt16X32OffAddr#"),
+    ('9', 2324, InTerms, Just "GHC.Prim", "writeInt32X16OffAddr#"),
+    ('9', 2325, InTerms, Just "GHC.PrimopWrappers", "writeInt32X16OffAddr#"),
+    ('9', 2326, InTerms, Just "GHC.Prim", "writeInt64X8OffAddr#"),
+    ('9', 2327, InTerms, Just "GHC.PrimopWrappers", "writeInt64X8OffAddr#"),
+    ('9', 2328, InTerms, Just "GHC.Prim", "writeWord8X16OffAddr#"),
+    ('9', 2329, InTerms, Just "GHC.PrimopWrappers", "writeWord8X16OffAddr#"),
+    ('9', 2330, InTerms, Just "GHC.Prim", "writeWord16X8OffAddr#"),
+    ('9', 2331, InTerms, Just "GHC.PrimopWrappers", "writeWord16X8OffAddr#"),
+    ('9', 2332, InTerms, Just "GHC.Prim", "writeWord32X4OffAddr#"),
+    ('9', 2333, InTerms, Just "GHC.PrimopWrappers", "writeWord32X4OffAddr#"),
+    ('9', 2334, InTerms, Just "GHC.Prim", "writeWord64X2OffAddr#"),
+    ('9', 2335, InTerms, Just "GHC.PrimopWrappers", "writeWord64X2OffAddr#"),
+    ('9', 2336, InTerms, Just "GHC.Prim", "writeWord8X32OffAddr#"),
+    ('9', 2337, InTerms, Just "GHC.PrimopWrappers", "writeWord8X32OffAddr#"),
+    ('9', 2338, InTerms, Just "GHC.Prim", "writeWord16X16OffAddr#"),
+    ('9', 2339, InTerms, Just "GHC.PrimopWrappers", "writeWord16X16OffAddr#"),
+    ('9', 2340, InTerms, Just "GHC.Prim", "writeWord32X8OffAddr#"),
+    ('9', 2341, InTerms, Just "GHC.PrimopWrappers", "writeWord32X8OffAddr#"),
+    ('9', 2342, InTerms, Just "GHC.Prim", "writeWord64X4OffAddr#"),
+    ('9', 2343, InTerms, Just "GHC.PrimopWrappers", "writeWord64X4OffAddr#"),
+    ('9', 2344, InTerms, Just "GHC.Prim", "writeWord8X64OffAddr#"),
+    ('9', 2345, InTerms, Just "GHC.PrimopWrappers", "writeWord8X64OffAddr#"),
+    ('9', 2346, InTerms, Just "GHC.Prim", "writeWord16X32OffAddr#"),
+    ('9', 2347, InTerms, Just "GHC.PrimopWrappers", "writeWord16X32OffAddr#"),
+    ('9', 2348, InTerms, Just "GHC.Prim", "writeWord32X16OffAddr#"),
+    ('9', 2349, InTerms, Just "GHC.PrimopWrappers", "writeWord32X16OffAddr#"),
+    ('9', 2350, InTerms, Just "GHC.Prim", "writeWord64X8OffAddr#"),
+    ('9', 2351, InTerms, Just "GHC.PrimopWrappers", "writeWord64X8OffAddr#"),
+    ('9', 2352, InTerms, Just "GHC.Prim", "writeFloatX4OffAddr#"),
+    ('9', 2353, InTerms, Just "GHC.PrimopWrappers", "writeFloatX4OffAddr#"),
+    ('9', 2354, InTerms, Just "GHC.Prim", "writeDoubleX2OffAddr#"),
+    ('9', 2355, InTerms, Just "GHC.PrimopWrappers", "writeDoubleX2OffAddr#"),
+    ('9', 2356, InTerms, Just "GHC.Prim", "writeFloatX8OffAddr#"),
+    ('9', 2357, InTerms, Just "GHC.PrimopWrappers", "writeFloatX8OffAddr#"),
+    ('9', 2358, InTerms, Just "GHC.Prim", "writeDoubleX4OffAddr#"),
+    ('9', 2359, InTerms, Just "GHC.PrimopWrappers", "writeDoubleX4OffAddr#"),
+    ('9', 2360, InTerms, Just "GHC.Prim", "writeFloatX16OffAddr#"),
+    ('9', 2361, InTerms, Just "GHC.PrimopWrappers", "writeFloatX16OffAddr#"),
+    ('9', 2362, InTerms, Just "GHC.Prim", "writeDoubleX8OffAddr#"),
+    ('9', 2363, InTerms, Just "GHC.PrimopWrappers", "writeDoubleX8OffAddr#"),
+    ('9', 2364, InTerms, Just "GHC.Prim", "indexInt8ArrayAsInt8X16#"),
+    ('9', 2365, InTerms, Just "GHC.PrimopWrappers", "indexInt8ArrayAsInt8X16#"),
+    ('9', 2366, InTerms, Just "GHC.Prim", "indexInt16ArrayAsInt16X8#"),
+    ('9', 2367, InTerms, Just "GHC.PrimopWrappers", "indexInt16ArrayAsInt16X8#"),
+    ('9', 2368, InTerms, Just "GHC.Prim", "indexInt32ArrayAsInt32X4#"),
+    ('9', 2369, InTerms, Just "GHC.PrimopWrappers", "indexInt32ArrayAsInt32X4#"),
+    ('9', 2370, InTerms, Just "GHC.Prim", "indexInt64ArrayAsInt64X2#"),
+    ('9', 2371, InTerms, Just "GHC.PrimopWrappers", "indexInt64ArrayAsInt64X2#"),
+    ('9', 2372, InTerms, Just "GHC.Prim", "indexInt8ArrayAsInt8X32#"),
+    ('9', 2373, InTerms, Just "GHC.PrimopWrappers", "indexInt8ArrayAsInt8X32#"),
+    ('9', 2374, InTerms, Just "GHC.Prim", "indexInt16ArrayAsInt16X16#"),
+    ('9', 2375, InTerms, Just "GHC.PrimopWrappers", "indexInt16ArrayAsInt16X16#"),
+    ('9', 2376, InTerms, Just "GHC.Prim", "indexInt32ArrayAsInt32X8#"),
+    ('9', 2377, InTerms, Just "GHC.PrimopWrappers", "indexInt32ArrayAsInt32X8#"),
+    ('9', 2378, InTerms, Just "GHC.Prim", "indexInt64ArrayAsInt64X4#"),
+    ('9', 2379, InTerms, Just "GHC.PrimopWrappers", "indexInt64ArrayAsInt64X4#"),
+    ('9', 2380, InTerms, Just "GHC.Prim", "indexInt8ArrayAsInt8X64#"),
+    ('9', 2381, InTerms, Just "GHC.PrimopWrappers", "indexInt8ArrayAsInt8X64#"),
+    ('9', 2382, InTerms, Just "GHC.Prim", "indexInt16ArrayAsInt16X32#"),
+    ('9', 2383, InTerms, Just "GHC.PrimopWrappers", "indexInt16ArrayAsInt16X32#"),
+    ('9', 2384, InTerms, Just "GHC.Prim", "indexInt32ArrayAsInt32X16#"),
+    ('9', 2385, InTerms, Just "GHC.PrimopWrappers", "indexInt32ArrayAsInt32X16#"),
+    ('9', 2386, InTerms, Just "GHC.Prim", "indexInt64ArrayAsInt64X8#"),
+    ('9', 2387, InTerms, Just "GHC.PrimopWrappers", "indexInt64ArrayAsInt64X8#"),
+    ('9', 2388, InTerms, Just "GHC.Prim", "indexWord8ArrayAsWord8X16#"),
+    ('9', 2389, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsWord8X16#"),
+    ('9', 2390, InTerms, Just "GHC.Prim", "indexWord16ArrayAsWord16X8#"),
+    ('9', 2391, InTerms, Just "GHC.PrimopWrappers", "indexWord16ArrayAsWord16X8#"),
+    ('9', 2392, InTerms, Just "GHC.Prim", "indexWord32ArrayAsWord32X4#"),
+    ('9', 2393, InTerms, Just "GHC.PrimopWrappers", "indexWord32ArrayAsWord32X4#"),
+    ('9', 2394, InTerms, Just "GHC.Prim", "indexWord64ArrayAsWord64X2#"),
+    ('9', 2395, InTerms, Just "GHC.PrimopWrappers", "indexWord64ArrayAsWord64X2#"),
+    ('9', 2396, InTerms, Just "GHC.Prim", "indexWord8ArrayAsWord8X32#"),
+    ('9', 2397, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsWord8X32#"),
+    ('9', 2398, InTerms, Just "GHC.Prim", "indexWord16ArrayAsWord16X16#"),
+    ('9', 2399, InTerms, Just "GHC.PrimopWrappers", "indexWord16ArrayAsWord16X16#"),
+    ('9', 2400, InTerms, Just "GHC.Prim", "indexWord32ArrayAsWord32X8#"),
+    ('9', 2401, InTerms, Just "GHC.PrimopWrappers", "indexWord32ArrayAsWord32X8#"),
+    ('9', 2402, InTerms, Just "GHC.Prim", "indexWord64ArrayAsWord64X4#"),
+    ('9', 2403, InTerms, Just "GHC.PrimopWrappers", "indexWord64ArrayAsWord64X4#"),
+    ('9', 2404, InTerms, Just "GHC.Prim", "indexWord8ArrayAsWord8X64#"),
+    ('9', 2405, InTerms, Just "GHC.PrimopWrappers", "indexWord8ArrayAsWord8X64#"),
+    ('9', 2406, InTerms, Just "GHC.Prim", "indexWord16ArrayAsWord16X32#"),
+    ('9', 2407, InTerms, Just "GHC.PrimopWrappers", "indexWord16ArrayAsWord16X32#"),
+    ('9', 2408, InTerms, Just "GHC.Prim", "indexWord32ArrayAsWord32X16#"),
+    ('9', 2409, InTerms, Just "GHC.PrimopWrappers", "indexWord32ArrayAsWord32X16#"),
+    ('9', 2410, InTerms, Just "GHC.Prim", "indexWord64ArrayAsWord64X8#"),
+    ('9', 2411, InTerms, Just "GHC.PrimopWrappers", "indexWord64ArrayAsWord64X8#"),
+    ('9', 2412, InTerms, Just "GHC.Prim", "indexFloatArrayAsFloatX4#"),
+    ('9', 2413, InTerms, Just "GHC.PrimopWrappers", "indexFloatArrayAsFloatX4#"),
+    ('9', 2414, InTerms, Just "GHC.Prim", "indexDoubleArrayAsDoubleX2#"),
+    ('9', 2415, InTerms, Just "GHC.PrimopWrappers", "indexDoubleArrayAsDoubleX2#"),
+    ('9', 2416, InTerms, Just "GHC.Prim", "indexFloatArrayAsFloatX8#"),
+    ('9', 2417, InTerms, Just "GHC.PrimopWrappers", "indexFloatArrayAsFloatX8#"),
+    ('9', 2418, InTerms, Just "GHC.Prim", "indexDoubleArrayAsDoubleX4#"),
+    ('9', 2419, InTerms, Just "GHC.PrimopWrappers", "indexDoubleArrayAsDoubleX4#"),
+    ('9', 2420, InTerms, Just "GHC.Prim", "indexFloatArrayAsFloatX16#"),
+    ('9', 2421, InTerms, Just "GHC.PrimopWrappers", "indexFloatArrayAsFloatX16#"),
+    ('9', 2422, InTerms, Just "GHC.Prim", "indexDoubleArrayAsDoubleX8#"),
+    ('9', 2423, InTerms, Just "GHC.PrimopWrappers", "indexDoubleArrayAsDoubleX8#"),
+    ('9', 2424, InTerms, Just "GHC.Prim", "readInt8ArrayAsInt8X16#"),
+    ('9', 2425, InTerms, Just "GHC.PrimopWrappers", "readInt8ArrayAsInt8X16#"),
+    ('9', 2426, InTerms, Just "GHC.Prim", "readInt16ArrayAsInt16X8#"),
+    ('9', 2427, InTerms, Just "GHC.PrimopWrappers", "readInt16ArrayAsInt16X8#"),
+    ('9', 2428, InTerms, Just "GHC.Prim", "readInt32ArrayAsInt32X4#"),
+    ('9', 2429, InTerms, Just "GHC.PrimopWrappers", "readInt32ArrayAsInt32X4#"),
+    ('9', 2430, InTerms, Just "GHC.Prim", "readInt64ArrayAsInt64X2#"),
+    ('9', 2431, InTerms, Just "GHC.PrimopWrappers", "readInt64ArrayAsInt64X2#"),
+    ('9', 2432, InTerms, Just "GHC.Prim", "readInt8ArrayAsInt8X32#"),
+    ('9', 2433, InTerms, Just "GHC.PrimopWrappers", "readInt8ArrayAsInt8X32#"),
+    ('9', 2434, InTerms, Just "GHC.Prim", "readInt16ArrayAsInt16X16#"),
+    ('9', 2435, InTerms, Just "GHC.PrimopWrappers", "readInt16ArrayAsInt16X16#"),
+    ('9', 2436, InTerms, Just "GHC.Prim", "readInt32ArrayAsInt32X8#"),
+    ('9', 2437, InTerms, Just "GHC.PrimopWrappers", "readInt32ArrayAsInt32X8#"),
+    ('9', 2438, InTerms, Just "GHC.Prim", "readInt64ArrayAsInt64X4#"),
+    ('9', 2439, InTerms, Just "GHC.PrimopWrappers", "readInt64ArrayAsInt64X4#"),
+    ('9', 2440, InTerms, Just "GHC.Prim", "readInt8ArrayAsInt8X64#"),
+    ('9', 2441, InTerms, Just "GHC.PrimopWrappers", "readInt8ArrayAsInt8X64#"),
+    ('9', 2442, InTerms, Just "GHC.Prim", "readInt16ArrayAsInt16X32#"),
+    ('9', 2443, InTerms, Just "GHC.PrimopWrappers", "readInt16ArrayAsInt16X32#"),
+    ('9', 2444, InTerms, Just "GHC.Prim", "readInt32ArrayAsInt32X16#"),
+    ('9', 2445, InTerms, Just "GHC.PrimopWrappers", "readInt32ArrayAsInt32X16#"),
+    ('9', 2446, InTerms, Just "GHC.Prim", "readInt64ArrayAsInt64X8#"),
+    ('9', 2447, InTerms, Just "GHC.PrimopWrappers", "readInt64ArrayAsInt64X8#"),
+    ('9', 2448, InTerms, Just "GHC.Prim", "readWord8ArrayAsWord8X16#"),
+    ('9', 2449, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsWord8X16#"),
+    ('9', 2450, InTerms, Just "GHC.Prim", "readWord16ArrayAsWord16X8#"),
+    ('9', 2451, InTerms, Just "GHC.PrimopWrappers", "readWord16ArrayAsWord16X8#"),
+    ('9', 2452, InTerms, Just "GHC.Prim", "readWord32ArrayAsWord32X4#"),
+    ('9', 2453, InTerms, Just "GHC.PrimopWrappers", "readWord32ArrayAsWord32X4#"),
+    ('9', 2454, InTerms, Just "GHC.Prim", "readWord64ArrayAsWord64X2#"),
+    ('9', 2455, InTerms, Just "GHC.PrimopWrappers", "readWord64ArrayAsWord64X2#"),
+    ('9', 2456, InTerms, Just "GHC.Prim", "readWord8ArrayAsWord8X32#"),
+    ('9', 2457, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsWord8X32#"),
+    ('9', 2458, InTerms, Just "GHC.Prim", "readWord16ArrayAsWord16X16#"),
+    ('9', 2459, InTerms, Just "GHC.PrimopWrappers", "readWord16ArrayAsWord16X16#"),
+    ('9', 2460, InTerms, Just "GHC.Prim", "readWord32ArrayAsWord32X8#"),
+    ('9', 2461, InTerms, Just "GHC.PrimopWrappers", "readWord32ArrayAsWord32X8#"),
+    ('9', 2462, InTerms, Just "GHC.Prim", "readWord64ArrayAsWord64X4#"),
+    ('9', 2463, InTerms, Just "GHC.PrimopWrappers", "readWord64ArrayAsWord64X4#"),
+    ('9', 2464, InTerms, Just "GHC.Prim", "readWord8ArrayAsWord8X64#"),
+    ('9', 2465, InTerms, Just "GHC.PrimopWrappers", "readWord8ArrayAsWord8X64#"),
+    ('9', 2466, InTerms, Just "GHC.Prim", "readWord16ArrayAsWord16X32#"),
+    ('9', 2467, InTerms, Just "GHC.PrimopWrappers", "readWord16ArrayAsWord16X32#"),
+    ('9', 2468, InTerms, Just "GHC.Prim", "readWord32ArrayAsWord32X16#"),
+    ('9', 2469, InTerms, Just "GHC.PrimopWrappers", "readWord32ArrayAsWord32X16#"),
+    ('9', 2470, InTerms, Just "GHC.Prim", "readWord64ArrayAsWord64X8#"),
+    ('9', 2471, InTerms, Just "GHC.PrimopWrappers", "readWord64ArrayAsWord64X8#"),
+    ('9', 2472, InTerms, Just "GHC.Prim", "readFloatArrayAsFloatX4#"),
+    ('9', 2473, InTerms, Just "GHC.PrimopWrappers", "readFloatArrayAsFloatX4#"),
+    ('9', 2474, InTerms, Just "GHC.Prim", "readDoubleArrayAsDoubleX2#"),
+    ('9', 2475, InTerms, Just "GHC.PrimopWrappers", "readDoubleArrayAsDoubleX2#"),
+    ('9', 2476, InTerms, Just "GHC.Prim", "readFloatArrayAsFloatX8#"),
+    ('9', 2477, InTerms, Just "GHC.PrimopWrappers", "readFloatArrayAsFloatX8#"),
+    ('9', 2478, InTerms, Just "GHC.Prim", "readDoubleArrayAsDoubleX4#"),
+    ('9', 2479, InTerms, Just "GHC.PrimopWrappers", "readDoubleArrayAsDoubleX4#"),
+    ('9', 2480, InTerms, Just "GHC.Prim", "readFloatArrayAsFloatX16#"),
+    ('9', 2481, InTerms, Just "GHC.PrimopWrappers", "readFloatArrayAsFloatX16#"),
+    ('9', 2482, InTerms, Just "GHC.Prim", "readDoubleArrayAsDoubleX8#"),
+    ('9', 2483, InTerms, Just "GHC.PrimopWrappers", "readDoubleArrayAsDoubleX8#"),
+    ('9', 2484, InTerms, Just "GHC.Prim", "writeInt8ArrayAsInt8X16#"),
+    ('9', 2485, InTerms, Just "GHC.PrimopWrappers", "writeInt8ArrayAsInt8X16#"),
+    ('9', 2486, InTerms, Just "GHC.Prim", "writeInt16ArrayAsInt16X8#"),
+    ('9', 2487, InTerms, Just "GHC.PrimopWrappers", "writeInt16ArrayAsInt16X8#"),
+    ('9', 2488, InTerms, Just "GHC.Prim", "writeInt32ArrayAsInt32X4#"),
+    ('9', 2489, InTerms, Just "GHC.PrimopWrappers", "writeInt32ArrayAsInt32X4#"),
+    ('9', 2490, InTerms, Just "GHC.Prim", "writeInt64ArrayAsInt64X2#"),
+    ('9', 2491, InTerms, Just "GHC.PrimopWrappers", "writeInt64ArrayAsInt64X2#"),
+    ('9', 2492, InTerms, Just "GHC.Prim", "writeInt8ArrayAsInt8X32#"),
+    ('9', 2493, InTerms, Just "GHC.PrimopWrappers", "writeInt8ArrayAsInt8X32#"),
+    ('9', 2494, InTerms, Just "GHC.Prim", "writeInt16ArrayAsInt16X16#"),
+    ('9', 2495, InTerms, Just "GHC.PrimopWrappers", "writeInt16ArrayAsInt16X16#"),
+    ('9', 2496, InTerms, Just "GHC.Prim", "writeInt32ArrayAsInt32X8#"),
+    ('9', 2497, InTerms, Just "GHC.PrimopWrappers", "writeInt32ArrayAsInt32X8#"),
+    ('9', 2498, InTerms, Just "GHC.Prim", "writeInt64ArrayAsInt64X4#"),
+    ('9', 2499, InTerms, Just "GHC.PrimopWrappers", "writeInt64ArrayAsInt64X4#"),
+    ('9', 2500, InTerms, Just "GHC.Prim", "writeInt8ArrayAsInt8X64#"),
+    ('9', 2501, InTerms, Just "GHC.PrimopWrappers", "writeInt8ArrayAsInt8X64#"),
+    ('9', 2502, InTerms, Just "GHC.Prim", "writeInt16ArrayAsInt16X32#"),
+    ('9', 2503, InTerms, Just "GHC.PrimopWrappers", "writeInt16ArrayAsInt16X32#"),
+    ('9', 2504, InTerms, Just "GHC.Prim", "writeInt32ArrayAsInt32X16#"),
+    ('9', 2505, InTerms, Just "GHC.PrimopWrappers", "writeInt32ArrayAsInt32X16#"),
+    ('9', 2506, InTerms, Just "GHC.Prim", "writeInt64ArrayAsInt64X8#"),
+    ('9', 2507, InTerms, Just "GHC.PrimopWrappers", "writeInt64ArrayAsInt64X8#"),
+    ('9', 2508, InTerms, Just "GHC.Prim", "writeWord8ArrayAsWord8X16#"),
+    ('9', 2509, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsWord8X16#"),
+    ('9', 2510, InTerms, Just "GHC.Prim", "writeWord16ArrayAsWord16X8#"),
+    ('9', 2511, InTerms, Just "GHC.PrimopWrappers", "writeWord16ArrayAsWord16X8#"),
+    ('9', 2512, InTerms, Just "GHC.Prim", "writeWord32ArrayAsWord32X4#"),
+    ('9', 2513, InTerms, Just "GHC.PrimopWrappers", "writeWord32ArrayAsWord32X4#"),
+    ('9', 2514, InTerms, Just "GHC.Prim", "writeWord64ArrayAsWord64X2#"),
+    ('9', 2515, InTerms, Just "GHC.PrimopWrappers", "writeWord64ArrayAsWord64X2#"),
+    ('9', 2516, InTerms, Just "GHC.Prim", "writeWord8ArrayAsWord8X32#"),
+    ('9', 2517, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsWord8X32#"),
+    ('9', 2518, InTerms, Just "GHC.Prim", "writeWord16ArrayAsWord16X16#"),
+    ('9', 2519, InTerms, Just "GHC.PrimopWrappers", "writeWord16ArrayAsWord16X16#"),
+    ('9', 2520, InTerms, Just "GHC.Prim", "writeWord32ArrayAsWord32X8#"),
+    ('9', 2521, InTerms, Just "GHC.PrimopWrappers", "writeWord32ArrayAsWord32X8#"),
+    ('9', 2522, InTerms, Just "GHC.Prim", "writeWord64ArrayAsWord64X4#"),
+    ('9', 2523, InTerms, Just "GHC.PrimopWrappers", "writeWord64ArrayAsWord64X4#"),
+    ('9', 2524, InTerms, Just "GHC.Prim", "writeWord8ArrayAsWord8X64#"),
+    ('9', 2525, InTerms, Just "GHC.PrimopWrappers", "writeWord8ArrayAsWord8X64#"),
+    ('9', 2526, InTerms, Just "GHC.Prim", "writeWord16ArrayAsWord16X32#"),
+    ('9', 2527, InTerms, Just "GHC.PrimopWrappers", "writeWord16ArrayAsWord16X32#"),
+    ('9', 2528, InTerms, Just "GHC.Prim", "writeWord32ArrayAsWord32X16#"),
+    ('9', 2529, InTerms, Just "GHC.PrimopWrappers", "writeWord32ArrayAsWord32X16#"),
+    ('9', 2530, InTerms, Just "GHC.Prim", "writeWord64ArrayAsWord64X8#"),
+    ('9', 2531, InTerms, Just "GHC.PrimopWrappers", "writeWord64ArrayAsWord64X8#"),
+    ('9', 2532, InTerms, Just "GHC.Prim", "writeFloatArrayAsFloatX4#"),
+    ('9', 2533, InTerms, Just "GHC.PrimopWrappers", "writeFloatArrayAsFloatX4#"),
+    ('9', 2534, InTerms, Just "GHC.Prim", "writeDoubleArrayAsDoubleX2#"),
+    ('9', 2535, InTerms, Just "GHC.PrimopWrappers", "writeDoubleArrayAsDoubleX2#"),
+    ('9', 2536, InTerms, Just "GHC.Prim", "writeFloatArrayAsFloatX8#"),
+    ('9', 2537, InTerms, Just "GHC.PrimopWrappers", "writeFloatArrayAsFloatX8#"),
+    ('9', 2538, InTerms, Just "GHC.Prim", "writeDoubleArrayAsDoubleX4#"),
+    ('9', 2539, InTerms, Just "GHC.PrimopWrappers", "writeDoubleArrayAsDoubleX4#"),
+    ('9', 2540, InTerms, Just "GHC.Prim", "writeFloatArrayAsFloatX16#"),
+    ('9', 2541, InTerms, Just "GHC.PrimopWrappers", "writeFloatArrayAsFloatX16#"),
+    ('9', 2542, InTerms, Just "GHC.Prim", "writeDoubleArrayAsDoubleX8#"),
+    ('9', 2543, InTerms, Just "GHC.PrimopWrappers", "writeDoubleArrayAsDoubleX8#"),
+    ('9', 2544, InTerms, Just "GHC.Prim", "indexInt8OffAddrAsInt8X16#"),
+    ('9', 2545, InTerms, Just "GHC.PrimopWrappers", "indexInt8OffAddrAsInt8X16#"),
+    ('9', 2546, InTerms, Just "GHC.Prim", "indexInt16OffAddrAsInt16X8#"),
+    ('9', 2547, InTerms, Just "GHC.PrimopWrappers", "indexInt16OffAddrAsInt16X8#"),
+    ('9', 2548, InTerms, Just "GHC.Prim", "indexInt32OffAddrAsInt32X4#"),
+    ('9', 2549, InTerms, Just "GHC.PrimopWrappers", "indexInt32OffAddrAsInt32X4#"),
+    ('9', 2550, InTerms, Just "GHC.Prim", "indexInt64OffAddrAsInt64X2#"),
+    ('9', 2551, InTerms, Just "GHC.PrimopWrappers", "indexInt64OffAddrAsInt64X2#"),
+    ('9', 2552, InTerms, Just "GHC.Prim", "indexInt8OffAddrAsInt8X32#"),
+    ('9', 2553, InTerms, Just "GHC.PrimopWrappers", "indexInt8OffAddrAsInt8X32#"),
+    ('9', 2554, InTerms, Just "GHC.Prim", "indexInt16OffAddrAsInt16X16#"),
+    ('9', 2555, InTerms, Just "GHC.PrimopWrappers", "indexInt16OffAddrAsInt16X16#"),
+    ('9', 2556, InTerms, Just "GHC.Prim", "indexInt32OffAddrAsInt32X8#"),
+    ('9', 2557, InTerms, Just "GHC.PrimopWrappers", "indexInt32OffAddrAsInt32X8#"),
+    ('9', 2558, InTerms, Just "GHC.Prim", "indexInt64OffAddrAsInt64X4#"),
+    ('9', 2559, InTerms, Just "GHC.PrimopWrappers", "indexInt64OffAddrAsInt64X4#"),
+    ('9', 2560, InTerms, Just "GHC.Prim", "indexInt8OffAddrAsInt8X64#"),
+    ('9', 2561, InTerms, Just "GHC.PrimopWrappers", "indexInt8OffAddrAsInt8X64#"),
+    ('9', 2562, InTerms, Just "GHC.Prim", "indexInt16OffAddrAsInt16X32#"),
+    ('9', 2563, InTerms, Just "GHC.PrimopWrappers", "indexInt16OffAddrAsInt16X32#"),
+    ('9', 2564, InTerms, Just "GHC.Prim", "indexInt32OffAddrAsInt32X16#"),
+    ('9', 2565, InTerms, Just "GHC.PrimopWrappers", "indexInt32OffAddrAsInt32X16#"),
+    ('9', 2566, InTerms, Just "GHC.Prim", "indexInt64OffAddrAsInt64X8#"),
+    ('9', 2567, InTerms, Just "GHC.PrimopWrappers", "indexInt64OffAddrAsInt64X8#"),
+    ('9', 2568, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsWord8X16#"),
+    ('9', 2569, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsWord8X16#"),
+    ('9', 2570, InTerms, Just "GHC.Prim", "indexWord16OffAddrAsWord16X8#"),
+    ('9', 2571, InTerms, Just "GHC.PrimopWrappers", "indexWord16OffAddrAsWord16X8#"),
+    ('9', 2572, InTerms, Just "GHC.Prim", "indexWord32OffAddrAsWord32X4#"),
+    ('9', 2573, InTerms, Just "GHC.PrimopWrappers", "indexWord32OffAddrAsWord32X4#"),
+    ('9', 2574, InTerms, Just "GHC.Prim", "indexWord64OffAddrAsWord64X2#"),
+    ('9', 2575, InTerms, Just "GHC.PrimopWrappers", "indexWord64OffAddrAsWord64X2#"),
+    ('9', 2576, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsWord8X32#"),
+    ('9', 2577, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsWord8X32#"),
+    ('9', 2578, InTerms, Just "GHC.Prim", "indexWord16OffAddrAsWord16X16#"),
+    ('9', 2579, InTerms, Just "GHC.PrimopWrappers", "indexWord16OffAddrAsWord16X16#"),
+    ('9', 2580, InTerms, Just "GHC.Prim", "indexWord32OffAddrAsWord32X8#"),
+    ('9', 2581, InTerms, Just "GHC.PrimopWrappers", "indexWord32OffAddrAsWord32X8#"),
+    ('9', 2582, InTerms, Just "GHC.Prim", "indexWord64OffAddrAsWord64X4#"),
+    ('9', 2583, InTerms, Just "GHC.PrimopWrappers", "indexWord64OffAddrAsWord64X4#"),
+    ('9', 2584, InTerms, Just "GHC.Prim", "indexWord8OffAddrAsWord8X64#"),
+    ('9', 2585, InTerms, Just "GHC.PrimopWrappers", "indexWord8OffAddrAsWord8X64#"),
+    ('9', 2586, InTerms, Just "GHC.Prim", "indexWord16OffAddrAsWord16X32#"),
+    ('9', 2587, InTerms, Just "GHC.PrimopWrappers", "indexWord16OffAddrAsWord16X32#"),
+    ('9', 2588, InTerms, Just "GHC.Prim", "indexWord32OffAddrAsWord32X16#"),
+    ('9', 2589, InTerms, Just "GHC.PrimopWrappers", "indexWord32OffAddrAsWord32X16#"),
+    ('9', 2590, InTerms, Just "GHC.Prim", "indexWord64OffAddrAsWord64X8#"),
+    ('9', 2591, InTerms, Just "GHC.PrimopWrappers", "indexWord64OffAddrAsWord64X8#"),
+    ('9', 2592, InTerms, Just "GHC.Prim", "indexFloatOffAddrAsFloatX4#"),
+    ('9', 2593, InTerms, Just "GHC.PrimopWrappers", "indexFloatOffAddrAsFloatX4#"),
+    ('9', 2594, InTerms, Just "GHC.Prim", "indexDoubleOffAddrAsDoubleX2#"),
+    ('9', 2595, InTerms, Just "GHC.PrimopWrappers", "indexDoubleOffAddrAsDoubleX2#"),
+    ('9', 2596, InTerms, Just "GHC.Prim", "indexFloatOffAddrAsFloatX8#"),
+    ('9', 2597, InTerms, Just "GHC.PrimopWrappers", "indexFloatOffAddrAsFloatX8#"),
+    ('9', 2598, InTerms, Just "GHC.Prim", "indexDoubleOffAddrAsDoubleX4#"),
+    ('9', 2599, InTerms, Just "GHC.PrimopWrappers", "indexDoubleOffAddrAsDoubleX4#"),
+    ('9', 2600, InTerms, Just "GHC.Prim", "indexFloatOffAddrAsFloatX16#"),
+    ('9', 2601, InTerms, Just "GHC.PrimopWrappers", "indexFloatOffAddrAsFloatX16#"),
+    ('9', 2602, InTerms, Just "GHC.Prim", "indexDoubleOffAddrAsDoubleX8#"),
+    ('9', 2603, InTerms, Just "GHC.PrimopWrappers", "indexDoubleOffAddrAsDoubleX8#"),
+    ('9', 2604, InTerms, Just "GHC.Prim", "readInt8OffAddrAsInt8X16#"),
+    ('9', 2605, InTerms, Just "GHC.PrimopWrappers", "readInt8OffAddrAsInt8X16#"),
+    ('9', 2606, InTerms, Just "GHC.Prim", "readInt16OffAddrAsInt16X8#"),
+    ('9', 2607, InTerms, Just "GHC.PrimopWrappers", "readInt16OffAddrAsInt16X8#"),
+    ('9', 2608, InTerms, Just "GHC.Prim", "readInt32OffAddrAsInt32X4#"),
+    ('9', 2609, InTerms, Just "GHC.PrimopWrappers", "readInt32OffAddrAsInt32X4#"),
+    ('9', 2610, InTerms, Just "GHC.Prim", "readInt64OffAddrAsInt64X2#"),
+    ('9', 2611, InTerms, Just "GHC.PrimopWrappers", "readInt64OffAddrAsInt64X2#"),
+    ('9', 2612, InTerms, Just "GHC.Prim", "readInt8OffAddrAsInt8X32#"),
+    ('9', 2613, InTerms, Just "GHC.PrimopWrappers", "readInt8OffAddrAsInt8X32#"),
+    ('9', 2614, InTerms, Just "GHC.Prim", "readInt16OffAddrAsInt16X16#"),
+    ('9', 2615, InTerms, Just "GHC.PrimopWrappers", "readInt16OffAddrAsInt16X16#"),
+    ('9', 2616, InTerms, Just "GHC.Prim", "readInt32OffAddrAsInt32X8#"),
+    ('9', 2617, InTerms, Just "GHC.PrimopWrappers", "readInt32OffAddrAsInt32X8#"),
+    ('9', 2618, InTerms, Just "GHC.Prim", "readInt64OffAddrAsInt64X4#"),
+    ('9', 2619, InTerms, Just "GHC.PrimopWrappers", "readInt64OffAddrAsInt64X4#"),
+    ('9', 2620, InTerms, Just "GHC.Prim", "readInt8OffAddrAsInt8X64#"),
+    ('9', 2621, InTerms, Just "GHC.PrimopWrappers", "readInt8OffAddrAsInt8X64#"),
+    ('9', 2622, InTerms, Just "GHC.Prim", "readInt16OffAddrAsInt16X32#"),
+    ('9', 2623, InTerms, Just "GHC.PrimopWrappers", "readInt16OffAddrAsInt16X32#"),
+    ('9', 2624, InTerms, Just "GHC.Prim", "readInt32OffAddrAsInt32X16#"),
+    ('9', 2625, InTerms, Just "GHC.PrimopWrappers", "readInt32OffAddrAsInt32X16#"),
+    ('9', 2626, InTerms, Just "GHC.Prim", "readInt64OffAddrAsInt64X8#"),
+    ('9', 2627, InTerms, Just "GHC.PrimopWrappers", "readInt64OffAddrAsInt64X8#"),
+    ('9', 2628, InTerms, Just "GHC.Prim", "readWord8OffAddrAsWord8X16#"),
+    ('9', 2629, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsWord8X16#"),
+    ('9', 2630, InTerms, Just "GHC.Prim", "readWord16OffAddrAsWord16X8#"),
+    ('9', 2631, InTerms, Just "GHC.PrimopWrappers", "readWord16OffAddrAsWord16X8#"),
+    ('9', 2632, InTerms, Just "GHC.Prim", "readWord32OffAddrAsWord32X4#"),
+    ('9', 2633, InTerms, Just "GHC.PrimopWrappers", "readWord32OffAddrAsWord32X4#"),
+    ('9', 2634, InTerms, Just "GHC.Prim", "readWord64OffAddrAsWord64X2#"),
+    ('9', 2635, InTerms, Just "GHC.PrimopWrappers", "readWord64OffAddrAsWord64X2#"),
+    ('9', 2636, InTerms, Just "GHC.Prim", "readWord8OffAddrAsWord8X32#"),
+    ('9', 2637, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsWord8X32#"),
+    ('9', 2638, InTerms, Just "GHC.Prim", "readWord16OffAddrAsWord16X16#"),
+    ('9', 2639, InTerms, Just "GHC.PrimopWrappers", "readWord16OffAddrAsWord16X16#"),
+    ('9', 2640, InTerms, Just "GHC.Prim", "readWord32OffAddrAsWord32X8#"),
+    ('9', 2641, InTerms, Just "GHC.PrimopWrappers", "readWord32OffAddrAsWord32X8#"),
+    ('9', 2642, InTerms, Just "GHC.Prim", "readWord64OffAddrAsWord64X4#"),
+    ('9', 2643, InTerms, Just "GHC.PrimopWrappers", "readWord64OffAddrAsWord64X4#"),
+    ('9', 2644, InTerms, Just "GHC.Prim", "readWord8OffAddrAsWord8X64#"),
+    ('9', 2645, InTerms, Just "GHC.PrimopWrappers", "readWord8OffAddrAsWord8X64#"),
+    ('9', 2646, InTerms, Just "GHC.Prim", "readWord16OffAddrAsWord16X32#"),
+    ('9', 2647, InTerms, Just "GHC.PrimopWrappers", "readWord16OffAddrAsWord16X32#"),
+    ('9', 2648, InTerms, Just "GHC.Prim", "readWord32OffAddrAsWord32X16#"),
+    ('9', 2649, InTerms, Just "GHC.PrimopWrappers", "readWord32OffAddrAsWord32X16#"),
+    ('9', 2650, InTerms, Just "GHC.Prim", "readWord64OffAddrAsWord64X8#"),
+    ('9', 2651, InTerms, Just "GHC.PrimopWrappers", "readWord64OffAddrAsWord64X8#"),
+    ('9', 2652, InTerms, Just "GHC.Prim", "readFloatOffAddrAsFloatX4#"),
+    ('9', 2653, InTerms, Just "GHC.PrimopWrappers", "readFloatOffAddrAsFloatX4#"),
+    ('9', 2654, InTerms, Just "GHC.Prim", "readDoubleOffAddrAsDoubleX2#"),
+    ('9', 2655, InTerms, Just "GHC.PrimopWrappers", "readDoubleOffAddrAsDoubleX2#"),
+    ('9', 2656, InTerms, Just "GHC.Prim", "readFloatOffAddrAsFloatX8#"),
+    ('9', 2657, InTerms, Just "GHC.PrimopWrappers", "readFloatOffAddrAsFloatX8#"),
+    ('9', 2658, InTerms, Just "GHC.Prim", "readDoubleOffAddrAsDoubleX4#"),
+    ('9', 2659, InTerms, Just "GHC.PrimopWrappers", "readDoubleOffAddrAsDoubleX4#"),
+    ('9', 2660, InTerms, Just "GHC.Prim", "readFloatOffAddrAsFloatX16#"),
+    ('9', 2661, InTerms, Just "GHC.PrimopWrappers", "readFloatOffAddrAsFloatX16#"),
+    ('9', 2662, InTerms, Just "GHC.Prim", "readDoubleOffAddrAsDoubleX8#"),
+    ('9', 2663, InTerms, Just "GHC.PrimopWrappers", "readDoubleOffAddrAsDoubleX8#"),
+    ('9', 2664, InTerms, Just "GHC.Prim", "writeInt8OffAddrAsInt8X16#"),
+    ('9', 2665, InTerms, Just "GHC.PrimopWrappers", "writeInt8OffAddrAsInt8X16#"),
+    ('9', 2666, InTerms, Just "GHC.Prim", "writeInt16OffAddrAsInt16X8#"),
+    ('9', 2667, InTerms, Just "GHC.PrimopWrappers", "writeInt16OffAddrAsInt16X8#"),
+    ('9', 2668, InTerms, Just "GHC.Prim", "writeInt32OffAddrAsInt32X4#"),
+    ('9', 2669, InTerms, Just "GHC.PrimopWrappers", "writeInt32OffAddrAsInt32X4#"),
+    ('9', 2670, InTerms, Just "GHC.Prim", "writeInt64OffAddrAsInt64X2#"),
+    ('9', 2671, InTerms, Just "GHC.PrimopWrappers", "writeInt64OffAddrAsInt64X2#"),
+    ('9', 2672, InTerms, Just "GHC.Prim", "writeInt8OffAddrAsInt8X32#"),
+    ('9', 2673, InTerms, Just "GHC.PrimopWrappers", "writeInt8OffAddrAsInt8X32#"),
+    ('9', 2674, InTerms, Just "GHC.Prim", "writeInt16OffAddrAsInt16X16#"),
+    ('9', 2675, InTerms, Just "GHC.PrimopWrappers", "writeInt16OffAddrAsInt16X16#"),
+    ('9', 2676, InTerms, Just "GHC.Prim", "writeInt32OffAddrAsInt32X8#"),
+    ('9', 2677, InTerms, Just "GHC.PrimopWrappers", "writeInt32OffAddrAsInt32X8#"),
+    ('9', 2678, InTerms, Just "GHC.Prim", "writeInt64OffAddrAsInt64X4#"),
+    ('9', 2679, InTerms, Just "GHC.PrimopWrappers", "writeInt64OffAddrAsInt64X4#"),
+    ('9', 2680, InTerms, Just "GHC.Prim", "writeInt8OffAddrAsInt8X64#"),
+    ('9', 2681, InTerms, Just "GHC.PrimopWrappers", "writeInt8OffAddrAsInt8X64#"),
+    ('9', 2682, InTerms, Just "GHC.Prim", "writeInt16OffAddrAsInt16X32#"),
+    ('9', 2683, InTerms, Just "GHC.PrimopWrappers", "writeInt16OffAddrAsInt16X32#"),
+    ('9', 2684, InTerms, Just "GHC.Prim", "writeInt32OffAddrAsInt32X16#"),
+    ('9', 2685, InTerms, Just "GHC.PrimopWrappers", "writeInt32OffAddrAsInt32X16#"),
+    ('9', 2686, InTerms, Just "GHC.Prim", "writeInt64OffAddrAsInt64X8#"),
+    ('9', 2687, InTerms, Just "GHC.PrimopWrappers", "writeInt64OffAddrAsInt64X8#"),
+    ('9', 2688, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsWord8X16#"),
+    ('9', 2689, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsWord8X16#"),
+    ('9', 2690, InTerms, Just "GHC.Prim", "writeWord16OffAddrAsWord16X8#"),
+    ('9', 2691, InTerms, Just "GHC.PrimopWrappers", "writeWord16OffAddrAsWord16X8#"),
+    ('9', 2692, InTerms, Just "GHC.Prim", "writeWord32OffAddrAsWord32X4#"),
+    ('9', 2693, InTerms, Just "GHC.PrimopWrappers", "writeWord32OffAddrAsWord32X4#"),
+    ('9', 2694, InTerms, Just "GHC.Prim", "writeWord64OffAddrAsWord64X2#"),
+    ('9', 2695, InTerms, Just "GHC.PrimopWrappers", "writeWord64OffAddrAsWord64X2#"),
+    ('9', 2696, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsWord8X32#"),
+    ('9', 2697, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsWord8X32#"),
+    ('9', 2698, InTerms, Just "GHC.Prim", "writeWord16OffAddrAsWord16X16#"),
+    ('9', 2699, InTerms, Just "GHC.PrimopWrappers", "writeWord16OffAddrAsWord16X16#"),
+    ('9', 2700, InTerms, Just "GHC.Prim", "writeWord32OffAddrAsWord32X8#"),
+    ('9', 2701, InTerms, Just "GHC.PrimopWrappers", "writeWord32OffAddrAsWord32X8#"),
+    ('9', 2702, InTerms, Just "GHC.Prim", "writeWord64OffAddrAsWord64X4#"),
+    ('9', 2703, InTerms, Just "GHC.PrimopWrappers", "writeWord64OffAddrAsWord64X4#"),
+    ('9', 2704, InTerms, Just "GHC.Prim", "writeWord8OffAddrAsWord8X64#"),
+    ('9', 2705, InTerms, Just "GHC.PrimopWrappers", "writeWord8OffAddrAsWord8X64#"),
+    ('9', 2706, InTerms, Just "GHC.Prim", "writeWord16OffAddrAsWord16X32#"),
+    ('9', 2707, InTerms, Just "GHC.PrimopWrappers", "writeWord16OffAddrAsWord16X32#"),
+    ('9', 2708, InTerms, Just "GHC.Prim", "writeWord32OffAddrAsWord32X16#"),
+    ('9', 2709, InTerms, Just "GHC.PrimopWrappers", "writeWord32OffAddrAsWord32X16#"),
+    ('9', 2710, InTerms, Just "GHC.Prim", "writeWord64OffAddrAsWord64X8#"),
+    ('9', 2711, InTerms, Just "GHC.PrimopWrappers", "writeWord64OffAddrAsWord64X8#"),
+    ('9', 2712, InTerms, Just "GHC.Prim", "writeFloatOffAddrAsFloatX4#"),
+    ('9', 2713, InTerms, Just "GHC.PrimopWrappers", "writeFloatOffAddrAsFloatX4#"),
+    ('9', 2714, InTerms, Just "GHC.Prim", "writeDoubleOffAddrAsDoubleX2#"),
+    ('9', 2715, InTerms, Just "GHC.PrimopWrappers", "writeDoubleOffAddrAsDoubleX2#"),
+    ('9', 2716, InTerms, Just "GHC.Prim", "writeFloatOffAddrAsFloatX8#"),
+    ('9', 2717, InTerms, Just "GHC.PrimopWrappers", "writeFloatOffAddrAsFloatX8#"),
+    ('9', 2718, InTerms, Just "GHC.Prim", "writeDoubleOffAddrAsDoubleX4#"),
+    ('9', 2719, InTerms, Just "GHC.PrimopWrappers", "writeDoubleOffAddrAsDoubleX4#"),
+    ('9', 2720, InTerms, Just "GHC.Prim", "writeFloatOffAddrAsFloatX16#"),
+    ('9', 2721, InTerms, Just "GHC.PrimopWrappers", "writeFloatOffAddrAsFloatX16#"),
+    ('9', 2722, InTerms, Just "GHC.Prim", "writeDoubleOffAddrAsDoubleX8#"),
+    ('9', 2723, InTerms, Just "GHC.PrimopWrappers", "writeDoubleOffAddrAsDoubleX8#"),
+    ('9', 2724, InTerms, Just "GHC.Prim", "fmaddFloatX4#"),
+    ('9', 2725, InTerms, Just "GHC.PrimopWrappers", "fmaddFloatX4#"),
+    ('9', 2726, InTerms, Just "GHC.Prim", "fmaddDoubleX2#"),
+    ('9', 2727, InTerms, Just "GHC.PrimopWrappers", "fmaddDoubleX2#"),
+    ('9', 2728, InTerms, Just "GHC.Prim", "fmaddFloatX8#"),
+    ('9', 2729, InTerms, Just "GHC.PrimopWrappers", "fmaddFloatX8#"),
+    ('9', 2730, InTerms, Just "GHC.Prim", "fmaddDoubleX4#"),
+    ('9', 2731, InTerms, Just "GHC.PrimopWrappers", "fmaddDoubleX4#"),
+    ('9', 2732, InTerms, Just "GHC.Prim", "fmaddFloatX16#"),
+    ('9', 2733, InTerms, Just "GHC.PrimopWrappers", "fmaddFloatX16#"),
+    ('9', 2734, InTerms, Just "GHC.Prim", "fmaddDoubleX8#"),
+    ('9', 2735, InTerms, Just "GHC.PrimopWrappers", "fmaddDoubleX8#"),
+    ('9', 2736, InTerms, Just "GHC.Prim", "fmsubFloatX4#"),
+    ('9', 2737, InTerms, Just "GHC.PrimopWrappers", "fmsubFloatX4#"),
+    ('9', 2738, InTerms, Just "GHC.Prim", "fmsubDoubleX2#"),
+    ('9', 2739, InTerms, Just "GHC.PrimopWrappers", "fmsubDoubleX2#"),
+    ('9', 2740, InTerms, Just "GHC.Prim", "fmsubFloatX8#"),
+    ('9', 2741, InTerms, Just "GHC.PrimopWrappers", "fmsubFloatX8#"),
+    ('9', 2742, InTerms, Just "GHC.Prim", "fmsubDoubleX4#"),
+    ('9', 2743, InTerms, Just "GHC.PrimopWrappers", "fmsubDoubleX4#"),
+    ('9', 2744, InTerms, Just "GHC.Prim", "fmsubFloatX16#"),
+    ('9', 2745, InTerms, Just "GHC.PrimopWrappers", "fmsubFloatX16#"),
+    ('9', 2746, InTerms, Just "GHC.Prim", "fmsubDoubleX8#"),
+    ('9', 2747, InTerms, Just "GHC.PrimopWrappers", "fmsubDoubleX8#"),
+    ('9', 2748, InTerms, Just "GHC.Prim", "fnmaddFloatX4#"),
+    ('9', 2749, InTerms, Just "GHC.PrimopWrappers", "fnmaddFloatX4#"),
+    ('9', 2750, InTerms, Just "GHC.Prim", "fnmaddDoubleX2#"),
+    ('9', 2751, InTerms, Just "GHC.PrimopWrappers", "fnmaddDoubleX2#"),
+    ('9', 2752, InTerms, Just "GHC.Prim", "fnmaddFloatX8#"),
+    ('9', 2753, InTerms, Just "GHC.PrimopWrappers", "fnmaddFloatX8#"),
+    ('9', 2754, InTerms, Just "GHC.Prim", "fnmaddDoubleX4#"),
+    ('9', 2755, InTerms, Just "GHC.PrimopWrappers", "fnmaddDoubleX4#"),
+    ('9', 2756, InTerms, Just "GHC.Prim", "fnmaddFloatX16#"),
+    ('9', 2757, InTerms, Just "GHC.PrimopWrappers", "fnmaddFloatX16#"),
+    ('9', 2758, InTerms, Just "GHC.Prim", "fnmaddDoubleX8#"),
+    ('9', 2759, InTerms, Just "GHC.PrimopWrappers", "fnmaddDoubleX8#"),
+    ('9', 2760, InTerms, Just "GHC.Prim", "fnmsubFloatX4#"),
+    ('9', 2761, InTerms, Just "GHC.PrimopWrappers", "fnmsubFloatX4#"),
+    ('9', 2762, InTerms, Just "GHC.Prim", "fnmsubDoubleX2#"),
+    ('9', 2763, InTerms, Just "GHC.PrimopWrappers", "fnmsubDoubleX2#"),
+    ('9', 2764, InTerms, Just "GHC.Prim", "fnmsubFloatX8#"),
+    ('9', 2765, InTerms, Just "GHC.PrimopWrappers", "fnmsubFloatX8#"),
+    ('9', 2766, InTerms, Just "GHC.Prim", "fnmsubDoubleX4#"),
+    ('9', 2767, InTerms, Just "GHC.PrimopWrappers", "fnmsubDoubleX4#"),
+    ('9', 2768, InTerms, Just "GHC.Prim", "fnmsubFloatX16#"),
+    ('9', 2769, InTerms, Just "GHC.PrimopWrappers", "fnmsubFloatX16#"),
+    ('9', 2770, InTerms, Just "GHC.Prim", "fnmsubDoubleX8#"),
+    ('9', 2771, InTerms, Just "GHC.PrimopWrappers", "fnmsubDoubleX8#"),
+    ('9', 2772, InTerms, Just "GHC.Prim", "shuffleInt8X16#"),
+    ('9', 2773, InTerms, Just "GHC.PrimopWrappers", "shuffleInt8X16#"),
+    ('9', 2774, InTerms, Just "GHC.Prim", "shuffleInt16X8#"),
+    ('9', 2775, InTerms, Just "GHC.PrimopWrappers", "shuffleInt16X8#"),
+    ('9', 2776, InTerms, Just "GHC.Prim", "shuffleInt32X4#"),
+    ('9', 2777, InTerms, Just "GHC.PrimopWrappers", "shuffleInt32X4#"),
+    ('9', 2778, InTerms, Just "GHC.Prim", "shuffleInt64X2#"),
+    ('9', 2779, InTerms, Just "GHC.PrimopWrappers", "shuffleInt64X2#"),
+    ('9', 2780, InTerms, Just "GHC.Prim", "shuffleInt8X32#"),
+    ('9', 2781, InTerms, Just "GHC.PrimopWrappers", "shuffleInt8X32#"),
+    ('9', 2782, InTerms, Just "GHC.Prim", "shuffleInt16X16#"),
+    ('9', 2783, InTerms, Just "GHC.PrimopWrappers", "shuffleInt16X16#"),
+    ('9', 2784, InTerms, Just "GHC.Prim", "shuffleInt32X8#"),
+    ('9', 2785, InTerms, Just "GHC.PrimopWrappers", "shuffleInt32X8#"),
+    ('9', 2786, InTerms, Just "GHC.Prim", "shuffleInt64X4#"),
+    ('9', 2787, InTerms, Just "GHC.PrimopWrappers", "shuffleInt64X4#"),
+    ('9', 2788, InTerms, Just "GHC.Prim", "shuffleInt8X64#"),
+    ('9', 2789, InTerms, Just "GHC.PrimopWrappers", "shuffleInt8X64#"),
+    ('9', 2790, InTerms, Just "GHC.Prim", "shuffleInt16X32#"),
+    ('9', 2791, InTerms, Just "GHC.PrimopWrappers", "shuffleInt16X32#"),
+    ('9', 2792, InTerms, Just "GHC.Prim", "shuffleInt32X16#"),
+    ('9', 2793, InTerms, Just "GHC.PrimopWrappers", "shuffleInt32X16#"),
+    ('9', 2794, InTerms, Just "GHC.Prim", "shuffleInt64X8#"),
+    ('9', 2795, InTerms, Just "GHC.PrimopWrappers", "shuffleInt64X8#"),
+    ('9', 2796, InTerms, Just "GHC.Prim", "shuffleWord8X16#"),
+    ('9', 2797, InTerms, Just "GHC.PrimopWrappers", "shuffleWord8X16#"),
+    ('9', 2798, InTerms, Just "GHC.Prim", "shuffleWord16X8#"),
+    ('9', 2799, InTerms, Just "GHC.PrimopWrappers", "shuffleWord16X8#"),
+    ('9', 2800, InTerms, Just "GHC.Prim", "shuffleWord32X4#"),
+    ('9', 2801, InTerms, Just "GHC.PrimopWrappers", "shuffleWord32X4#"),
+    ('9', 2802, InTerms, Just "GHC.Prim", "shuffleWord64X2#"),
+    ('9', 2803, InTerms, Just "GHC.PrimopWrappers", "shuffleWord64X2#"),
+    ('9', 2804, InTerms, Just "GHC.Prim", "shuffleWord8X32#"),
+    ('9', 2805, InTerms, Just "GHC.PrimopWrappers", "shuffleWord8X32#"),
+    ('9', 2806, InTerms, Just "GHC.Prim", "shuffleWord16X16#"),
+    ('9', 2807, InTerms, Just "GHC.PrimopWrappers", "shuffleWord16X16#"),
+    ('9', 2808, InTerms, Just "GHC.Prim", "shuffleWord32X8#"),
+    ('9', 2809, InTerms, Just "GHC.PrimopWrappers", "shuffleWord32X8#"),
+    ('9', 2810, InTerms, Just "GHC.Prim", "shuffleWord64X4#"),
+    ('9', 2811, InTerms, Just "GHC.PrimopWrappers", "shuffleWord64X4#"),
+    ('9', 2812, InTerms, Just "GHC.Prim", "shuffleWord8X64#"),
+    ('9', 2813, InTerms, Just "GHC.PrimopWrappers", "shuffleWord8X64#"),
+    ('9', 2814, InTerms, Just "GHC.Prim", "shuffleWord16X32#"),
+    ('9', 2815, InTerms, Just "GHC.PrimopWrappers", "shuffleWord16X32#"),
+    ('9', 2816, InTerms, Just "GHC.Prim", "shuffleWord32X16#"),
+    ('9', 2817, InTerms, Just "GHC.PrimopWrappers", "shuffleWord32X16#"),
+    ('9', 2818, InTerms, Just "GHC.Prim", "shuffleWord64X8#"),
+    ('9', 2819, InTerms, Just "GHC.PrimopWrappers", "shuffleWord64X8#"),
+    ('9', 2820, InTerms, Just "GHC.Prim", "shuffleFloatX4#"),
+    ('9', 2821, InTerms, Just "GHC.PrimopWrappers", "shuffleFloatX4#"),
+    ('9', 2822, InTerms, Just "GHC.Prim", "shuffleDoubleX2#"),
+    ('9', 2823, InTerms, Just "GHC.PrimopWrappers", "shuffleDoubleX2#"),
+    ('9', 2824, InTerms, Just "GHC.Prim", "shuffleFloatX8#"),
+    ('9', 2825, InTerms, Just "GHC.PrimopWrappers", "shuffleFloatX8#"),
+    ('9', 2826, InTerms, Just "GHC.Prim", "shuffleDoubleX4#"),
+    ('9', 2827, InTerms, Just "GHC.PrimopWrappers", "shuffleDoubleX4#"),
+    ('9', 2828, InTerms, Just "GHC.Prim", "shuffleFloatX16#"),
+    ('9', 2829, InTerms, Just "GHC.PrimopWrappers", "shuffleFloatX16#"),
+    ('9', 2830, InTerms, Just "GHC.Prim", "shuffleDoubleX8#"),
+    ('9', 2831, InTerms, Just "GHC.PrimopWrappers", "shuffleDoubleX8#"),
+    ('9', 2832, InTerms, Just "GHC.Prim", "minInt8X16#"),
+    ('9', 2833, InTerms, Just "GHC.PrimopWrappers", "minInt8X16#"),
+    ('9', 2834, InTerms, Just "GHC.Prim", "minInt16X8#"),
+    ('9', 2835, InTerms, Just "GHC.PrimopWrappers", "minInt16X8#"),
+    ('9', 2836, InTerms, Just "GHC.Prim", "minInt32X4#"),
+    ('9', 2837, InTerms, Just "GHC.PrimopWrappers", "minInt32X4#"),
+    ('9', 2838, InTerms, Just "GHC.Prim", "minInt64X2#"),
+    ('9', 2839, InTerms, Just "GHC.PrimopWrappers", "minInt64X2#"),
+    ('9', 2840, InTerms, Just "GHC.Prim", "minInt8X32#"),
+    ('9', 2841, InTerms, Just "GHC.PrimopWrappers", "minInt8X32#"),
+    ('9', 2842, InTerms, Just "GHC.Prim", "minInt16X16#"),
+    ('9', 2843, InTerms, Just "GHC.PrimopWrappers", "minInt16X16#"),
+    ('9', 2844, InTerms, Just "GHC.Prim", "minInt32X8#"),
+    ('9', 2845, InTerms, Just "GHC.PrimopWrappers", "minInt32X8#"),
+    ('9', 2846, InTerms, Just "GHC.Prim", "minInt64X4#"),
+    ('9', 2847, InTerms, Just "GHC.PrimopWrappers", "minInt64X4#"),
+    ('9', 2848, InTerms, Just "GHC.Prim", "minInt8X64#"),
+    ('9', 2849, InTerms, Just "GHC.PrimopWrappers", "minInt8X64#"),
+    ('9', 2850, InTerms, Just "GHC.Prim", "minInt16X32#"),
+    ('9', 2851, InTerms, Just "GHC.PrimopWrappers", "minInt16X32#"),
+    ('9', 2852, InTerms, Just "GHC.Prim", "minInt32X16#"),
+    ('9', 2853, InTerms, Just "GHC.PrimopWrappers", "minInt32X16#"),
+    ('9', 2854, InTerms, Just "GHC.Prim", "minInt64X8#"),
+    ('9', 2855, InTerms, Just "GHC.PrimopWrappers", "minInt64X8#"),
+    ('9', 2856, InTerms, Just "GHC.Prim", "minWord8X16#"),
+    ('9', 2857, InTerms, Just "GHC.PrimopWrappers", "minWord8X16#"),
+    ('9', 2858, InTerms, Just "GHC.Prim", "minWord16X8#"),
+    ('9', 2859, InTerms, Just "GHC.PrimopWrappers", "minWord16X8#"),
+    ('9', 2860, InTerms, Just "GHC.Prim", "minWord32X4#"),
+    ('9', 2861, InTerms, Just "GHC.PrimopWrappers", "minWord32X4#"),
+    ('9', 2862, InTerms, Just "GHC.Prim", "minWord64X2#"),
+    ('9', 2863, InTerms, Just "GHC.PrimopWrappers", "minWord64X2#"),
+    ('9', 2864, InTerms, Just "GHC.Prim", "minWord8X32#"),
+    ('9', 2865, InTerms, Just "GHC.PrimopWrappers", "minWord8X32#"),
+    ('9', 2866, InTerms, Just "GHC.Prim", "minWord16X16#"),
+    ('9', 2867, InTerms, Just "GHC.PrimopWrappers", "minWord16X16#"),
+    ('9', 2868, InTerms, Just "GHC.Prim", "minWord32X8#"),
+    ('9', 2869, InTerms, Just "GHC.PrimopWrappers", "minWord32X8#"),
+    ('9', 2870, InTerms, Just "GHC.Prim", "minWord64X4#"),
+    ('9', 2871, InTerms, Just "GHC.PrimopWrappers", "minWord64X4#"),
+    ('9', 2872, InTerms, Just "GHC.Prim", "minWord8X64#"),
+    ('9', 2873, InTerms, Just "GHC.PrimopWrappers", "minWord8X64#"),
+    ('9', 2874, InTerms, Just "GHC.Prim", "minWord16X32#"),
+    ('9', 2875, InTerms, Just "GHC.PrimopWrappers", "minWord16X32#"),
+    ('9', 2876, InTerms, Just "GHC.Prim", "minWord32X16#"),
+    ('9', 2877, InTerms, Just "GHC.PrimopWrappers", "minWord32X16#"),
+    ('9', 2878, InTerms, Just "GHC.Prim", "minWord64X8#"),
+    ('9', 2879, InTerms, Just "GHC.PrimopWrappers", "minWord64X8#"),
+    ('9', 2880, InTerms, Just "GHC.Prim", "minFloatX4#"),
+    ('9', 2881, InTerms, Just "GHC.PrimopWrappers", "minFloatX4#"),
+    ('9', 2882, InTerms, Just "GHC.Prim", "minDoubleX2#"),
+    ('9', 2883, InTerms, Just "GHC.PrimopWrappers", "minDoubleX2#"),
+    ('9', 2884, InTerms, Just "GHC.Prim", "minFloatX8#"),
+    ('9', 2885, InTerms, Just "GHC.PrimopWrappers", "minFloatX8#"),
+    ('9', 2886, InTerms, Just "GHC.Prim", "minDoubleX4#"),
+    ('9', 2887, InTerms, Just "GHC.PrimopWrappers", "minDoubleX4#"),
+    ('9', 2888, InTerms, Just "GHC.Prim", "minFloatX16#"),
+    ('9', 2889, InTerms, Just "GHC.PrimopWrappers", "minFloatX16#"),
+    ('9', 2890, InTerms, Just "GHC.Prim", "minDoubleX8#"),
+    ('9', 2891, InTerms, Just "GHC.PrimopWrappers", "minDoubleX8#"),
+    ('9', 2892, InTerms, Just "GHC.Prim", "maxInt8X16#"),
+    ('9', 2893, InTerms, Just "GHC.PrimopWrappers", "maxInt8X16#"),
+    ('9', 2894, InTerms, Just "GHC.Prim", "maxInt16X8#"),
+    ('9', 2895, InTerms, Just "GHC.PrimopWrappers", "maxInt16X8#"),
+    ('9', 2896, InTerms, Just "GHC.Prim", "maxInt32X4#"),
+    ('9', 2897, InTerms, Just "GHC.PrimopWrappers", "maxInt32X4#"),
+    ('9', 2898, InTerms, Just "GHC.Prim", "maxInt64X2#"),
+    ('9', 2899, InTerms, Just "GHC.PrimopWrappers", "maxInt64X2#"),
+    ('9', 2900, InTerms, Just "GHC.Prim", "maxInt8X32#"),
+    ('9', 2901, InTerms, Just "GHC.PrimopWrappers", "maxInt8X32#"),
+    ('9', 2902, InTerms, Just "GHC.Prim", "maxInt16X16#"),
+    ('9', 2903, InTerms, Just "GHC.PrimopWrappers", "maxInt16X16#"),
+    ('9', 2904, InTerms, Just "GHC.Prim", "maxInt32X8#"),
+    ('9', 2905, InTerms, Just "GHC.PrimopWrappers", "maxInt32X8#"),
+    ('9', 2906, InTerms, Just "GHC.Prim", "maxInt64X4#"),
+    ('9', 2907, InTerms, Just "GHC.PrimopWrappers", "maxInt64X4#"),
+    ('9', 2908, InTerms, Just "GHC.Prim", "maxInt8X64#"),
+    ('9', 2909, InTerms, Just "GHC.PrimopWrappers", "maxInt8X64#"),
+    ('9', 2910, InTerms, Just "GHC.Prim", "maxInt16X32#"),
+    ('9', 2911, InTerms, Just "GHC.PrimopWrappers", "maxInt16X32#"),
+    ('9', 2912, InTerms, Just "GHC.Prim", "maxInt32X16#"),
+    ('9', 2913, InTerms, Just "GHC.PrimopWrappers", "maxInt32X16#"),
+    ('9', 2914, InTerms, Just "GHC.Prim", "maxInt64X8#"),
+    ('9', 2915, InTerms, Just "GHC.PrimopWrappers", "maxInt64X8#"),
+    ('9', 2916, InTerms, Just "GHC.Prim", "maxWord8X16#"),
+    ('9', 2917, InTerms, Just "GHC.PrimopWrappers", "maxWord8X16#"),
+    ('9', 2918, InTerms, Just "GHC.Prim", "maxWord16X8#"),
+    ('9', 2919, InTerms, Just "GHC.PrimopWrappers", "maxWord16X8#"),
+    ('9', 2920, InTerms, Just "GHC.Prim", "maxWord32X4#"),
+    ('9', 2921, InTerms, Just "GHC.PrimopWrappers", "maxWord32X4#"),
+    ('9', 2922, InTerms, Just "GHC.Prim", "maxWord64X2#"),
+    ('9', 2923, InTerms, Just "GHC.PrimopWrappers", "maxWord64X2#"),
+    ('9', 2924, InTerms, Just "GHC.Prim", "maxWord8X32#"),
+    ('9', 2925, InTerms, Just "GHC.PrimopWrappers", "maxWord8X32#"),
+    ('9', 2926, InTerms, Just "GHC.Prim", "maxWord16X16#"),
+    ('9', 2927, InTerms, Just "GHC.PrimopWrappers", "maxWord16X16#"),
+    ('9', 2928, InTerms, Just "GHC.Prim", "maxWord32X8#"),
+    ('9', 2929, InTerms, Just "GHC.PrimopWrappers", "maxWord32X8#"),
+    ('9', 2930, InTerms, Just "GHC.Prim", "maxWord64X4#"),
+    ('9', 2931, InTerms, Just "GHC.PrimopWrappers", "maxWord64X4#"),
+    ('9', 2932, InTerms, Just "GHC.Prim", "maxWord8X64#"),
+    ('9', 2933, InTerms, Just "GHC.PrimopWrappers", "maxWord8X64#"),
+    ('9', 2934, InTerms, Just "GHC.Prim", "maxWord16X32#"),
+    ('9', 2935, InTerms, Just "GHC.PrimopWrappers", "maxWord16X32#"),
+    ('9', 2936, InTerms, Just "GHC.Prim", "maxWord32X16#"),
+    ('9', 2937, InTerms, Just "GHC.PrimopWrappers", "maxWord32X16#"),
+    ('9', 2938, InTerms, Just "GHC.Prim", "maxWord64X8#"),
+    ('9', 2939, InTerms, Just "GHC.PrimopWrappers", "maxWord64X8#"),
+    ('9', 2940, InTerms, Just "GHC.Prim", "maxFloatX4#"),
+    ('9', 2941, InTerms, Just "GHC.PrimopWrappers", "maxFloatX4#"),
+    ('9', 2942, InTerms, Just "GHC.Prim", "maxDoubleX2#"),
+    ('9', 2943, InTerms, Just "GHC.PrimopWrappers", "maxDoubleX2#"),
+    ('9', 2944, InTerms, Just "GHC.Prim", "maxFloatX8#"),
+    ('9', 2945, InTerms, Just "GHC.PrimopWrappers", "maxFloatX8#"),
+    ('9', 2946, InTerms, Just "GHC.Prim", "maxDoubleX4#"),
+    ('9', 2947, InTerms, Just "GHC.PrimopWrappers", "maxDoubleX4#"),
+    ('9', 2948, InTerms, Just "GHC.Prim", "maxFloatX16#"),
+    ('9', 2949, InTerms, Just "GHC.PrimopWrappers", "maxFloatX16#"),
+    ('9', 2950, InTerms, Just "GHC.Prim", "maxDoubleX8#"),
+    ('9', 2951, InTerms, Just "GHC.PrimopWrappers", "maxDoubleX8#"),
+    ('9', 2952, InTerms, Just "GHC.Prim", "prefetchByteArray3#"),
+    ('9', 2953, InTerms, Just "GHC.PrimopWrappers", "prefetchByteArray3#"),
+    ('9', 2954, InTerms, Just "GHC.Prim", "prefetchMutableByteArray3#"),
+    ('9', 2955, InTerms, Just "GHC.PrimopWrappers", "prefetchMutableByteArray3#"),
+    ('9', 2956, InTerms, Just "GHC.Prim", "prefetchAddr3#"),
+    ('9', 2957, InTerms, Just "GHC.PrimopWrappers", "prefetchAddr3#"),
+    ('9', 2958, InTerms, Just "GHC.Prim", "prefetchValue3#"),
+    ('9', 2959, InTerms, Just "GHC.PrimopWrappers", "prefetchValue3#"),
+    ('9', 2960, InTerms, Just "GHC.Prim", "prefetchByteArray2#"),
+    ('9', 2961, InTerms, Just "GHC.PrimopWrappers", "prefetchByteArray2#"),
+    ('9', 2962, InTerms, Just "GHC.Prim", "prefetchMutableByteArray2#"),
+    ('9', 2963, InTerms, Just "GHC.PrimopWrappers", "prefetchMutableByteArray2#"),
+    ('9', 2964, InTerms, Just "GHC.Prim", "prefetchAddr2#"),
+    ('9', 2965, InTerms, Just "GHC.PrimopWrappers", "prefetchAddr2#"),
+    ('9', 2966, InTerms, Just "GHC.Prim", "prefetchValue2#"),
+    ('9', 2967, InTerms, Just "GHC.PrimopWrappers", "prefetchValue2#"),
+    ('9', 2968, InTerms, Just "GHC.Prim", "prefetchByteArray1#"),
+    ('9', 2969, InTerms, Just "GHC.PrimopWrappers", "prefetchByteArray1#"),
+    ('9', 2970, InTerms, Just "GHC.Prim", "prefetchMutableByteArray1#"),
+    ('9', 2971, InTerms, Just "GHC.PrimopWrappers", "prefetchMutableByteArray1#"),
+    ('9', 2972, InTerms, Just "GHC.Prim", "prefetchAddr1#"),
+    ('9', 2973, InTerms, Just "GHC.PrimopWrappers", "prefetchAddr1#"),
+    ('9', 2974, InTerms, Just "GHC.Prim", "prefetchValue1#"),
+    ('9', 2975, InTerms, Just "GHC.PrimopWrappers", "prefetchValue1#"),
+    ('9', 2976, InTerms, Just "GHC.Prim", "prefetchByteArray0#"),
+    ('9', 2977, InTerms, Just "GHC.PrimopWrappers", "prefetchByteArray0#"),
+    ('9', 2978, InTerms, Just "GHC.Prim", "prefetchMutableByteArray0#"),
+    ('9', 2979, InTerms, Just "GHC.PrimopWrappers", "prefetchMutableByteArray0#"),
+    ('9', 2980, InTerms, Just "GHC.Prim", "prefetchAddr0#"),
+    ('9', 2981, InTerms, Just "GHC.PrimopWrappers", "prefetchAddr0#"),
+    ('9', 2982, InTerms, Just "GHC.Prim", "prefetchValue0#"),
+    ('9', 2983, InTerms, Just "GHC.PrimopWrappers", "prefetchValue0#"),
+    ('b', 5, InTypes, Just "GHC.Types", "WordBox"),
+    ('b', 6, InTerms, Just "GHC.Types", "$tcWordBox"),
+    ('b', 7, InTerms, Just "GHC.Types", "MkWordBox"),
+    ('b', 8, InTerms, Just "GHC.Types", "MkWordBox"),
+    ('b', 9, InTerms, Just "GHC.Types", "$tc'MkWordBox"),
+    ('b', 10, InTypes, Just "GHC.Types", "IntBox"),
+    ('b', 11, InTerms, Just "GHC.Types", "$tcIntBox"),
+    ('b', 12, InTerms, Just "GHC.Types", "MkIntBox"),
+    ('b', 13, InTerms, Just "GHC.Types", "MkIntBox"),
+    ('b', 14, InTerms, Just "GHC.Types", "$tc'MkIntBox"),
+    ('b', 15, InTypes, Just "GHC.Types", "FloatBox"),
+    ('b', 16, InTerms, Just "GHC.Types", "$tcFloatBox"),
+    ('b', 17, InTerms, Just "GHC.Types", "MkFloatBox"),
+    ('b', 18, InTerms, Just "GHC.Types", "MkFloatBox"),
+    ('b', 19, InTerms, Just "GHC.Types", "$tc'MkFloatBox"),
+    ('b', 20, InTypes, Just "GHC.Types", "DoubleBox"),
+    ('b', 21, InTerms, Just "GHC.Types", "$tcDoubleBox"),
+    ('b', 22, InTerms, Just "GHC.Types", "MkDoubleBox"),
+    ('b', 23, InTerms, Just "GHC.Types", "MkDoubleBox"),
+    ('b', 24, InTerms, Just "GHC.Types", "$tc'MkDoubleBox"),
+    ('b', 25, InTypes, Just "GHC.Types", "Int8Box"),
+    ('b', 26, InTerms, Just "GHC.Types", "$tcInt8Box"),
+    ('b', 27, InTerms, Just "GHC.Types", "MkInt8Box"),
+    ('b', 28, InTerms, Just "GHC.Types", "MkInt8Box"),
+    ('b', 29, InTerms, Just "GHC.Types", "$tc'MkInt8Box"),
+    ('b', 30, InTypes, Just "GHC.Types", "Int16Box"),
+    ('b', 31, InTerms, Just "GHC.Types", "$tcInt16Box"),
+    ('b', 32, InTerms, Just "GHC.Types", "MkInt16Box"),
+    ('b', 33, InTerms, Just "GHC.Types", "MkInt16Box"),
+    ('b', 34, InTerms, Just "GHC.Types", "$tc'MkInt16Box"),
+    ('b', 35, InTypes, Just "GHC.Types", "Int32Box"),
+    ('b', 36, InTerms, Just "GHC.Types", "$tcInt32Box"),
+    ('b', 37, InTerms, Just "GHC.Types", "MkInt32Box"),
+    ('b', 38, InTerms, Just "GHC.Types", "MkInt32Box"),
+    ('b', 39, InTerms, Just "GHC.Types", "$tc'MkInt32Box"),
+    ('b', 40, InTypes, Just "GHC.Types", "Int64Box"),
+    ('b', 41, InTerms, Just "GHC.Types", "$tcInt64Box"),
+    ('b', 42, InTerms, Just "GHC.Types", "MkInt64Box"),
+    ('b', 43, InTerms, Just "GHC.Types", "MkInt64Box"),
+    ('b', 44, InTerms, Just "GHC.Types", "$tc'MkInt64Box"),
+    ('b', 45, InTypes, Just "GHC.Types", "Word8Box"),
+    ('b', 46, InTerms, Just "GHC.Types", "$tcWord8Box"),
+    ('b', 47, InTerms, Just "GHC.Types", "MkWord8Box"),
+    ('b', 48, InTerms, Just "GHC.Types", "MkWord8Box"),
+    ('b', 49, InTerms, Just "GHC.Types", "$tc'MkWord8Box"),
+    ('b', 50, InTypes, Just "GHC.Types", "Word16Box"),
+    ('b', 51, InTerms, Just "GHC.Types", "$tcWord16Box"),
+    ('b', 52, InTerms, Just "GHC.Types", "MkWord16Box"),
+    ('b', 53, InTerms, Just "GHC.Types", "MkWord16Box"),
+    ('b', 54, InTerms, Just "GHC.Types", "$tc'MkWord16Box"),
+    ('b', 55, InTypes, Just "GHC.Types", "Word32Box"),
+    ('b', 56, InTerms, Just "GHC.Types", "$tcWord32Box"),
+    ('b', 57, InTerms, Just "GHC.Types", "MkWord32Box"),
+    ('b', 58, InTerms, Just "GHC.Types", "MkWord32Box"),
+    ('b', 59, InTerms, Just "GHC.Types", "$tc'MkWord32Box"),
+    ('b', 60, InTypes, Just "GHC.Types", "Word64Box"),
+    ('b', 61, InTerms, Just "GHC.Types", "$tcWord64Box"),
+    ('b', 62, InTerms, Just "GHC.Types", "MkWord64Box"),
+    ('b', 63, InTerms, Just "GHC.Types", "MkWord64Box"),
+    ('b', 64, InTerms, Just "GHC.Types", "$tc'MkWord64Box"),
+    ('b', 65, InTypes, Just "GHC.Types", "LiftBox"),
+    ('b', 66, InTerms, Just "GHC.Types", "$tcLiftBox"),
+    ('b', 67, InTerms, Just "GHC.Types", "MkLiftBox"),
+    ('b', 68, InTerms, Just "GHC.Types", "MkLiftBox"),
+    ('b', 69, InTerms, Just "GHC.Types", "$tc'MkLiftBox"),
+    ('b', 70, InTypes, Just "GHC.Types", "DictBox"),
+    ('b', 71, InTerms, Just "GHC.Types", "$tcDictBox"),
+    ('b', 72, InTerms, Just "GHC.Types", "MkDictBox"),
+    ('b', 73, InTerms, Just "GHC.Types", "MkDictBox"),
+    ('b', 74, InTerms, Just "GHC.Types", "$tc'MkDictBox")
+  ]
+
+-- | The module GHC keeps the primitive operations in, which has no
+-- interface file, and the fixities declared there.
+primops :: (Text, [(Text, Fixity)])
+primops =
+  ( "GHC.Prim",
+    [ ("*#", Fixity LeftAssoc 7),
+      ("*##", Fixity LeftAssoc 7),
+      ("**##", Fixity LeftAssoc 9),
+      ("+#", Fixity LeftAssoc 6),
+      ("+##", Fixity LeftAssoc 6),
+      ("-#", Fixity LeftAssoc 6),
+      ("-##", Fixity LeftAssoc 6),
+      ("/##", Fixity LeftAssoc 7),
+      ("/=#", Fixity NoAssoc 4),
+      ("/=##", Fixity NoAssoc 4),
+      ("<#", Fixity NoAssoc 4),
+      ("<##", Fixity NoAssoc 4),
+      ("<=#", Fixity NoAssoc 4),
+      ("<=##", Fixity NoAssoc 4),
+      ("==#", Fixity NoAssoc 4),
+      ("==##", Fixity NoAssoc 4),
+      (">#", Fixity NoAssoc 4),
+      (">##", Fixity NoAssoc 4),
+      (">=#", Fixity NoAssoc 4),
+      (">=##", Fixity NoAssoc 4),
+      ("seq", Fixity RightAssoc 0)
+    ]
+  )
diff --git a/src/Tilia/Fixity/KnownKeys/Ghc914.hs b/src/Tilia/Fixity/KnownKeys/Ghc914.hs
new file mode 100644
--- /dev/null
+++ b/src/Tilia/Fixity/KnownKeys/Ghc914.hs
@@ -0,0 +1,4120 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+-- | The names GHC 9.14 writes into interface files as keys, and the
+-- fixities of its primitive operations.
+--
+-- Generated by @generate-known-keys.py@ in the root of the repository, from
+-- GHC 9.14.1. Run that script again to update this table.
+module Tilia.Fixity.KnownKeys.Ghc914
+  ( knownKeys,
+    primops,
+  )
+where
+
+import Data.Text (Text)
+import Tilia.Fixity (Direction (..), Fixity (..), Namespace (..))
+
+-- | Every name a key stands for: the tag and index of its key, its
+-- namespace, the module GHC prints it with, if it prints one, and its name.
+knownKeys :: [(Char, Int, Namespace, Maybe Text, Text)]
+knownKeys =
+  [ ('0', 1, InTerms, Just "GHC.Internal.Prim.Panic", "absentError"),
+    ('0', 2, InTerms, Just "GHC.Internal.Prim.Panic", "absentConstraintError"),
+    ('0', 3, InTerms, Just "GHC.Internal.Base", "augment"),
+    ('0', 4, InTerms, Just "GHC.Internal.Base", "++"),
+    ('0', 5, InTerms, Just "GHC.Internal.Base", "build"),
+    ('0', 6, InTerms, Just "GHC.Internal.Base", "foldr"),
+    ('0', 7, InTerms, Just "GHC.Internal.Control.Exception.Base", "recSelError"),
+    ('0', 8, InTerms, Just "GHC.Internal.Prim", "seq"),
+    ('0', 9, InTerms, Just "GHC.Internal.Prim.Panic", "absentSumFieldError"),
+    ('0', 10, InTerms, Just "GHC.Internal.Base", "eqString"),
+    ('0', 11, InTerms, Just "GHC.Internal.Control.Exception.Base", "noMethodBindingError"),
+    ('0', 12, InTerms, Just "GHC.Internal.Control.Exception.Base", "nonExhaustiveGuardsError"),
+    ('0', 13, InTerms, Just "GHC.Internal.Control.Exception.Base", "impossibleError"),
+    ('0', 14, InTerms, Just "GHC.Internal.Control.Exception.Base", "impossibleConstraintError"),
+    ('0', 15, InTerms, Just "GHC.Internal.Control.Exception.Base", "patError"),
+    ('0', 16, InTerms, Just "GHC.Internal.Prim", "realWorld#"),
+    ('0', 17, InTerms, Just "GHC.Internal.Control.Exception.Base", "recConError"),
+    ('0', 18, InTerms, Just "GHC.Internal.CString", "unpackCStringUtf8#"),
+    ('0', 19, InTerms, Just "GHC.Internal.CString", "unpackAppendCStringUtf8#"),
+    ('0', 20, InTerms, Just "GHC.Internal.CString", "unpackFoldrCStringUtf8#"),
+    ('0', 21, InTerms, Just "GHC.Internal.CString", "unpackCString#"),
+    ('0', 22, InTerms, Just "GHC.Internal.CString", "unpackAppendCString#"),
+    ('0', 23, InTerms, Just "GHC.Internal.CString", "unpackFoldrCString#"),
+    ('0', 24, InTerms, Just "GHC.Internal.Prim", "void#"),
+    ('0', 25, InTerms, Just "GHC.Internal.Control.Exception.Base", "typeError"),
+    ('0', 26, InTerms, Just "GHC.Internal.Classes", "divInt#"),
+    ('0', 27, InTerms, Just "GHC.Internal.Classes", "modInt#"),
+    ('0', 28, InTerms, Just "GHC.Internal.CString", "cstringLength#"),
+    ('0', 31, InTerms, Just "GHC.Internal.List", "concat"),
+    ('0', 32, InTerms, Just "GHC.Internal.List", "filter"),
+    ('0', 33, InTerms, Just "GHC.Internal.List", "zip"),
+    ('0', 34, InTerms, Just "GHC.Internal.Base", "bindIO"),
+    ('0', 35, InTerms, Just "GHC.Internal.Base", "returnIO"),
+    ('0', 36, InTerms, Just "GHC.Internal.Stable", "newStablePtr"),
+    ('0', 37, InTerms, Just "GHC.Internal.System.IO", "print"),
+    ('0', 38, InTerms, Just "GHC.Internal.IO", "failIO"),
+    ('0', 39, InTerms, Just "GHC.Internal.Prim", "nullAddr#"),
+    ('0', 43, InTerms, Just "GHC.Internal.Base", "otherwise"),
+    ('0', 44, InTerms, Just "GHC.Internal.Base", "assert"),
+    ('0', 45, InTerms, Just "GHC.Internal.Prim", "leftSection"),
+    ('0', 46, InTerms, Just "GHC.Internal.Prim", "rightSection"),
+    ('0', 102, InTerms, Just "GHC.Internal.TopHandler", "runMainIO"),
+    ('0', 103, InTerms, Just "GHC.Internal.Base", "thenIO"),
+    ('0', 104, InTerms, Just "GHC.Internal.Magic", "lazy"),
+    ('0', 105, InTerms, Just "GHC.Internal.IO.Exception", "assertError"),
+    ('0', 106, InTerms, Just "GHC.Internal.Magic", "oneShot"),
+    ('0', 107, InTerms, Just "GHC.Internal.Magic", "runRW#"),
+    ('0', 108, InTerms, Just "GHC.Internal.Debug.Trace", "trace"),
+    ('0', 109, InTerms, Just "GHC.Internal.Magic", "nospec"),
+    ('0', 120, InTerms, Just "GHC.Internal.Magic", "inline"),
+    ('0', 121, InTerms, Just "GHC.Internal.Base", "map"),
+    ('0', 123, InTerms, Just "GHC.Internal.Base", "$"),
+    ('0', 125, InTerms, Just "GHC.Internal.Exts", "considerAccessible"),
+    ('0', 126, InTerms, Just "GHC.Internal.Magic", "noinline"),
+    ('0', 127, InTerms, Just "GHC.Internal.Magic", "noinlineConstraint"),
+    ('0', 128, InTerms, Just "GHC.Internal.Float", "integerToFloat#"),
+    ('0', 129, InTerms, Just "GHC.Internal.Float", "integerToDouble#"),
+    ('0', 130, InTerms, Just "GHC.Internal.Float", "naturalToFloat#"),
+    ('0', 131, InTerms, Just "GHC.Internal.Float", "naturalToDouble#"),
+    ('0', 132, InTerms, Just "GHC.Internal.Float", "rationalToFloat"),
+    ('0', 133, InTerms, Just "GHC.Internal.Float", "rationalToDouble"),
+    ('0', 134, InTerms, Just "GHC.Internal.IO", "seq#"),
+    ('0', 157, InTerms, Just "GHC.Internal.Prim", "coerce"),
+    ('0', 160, InTerms, Just "GHC.Internal.Num", "fromInteger"),
+    ('0', 161, InTerms, Just "GHC.Internal.Num", "-"),
+    ('0', 162, InTerms, Just "GHC.Internal.Real", "fromRational"),
+    ('0', 163, InTerms, Just "GHC.Internal.Enum", "enumFrom"),
+    ('0', 164, InTerms, Just "GHC.Internal.Enum", "enumFromThen"),
+    ('0', 165, InTerms, Just "GHC.Internal.Enum", "enumFromTo"),
+    ('0', 166, InTerms, Just "GHC.Internal.Enum", "enumFromThenTo"),
+    ('0', 167, InTerms, Just "GHC.Internal.Classes", "=="),
+    ('0', 168, InTerms, Just "GHC.Internal.Classes", ">="),
+    ('0', 169, InTerms, Just "GHC.Internal.Num", "negate"),
+    ('0', 171, InTerms, Just "GHC.Internal.Base", ">>="),
+    ('0', 172, InTerms, Just "GHC.Internal.Base", ">>"),
+    ('0', 173, InTerms, Just "GHC.Internal.Base", "fmap"),
+    ('0', 174, InTerms, Just "GHC.Internal.Base", "return"),
+    ('0', 175, InTerms, Just "GHC.Internal.Control.Monad.Fix", "mfix"),
+    ('0', 176, InTerms, Just "GHC.Internal.Control.Monad.Fail", "fail"),
+    ('0', 177, InTerms, Just "GHC.Internal.OverloadedLabels", "fromLabel"),
+    ('0', 180, InTerms, Just "GHC.Internal.Control.Arrow", "arr"),
+    ('0', 181, InTerms, Just "GHC.Internal.Desugar", ">>>"),
+    ('0', 182, InTerms, Just "GHC.Internal.Control.Arrow", "first"),
+    ('0', 183, InTerms, Just "GHC.Internal.Control.Arrow", "app"),
+    ('0', 184, InTerms, Just "GHC.Internal.Control.Arrow", "|||"),
+    ('0', 185, InTerms, Just "GHC.Internal.Control.Arrow", "loop"),
+    ('0', 186, InTerms, Just "GHC.Internal.Data.String", "fromString"),
+    ('0', 187, InTerms, Just "GHC.Internal.Desugar", "toAnnotationWrapper"),
+    ('0', 190, InTerms, Just "GHC.Internal.Real", "fromIntegral"),
+    ('0', 191, InTerms, Just "GHC.Internal.Real", "realToFrac"),
+    ('0', 192, InTerms, Just "GHC.Internal.Real", "toInteger"),
+    ('0', 193, InTerms, Just "GHC.Internal.Real", "toRational"),
+    ('0', 194, InTerms, Just "GHC.Internal.Control.Monad", "guard"),
+    ('0', 195, InTerms, Just "GHC.Internal.Control.Monad", "liftM"),
+    ('0', 196, InTerms, Just "GHC.Internal.Control.Monad.Zip", "mzip"),
+    ('0', 197, InTerms, Just "GHC.Internal.GHCi", "ghciStepIO"),
+    ('0', 198, InTypes, Just "GHC.Internal.IsList", "IsList"),
+    ('0', 199, InTerms, Just "GHC.Internal.IsList", "fromList"),
+    ('0', 200, InTerms, Just "GHC.Internal.TH.Syntax", "returnQ"),
+    ('0', 201, InTerms, Just "GHC.Internal.TH.Syntax", "bindQ"),
+    ('0', 202, InTerms, Just "GHC.Internal.TH.Syntax", "sequenceQ"),
+    ('0', 203, InTerms, Just "GHC.Internal.TH.Lift", "lift"),
+    ('0', 204, InTerms, Just "GHC.Internal.TH.Syntax", "newName"),
+    ('0', 205, InTerms, Just "GHC.Internal.TH.Syntax", "mkName"),
+    ('0', 206, InTerms, Just "GHC.Internal.TH.Syntax", "mkNameG_v"),
+    ('0', 207, InTerms, Just "GHC.Internal.TH.Syntax", "mkNameG_d"),
+    ('0', 208, InTerms, Just "GHC.Internal.TH.Syntax", "mkNameG_tc"),
+    ('0', 209, InTerms, Just "GHC.Internal.TH.Syntax", "mkNameL"),
+    ('0', 210, InTerms, Just "GHC.Internal.TH.Syntax", "mkNameS"),
+    ('0', 211, InTerms, Just "GHC.Internal.TH.Syntax", "unType"),
+    ('0', 212, InTerms, Just "GHC.Internal.TH.Syntax", "unTypeCode"),
+    ('0', 214, InTerms, Just "GHC.Internal.TH.Lift", "liftTyped"),
+    ('0', 215, InTerms, Just "GHC.Internal.TH.Syntax", "mkModName"),
+    ('0', 216, InTerms, Just "GHC.Internal.TH.Syntax", "unsafeCodeCoerce"),
+    ('0', 217, InTerms, Just "GHC.Internal.TH.Syntax", "mkNameQ"),
+    ('0', 218, InTerms, Just "GHC.Internal.TH.Syntax", "mkNameG_fld"),
+    ('0', 220, InTerms, Just "GHC.Internal.TH.Lib", "charL"),
+    ('0', 221, InTerms, Just "GHC.Internal.TH.Lib", "stringL"),
+    ('0', 222, InTerms, Just "GHC.Internal.TH.Lib", "integerL"),
+    ('0', 223, InTerms, Just "GHC.Internal.TH.Lib", "intPrimL"),
+    ('0', 224, InTerms, Just "GHC.Internal.TH.Lib", "wordPrimL"),
+    ('0', 225, InTerms, Just "GHC.Internal.TH.Lib", "floatPrimL"),
+    ('0', 226, InTerms, Just "GHC.Internal.TH.Lib", "doublePrimL"),
+    ('0', 227, InTerms, Just "GHC.Internal.TH.Lib", "rationalL"),
+    ('0', 228, InTerms, Just "GHC.Internal.TH.Lib", "stringPrimL"),
+    ('0', 229, InTerms, Just "GHC.Internal.TH.Lib", "charPrimL"),
+    ('0', 230, InTerms, Just "GHC.Internal.TH.Lift", "liftString"),
+    ('0', 240, InTerms, Just "GHC.Internal.TH.Lib", "litP"),
+    ('0', 241, InTerms, Just "GHC.Internal.TH.Lib", "varP"),
+    ('0', 242, InTerms, Just "GHC.Internal.TH.Lib", "tupP"),
+    ('0', 243, InTerms, Just "GHC.Internal.TH.Lib", "unboxedTupP"),
+    ('0', 244, InTerms, Just "GHC.Internal.TH.Lib", "unboxedSumP"),
+    ('0', 245, InTerms, Just "GHC.Internal.TH.Lib", "conP"),
+    ('0', 246, InTerms, Just "GHC.Internal.TH.Lib", "infixP"),
+    ('0', 247, InTerms, Just "GHC.Internal.TH.Lib", "tildeP"),
+    ('0', 248, InTerms, Just "GHC.Internal.TH.Lib", "bangP"),
+    ('0', 249, InTerms, Just "GHC.Internal.TH.Lib", "asP"),
+    ('0', 250, InTerms, Just "GHC.Internal.TH.Lib", "wildP"),
+    ('0', 251, InTerms, Just "GHC.Internal.TH.Lib", "recP"),
+    ('0', 252, InTerms, Just "GHC.Internal.TH.Lib", "listP"),
+    ('0', 253, InTerms, Just "GHC.Internal.TH.Lib", "sigP"),
+    ('0', 254, InTerms, Just "GHC.Internal.TH.Lib", "viewP"),
+    ('0', 255, InTerms, Just "GHC.Internal.TH.Lib", "typeP"),
+    ('0', 256, InTerms, Just "GHC.Internal.TH.Lib", "invisP"),
+    ('0', 257, InTerms, Just "GHC.Internal.TH.Lib", "orP"),
+    ('0', 260, InTerms, Just "GHC.Internal.TH.Lib", "fieldPat"),
+    ('0', 261, InTerms, Just "GHC.Internal.TH.Lib", "match"),
+    ('0', 262, InTerms, Just "GHC.Internal.TH.Lib", "clause"),
+    ('0', 270, InTerms, Just "GHC.Internal.TH.Lib", "varE"),
+    ('0', 271, InTerms, Just "GHC.Internal.TH.Lib", "conE"),
+    ('0', 272, InTerms, Just "GHC.Internal.TH.Lib", "litE"),
+    ('0', 273, InTerms, Just "GHC.Internal.TH.Lib", "appE"),
+    ('0', 274, InTerms, Just "GHC.Internal.TH.Lib", "appTypeE"),
+    ('0', 275, InTerms, Just "GHC.Internal.TH.Lib", "infixE"),
+    ('0', 276, InTerms, Just "GHC.Internal.TH.Lib", "infixApp"),
+    ('0', 277, InTerms, Just "GHC.Internal.TH.Lib", "sectionL"),
+    ('0', 278, InTerms, Just "GHC.Internal.TH.Lib", "sectionR"),
+    ('0', 279, InTerms, Just "GHC.Internal.TH.Lib", "lamE"),
+    ('0', 280, InTerms, Just "GHC.Internal.TH.Lib", "lamCaseE"),
+    ('0', 281, InTerms, Just "GHC.Internal.TH.Lib", "lamCasesE"),
+    ('0', 282, InTerms, Just "GHC.Internal.TH.Lib", "tupE"),
+    ('0', 283, InTerms, Just "GHC.Internal.TH.Lib", "unboxedTupE"),
+    ('0', 284, InTerms, Just "GHC.Internal.TH.Lib", "unboxedSumE"),
+    ('0', 285, InTerms, Just "GHC.Internal.TH.Lib", "condE"),
+    ('0', 286, InTerms, Just "GHC.Internal.TH.Lib", "multiIfE"),
+    ('0', 287, InTerms, Just "GHC.Internal.TH.Lib", "letE"),
+    ('0', 288, InTerms, Just "GHC.Internal.TH.Lib", "caseE"),
+    ('0', 289, InTerms, Just "GHC.Internal.TH.Lib", "doE"),
+    ('0', 290, InTerms, Just "GHC.Internal.TH.Lib", "compE"),
+    ('0', 291, InTerms, Just "GHC.Internal.TH.Lib", "fromE"),
+    ('0', 292, InTerms, Just "GHC.Internal.TH.Lib", "fromThenE"),
+    ('0', 293, InTerms, Just "GHC.Internal.TH.Lib", "fromToE"),
+    ('0', 294, InTerms, Just "GHC.Internal.TH.Lib", "fromThenToE"),
+    ('0', 295, InTerms, Just "GHC.Internal.TH.Lib", "listE"),
+    ('0', 296, InTerms, Just "GHC.Internal.TH.Lib", "sigE"),
+    ('0', 297, InTerms, Just "GHC.Internal.TH.Lib", "recConE"),
+    ('0', 298, InTerms, Just "GHC.Internal.TH.Lib", "recUpdE"),
+    ('0', 299, InTerms, Just "GHC.Internal.TH.Lib", "staticE"),
+    ('0', 300, InTerms, Just "GHC.Internal.TH.Lib", "unboundVarE"),
+    ('0', 301, InTerms, Just "GHC.Internal.TH.Lib", "labelE"),
+    ('0', 302, InTerms, Just "GHC.Internal.TH.Lib", "implicitParamVarE"),
+    ('0', 303, InTerms, Just "GHC.Internal.TH.Lib", "mdoE"),
+    ('0', 304, InTerms, Just "GHC.Internal.TH.Lib", "getFieldE"),
+    ('0', 305, InTerms, Just "GHC.Internal.TH.Lib", "projectionE"),
+    ('0', 306, InTerms, Just "GHC.Internal.TH.Lib", "typeE"),
+    ('0', 307, InTerms, Just "GHC.Internal.TH.Lib", "fieldExp"),
+    ('0', 308, InTerms, Just "GHC.Internal.TH.Lib", "guardedB"),
+    ('0', 309, InTerms, Just "GHC.Internal.TH.Lib", "normalB"),
+    ('0', 310, InTerms, Just "GHC.Internal.TH.Lib", "normalGE"),
+    ('0', 311, InTerms, Just "GHC.Internal.TH.Lib", "patGE"),
+    ('0', 312, InTerms, Just "GHC.Internal.TH.Lib", "bindS"),
+    ('0', 313, InTerms, Just "GHC.Internal.TH.Lib", "letS"),
+    ('0', 314, InTerms, Just "GHC.Internal.TH.Lib", "noBindS"),
+    ('0', 315, InTerms, Just "GHC.Internal.TH.Lib", "parS"),
+    ('0', 316, InTerms, Just "GHC.Internal.TH.Lib", "recS"),
+    ('0', 320, InTerms, Just "GHC.Internal.TH.Lib", "funD"),
+    ('0', 321, InTerms, Just "GHC.Internal.TH.Lib", "valD"),
+    ('0', 322, InTerms, Just "GHC.Internal.TH.Lib", "dataD"),
+    ('0', 323, InTerms, Just "GHC.Internal.TH.Lib", "newtypeD"),
+    ('0', 324, InTerms, Just "GHC.Internal.TH.Lib", "tySynD"),
+    ('0', 325, InTerms, Just "GHC.Internal.TH.Lib", "classD"),
+    ('0', 326, InTerms, Just "GHC.Internal.TH.Lib", "instanceWithOverlapD"),
+    ('0', 328, InTerms, Just "GHC.Internal.TH.Lib", "sigD"),
+    ('0', 329, InTerms, Just "GHC.Internal.TH.Lib", "forImpD"),
+    ('0', 330, InTerms, Just "GHC.Internal.TH.Lib", "pragInlD"),
+    ('0', 331, InTerms, Just "GHC.Internal.TH.Lib", "pragSpecD"),
+    ('0', 332, InTerms, Just "GHC.Internal.TH.Lib", "pragSpecInlD"),
+    ('0', 333, InTerms, Just "GHC.Internal.TH.Lib", "pragSpecInstD"),
+    ('0', 334, InTerms, Just "GHC.Internal.TH.Lib", "pragRuleD"),
+    ('0', 335, InTerms, Just "GHC.Internal.TH.Lib", "pragAnnD"),
+    ('0', 336, InTerms, Just "GHC.Internal.TH.Lib", "dataFamilyD"),
+    ('0', 337, InTerms, Just "GHC.Internal.TH.Lib", "openTypeFamilyD"),
+    ('0', 338, InTerms, Just "GHC.Internal.TH.Lib", "dataInstD"),
+    ('0', 339, InTerms, Just "GHC.Internal.TH.Lib", "newtypeInstD"),
+    ('0', 340, InTerms, Just "GHC.Internal.TH.Lib", "tySynInstD"),
+    ('0', 341, InTerms, Just "GHC.Internal.TH.Lib", "closedTypeFamilyD"),
+    ('0', 342, InTerms, Just "GHC.Internal.TH.Lib", "infixLWithSpecD"),
+    ('0', 343, InTerms, Just "GHC.Internal.TH.Lib", "infixRWithSpecD"),
+    ('0', 344, InTerms, Just "GHC.Internal.TH.Lib", "infixNWithSpecD"),
+    ('0', 345, InTerms, Just "GHC.Internal.TH.Lib", "roleAnnotD"),
+    ('0', 346, InTerms, Just "GHC.Internal.TH.Lib", "standaloneDerivWithStrategyD"),
+    ('0', 347, InTerms, Just "GHC.Internal.TH.Lib", "defaultSigD"),
+    ('0', 348, InTerms, Just "GHC.Internal.TH.Lib", "patSynD"),
+    ('0', 349, InTerms, Just "GHC.Internal.TH.Lib", "patSynSigD"),
+    ('0', 350, InTerms, Just "GHC.Internal.TH.Lib", "pragCompleteD"),
+    ('0', 351, InTerms, Just "GHC.Internal.TH.Lib", "implicitParamBindD"),
+    ('0', 352, InTerms, Just "GHC.Internal.TH.Lib", "kiSigD"),
+    ('0', 353, InTerms, Just "GHC.Internal.TH.Lib", "defaultD"),
+    ('0', 354, InTerms, Just "GHC.Internal.TH.Lib", "pragOpaqueD"),
+    ('0', 355, InTerms, Just "GHC.Internal.TH.Lib", "typeDataD"),
+    ('0', 356, InTerms, Just "GHC.Internal.TH.Lib", "pragSCCFunD"),
+    ('0', 357, InTerms, Just "GHC.Internal.TH.Lib", "pragSCCFunNamedD"),
+    ('0', 358, InTerms, Just "GHC.Internal.TH.Lib", "pragSpecED"),
+    ('0', 359, InTerms, Just "GHC.Internal.TH.Lib", "pragSpecInlED"),
+    ('0', 361, InTerms, Just "GHC.Internal.TH.Lib", "cxt"),
+    ('0', 362, InTerms, Just "GHC.Internal.TH.Lib", "noSourceUnpackedness"),
+    ('0', 363, InTerms, Just "GHC.Internal.TH.Lib", "sourceNoUnpack"),
+    ('0', 364, InTerms, Just "GHC.Internal.TH.Lib", "sourceUnpack"),
+    ('0', 365, InTerms, Just "GHC.Internal.TH.Lib", "noSourceStrictness"),
+    ('0', 366, InTerms, Just "GHC.Internal.TH.Lib", "sourceLazy"),
+    ('0', 367, InTerms, Just "GHC.Internal.TH.Lib", "sourceStrict"),
+    ('0', 368, InTerms, Just "GHC.Internal.TH.Lib", "normalC"),
+    ('0', 369, InTerms, Just "GHC.Internal.TH.Lib", "recC"),
+    ('0', 370, InTerms, Just "GHC.Internal.TH.Lib", "infixC"),
+    ('0', 371, InTerms, Just "GHC.Internal.TH.Lib", "forallC"),
+    ('0', 372, InTerms, Just "GHC.Internal.TH.Lib", "gadtC"),
+    ('0', 373, InTerms, Just "GHC.Internal.TH.Lib", "recGadtC"),
+    ('0', 374, InTerms, Just "GHC.Internal.TH.Lib", "bang"),
+    ('0', 375, InTerms, Just "GHC.Internal.TH.Lib", "bangType"),
+    ('0', 376, InTerms, Just "GHC.Internal.TH.Lib", "varBangType"),
+    ('0', 377, InTerms, Just "GHC.Internal.TH.Lib", "unidir"),
+    ('0', 378, InTerms, Just "GHC.Internal.TH.Lib", "implBidir"),
+    ('0', 379, InTerms, Just "GHC.Internal.TH.Lib", "explBidir"),
+    ('0', 380, InTerms, Just "GHC.Internal.TH.Lib", "prefixPatSyn"),
+    ('0', 381, InTerms, Just "GHC.Internal.TH.Lib", "infixPatSyn"),
+    ('0', 382, InTerms, Just "GHC.Internal.TH.Lib", "recordPatSyn"),
+    ('0', 390, InTerms, Just "GHC.Internal.TH.Lib", "forallT"),
+    ('0', 391, InTerms, Just "GHC.Internal.TH.Lib", "forallVisT"),
+    ('0', 392, InTerms, Just "GHC.Internal.TH.Lib", "varT"),
+    ('0', 393, InTerms, Just "GHC.Internal.TH.Lib", "conT"),
+    ('0', 394, InTerms, Just "GHC.Internal.TH.Lib", "tupleT"),
+    ('0', 395, InTerms, Just "GHC.Internal.TH.Lib", "unboxedTupleT"),
+    ('0', 396, InTerms, Just "GHC.Internal.TH.Lib", "unboxedSumT"),
+    ('0', 397, InTerms, Just "GHC.Internal.TH.Lib", "arrowT"),
+    ('0', 398, InTerms, Just "GHC.Internal.TH.Lib", "listT"),
+    ('0', 399, InTerms, Just "GHC.Internal.TH.Lib", "appT"),
+    ('0', 400, InTerms, Just "GHC.Internal.TH.Lib", "appKindT"),
+    ('0', 401, InTerms, Just "GHC.Internal.TH.Lib", "sigT"),
+    ('0', 402, InTerms, Just "GHC.Internal.TH.Lib", "equalityT"),
+    ('0', 403, InTerms, Just "GHC.Internal.TH.Lib", "litT"),
+    ('0', 404, InTerms, Just "GHC.Internal.TH.Lib", "promotedT"),
+    ('0', 405, InTerms, Just "GHC.Internal.TH.Lib", "promotedTupleT"),
+    ('0', 406, InTerms, Just "GHC.Internal.TH.Lib", "promotedNilT"),
+    ('0', 407, InTerms, Just "GHC.Internal.TH.Lib", "promotedConsT"),
+    ('0', 408, InTerms, Just "GHC.Internal.TH.Lib", "wildCardT"),
+    ('0', 409, InTerms, Just "GHC.Internal.TH.Lib", "implicitParamT"),
+    ('0', 410, InTerms, Just "GHC.Internal.TH.Lib", "infixT"),
+    ('0', 411, InTerms, Just "GHC.Internal.TH.Lib", "numTyLit"),
+    ('0', 412, InTerms, Just "GHC.Internal.TH.Lib", "strTyLit"),
+    ('0', 413, InTerms, Just "GHC.Internal.TH.Lib", "charTyLit"),
+    ('0', 414, InTerms, Just "GHC.Internal.TH.Lib", "plainTV"),
+    ('0', 415, InTerms, Just "GHC.Internal.TH.Lib", "kindedTV"),
+    ('0', 416, InTerms, Just "GHC.Internal.TH.Lib", "nominalR"),
+    ('0', 417, InTerms, Just "GHC.Internal.TH.Lib", "representationalR"),
+    ('0', 418, InTerms, Just "GHC.Internal.TH.Lib", "phantomR"),
+    ('0', 419, InTerms, Just "GHC.Internal.TH.Lib", "inferR"),
+    ('0', 425, InTerms, Just "GHC.Internal.TH.Lib", "starK"),
+    ('0', 426, InTerms, Just "GHC.Internal.TH.Lib", "constraintK"),
+    ('0', 427, InTerms, Just "GHC.Internal.TH.Lib", "noSig"),
+    ('0', 428, InTerms, Just "GHC.Internal.TH.Lib", "kindSig"),
+    ('0', 429, InTerms, Just "GHC.Internal.TH.Lib", "tyVarSig"),
+    ('0', 430, InTerms, Just "GHC.Internal.TH.Lib", "injectivityAnn"),
+    ('0', 431, InTerms, Just "GHC.Internal.TH.Lib", "cCall"),
+    ('0', 432, InTerms, Just "GHC.Internal.TH.Lib", "stdCall"),
+    ('0', 433, InTerms, Just "GHC.Internal.TH.Lib", "cApi"),
+    ('0', 434, InTerms, Just "GHC.Internal.TH.Lib", "prim"),
+    ('0', 435, InTerms, Just "GHC.Internal.TH.Lib", "javaScript"),
+    ('0', 440, InTerms, Just "GHC.Internal.TH.Lib", "unsafe"),
+    ('0', 441, InTerms, Just "GHC.Internal.TH.Lib", "safe"),
+    ('0', 442, InTerms, Just "GHC.Internal.TH.Lib", "interruptible"),
+    ('0', 445, InTerms, Just "GHC.Internal.TH.Lib", "funDep"),
+    ('0', 446, InTerms, Just "GHC.Internal.TH.Lib", "mulArrowT"),
+    ('0', 460, InTerms, Just "GHC.Internal.TH.Lib", "tySynEqn"),
+    ('0', 470, InTerms, Just "GHC.Internal.TH.Quote", "quoteExp"),
+    ('0', 471, InTerms, Just "GHC.Internal.TH.Quote", "quotePat"),
+    ('0', 472, InTerms, Just "GHC.Internal.TH.Quote", "quoteDec"),
+    ('0', 473, InTerms, Just "GHC.Internal.TH.Quote", "quoteType"),
+    ('0', 480, InTerms, Just "GHC.Internal.TH.Lib", "ruleVar"),
+    ('0', 481, InTerms, Just "GHC.Internal.TH.Lib", "typedRuleVar"),
+    ('0', 482, InTerms, Just "GHC.Internal.TH.Lib", "plainInvisTV"),
+    ('0', 483, InTerms, Just "GHC.Internal.TH.Lib", "kindedInvisTV"),
+    ('0', 484, InTerms, Just "GHC.Internal.TH.Lib", "plainBndrTV"),
+    ('0', 485, InTerms, Just "GHC.Internal.TH.Lib", "kindedBndrTV"),
+    ('0', 490, InTerms, Just "GHC.Internal.TH.Lib", "valueAnnotation"),
+    ('0', 491, InTerms, Just "GHC.Internal.TH.Lib", "typeAnnotation"),
+    ('0', 492, InTerms, Just "GHC.Internal.TH.Lib", "moduleAnnotation"),
+    ('0', 493, InTerms, Just "GHC.Internal.TH.Lib", "derivClause"),
+    ('0', 498, InTerms, Just "GHC.Internal.TH.Lib", "specifiedSpec"),
+    ('0', 499, InTerms, Just "GHC.Internal.TH.Lib", "inferredSpec"),
+    ('0', 500, InTerms, Just "GHC.Internal.IsList", "fromListN"),
+    ('0', 501, InTerms, Just "GHC.Internal.IsList", "toList"),
+    ('0', 502, InTerms, Just "GHC.Internal.Prim", "proxy#"),
+    ('0', 504, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "mkTrType"),
+    ('0', 505, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "mkTrCon"),
+    ('0', 506, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "mkTrAppChecked"),
+    ('0', 507, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "typeNatTypeRep"),
+    ('0', 508, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "typeSymbolTypeRep"),
+    ('0', 509, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "typeCharTypeRep"),
+    ('0', 510, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "typeRep#"),
+    ('0', 511, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "mkTrFun"),
+    ('0', 520, InTerms, Just "GHC.Internal.Types", "krep$*"),
+    ('0', 521, InTerms, Just "GHC.Internal.Types", "krep$*Arr*"),
+    ('0', 522, InTerms, Just "GHC.Internal.Types", "krep$*->*->*"),
+    ('0', 523, InTerms, Just "GHC.Internal.Types", "krep$Constraint"),
+    ('0', 530, InTerms, Just "GHC.Internal.Data.Dynamic", "toDyn"),
+    ('0', 551, InTerms, Just "GHC.Internal.Types", "eq_sel"),
+    ('0', 552, InTerms, Just "GHC.Internal.Types", "heq_sel"),
+    ('0', 553, InTerms, Just "GHC.Internal.Types", "coercible_sel"),
+    ('0', 554, InTerms, Just "GHC.Internal.Base", "<>"),
+    ('0', 555, InTerms, Just "GHC.Internal.Base", "mempty"),
+    ('0', 556, InTerms, Just "GHC.Internal.Base", "mappend"),
+    ('0', 557, InTerms, Just "GHC.Internal.Base", "mconcat"),
+    ('0', 558, InTerms, Just "GHC.Internal.Stack.Types", "emptyCallStack"),
+    ('0', 559, InTerms, Just "GHC.Internal.Stack.Types", "pushCallStack"),
+    ('0', 560, InTerms, Just "GHC.Internal.StaticPtr", "fromStaticPtr"),
+    ('0', 561, InTerms, Just "GHC.Internal.StaticPtr.Internal", "makeStatic"),
+    ('0', 562, InTerms, Just "GHC.Internal.Exception.Context", "emptyExceptionContext"),
+    ('0', 570, InTerms, Just "GHC.Internal.Unsafe.Coerce", "unsafeEqualityProof"),
+    ('0', 571, InTerms, Just "GHC.Internal.Unsafe.Coerce", "unsafeCoerce#"),
+    ('0', 572, InTerms, Just "GHC.Internal.Records", "getField"),
+    ('0', 573, InTerms, Just "GHC.Internal.Records", "setField"),
+    ('0', 580, InTerms, Just "GHC.Internal.TypeError", "unsatisfiable"),
+    ('0', 600, InTerms, Just "GHC.Internal.Bignum.Integer", "integerFromNatural"),
+    ('0', 601, InTerms, Just "GHC.Internal.Bignum.Integer", "integerToNaturalClamp"),
+    ('0', 602, InTerms, Just "GHC.Internal.Bignum.Integer", "integerToNaturalThrow"),
+    ('0', 603, InTerms, Just "GHC.Internal.Bignum.Integer", "integerToNatural"),
+    ('0', 604, InTerms, Just "GHC.Internal.Bignum.Integer", "integerToWord#"),
+    ('0', 605, InTerms, Just "GHC.Internal.Bignum.Integer", "integerToInt#"),
+    ('0', 606, InTerms, Just "GHC.Internal.Bignum.Integer", "integerToWord64#"),
+    ('0', 607, InTerms, Just "GHC.Internal.Bignum.Integer", "integerToInt64#"),
+    ('0', 608, InTerms, Just "GHC.Internal.Bignum.Integer", "integerAdd"),
+    ('0', 609, InTerms, Just "GHC.Internal.Bignum.Integer", "integerMul"),
+    ('0', 610, InTerms, Just "GHC.Internal.Bignum.Integer", "integerSub"),
+    ('0', 611, InTerms, Just "GHC.Internal.Bignum.Integer", "integerNegate"),
+    ('0', 618, InTerms, Just "GHC.Internal.Bignum.Integer", "integerAbs"),
+    ('0', 621, InTerms, Just "GHC.Internal.Bignum.Integer", "integerPopCount#"),
+    ('0', 622, InTerms, Just "GHC.Internal.Bignum.Integer", "integerQuot"),
+    ('0', 623, InTerms, Just "GHC.Internal.Bignum.Integer", "integerRem"),
+    ('0', 624, InTerms, Just "GHC.Internal.Bignum.Integer", "integerDiv"),
+    ('0', 625, InTerms, Just "GHC.Internal.Bignum.Integer", "integerMod"),
+    ('0', 626, InTerms, Just "GHC.Internal.Bignum.Integer", "integerDivMod#"),
+    ('0', 627, InTerms, Just "GHC.Internal.Bignum.Integer", "integerQuotRem#"),
+    ('0', 630, InTerms, Just "GHC.Internal.Bignum.Integer", "integerEncodeFloat#"),
+    ('0', 631, InTerms, Just "GHC.Internal.Bignum.Integer", "integerEncodeDouble#"),
+    ('0', 632, InTerms, Just "GHC.Internal.Bignum.Integer", "integerGcd"),
+    ('0', 633, InTerms, Just "GHC.Internal.Bignum.Integer", "integerLcm"),
+    ('0', 634, InTerms, Just "GHC.Internal.Bignum.Integer", "integerAnd"),
+    ('0', 635, InTerms, Just "GHC.Internal.Bignum.Integer", "integerOr"),
+    ('0', 636, InTerms, Just "GHC.Internal.Bignum.Integer", "integerXor"),
+    ('0', 637, InTerms, Just "GHC.Internal.Bignum.Integer", "integerComplement"),
+    ('0', 638, InTerms, Just "GHC.Internal.Bignum.Integer", "integerBit#"),
+    ('0', 639, InTerms, Just "GHC.Internal.Bignum.Integer", "integerTestBit#"),
+    ('0', 640, InTerms, Just "GHC.Internal.Bignum.Integer", "integerShiftL#"),
+    ('0', 641, InTerms, Just "GHC.Internal.Bignum.Integer", "integerShiftR#"),
+    ('0', 642, InTerms, Just "GHC.Internal.Bignum.Integer", "integerFromWord#"),
+    ('0', 643, InTerms, Just "GHC.Internal.Bignum.Integer", "integerFromWord64#"),
+    ('0', 644, InTerms, Just "GHC.Internal.Bignum.Integer", "integerFromInt64#"),
+    ('0', 650, InTerms, Just "GHC.Internal.Bignum.Natural", "naturalToWord#"),
+    ('0', 659, InTerms, Just "GHC.Internal.Bignum.Natural", "naturalPopCount#"),
+    ('0', 660, InTerms, Just "GHC.Internal.Bignum.Natural", "naturalShiftR#"),
+    ('0', 661, InTerms, Just "GHC.Internal.Bignum.Natural", "naturalShiftL#"),
+    ('0', 662, InTerms, Just "GHC.Internal.Bignum.Natural", "naturalAdd"),
+    ('0', 663, InTerms, Just "GHC.Internal.Bignum.Natural", "naturalSub"),
+    ('0', 664, InTerms, Just "GHC.Internal.Bignum.Natural", "naturalSubThrow"),
+    ('0', 665, InTerms, Just "GHC.Internal.Bignum.Natural", "naturalSubUnsafe"),
+    ('0', 666, InTerms, Just "GHC.Internal.Bignum.Natural", "naturalMul"),
+    ('0', 669, InTerms, Just "GHC.Internal.Bignum.Natural", "naturalQuotRem#"),
+    ('0', 670, InTerms, Just "GHC.Internal.Bignum.Natural", "naturalQuot"),
+    ('0', 671, InTerms, Just "GHC.Internal.Bignum.Natural", "naturalRem"),
+    ('0', 672, InTerms, Just "GHC.Internal.Bignum.Natural", "naturalAnd"),
+    ('0', 673, InTerms, Just "GHC.Internal.Bignum.Natural", "naturalAndNot"),
+    ('0', 674, InTerms, Just "GHC.Internal.Bignum.Natural", "naturalOr"),
+    ('0', 675, InTerms, Just "GHC.Internal.Bignum.Natural", "naturalXor"),
+    ('0', 676, InTerms, Just "GHC.Internal.Bignum.Natural", "naturalTestBit#"),
+    ('0', 677, InTerms, Just "GHC.Internal.Bignum.Natural", "naturalBit#"),
+    ('0', 678, InTerms, Just "GHC.Internal.Bignum.Natural", "naturalGcd"),
+    ('0', 679, InTerms, Just "GHC.Internal.Bignum.Natural", "naturalLcm"),
+    ('0', 680, InTerms, Just "GHC.Internal.Bignum.Natural", "naturalLog2#"),
+    ('0', 681, InTerms, Just "GHC.Internal.Bignum.Natural", "naturalLogBaseWord#"),
+    ('0', 682, InTerms, Just "GHC.Internal.Bignum.Natural", "naturalLogBase#"),
+    ('0', 683, InTerms, Just "GHC.Internal.Bignum.Natural", "naturalPowMod"),
+    ('0', 684, InTerms, Just "GHC.Internal.Bignum.Natural", "naturalSizeInBase#"),
+    ('0', 691, InTerms, Just "GHC.Internal.Bignum.BigNat", "bigNatEq#"),
+    ('0', 700, InTerms, Just "GHC.Internal.Real", "mkRationalBase2"),
+    ('0', 701, InTerms, Just "GHC.Internal.Real", "mkRationalBase10"),
+    ('0', 750, InTerms, Just "GHC.Internal.Base", "join"),
+    ('0', 751, InTerms, Just "GHC.Internal.Base", "<*>"),
+    ('0', 752, InTerms, Just "GHC.Internal.Base", "pure"),
+    ('0', 753, InTerms, Just "GHC.Internal.Base", "*>"),
+    ('0', 754, InTypes, Just "GHC.Internal.Control.Monad", "Alternative"),
+    ('0', 800, InTerms, Just "GHC.Internal.TH.Lib", "bndrReq"),
+    ('0', 801, InTerms, Just "GHC.Internal.TH.Lib", "bndrInvis"),
+    ('0', 802, InTerms, Just "GHC.Internal.TH.Lib", "forallE"),
+    ('0', 803, InTerms, Just "GHC.Internal.TH.Lib", "forallVisE"),
+    ('0', 804, InTerms, Just "GHC.Internal.TH.Lib", "constrainedE"),
+    ('0', 805, InTerms, Just "GHC.Internal.JS.Prim", "unsafeUnpackJSStringUtf8##"),
+    ('2', 1, InTypes, Just "GHC.Internal.Enum", "Bounded"),
+    ('2', 2, InTypes, Just "GHC.Internal.Enum", "Enum"),
+    ('2', 3, InTypes, Just "GHC.Internal.Classes", "Eq"),
+    ('2', 5, InTypes, Just "GHC.Internal.Float", "Floating"),
+    ('2', 6, InTypes, Just "GHC.Internal.Real", "Fractional"),
+    ('2', 7, InTypes, Just "GHC.Internal.Real", "Integral"),
+    ('2', 8, InTypes, Just "GHC.Internal.Base", "Monad"),
+    ('2', 9, InTypes, Just "GHC.Internal.Data.Data", "Data"),
+    ('2', 10, InTypes, Just "GHC.Internal.Base", "Functor"),
+    ('2', 11, InTypes, Just "GHC.Internal.Num", "Num"),
+    ('2', 12, InTypes, Just "GHC.Internal.Classes", "Ord"),
+    ('2', 13, InTypes, Just "GHC.Internal.Read", "Read"),
+    ('2', 14, InTypes, Just "GHC.Internal.Real", "Real"),
+    ('2', 15, InTypes, Just "GHC.Internal.Float", "RealFloat"),
+    ('2', 16, InTypes, Just "GHC.Internal.Real", "RealFrac"),
+    ('2', 17, InTypes, Just "GHC.Internal.Show", "Show"),
+    ('2', 18, InTypes, Just "GHC.Internal.Ix", "Ix"),
+    ('2', 20, InTypes, Just "GHC.Internal.Data.Typeable.Internal", "Typeable"),
+    ('2', 21, InTypes, Just "GHC.Internal.Magic.Dict", "WithDict"),
+    ('2', 23, InTypes, Just "GHC.Internal.Magic", "DataToTag"),
+    ('2', 28, InTypes, Just "GHC.Internal.Control.Monad.Fix", "MonadFix"),
+    ('2', 29, InTypes, Just "GHC.Internal.Control.Monad.Fail", "MonadFail"),
+    ('2', 30, InTypes, Just "GHC.Internal.Control.Monad", "MonadPlus"),
+    ('2', 33, InTypes, Just "GHC.Internal.Data.String", "IsString"),
+    ('2', 34, InTypes, Just "GHC.Internal.Base", "Applicative"),
+    ('2', 35, InTypes, Just "GHC.Internal.Data.Foldable", "Foldable"),
+    ('2', 36, InTypes, Just "GHC.Internal.Data.Traversable", "Traversable"),
+    ('2', 37, InTypes, Just "GHC.Internal.Generics", "Generic"),
+    ('2', 38, InTypes, Just "GHC.Internal.Generics", "Generic1"),
+    ('2', 39, InTypes, Just "GHC.Internal.Generics", "Datatype"),
+    ('2', 40, InTypes, Just "GHC.Internal.Generics", "Constructor"),
+    ('2', 41, InTypes, Just "GHC.Internal.Generics", "Selector"),
+    ('2', 42, InTypes, Just "GHC.Internal.TypeNats", "KnownNat"),
+    ('2', 43, InTypes, Just "GHC.Internal.TypeLits", "KnownSymbol"),
+    ('2', 44, InTypes, Just "GHC.Internal.TypeLits", "KnownChar"),
+    ('2', 45, InTypes, Just "GHC.Internal.GHCi", "GHCiSandboxIO"),
+    ('2', 47, InTypes, Just "GHC.Internal.Base", "Semigroup"),
+    ('2', 48, InTypes, Just "GHC.Internal.Base", "Monoid"),
+    ('2', 49, InTypes, Just "GHC.Internal.Classes", "IP"),
+    ('2', 50, InTypes, Just "GHC.Internal.Records", "HasField"),
+    ('2', 200, InTypes, Just "GHC.Internal.TH.Lift", "Lift"),
+    ('2', 201, InTypes, Just "GHC.Internal.TH.Syntax", "Quote"),
+    ('3', 2, InTypes, Just "GHC.Internal.Prim", "Addr#"),
+    ('3', 3, InTerms, Just "GHC.Internal.Types", "$tcAddr#"),
+    ('3', 6, InTypes, Just "GHC.Internal.Prim", "Array#"),
+    ('3', 7, InTerms, Just "GHC.Internal.Types", "$tcArray#"),
+    ('3', 8, InTypes, Just "GHC.Internal.Types", "Bool"),
+    ('3', 9, InTerms, Just "GHC.Internal.Types", "$tcBool"),
+    ('3', 10, InTypes, Just "GHC.Internal.Prim", "ByteArray#"),
+    ('3', 11, InTerms, Just "GHC.Internal.Types", "$tcByteArray#"),
+    ('3', 12, InTypes, Just "GHC.Internal.Base", "String"),
+    ('3', 14, InTypes, Just "GHC.Internal.Prim", "Char#"),
+    ('3', 15, InTerms, Just "GHC.Internal.Types", "$tcChar#"),
+    ('3', 16, InTypes, Just "GHC.Internal.Types", "Char"),
+    ('3', 17, InTerms, Just "GHC.Internal.Types", "$tcChar"),
+    ('3', 18, InTypes, Just "GHC.Internal.Prim", "Double#"),
+    ('3', 19, InTerms, Just "GHC.Internal.Types", "$tcDouble#"),
+    ('3', 20, InTypes, Just "GHC.Internal.Types", "Double"),
+    ('3', 21, InTerms, Just "GHC.Internal.Types", "$tcDouble"),
+    ('3', 22, InTypes, Just "GHC.Internal.Prim", "Float#"),
+    ('3', 23, InTerms, Just "GHC.Internal.Types", "$tcFloat#"),
+    ('3', 24, InTypes, Just "GHC.Internal.Types", "Float"),
+    ('3', 25, InTerms, Just "GHC.Internal.Types", "$tcFloat"),
+    ('3', 26, InTypes, Just "GHC.Internal.Prim", "FUN"),
+    ('3', 27, InTerms, Just "GHC.Internal.Types", "$tcFUN"),
+    ('3', 28, InTypes, Just "GHC.Internal.Prim", "Int#"),
+    ('3', 29, InTerms, Just "GHC.Internal.Types", "$tcInt#"),
+    ('3', 30, InTypes, Just "GHC.Internal.Types", "Int"),
+    ('3', 31, InTerms, Just "GHC.Internal.Types", "$tcInt"),
+    ('3', 32, InTypes, Just "GHC.Internal.Prim", "Int8#"),
+    ('3', 33, InTerms, Just "GHC.Internal.Types", "$tcInt8#"),
+    ('3', 34, InTypes, Just "GHC.Internal.Int", "Int8"),
+    ('3', 36, InTypes, Just "GHC.Internal.Prim", "Int16#"),
+    ('3', 37, InTerms, Just "GHC.Internal.Types", "$tcInt16#"),
+    ('3', 38, InTypes, Just "GHC.Internal.Int", "Int16"),
+    ('3', 40, InTypes, Just "GHC.Internal.Prim", "Int32#"),
+    ('3', 41, InTerms, Just "GHC.Internal.Types", "$tcInt32#"),
+    ('3', 42, InTypes, Just "GHC.Internal.Int", "Int32"),
+    ('3', 44, InTypes, Just "GHC.Internal.Prim", "Int64#"),
+    ('3', 45, InTerms, Just "GHC.Internal.Types", "$tcInt64#"),
+    ('3', 46, InTypes, Just "GHC.Internal.Int", "Int64"),
+    ('3', 48, InTypes, Just "GHC.Internal.Bignum.Integer", "Integer"),
+    ('3', 49, InTerms, Just "GHC.Internal.Bignum.Integer", "$tcInteger"),
+    ('3', 50, InTypes, Just "GHC.Internal.Bignum.Natural", "Natural"),
+    ('3', 51, InTerms, Just "GHC.Internal.Bignum.Natural", "$tcNatural"),
+    ('3', 52, InTypes, Nothing, "[]"),
+    ('3', 53, InTerms, Just "GHC.Internal.Types", "$tcList"),
+    ('3', 56, InTypes, Just "GHC.Internal.Maybe", "Maybe"),
+    ('3', 57, InTerms, Just "GHC.Internal.Maybe", "$tcMaybe"),
+    ('3', 58, InTypes, Just "GHC.Internal.Prim", "Weak#"),
+    ('3', 59, InTerms, Just "GHC.Internal.Types", "$tcWeak#"),
+    ('3', 60, InTypes, Just "GHC.Internal.Prim", "MutableArray#"),
+    ('3', 61, InTerms, Just "GHC.Internal.Types", "$tcMutableArray#"),
+    ('3', 62, InTypes, Just "GHC.Internal.Prim", "MutableByteArray#"),
+    ('3', 63, InTerms, Just "GHC.Internal.Types", "$tcMutableByteArray#"),
+    ('3', 64, InTypes, Just "GHC.Internal.Types", "Ordering"),
+    ('3', 65, InTerms, Just "GHC.Internal.Types", "$tcOrdering"),
+    ('3', 66, InTypes, Just "GHC.Internal.Prim", "MVar#"),
+    ('3', 67, InTerms, Just "GHC.Internal.Types", "$tcMVar#"),
+    ('3', 70, InTypes, Just "GHC.Internal.Real", "Ratio"),
+    ('3', 72, InTypes, Just "GHC.Internal.Real", "Rational"),
+    ('3', 74, InTypes, Just "GHC.Internal.Prim", "RealWorld"),
+    ('3', 75, InTerms, Just "GHC.Internal.Types", "$tcRealWorld"),
+    ('3', 76, InTypes, Just "GHC.Internal.Prim", "StablePtr#"),
+    ('3', 77, InTerms, Just "GHC.Internal.Types", "$tcStablePtr#"),
+    ('3', 78, InTypes, Just "GHC.Internal.Stable", "StablePtr"),
+    ('3', 80, InTypes, Just "GHC.Internal.Types", "~"),
+    ('3', 81, InTerms, Just "GHC.Internal.Types", "$tc~"),
+    ('3', 82, InTypes, Just "GHC.Internal.Types", "~~"),
+    ('3', 83, InTerms, Just "GHC.Internal.Types", "$tc~~"),
+    ('3', 84, InTypes, Nothing, "=>"),
+    ('3', 85, InTerms, Just "GHC.Internal.Types", "$tc=>"),
+    ('3', 86, InTypes, Nothing, "==>"),
+    ('3', 87, InTerms, Just "GHC.Internal.Types", "$tc==>"),
+    ('3', 88, InTypes, Nothing, "-=>"),
+    ('3', 89, InTerms, Just "GHC.Internal.Types", "$tc-=>"),
+    ('3', 100, InTypes, Just "GHC.Internal.Prim", "State#"),
+    ('3', 101, InTerms, Just "GHC.Internal.Types", "$tcState#"),
+    ('3', 102, InTypes, Just "GHC.Internal.Prim", "StableName#"),
+    ('3', 103, InTerms, Just "GHC.Internal.Types", "$tcStableName#"),
+    ('3', 106, InTypes, Just "GHC.Internal.Prim", "~#"),
+    ('3', 107, InTerms, Just "GHC.Internal.Types", "$tc~#"),
+    ('3', 108, InTypes, Nothing, "~R#"),
+    ('3', 109, InTerms, Just "GHC.Internal.Types", "$tc~R#"),
+    ('3', 110, InTypes, Nothing, "~P#"),
+    ('3', 111, InTerms, Just "GHC.Internal.Types", "$tc~P#"),
+    ('3', 112, InTypes, Just "GHC.Internal.Prim", "MutVar#"),
+    ('3', 113, InTerms, Just "GHC.Internal.Types", "$tcMutVar#"),
+    ('3', 114, InTypes, Just "GHC.Internal.Types", "IO"),
+    ('3', 118, InTypes, Just "GHC.Internal.Prim", "Word#"),
+    ('3', 119, InTerms, Just "GHC.Internal.Types", "$tcWord#"),
+    ('3', 120, InTypes, Just "GHC.Internal.Types", "Word"),
+    ('3', 121, InTerms, Just "GHC.Internal.Types", "$tcWord"),
+    ('3', 122, InTypes, Just "GHC.Internal.Prim", "Word8#"),
+    ('3', 123, InTerms, Just "GHC.Internal.Types", "$tcWord8#"),
+    ('3', 124, InTypes, Just "GHC.Internal.Word", "Word8"),
+    ('3', 126, InTypes, Just "GHC.Internal.Prim", "Word16#"),
+    ('3', 127, InTerms, Just "GHC.Internal.Types", "$tcWord16#"),
+    ('3', 128, InTypes, Just "GHC.Internal.Word", "Word16"),
+    ('3', 130, InTypes, Just "GHC.Internal.Prim", "Word32#"),
+    ('3', 131, InTerms, Just "GHC.Internal.Types", "$tcWord32#"),
+    ('3', 132, InTypes, Just "GHC.Internal.Word", "Word32"),
+    ('3', 134, InTypes, Just "GHC.Internal.Prim", "Word64#"),
+    ('3', 135, InTerms, Just "GHC.Internal.Types", "$tcWord64#"),
+    ('3', 136, InTypes, Just "GHC.Internal.Word", "Word64"),
+    ('3', 150, InTypes, Just "GHC.Internal.Prim", "ThreadId#"),
+    ('3', 151, InTerms, Just "GHC.Internal.Types", "$tcThreadId#"),
+    ('3', 152, InTypes, Just "GHC.Internal.Prim", "BCO"),
+    ('3', 153, InTerms, Just "GHC.Internal.Types", "$tcBCO"),
+    ('3', 154, InTypes, Just "GHC.Internal.Ptr", "Ptr"),
+    ('3', 156, InTypes, Just "GHC.Internal.Ptr", "FunPtr"),
+    ('3', 158, InTypes, Just "GHC.Internal.Prim", "TVar#"),
+    ('3', 159, InTerms, Just "GHC.Internal.Types", "$tcTVar#"),
+    ('3', 160, InTypes, Just "GHC.Internal.Prim", "Compact#"),
+    ('3', 161, InTerms, Just "GHC.Internal.Types", "$tcCompact#"),
+    ('3', 162, InTypes, Just "GHC.Internal.Prim", "StackSnapshot#"),
+    ('3', 163, InTerms, Just "GHC.Internal.Types", "$tcStackSnapshot#"),
+    ('3', 164, InTypes, Just "GHC.Internal.Prim", "PromptTag#"),
+    ('3', 165, InTerms, Just "GHC.Internal.Types", "$tcPromptTag#"),
+    ('3', 168, InTypes, Just "GHC.Internal.Data.Either", "Either"),
+    ('3', 170, InTypes, Just "GHC.Internal.Base", "Void"),
+    ('3', 172, InTypes, Just "GHC.Internal.Base", "NonEmpty"),
+    ('3', 176, InTypes, Just "GHC.Internal.Types", "Type"),
+    ('3', 178, InTypes, Just "GHC.Internal.Types", "UnliftedType"),
+    ('3', 182, InTypes, Just "GHC.Internal.Prim", "TYPE"),
+    ('3', 183, InTerms, Just "GHC.Internal.Types", "$tcTYPE"),
+    ('3', 184, InTypes, Just "GHC.Internal.Prim", "CONSTRAINT"),
+    ('3', 185, InTerms, Just "GHC.Internal.Types", "$tcCONSTRAINT"),
+    ('3', 186, InTypes, Just "GHC.Internal.Types", "Constraint"),
+    ('3', 188, InTypes, Just "GHC.Internal.Types", "Levity"),
+    ('3', 189, InTerms, Just "GHC.Internal.Types", "$tcLevity"),
+    ('3', 190, InTypes, Just "GHC.Internal.Types", "RuntimeRep"),
+    ('3', 191, InTerms, Just "GHC.Internal.Types", "$tcRuntimeRep"),
+    ('3', 192, InTypes, Just "GHC.Internal.Types", "VecCount"),
+    ('3', 193, InTerms, Just "GHC.Internal.Types", "$tcVecCount"),
+    ('3', 194, InTypes, Just "GHC.Internal.Types", "VecElem"),
+    ('3', 195, InTerms, Just "GHC.Internal.Types", "$tcVecElem"),
+    ('3', 196, InTypes, Just "GHC.Internal.Types", "LiftedRep"),
+    ('3', 198, InTypes, Just "GHC.Internal.Types", "UnliftedRep"),
+    ('3', 200, InTypes, Just "GHC.Internal.Types", "ZeroBitRep"),
+    ('3', 202, InTypes, Just "GHC.Internal.Types", "ZeroBitType"),
+    ('3', 204, InTypes, Just "GHC.Driver.Plugins", "Plugin"),
+    ('3', 206, InTypes, Just "GHC.Driver.Plugins", "FrontendPlugin"),
+    ('3', 208, InTypes, Just "GHC.Internal.Types", "TyCon"),
+    ('3', 210, InTypes, Just "GHC.Internal.Types", "Module"),
+    ('3', 212, InTypes, Just "GHC.Internal.Types", "TrName"),
+    ('3', 214, InTypes, Just "GHC.Internal.Types", "KindRep"),
+    ('3', 216, InTypes, Just "GHC.Internal.Types", "TypeLitSort"),
+    ('3', 270, InTypes, Just "GHC.Internal.Generics", "V1"),
+    ('3', 272, InTypes, Just "GHC.Internal.Generics", "U1"),
+    ('3', 274, InTypes, Just "GHC.Internal.Generics", "Par1"),
+    ('3', 276, InTypes, Just "GHC.Internal.Generics", "Rec1"),
+    ('3', 278, InTypes, Just "GHC.Internal.Generics", "K1"),
+    ('3', 280, InTypes, Just "GHC.Internal.Generics", "M1"),
+    ('3', 282, InTypes, Just "GHC.Internal.Generics", ":+:"),
+    ('3', 284, InTypes, Just "GHC.Internal.Generics", ":*:"),
+    ('3', 286, InTypes, Just "GHC.Internal.Generics", ":.:"),
+    ('3', 288, InTypes, Just "GHC.Internal.Generics", "R"),
+    ('3', 292, InTypes, Just "GHC.Internal.Generics", "D"),
+    ('3', 294, InTypes, Just "GHC.Internal.Generics", "C"),
+    ('3', 296, InTypes, Just "GHC.Internal.Generics", "S"),
+    ('3', 298, InTypes, Just "GHC.Internal.Generics", "Rec0"),
+    ('3', 302, InTypes, Just "GHC.Internal.Generics", "D1"),
+    ('3', 304, InTypes, Just "GHC.Internal.Generics", "C1"),
+    ('3', 306, InTypes, Just "GHC.Internal.Generics", "S1"),
+    ('3', 310, InTypes, Just "GHC.Internal.Generics", "Rep"),
+    ('3', 312, InTypes, Just "GHC.Internal.Generics", "Rep1"),
+    ('3', 314, InTypes, Just "GHC.Internal.Generics", "URec"),
+    ('3', 316, InTypes, Just "GHC.Internal.Generics", "UAddr"),
+    ('3', 318, InTypes, Just "GHC.Internal.Generics", "UChar"),
+    ('3', 320, InTypes, Just "GHC.Internal.Generics", "UDouble"),
+    ('3', 322, InTypes, Just "GHC.Internal.Generics", "UFloat"),
+    ('3', 324, InTypes, Just "GHC.Internal.Generics", "UInt"),
+    ('3', 326, InTypes, Just "GHC.Internal.Generics", "UWord"),
+    ('3', 340, InTypes, Just "GHC.Internal.TypeError", "Unsatisfiable"),
+    ('3', 342, InTypes, Just "GHC.Internal.Types", "Any"),
+    ('3', 344, InTypes, Just "GHC.Internal.Types", "ZonkAny"),
+    ('3', 362, InTypes, Just "GHC.Internal.TypeError", "TypeError"),
+    ('3', 366, InTypes, Just "GHC.Internal.Types", "Coercible"),
+    ('3', 367, InTerms, Just "GHC.Internal.Types", "$tcCoercible"),
+    ('3', 368, InTypes, Just "GHC.Internal.Prim", "Proxy#"),
+    ('3', 369, InTerms, Just "GHC.Internal.Types", "$tcProxy#"),
+    ('3', 370, InTypes, Just "GHC.Internal.Types", "SPEC"),
+    ('3', 374, InTypes, Just "GHC.Internal.Prim", "SmallArray#"),
+    ('3', 375, InTerms, Just "GHC.Internal.Types", "$tcSmallArray#"),
+    ('3', 376, InTypes, Just "GHC.Internal.Prim", "SmallMutableArray#"),
+    ('3', 377, InTerms, Just "GHC.Internal.Types", "$tcSmallMutableArray#"),
+    ('3', 378, InTypes, Just "GHC.Internal.StaticPtr", "StaticPtr"),
+    ('3', 382, InTypes, Just "GHC.Internal.Stack.Types", "CallStack"),
+    ('3', 384, InTypes, Just "GHC.Internal.Data.Typeable.Internal", "TypeRep"),
+    ('3', 386, InTypes, Just "GHC.Internal.Data.Typeable.Internal", "SomeTypeRep"),
+    ('3', 388, InTerms, Just "GHC.Internal.Data.Typeable.Internal", "SomeTypeRep"),
+    ('3', 390, InTypes, Just "GHC.Internal.TypeLits", "AppendSymbol"),
+    ('3', 392, InTypes, Just "GHC.Internal.Unsafe.Coerce", "UnsafeEquality"),
+    ('3', 394, InTypes, Just "GHC.Internal.Types", "Multiplicity"),
+    ('3', 395, InTerms, Just "GHC.Internal.Types", "$tcMultiplicity"),
+    ('3', 396, InTypes, Nothing, "->"),
+    ('3', 400, InTypes, Just "GHC.Internal.TH.Syntax", "Exp"),
+    ('3', 402, InTypes, Just "GHC.Internal.TH.Syntax", "Match"),
+    ('3', 404, InTypes, Just "GHC.Internal.TH.Syntax", "Clause"),
+    ('3', 406, InTypes, Just "GHC.Internal.TH.Syntax", "Q"),
+    ('3', 408, InTypes, Just "GHC.Internal.TH.Lib", "ExpQ"),
+    ('3', 412, InTypes, Just "GHC.Internal.TH.Syntax", "Pat"),
+    ('3', 418, InTypes, Just "GHC.Internal.TH.Syntax", "Stmt"),
+    ('3', 420, InTypes, Just "GHC.Internal.TH.Syntax", "Con"),
+    ('3', 422, InTypes, Just "GHC.Internal.TH.Lib", "TypeQ"),
+    ('3', 424, InTypes, Just "GHC.Internal.TH.Syntax", "Type"),
+    ('3', 426, InTypes, Just "GHC.Internal.TH.Syntax", "Dec"),
+    ('3', 428, InTypes, Just "GHC.Internal.TH.Syntax", "BangType"),
+    ('3', 430, InTypes, Just "GHC.Internal.TH.Syntax", "VarBangType"),
+    ('3', 432, InTypes, Just "GHC.Internal.TH.Syntax", "FieldExp"),
+    ('3', 434, InTypes, Just "GHC.Internal.TH.Syntax", "FieldPat"),
+    ('3', 436, InTypes, Just "GHC.Internal.TH.Syntax", "Name"),
+    ('3', 438, InTypes, Just "GHC.Internal.TH.Lib", "PatQ"),
+    ('3', 444, InTypes, Just "GHC.Internal.TH.Syntax", "FunDep"),
+    ('3', 446, InTypes, Just "GHC.Internal.TH.Syntax", "Pred"),
+    ('3', 450, InTypes, Just "GHC.Internal.TH.Lib", "TyVarBndrUnit"),
+    ('3', 452, InTypes, Just "GHC.Internal.TH.Lib", "DecsQ"),
+    ('3', 454, InTypes, Just "GHC.Internal.TH.Syntax", "RuleBndr"),
+    ('3', 456, InTypes, Just "GHC.Internal.TH.Syntax", "TySynEqn"),
+    ('3', 458, InTypes, Just "GHC.Internal.TH.Lib", "Role"),
+    ('3', 462, InTypes, Just "GHC.Internal.TH.Syntax", "InjectivityAnn"),
+    ('3', 464, InTypes, Just "GHC.Internal.TH.Syntax", "Kind"),
+    ('3', 466, InTypes, Just "GHC.Internal.TH.Syntax", "Overlap"),
+    ('3', 468, InTypes, Just "GHC.Internal.TH.Syntax", "DerivClause"),
+    ('3', 470, InTypes, Just "GHC.Internal.TH.Syntax", "DerivStrategy"),
+    ('3', 472, InTypes, Just "GHC.Internal.TH.Lib", "Decs"),
+    ('3', 474, InTypes, Just "GHC.Internal.TH.Lib", "TyVarBndrSpec"),
+    ('3', 476, InTypes, Just "GHC.Internal.TH.Syntax", "Code"),
+    ('3', 478, InTypes, Just "GHC.Internal.TH.Syntax", "ModName"),
+    ('3', 480, InTypes, Just "GHC.Internal.TH.Lib", "TyVarBndrVis"),
+    ('3', 482, InTypes, Just "GHC.Internal.TH.Quote", "QuasiQuoter"),
+    ('3', 600, InTypes, Just "GHC.Internal.Prim", "Int8X16#"),
+    ('3', 601, InTerms, Just "GHC.Internal.Types", "$tcInt8X16#"),
+    ('3', 602, InTypes, Just "GHC.Internal.Prim", "Int16X8#"),
+    ('3', 603, InTerms, Just "GHC.Internal.Types", "$tcInt16X8#"),
+    ('3', 604, InTypes, Just "GHC.Internal.Prim", "Int32X4#"),
+    ('3', 605, InTerms, Just "GHC.Internal.Types", "$tcInt32X4#"),
+    ('3', 606, InTypes, Just "GHC.Internal.Prim", "Int64X2#"),
+    ('3', 607, InTerms, Just "GHC.Internal.Types", "$tcInt64X2#"),
+    ('3', 608, InTypes, Just "GHC.Internal.Prim", "Int8X32#"),
+    ('3', 609, InTerms, Just "GHC.Internal.Types", "$tcInt8X32#"),
+    ('3', 610, InTypes, Just "GHC.Internal.Prim", "Int16X16#"),
+    ('3', 611, InTerms, Just "GHC.Internal.Types", "$tcInt16X16#"),
+    ('3', 612, InTypes, Just "GHC.Internal.Prim", "Int32X8#"),
+    ('3', 613, InTerms, Just "GHC.Internal.Types", "$tcInt32X8#"),
+    ('3', 614, InTypes, Just "GHC.Internal.Prim", "Int64X4#"),
+    ('3', 615, InTerms, Just "GHC.Internal.Types", "$tcInt64X4#"),
+    ('3', 616, InTypes, Just "GHC.Internal.Prim", "Int8X64#"),
+    ('3', 617, InTerms, Just "GHC.Internal.Types", "$tcInt8X64#"),
+    ('3', 618, InTypes, Just "GHC.Internal.Prim", "Int16X32#"),
+    ('3', 619, InTerms, Just "GHC.Internal.Types", "$tcInt16X32#"),
+    ('3', 620, InTypes, Just "GHC.Internal.Prim", "Int32X16#"),
+    ('3', 621, InTerms, Just "GHC.Internal.Types", "$tcInt32X16#"),
+    ('3', 622, InTypes, Just "GHC.Internal.Prim", "Int64X8#"),
+    ('3', 623, InTerms, Just "GHC.Internal.Types", "$tcInt64X8#"),
+    ('3', 624, InTypes, Just "GHC.Internal.Prim", "Word8X16#"),
+    ('3', 625, InTerms, Just "GHC.Internal.Types", "$tcWord8X16#"),
+    ('3', 626, InTypes, Just "GHC.Internal.Prim", "Word16X8#"),
+    ('3', 627, InTerms, Just "GHC.Internal.Types", "$tcWord16X8#"),
+    ('3', 628, InTypes, Just "GHC.Internal.Prim", "Word32X4#"),
+    ('3', 629, InTerms, Just "GHC.Internal.Types", "$tcWord32X4#"),
+    ('3', 630, InTypes, Just "GHC.Internal.Prim", "Word64X2#"),
+    ('3', 631, InTerms, Just "GHC.Internal.Types", "$tcWord64X2#"),
+    ('3', 632, InTypes, Just "GHC.Internal.Prim", "Word8X32#"),
+    ('3', 633, InTerms, Just "GHC.Internal.Types", "$tcWord8X32#"),
+    ('3', 634, InTypes, Just "GHC.Internal.Prim", "Word16X16#"),
+    ('3', 635, InTerms, Just "GHC.Internal.Types", "$tcWord16X16#"),
+    ('3', 636, InTypes, Just "GHC.Internal.Prim", "Word32X8#"),
+    ('3', 637, InTerms, Just "GHC.Internal.Types", "$tcWord32X8#"),
+    ('3', 638, InTypes, Just "GHC.Internal.Prim", "Word64X4#"),
+    ('3', 639, InTerms, Just "GHC.Internal.Types", "$tcWord64X4#"),
+    ('3', 640, InTypes, Just "GHC.Internal.Prim", "Word8X64#"),
+    ('3', 641, InTerms, Just "GHC.Internal.Types", "$tcWord8X64#"),
+    ('3', 642, InTypes, Just "GHC.Internal.Prim", "Word16X32#"),
+    ('3', 643, InTerms, Just "GHC.Internal.Types", "$tcWord16X32#"),
+    ('3', 644, InTypes, Just "GHC.Internal.Prim", "Word32X16#"),
+    ('3', 645, InTerms, Just "GHC.Internal.Types", "$tcWord32X16#"),
+    ('3', 646, InTypes, Just "GHC.Internal.Prim", "Word64X8#"),
+    ('3', 647, InTerms, Just "GHC.Internal.Types", "$tcWord64X8#"),
+    ('3', 648, InTypes, Just "GHC.Internal.Prim", "FloatX4#"),
+    ('3', 649, InTerms, Just "GHC.Internal.Types", "$tcFloatX4#"),
+    ('3', 650, InTypes, Just "GHC.Internal.Prim", "DoubleX2#"),
+    ('3', 651, InTerms, Just "GHC.Internal.Types", "$tcDoubleX2#"),
+    ('3', 652, InTypes, Just "GHC.Internal.Prim", "FloatX8#"),
+    ('3', 653, InTerms, Just "GHC.Internal.Types", "$tcFloatX8#"),
+    ('3', 654, InTypes, Just "GHC.Internal.Prim", "DoubleX4#"),
+    ('3', 655, InTerms, Just "GHC.Internal.Types", "$tcDoubleX4#"),
+    ('3', 656, InTypes, Just "GHC.Internal.Prim", "FloatX16#"),
+    ('3', 657, InTerms, Just "GHC.Internal.Types", "$tcFloatX16#"),
+    ('3', 658, InTypes, Just "GHC.Internal.Prim", "DoubleX8#"),
+    ('3', 659, InTerms, Just "GHC.Internal.Types", "$tcDoubleX8#"),
+    ('3', 800, InTypes, Just "GHC.Internal.Types", "Symbol"),
+    ('3', 801, InTerms, Just "GHC.Internal.Types", "$tcSymbol"),
+    ('3', 804, InTypes, Just "GHC.Internal.TypeNats", "+"),
+    ('3', 806, InTypes, Just "GHC.Internal.TypeNats", "*"),
+    ('3', 808, InTypes, Just "GHC.Internal.TypeNats", "^"),
+    ('3', 810, InTypes, Just "GHC.Internal.TypeNats", "-"),
+    ('3', 812, InTypes, Just "GHC.Internal.TypeLits.Internal", "CmpSymbol"),
+    ('3', 814, InTypes, Just "GHC.Internal.TypeNats.Internal", "CmpNat"),
+    ('3', 816, InTypes, Just "GHC.Internal.TypeLits.Internal", "CmpChar"),
+    ('3', 820, InTypes, Just "GHC.Internal.TypeNats", "Div"),
+    ('3', 822, InTypes, Just "GHC.Internal.TypeNats", "Mod"),
+    ('3', 824, InTypes, Just "GHC.Internal.TypeNats", "Log2"),
+    ('3', 826, InTypes, Just "GHC.Internal.TypeLits", "ConsSymbol"),
+    ('3', 828, InTypes, Just "GHC.Internal.TypeLits", "UnconsSymbol"),
+    ('3', 830, InTypes, Just "GHC.Internal.TypeLits", "CharToNat"),
+    ('3', 832, InTypes, Just "GHC.Internal.TypeLits", "NatToChar"),
+    ('3', 834, InTypes, Just "GHC.Internal.Foreign.C.ConstPtr", "ConstPtr"),
+    ('3', 836, InTypes, Just "GHC.Internal.Wasm.Prim.Types", "JSVal"),
+    ('3', 840, InTypes, Just "GHC.Internal.Exception.Context", "ExceptionContext"),
+    ('6', 3, InTerms, Just "GHC.Internal.Types", "C#"),
+    ('6', 4, InTerms, Just "GHC.Internal.Types", "C#"),
+    ('6', 5, InTerms, Just "GHC.Internal.Types", "$tc'C#"),
+    ('6', 6, InTerms, Nothing, ":"),
+    ('6', 7, InTerms, Just "GHC.Internal.Types", ":"),
+    ('6', 8, InTerms, Just "GHC.Internal.Types", "$tc':"),
+    ('6', 9, InTerms, Just "GHC.Internal.Types", "D#"),
+    ('6', 10, InTerms, Just "GHC.Internal.Types", "D#"),
+    ('6', 11, InTerms, Just "GHC.Internal.Types", "$tc'D#"),
+    ('6', 12, InTerms, Just "GHC.Internal.Types", "False"),
+    ('6', 13, InTerms, Just "GHC.Internal.Types", "False"),
+    ('6', 14, InTerms, Just "GHC.Internal.Types", "$tc'False"),
+    ('6', 15, InTerms, Just "GHC.Internal.Types", "F#"),
+    ('6', 16, InTerms, Just "GHC.Internal.Types", "F#"),
+    ('6', 17, InTerms, Just "GHC.Internal.Types", "$tc'F#"),
+    ('6', 18, InTerms, Just "GHC.Internal.Types", "I#"),
+    ('6', 19, InTerms, Just "GHC.Internal.Types", "I#"),
+    ('6', 20, InTerms, Just "GHC.Internal.Types", "$tc'I#"),
+    ('6', 21, InTerms, Just "GHC.Internal.Maybe", "Nothing"),
+    ('6', 22, InTerms, Just "GHC.Internal.Maybe", "Nothing"),
+    ('6', 23, InTerms, Just "GHC.Internal.Maybe", "$tc'Nothing"),
+    ('6', 24, InTerms, Just "GHC.Internal.Maybe", "Just"),
+    ('6', 25, InTerms, Just "GHC.Internal.Maybe", "Just"),
+    ('6', 26, InTerms, Just "GHC.Internal.Maybe", "$tc'Just"),
+    ('6', 27, InTerms, Just "GHC.Internal.Types", "Eq#"),
+    ('6', 28, InTerms, Just "GHC.Internal.Types", "Eq#"),
+    ('6', 29, InTerms, Just "GHC.Internal.Types", "$tc'Eq#"),
+    ('6', 30, InTerms, Nothing, "[]"),
+    ('6', 31, InTerms, Just "GHC.Internal.Types", "[]"),
+    ('6', 32, InTerms, Just "GHC.Internal.Types", "$tc'[]"),
+    ('6', 33, InTerms, Just "GHC.Internal.Real", ":%"),
+    ('6', 42, InTerms, Just "GHC.Internal.Types", "True"),
+    ('6', 43, InTerms, Just "GHC.Internal.Types", "True"),
+    ('6', 44, InTerms, Just "GHC.Internal.Types", "$tc'True"),
+    ('6', 45, InTerms, Just "GHC.Internal.Types", "W#"),
+    ('6', 46, InTerms, Just "GHC.Internal.Types", "W#"),
+    ('6', 47, InTerms, Just "GHC.Internal.Types", "$tc'W#"),
+    ('6', 48, InTerms, Just "GHC.Internal.Types", "IO"),
+    ('6', 54, InTerms, Just "GHC.Internal.Types", "HEq#"),
+    ('6', 55, InTerms, Just "GHC.Internal.Types", "HEq#"),
+    ('6', 56, InTerms, Just "GHC.Internal.Types", "$tc'HEq#"),
+    ('6', 75, InTerms, Just "GHC.Internal.Data.Either", "Left"),
+    ('6', 78, InTerms, Just "GHC.Internal.Data.Either", "Right"),
+    ('6', 81, InTerms, Just "GHC.Internal.Types", "LT"),
+    ('6', 82, InTerms, Just "GHC.Internal.Types", "LT"),
+    ('6', 83, InTerms, Just "GHC.Internal.Types", "$tc'LT"),
+    ('6', 84, InTerms, Just "GHC.Internal.Types", "EQ"),
+    ('6', 85, InTerms, Just "GHC.Internal.Types", "EQ"),
+    ('6', 86, InTerms, Just "GHC.Internal.Types", "$tc'EQ"),
+    ('6', 87, InTerms, Just "GHC.Internal.Types", "GT"),
+    ('6', 88, InTerms, Just "GHC.Internal.Types", "GT"),
+    ('6', 89, InTerms, Just "GHC.Internal.Types", "$tc'GT"),
+    ('6', 96, InTerms, Just "GHC.Internal.Types", "MkCoercible"),
+    ('6', 97, InTerms, Just "GHC.Internal.Types", "MkCoercible"),
+    ('6', 98, InTerms, Just "GHC.Internal.Types", "$tc'MkCoercible"),
+    ('6', 99, InTerms, Just "GHC.Internal.StaticPtr", "StaticPtr"),
+    ('6', 102, InTerms, Just "GHC.Internal.StaticPtr", "StaticPtrInfo"),
+    ('6', 105, InTerms, Just "GHC.Internal.Fingerprint.Type", "Fingerprint"),
+    ('6', 111, InTerms, Just "GHC.Internal.Stack.Types", "SrcLoc"),
+    ('6', 123, InTerms, Just "GHC.Internal.Types", "TyCon"),
+    ('6', 129, InTerms, Just "GHC.Internal.Types", "Module"),
+    ('6', 135, InTerms, Just "GHC.Internal.Types", "TrNameS"),
+    ('6', 138, InTerms, Just "GHC.Internal.Types", "TrNameD"),
+    ('6', 141, InTerms, Just "GHC.Internal.Types", "tr$ModuleGHCPrim"),
+    ('6', 150, InTerms, Just "GHC.Internal.TypeError", "Text"),
+    ('6', 153, InTerms, Just "GHC.Internal.TypeError", ":<>:"),
+    ('6', 156, InTerms, Just "GHC.Internal.TypeError", ":$$:"),
+    ('6', 159, InTerms, Just "GHC.Internal.TypeError", "ShowType"),
+    ('6', 162, InTerms, Just "GHC.Internal.Generics", "PrefixI"),
+    ('6', 165, InTerms, Just "GHC.Internal.Generics", "InfixI"),
+    ('6', 168, InTerms, Just "GHC.Internal.Generics", "LeftAssociative"),
+    ('6', 171, InTerms, Just "GHC.Internal.Generics", "RightAssociative"),
+    ('6', 174, InTerms, Just "GHC.Internal.Generics", "NotAssociative"),
+    ('6', 177, InTerms, Just "GHC.Internal.Generics", "SourceUnpack"),
+    ('6', 180, InTerms, Just "GHC.Internal.Generics", "SourceNoUnpack"),
+    ('6', 183, InTerms, Just "GHC.Internal.Generics", "NoSourceUnpackedness"),
+    ('6', 186, InTerms, Just "GHC.Internal.Generics", "SourceLazy"),
+    ('6', 189, InTerms, Just "GHC.Internal.Generics", "SourceStrict"),
+    ('6', 192, InTerms, Just "GHC.Internal.Generics", "NoSourceStrictness"),
+    ('6', 195, InTerms, Just "GHC.Internal.Generics", "DecidedLazy"),
+    ('6', 198, InTerms, Just "GHC.Internal.Generics", "DecidedStrict"),
+    ('6', 201, InTerms, Just "GHC.Internal.Generics", "DecidedUnpack"),
+    ('6', 204, InTerms, Just "GHC.Internal.Generics", "MetaData"),
+    ('6', 207, InTerms, Just "GHC.Internal.Generics", "MetaCons"),
+    ('6', 210, InTerms, Just "GHC.Internal.Generics", "MetaSel"),
+    ('6', 213, InTerms, Just "GHC.Internal.Types", "VecRep"),
+    ('6', 214, InTerms, Just "GHC.Internal.Types", "VecRep"),
+    ('6', 215, InTerms, Just "GHC.Internal.Types", "$tc'VecRep"),
+    ('6', 216, InTerms, Just "GHC.Internal.Types", "TupleRep"),
+    ('6', 217, InTerms, Just "GHC.Internal.Types", "TupleRep"),
+    ('6', 218, InTerms, Just "GHC.Internal.Types", "$tc'TupleRep"),
+    ('6', 219, InTerms, Just "GHC.Internal.Types", "SumRep"),
+    ('6', 220, InTerms, Just "GHC.Internal.Types", "SumRep"),
+    ('6', 221, InTerms, Just "GHC.Internal.Types", "$tc'SumRep"),
+    ('6', 222, InTerms, Just "GHC.Internal.Types", "BoxedRep"),
+    ('6', 223, InTerms, Just "GHC.Internal.Types", "BoxedRep"),
+    ('6', 224, InTerms, Just "GHC.Internal.Types", "$tc'BoxedRep"),
+    ('6', 225, InTerms, Just "GHC.Internal.Types", "IntRep"),
+    ('6', 226, InTerms, Just "GHC.Internal.Types", "IntRep"),
+    ('6', 227, InTerms, Just "GHC.Internal.Types", "$tc'IntRep"),
+    ('6', 228, InTerms, Just "GHC.Internal.Types", "Int8Rep"),
+    ('6', 229, InTerms, Just "GHC.Internal.Types", "Int8Rep"),
+    ('6', 230, InTerms, Just "GHC.Internal.Types", "$tc'Int8Rep"),
+    ('6', 231, InTerms, Just "GHC.Internal.Types", "Int16Rep"),
+    ('6', 232, InTerms, Just "GHC.Internal.Types", "Int16Rep"),
+    ('6', 233, InTerms, Just "GHC.Internal.Types", "$tc'Int16Rep"),
+    ('6', 234, InTerms, Just "GHC.Internal.Types", "Int32Rep"),
+    ('6', 235, InTerms, Just "GHC.Internal.Types", "Int32Rep"),
+    ('6', 236, InTerms, Just "GHC.Internal.Types", "$tc'Int32Rep"),
+    ('6', 237, InTerms, Just "GHC.Internal.Types", "Int64Rep"),
+    ('6', 238, InTerms, Just "GHC.Internal.Types", "Int64Rep"),
+    ('6', 239, InTerms, Just "GHC.Internal.Types", "$tc'Int64Rep"),
+    ('6', 240, InTerms, Just "GHC.Internal.Types", "WordRep"),
+    ('6', 241, InTerms, Just "GHC.Internal.Types", "WordRep"),
+    ('6', 242, InTerms, Just "GHC.Internal.Types", "$tc'WordRep"),
+    ('6', 243, InTerms, Just "GHC.Internal.Types", "Word8Rep"),
+    ('6', 244, InTerms, Just "GHC.Internal.Types", "Word8Rep"),
+    ('6', 245, InTerms, Just "GHC.Internal.Types", "$tc'Word8Rep"),
+    ('6', 246, InTerms, Just "GHC.Internal.Types", "Word16Rep"),
+    ('6', 247, InTerms, Just "GHC.Internal.Types", "Word16Rep"),
+    ('6', 248, InTerms, Just "GHC.Internal.Types", "$tc'Word16Rep"),
+    ('6', 249, InTerms, Just "GHC.Internal.Types", "Word32Rep"),
+    ('6', 250, InTerms, Just "GHC.Internal.Types", "Word32Rep"),
+    ('6', 251, InTerms, Just "GHC.Internal.Types", "$tc'Word32Rep"),
+    ('6', 252, InTerms, Just "GHC.Internal.Types", "Word64Rep"),
+    ('6', 253, InTerms, Just "GHC.Internal.Types", "Word64Rep"),
+    ('6', 254, InTerms, Just "GHC.Internal.Types", "$tc'Word64Rep"),
+    ('6', 255, InTerms, Just "GHC.Internal.Types", "AddrRep"),
+    ('6', 256, InTerms, Just "GHC.Internal.Types", "AddrRep"),
+    ('6', 257, InTerms, Just "GHC.Internal.Types", "$tc'AddrRep"),
+    ('6', 258, InTerms, Just "GHC.Internal.Types", "FloatRep"),
+    ('6', 259, InTerms, Just "GHC.Internal.Types", "FloatRep"),
+    ('6', 260, InTerms, Just "GHC.Internal.Types", "$tc'FloatRep"),
+    ('6', 261, InTerms, Just "GHC.Internal.Types", "DoubleRep"),
+    ('6', 262, InTerms, Just "GHC.Internal.Types", "DoubleRep"),
+    ('6', 263, InTerms, Just "GHC.Internal.Types", "$tc'DoubleRep"),
+    ('6', 264, InTerms, Just "GHC.Internal.Types", "Lifted"),
+    ('6', 265, InTerms, Just "GHC.Internal.Types", "Lifted"),
+    ('6', 266, InTerms, Just "GHC.Internal.Types", "$tc'Lifted"),
+    ('6', 267, InTerms, Just "GHC.Internal.Types", "Unlifted"),
+    ('6', 268, InTerms, Just "GHC.Internal.Types", "Unlifted"),
+    ('6', 269, InTerms, Just "GHC.Internal.Types", "$tc'Unlifted"),
+    ('6', 270, InTerms, Just "GHC.Internal.Types", "Vec2"),
+    ('6', 271, InTerms, Just "GHC.Internal.Types", "Vec2"),
+    ('6', 272, InTerms, Just "GHC.Internal.Types", "$tc'Vec2"),
+    ('6', 273, InTerms, Just "GHC.Internal.Types", "Vec4"),
+    ('6', 274, InTerms, Just "GHC.Internal.Types", "Vec4"),
+    ('6', 275, InTerms, Just "GHC.Internal.Types", "$tc'Vec4"),
+    ('6', 276, InTerms, Just "GHC.Internal.Types", "Vec8"),
+    ('6', 277, InTerms, Just "GHC.Internal.Types", "Vec8"),
+    ('6', 278, InTerms, Just "GHC.Internal.Types", "$tc'Vec8"),
+    ('6', 279, InTerms, Just "GHC.Internal.Types", "Vec16"),
+    ('6', 280, InTerms, Just "GHC.Internal.Types", "Vec16"),
+    ('6', 281, InTerms, Just "GHC.Internal.Types", "$tc'Vec16"),
+    ('6', 282, InTerms, Just "GHC.Internal.Types", "Vec32"),
+    ('6', 283, InTerms, Just "GHC.Internal.Types", "Vec32"),
+    ('6', 284, InTerms, Just "GHC.Internal.Types", "$tc'Vec32"),
+    ('6', 285, InTerms, Just "GHC.Internal.Types", "Vec64"),
+    ('6', 286, InTerms, Just "GHC.Internal.Types", "Vec64"),
+    ('6', 287, InTerms, Just "GHC.Internal.Types", "$tc'Vec64"),
+    ('6', 288, InTerms, Just "GHC.Internal.Types", "Int8ElemRep"),
+    ('6', 289, InTerms, Just "GHC.Internal.Types", "Int8ElemRep"),
+    ('6', 290, InTerms, Just "GHC.Internal.Types", "$tc'Int8ElemRep"),
+    ('6', 291, InTerms, Just "GHC.Internal.Types", "Int16ElemRep"),
+    ('6', 292, InTerms, Just "GHC.Internal.Types", "Int16ElemRep"),
+    ('6', 293, InTerms, Just "GHC.Internal.Types", "$tc'Int16ElemRep"),
+    ('6', 294, InTerms, Just "GHC.Internal.Types", "Int32ElemRep"),
+    ('6', 295, InTerms, Just "GHC.Internal.Types", "Int32ElemRep"),
+    ('6', 296, InTerms, Just "GHC.Internal.Types", "$tc'Int32ElemRep"),
+    ('6', 297, InTerms, Just "GHC.Internal.Types", "Int64ElemRep"),
+    ('6', 298, InTerms, Just "GHC.Internal.Types", "Int64ElemRep"),
+    ('6', 299, InTerms, Just "GHC.Internal.Types", "$tc'Int64ElemRep"),
+    ('6', 300, InTerms, Just "GHC.Internal.Types", "Word8ElemRep"),
+    ('6', 301, InTerms, Just "GHC.Internal.Types", "Word8ElemRep"),
+    ('6', 302, InTerms, Just "GHC.Internal.Types", "$tc'Word8ElemRep"),
+    ('6', 303, InTerms, Just "GHC.Internal.Types", "Word16ElemRep"),
+    ('6', 304, InTerms, Just "GHC.Internal.Types", "Word16ElemRep"),
+    ('6', 305, InTerms, Just "GHC.Internal.Types", "$tc'Word16ElemRep"),
+    ('6', 306, InTerms, Just "GHC.Internal.Types", "Word32ElemRep"),
+    ('6', 307, InTerms, Just "GHC.Internal.Types", "Word32ElemRep"),
+    ('6', 308, InTerms, Just "GHC.Internal.Types", "$tc'Word32ElemRep"),
+    ('6', 309, InTerms, Just "GHC.Internal.Types", "Word64ElemRep"),
+    ('6', 310, InTerms, Just "GHC.Internal.Types", "Word64ElemRep"),
+    ('6', 311, InTerms, Just "GHC.Internal.Types", "$tc'Word64ElemRep"),
+    ('6', 312, InTerms, Just "GHC.Internal.Types", "FloatElemRep"),
+    ('6', 313, InTerms, Just "GHC.Internal.Types", "FloatElemRep"),
+    ('6', 314, InTerms, Just "GHC.Internal.Types", "$tc'FloatElemRep"),
+    ('6', 315, InTerms, Just "GHC.Internal.Types", "DoubleElemRep"),
+    ('6', 316, InTerms, Just "GHC.Internal.Types", "DoubleElemRep"),
+    ('6', 317, InTerms, Just "GHC.Internal.Types", "$tc'DoubleElemRep"),
+    ('6', 318, InTerms, Just "GHC.Internal.Types", "KindRepTyConApp"),
+    ('6', 321, InTerms, Just "GHC.Internal.Types", "KindRepVar"),
+    ('6', 324, InTerms, Just "GHC.Internal.Types", "KindRepApp"),
+    ('6', 327, InTerms, Just "GHC.Internal.Types", "KindRepFun"),
+    ('6', 330, InTerms, Just "GHC.Internal.Types", "KindRepTYPE"),
+    ('6', 333, InTerms, Just "GHC.Internal.Types", "KindRepTypeLitS"),
+    ('6', 336, InTerms, Just "GHC.Internal.Types", "KindRepTypeLitD"),
+    ('6', 339, InTerms, Just "GHC.Internal.Types", "TypeLitSymbol"),
+    ('6', 342, InTerms, Just "GHC.Internal.Types", "TypeLitNat"),
+    ('6', 345, InTerms, Just "GHC.Internal.Types", "TypeLitChar"),
+    ('6', 348, InTerms, Just "GHC.Internal.Unsafe.Coerce", "UnsafeRefl"),
+    ('6', 351, InTerms, Just "GHC.Internal.Types", "One"),
+    ('6', 352, InTerms, Just "GHC.Internal.Types", "One"),
+    ('6', 353, InTerms, Just "GHC.Internal.Types", "$tc'One"),
+    ('6', 354, InTerms, Just "GHC.Internal.Types", "Many"),
+    ('6', 355, InTerms, Just "GHC.Internal.Types", "Many"),
+    ('6', 356, InTerms, Just "GHC.Internal.Types", "$tc'Many"),
+    ('6', 360, InTerms, Just "GHC.Internal.Bignum.Integer", "IS"),
+    ('6', 361, InTerms, Just "GHC.Internal.Bignum.Integer", "IS"),
+    ('6', 362, InTerms, Just "GHC.Internal.Bignum.Integer", "$tc'IS"),
+    ('6', 363, InTerms, Just "GHC.Internal.Bignum.Integer", "IN"),
+    ('6', 364, InTerms, Just "GHC.Internal.Bignum.Integer", "IN"),
+    ('6', 365, InTerms, Just "GHC.Internal.Bignum.Integer", "$tc'IN"),
+    ('6', 366, InTerms, Just "GHC.Internal.Bignum.Integer", "IP"),
+    ('6', 367, InTerms, Just "GHC.Internal.Bignum.Integer", "IP"),
+    ('6', 368, InTerms, Just "GHC.Internal.Bignum.Integer", "$tc'IP"),
+    ('6', 369, InTerms, Just "GHC.Internal.Bignum.Natural", "NS"),
+    ('6', 370, InTerms, Just "GHC.Internal.Bignum.Natural", "NS"),
+    ('6', 371, InTerms, Just "GHC.Internal.Bignum.Natural", "$tc'NS"),
+    ('6', 372, InTerms, Just "GHC.Internal.Bignum.Natural", "NB"),
+    ('6', 373, InTerms, Just "GHC.Internal.Bignum.Natural", "NB"),
+    ('6', 374, InTerms, Just "GHC.Internal.Bignum.Natural", "$tc'NB"),
+    ('6', 600, InTerms, Just "GHC.Internal.TH.Syntax", "NoInline"),
+    ('6', 603, InTerms, Just "GHC.Internal.TH.Syntax", "Inline"),
+    ('6', 606, InTerms, Just "GHC.Internal.TH.Syntax", "Inlinable"),
+    ('6', 612, InTerms, Just "GHC.Internal.TH.Syntax", "ConLike"),
+    ('6', 615, InTerms, Just "GHC.Internal.TH.Syntax", "FunLike"),
+    ('6', 618, InTerms, Just "GHC.Internal.TH.Syntax", "AllPhases"),
+    ('6', 621, InTerms, Just "GHC.Internal.TH.Syntax", "FromPhase"),
+    ('6', 624, InTerms, Just "GHC.Internal.TH.Syntax", "BeforePhase"),
+    ('6', 627, InTerms, Just "GHC.Internal.TH.Syntax", "Overlappable"),
+    ('6', 630, InTerms, Just "GHC.Internal.TH.Syntax", "Overlapping"),
+    ('6', 633, InTerms, Just "GHC.Internal.TH.Syntax", "Overlaps"),
+    ('6', 636, InTerms, Just "GHC.Internal.TH.Syntax", "Incoherent"),
+    ('6', 639, InTerms, Just "GHC.Internal.TH.Syntax", "NoNamespaceSpecifier"),
+    ('6', 642, InTerms, Just "GHC.Internal.TH.Syntax", "TypeNamespaceSpecifier"),
+    ('6', 645, InTerms, Just "GHC.Internal.TH.Syntax", "DataNamespaceSpecifier"),
+    ('6', 1482, InTerms, Just "GHC.Internal.TH.Lib", "stockStrategy"),
+    ('6', 1485, InTerms, Just "GHC.Internal.TH.Lib", "anyclassStrategy"),
+    ('6', 1488, InTerms, Just "GHC.Internal.TH.Lib", "newtypeStrategy"),
+    ('6', 1491, InTerms, Just "GHC.Internal.TH.Lib", "viaStrategy"),
+    ('9', 0, InTerms, Just "GHC.Internal.Prim", "gtChar#"),
+    ('9', 1, InTerms, Just "GHC.Internal.PrimopWrappers", "gtChar#"),
+    ('9', 2, InTerms, Just "GHC.Internal.Prim", "geChar#"),
+    ('9', 3, InTerms, Just "GHC.Internal.PrimopWrappers", "geChar#"),
+    ('9', 4, InTerms, Just "GHC.Internal.Prim", "eqChar#"),
+    ('9', 5, InTerms, Just "GHC.Internal.PrimopWrappers", "eqChar#"),
+    ('9', 6, InTerms, Just "GHC.Internal.Prim", "neChar#"),
+    ('9', 7, InTerms, Just "GHC.Internal.PrimopWrappers", "neChar#"),
+    ('9', 8, InTerms, Just "GHC.Internal.Prim", "ltChar#"),
+    ('9', 9, InTerms, Just "GHC.Internal.PrimopWrappers", "ltChar#"),
+    ('9', 10, InTerms, Just "GHC.Internal.Prim", "leChar#"),
+    ('9', 11, InTerms, Just "GHC.Internal.PrimopWrappers", "leChar#"),
+    ('9', 12, InTerms, Just "GHC.Internal.Prim", "ord#"),
+    ('9', 13, InTerms, Just "GHC.Internal.PrimopWrappers", "ord#"),
+    ('9', 14, InTerms, Just "GHC.Internal.Prim", "int8ToInt#"),
+    ('9', 15, InTerms, Just "GHC.Internal.PrimopWrappers", "int8ToInt#"),
+    ('9', 16, InTerms, Just "GHC.Internal.Prim", "intToInt8#"),
+    ('9', 17, InTerms, Just "GHC.Internal.PrimopWrappers", "intToInt8#"),
+    ('9', 18, InTerms, Just "GHC.Internal.Prim", "negateInt8#"),
+    ('9', 19, InTerms, Just "GHC.Internal.PrimopWrappers", "negateInt8#"),
+    ('9', 20, InTerms, Just "GHC.Internal.Prim", "plusInt8#"),
+    ('9', 21, InTerms, Just "GHC.Internal.PrimopWrappers", "plusInt8#"),
+    ('9', 22, InTerms, Just "GHC.Internal.Prim", "subInt8#"),
+    ('9', 23, InTerms, Just "GHC.Internal.PrimopWrappers", "subInt8#"),
+    ('9', 24, InTerms, Just "GHC.Internal.Prim", "timesInt8#"),
+    ('9', 25, InTerms, Just "GHC.Internal.PrimopWrappers", "timesInt8#"),
+    ('9', 26, InTerms, Just "GHC.Internal.Prim", "quotInt8#"),
+    ('9', 27, InTerms, Just "GHC.Internal.PrimopWrappers", "quotInt8#"),
+    ('9', 28, InTerms, Just "GHC.Internal.Prim", "remInt8#"),
+    ('9', 29, InTerms, Just "GHC.Internal.PrimopWrappers", "remInt8#"),
+    ('9', 30, InTerms, Just "GHC.Internal.Prim", "quotRemInt8#"),
+    ('9', 31, InTerms, Just "GHC.Internal.PrimopWrappers", "quotRemInt8#"),
+    ('9', 32, InTerms, Just "GHC.Internal.Prim", "uncheckedShiftLInt8#"),
+    ('9', 33, InTerms, Just "GHC.Internal.PrimopWrappers", "uncheckedShiftLInt8#"),
+    ('9', 34, InTerms, Just "GHC.Internal.Prim", "uncheckedShiftRAInt8#"),
+    ('9', 35, InTerms, Just "GHC.Internal.PrimopWrappers", "uncheckedShiftRAInt8#"),
+    ('9', 36, InTerms, Just "GHC.Internal.Prim", "uncheckedShiftRLInt8#"),
+    ('9', 37, InTerms, Just "GHC.Internal.PrimopWrappers", "uncheckedShiftRLInt8#"),
+    ('9', 38, InTerms, Just "GHC.Internal.Prim", "int8ToWord8#"),
+    ('9', 39, InTerms, Just "GHC.Internal.PrimopWrappers", "int8ToWord8#"),
+    ('9', 40, InTerms, Just "GHC.Internal.Prim", "eqInt8#"),
+    ('9', 41, InTerms, Just "GHC.Internal.PrimopWrappers", "eqInt8#"),
+    ('9', 42, InTerms, Just "GHC.Internal.Prim", "geInt8#"),
+    ('9', 43, InTerms, Just "GHC.Internal.PrimopWrappers", "geInt8#"),
+    ('9', 44, InTerms, Just "GHC.Internal.Prim", "gtInt8#"),
+    ('9', 45, InTerms, Just "GHC.Internal.PrimopWrappers", "gtInt8#"),
+    ('9', 46, InTerms, Just "GHC.Internal.Prim", "leInt8#"),
+    ('9', 47, InTerms, Just "GHC.Internal.PrimopWrappers", "leInt8#"),
+    ('9', 48, InTerms, Just "GHC.Internal.Prim", "ltInt8#"),
+    ('9', 49, InTerms, Just "GHC.Internal.PrimopWrappers", "ltInt8#"),
+    ('9', 50, InTerms, Just "GHC.Internal.Prim", "neInt8#"),
+    ('9', 51, InTerms, Just "GHC.Internal.PrimopWrappers", "neInt8#"),
+    ('9', 52, InTerms, Just "GHC.Internal.Prim", "word8ToWord#"),
+    ('9', 53, InTerms, Just "GHC.Internal.PrimopWrappers", "word8ToWord#"),
+    ('9', 54, InTerms, Just "GHC.Internal.Prim", "wordToWord8#"),
+    ('9', 55, InTerms, Just "GHC.Internal.PrimopWrappers", "wordToWord8#"),
+    ('9', 56, InTerms, Just "GHC.Internal.Prim", "plusWord8#"),
+    ('9', 57, InTerms, Just "GHC.Internal.PrimopWrappers", "plusWord8#"),
+    ('9', 58, InTerms, Just "GHC.Internal.Prim", "subWord8#"),
+    ('9', 59, InTerms, Just "GHC.Internal.PrimopWrappers", "subWord8#"),
+    ('9', 60, InTerms, Just "GHC.Internal.Prim", "timesWord8#"),
+    ('9', 61, InTerms, Just "GHC.Internal.PrimopWrappers", "timesWord8#"),
+    ('9', 62, InTerms, Just "GHC.Internal.Prim", "quotWord8#"),
+    ('9', 63, InTerms, Just "GHC.Internal.PrimopWrappers", "quotWord8#"),
+    ('9', 64, InTerms, Just "GHC.Internal.Prim", "remWord8#"),
+    ('9', 65, InTerms, Just "GHC.Internal.PrimopWrappers", "remWord8#"),
+    ('9', 66, InTerms, Just "GHC.Internal.Prim", "quotRemWord8#"),
+    ('9', 67, InTerms, Just "GHC.Internal.PrimopWrappers", "quotRemWord8#"),
+    ('9', 68, InTerms, Just "GHC.Internal.Prim", "andWord8#"),
+    ('9', 69, InTerms, Just "GHC.Internal.PrimopWrappers", "andWord8#"),
+    ('9', 70, InTerms, Just "GHC.Internal.Prim", "orWord8#"),
+    ('9', 71, InTerms, Just "GHC.Internal.PrimopWrappers", "orWord8#"),
+    ('9', 72, InTerms, Just "GHC.Internal.Prim", "xorWord8#"),
+    ('9', 73, InTerms, Just "GHC.Internal.PrimopWrappers", "xorWord8#"),
+    ('9', 74, InTerms, Just "GHC.Internal.Prim", "notWord8#"),
+    ('9', 75, InTerms, Just "GHC.Internal.PrimopWrappers", "notWord8#"),
+    ('9', 76, InTerms, Just "GHC.Internal.Prim", "uncheckedShiftLWord8#"),
+    ('9', 77, InTerms, Just "GHC.Internal.PrimopWrappers", "uncheckedShiftLWord8#"),
+    ('9', 78, InTerms, Just "GHC.Internal.Prim", "uncheckedShiftRLWord8#"),
+    ('9', 79, InTerms, Just "GHC.Internal.PrimopWrappers", "uncheckedShiftRLWord8#"),
+    ('9', 80, InTerms, Just "GHC.Internal.Prim", "word8ToInt8#"),
+    ('9', 81, InTerms, Just "GHC.Internal.PrimopWrappers", "word8ToInt8#"),
+    ('9', 82, InTerms, Just "GHC.Internal.Prim", "eqWord8#"),
+    ('9', 83, InTerms, Just "GHC.Internal.PrimopWrappers", "eqWord8#"),
+    ('9', 84, InTerms, Just "GHC.Internal.Prim", "geWord8#"),
+    ('9', 85, InTerms, Just "GHC.Internal.PrimopWrappers", "geWord8#"),
+    ('9', 86, InTerms, Just "GHC.Internal.Prim", "gtWord8#"),
+    ('9', 87, InTerms, Just "GHC.Internal.PrimopWrappers", "gtWord8#"),
+    ('9', 88, InTerms, Just "GHC.Internal.Prim", "leWord8#"),
+    ('9', 89, InTerms, Just "GHC.Internal.PrimopWrappers", "leWord8#"),
+    ('9', 90, InTerms, Just "GHC.Internal.Prim", "ltWord8#"),
+    ('9', 91, InTerms, Just "GHC.Internal.PrimopWrappers", "ltWord8#"),
+    ('9', 92, InTerms, Just "GHC.Internal.Prim", "neWord8#"),
+    ('9', 93, InTerms, Just "GHC.Internal.PrimopWrappers", "neWord8#"),
+    ('9', 94, InTerms, Just "GHC.Internal.Prim", "int16ToInt#"),
+    ('9', 95, InTerms, Just "GHC.Internal.PrimopWrappers", "int16ToInt#"),
+    ('9', 96, InTerms, Just "GHC.Internal.Prim", "intToInt16#"),
+    ('9', 97, InTerms, Just "GHC.Internal.PrimopWrappers", "intToInt16#"),
+    ('9', 98, InTerms, Just "GHC.Internal.Prim", "negateInt16#"),
+    ('9', 99, InTerms, Just "GHC.Internal.PrimopWrappers", "negateInt16#"),
+    ('9', 100, InTerms, Just "GHC.Internal.Prim", "plusInt16#"),
+    ('9', 101, InTerms, Just "GHC.Internal.PrimopWrappers", "plusInt16#"),
+    ('9', 102, InTerms, Just "GHC.Internal.Prim", "subInt16#"),
+    ('9', 103, InTerms, Just "GHC.Internal.PrimopWrappers", "subInt16#"),
+    ('9', 104, InTerms, Just "GHC.Internal.Prim", "timesInt16#"),
+    ('9', 105, InTerms, Just "GHC.Internal.PrimopWrappers", "timesInt16#"),
+    ('9', 106, InTerms, Just "GHC.Internal.Prim", "quotInt16#"),
+    ('9', 107, InTerms, Just "GHC.Internal.PrimopWrappers", "quotInt16#"),
+    ('9', 108, InTerms, Just "GHC.Internal.Prim", "remInt16#"),
+    ('9', 109, InTerms, Just "GHC.Internal.PrimopWrappers", "remInt16#"),
+    ('9', 110, InTerms, Just "GHC.Internal.Prim", "quotRemInt16#"),
+    ('9', 111, InTerms, Just "GHC.Internal.PrimopWrappers", "quotRemInt16#"),
+    ('9', 112, InTerms, Just "GHC.Internal.Prim", "uncheckedShiftLInt16#"),
+    ('9', 113, InTerms, Just "GHC.Internal.PrimopWrappers", "uncheckedShiftLInt16#"),
+    ('9', 114, InTerms, Just "GHC.Internal.Prim", "uncheckedShiftRAInt16#"),
+    ('9', 115, InTerms, Just "GHC.Internal.PrimopWrappers", "uncheckedShiftRAInt16#"),
+    ('9', 116, InTerms, Just "GHC.Internal.Prim", "uncheckedShiftRLInt16#"),
+    ('9', 117, InTerms, Just "GHC.Internal.PrimopWrappers", "uncheckedShiftRLInt16#"),
+    ('9', 118, InTerms, Just "GHC.Internal.Prim", "int16ToWord16#"),
+    ('9', 119, InTerms, Just "GHC.Internal.PrimopWrappers", "int16ToWord16#"),
+    ('9', 120, InTerms, Just "GHC.Internal.Prim", "eqInt16#"),
+    ('9', 121, InTerms, Just "GHC.Internal.PrimopWrappers", "eqInt16#"),
+    ('9', 122, InTerms, Just "GHC.Internal.Prim", "geInt16#"),
+    ('9', 123, InTerms, Just "GHC.Internal.PrimopWrappers", "geInt16#"),
+    ('9', 124, InTerms, Just "GHC.Internal.Prim", "gtInt16#"),
+    ('9', 125, InTerms, Just "GHC.Internal.PrimopWrappers", "gtInt16#"),
+    ('9', 126, InTerms, Just "GHC.Internal.Prim", "leInt16#"),
+    ('9', 127, InTerms, Just "GHC.Internal.PrimopWrappers", "leInt16#"),
+    ('9', 128, InTerms, Just "GHC.Internal.Prim", "ltInt16#"),
+    ('9', 129, InTerms, Just "GHC.Internal.PrimopWrappers", "ltInt16#"),
+    ('9', 130, InTerms, Just "GHC.Internal.Prim", "neInt16#"),
+    ('9', 131, InTerms, Just "GHC.Internal.PrimopWrappers", "neInt16#"),
+    ('9', 132, InTerms, Just "GHC.Internal.Prim", "word16ToWord#"),
+    ('9', 133, InTerms, Just "GHC.Internal.PrimopWrappers", "word16ToWord#"),
+    ('9', 134, InTerms, Just "GHC.Internal.Prim", "wordToWord16#"),
+    ('9', 135, InTerms, Just "GHC.Internal.PrimopWrappers", "wordToWord16#"),
+    ('9', 136, InTerms, Just "GHC.Internal.Prim", "plusWord16#"),
+    ('9', 137, InTerms, Just "GHC.Internal.PrimopWrappers", "plusWord16#"),
+    ('9', 138, InTerms, Just "GHC.Internal.Prim", "subWord16#"),
+    ('9', 139, InTerms, Just "GHC.Internal.PrimopWrappers", "subWord16#"),
+    ('9', 140, InTerms, Just "GHC.Internal.Prim", "timesWord16#"),
+    ('9', 141, InTerms, Just "GHC.Internal.PrimopWrappers", "timesWord16#"),
+    ('9', 142, InTerms, Just "GHC.Internal.Prim", "quotWord16#"),
+    ('9', 143, InTerms, Just "GHC.Internal.PrimopWrappers", "quotWord16#"),
+    ('9', 144, InTerms, Just "GHC.Internal.Prim", "remWord16#"),
+    ('9', 145, InTerms, Just "GHC.Internal.PrimopWrappers", "remWord16#"),
+    ('9', 146, InTerms, Just "GHC.Internal.Prim", "quotRemWord16#"),
+    ('9', 147, InTerms, Just "GHC.Internal.PrimopWrappers", "quotRemWord16#"),
+    ('9', 148, InTerms, Just "GHC.Internal.Prim", "andWord16#"),
+    ('9', 149, InTerms, Just "GHC.Internal.PrimopWrappers", "andWord16#"),
+    ('9', 150, InTerms, Just "GHC.Internal.Prim", "orWord16#"),
+    ('9', 151, InTerms, Just "GHC.Internal.PrimopWrappers", "orWord16#"),
+    ('9', 152, InTerms, Just "GHC.Internal.Prim", "xorWord16#"),
+    ('9', 153, InTerms, Just "GHC.Internal.PrimopWrappers", "xorWord16#"),
+    ('9', 154, InTerms, Just "GHC.Internal.Prim", "notWord16#"),
+    ('9', 155, InTerms, Just "GHC.Internal.PrimopWrappers", "notWord16#"),
+    ('9', 156, InTerms, Just "GHC.Internal.Prim", "uncheckedShiftLWord16#"),
+    ('9', 157, InTerms, Just "GHC.Internal.PrimopWrappers", "uncheckedShiftLWord16#"),
+    ('9', 158, InTerms, Just "GHC.Internal.Prim", "uncheckedShiftRLWord16#"),
+    ('9', 159, InTerms, Just "GHC.Internal.PrimopWrappers", "uncheckedShiftRLWord16#"),
+    ('9', 160, InTerms, Just "GHC.Internal.Prim", "word16ToInt16#"),
+    ('9', 161, InTerms, Just "GHC.Internal.PrimopWrappers", "word16ToInt16#"),
+    ('9', 162, InTerms, Just "GHC.Internal.Prim", "eqWord16#"),
+    ('9', 163, InTerms, Just "GHC.Internal.PrimopWrappers", "eqWord16#"),
+    ('9', 164, InTerms, Just "GHC.Internal.Prim", "geWord16#"),
+    ('9', 165, InTerms, Just "GHC.Internal.PrimopWrappers", "geWord16#"),
+    ('9', 166, InTerms, Just "GHC.Internal.Prim", "gtWord16#"),
+    ('9', 167, InTerms, Just "GHC.Internal.PrimopWrappers", "gtWord16#"),
+    ('9', 168, InTerms, Just "GHC.Internal.Prim", "leWord16#"),
+    ('9', 169, InTerms, Just "GHC.Internal.PrimopWrappers", "leWord16#"),
+    ('9', 170, InTerms, Just "GHC.Internal.Prim", "ltWord16#"),
+    ('9', 171, InTerms, Just "GHC.Internal.PrimopWrappers", "ltWord16#"),
+    ('9', 172, InTerms, Just "GHC.Internal.Prim", "neWord16#"),
+    ('9', 173, InTerms, Just "GHC.Internal.PrimopWrappers", "neWord16#"),
+    ('9', 174, InTerms, Just "GHC.Internal.Prim", "int32ToInt#"),
+    ('9', 175, InTerms, Just "GHC.Internal.PrimopWrappers", "int32ToInt#"),
+    ('9', 176, InTerms, Just "GHC.Internal.Prim", "intToInt32#"),
+    ('9', 177, InTerms, Just "GHC.Internal.PrimopWrappers", "intToInt32#"),
+    ('9', 178, InTerms, Just "GHC.Internal.Prim", "negateInt32#"),
+    ('9', 179, InTerms, Just "GHC.Internal.PrimopWrappers", "negateInt32#"),
+    ('9', 180, InTerms, Just "GHC.Internal.Prim", "plusInt32#"),
+    ('9', 181, InTerms, Just "GHC.Internal.PrimopWrappers", "plusInt32#"),
+    ('9', 182, InTerms, Just "GHC.Internal.Prim", "subInt32#"),
+    ('9', 183, InTerms, Just "GHC.Internal.PrimopWrappers", "subInt32#"),
+    ('9', 184, InTerms, Just "GHC.Internal.Prim", "timesInt32#"),
+    ('9', 185, InTerms, Just "GHC.Internal.PrimopWrappers", "timesInt32#"),
+    ('9', 186, InTerms, Just "GHC.Internal.Prim", "quotInt32#"),
+    ('9', 187, InTerms, Just "GHC.Internal.PrimopWrappers", "quotInt32#"),
+    ('9', 188, InTerms, Just "GHC.Internal.Prim", "remInt32#"),
+    ('9', 189, InTerms, Just "GHC.Internal.PrimopWrappers", "remInt32#"),
+    ('9', 190, InTerms, Just "GHC.Internal.Prim", "quotRemInt32#"),
+    ('9', 191, InTerms, Just "GHC.Internal.PrimopWrappers", "quotRemInt32#"),
+    ('9', 192, InTerms, Just "GHC.Internal.Prim", "uncheckedShiftLInt32#"),
+    ('9', 193, InTerms, Just "GHC.Internal.PrimopWrappers", "uncheckedShiftLInt32#"),
+    ('9', 194, InTerms, Just "GHC.Internal.Prim", "uncheckedShiftRAInt32#"),
+    ('9', 195, InTerms, Just "GHC.Internal.PrimopWrappers", "uncheckedShiftRAInt32#"),
+    ('9', 196, InTerms, Just "GHC.Internal.Prim", "uncheckedShiftRLInt32#"),
+    ('9', 197, InTerms, Just "GHC.Internal.PrimopWrappers", "uncheckedShiftRLInt32#"),
+    ('9', 198, InTerms, Just "GHC.Internal.Prim", "int32ToWord32#"),
+    ('9', 199, InTerms, Just "GHC.Internal.PrimopWrappers", "int32ToWord32#"),
+    ('9', 200, InTerms, Just "GHC.Internal.Prim", "eqInt32#"),
+    ('9', 201, InTerms, Just "GHC.Internal.PrimopWrappers", "eqInt32#"),
+    ('9', 202, InTerms, Just "GHC.Internal.Prim", "geInt32#"),
+    ('9', 203, InTerms, Just "GHC.Internal.PrimopWrappers", "geInt32#"),
+    ('9', 204, InTerms, Just "GHC.Internal.Prim", "gtInt32#"),
+    ('9', 205, InTerms, Just "GHC.Internal.PrimopWrappers", "gtInt32#"),
+    ('9', 206, InTerms, Just "GHC.Internal.Prim", "leInt32#"),
+    ('9', 207, InTerms, Just "GHC.Internal.PrimopWrappers", "leInt32#"),
+    ('9', 208, InTerms, Just "GHC.Internal.Prim", "ltInt32#"),
+    ('9', 209, InTerms, Just "GHC.Internal.PrimopWrappers", "ltInt32#"),
+    ('9', 210, InTerms, Just "GHC.Internal.Prim", "neInt32#"),
+    ('9', 211, InTerms, Just "GHC.Internal.PrimopWrappers", "neInt32#"),
+    ('9', 212, InTerms, Just "GHC.Internal.Prim", "word32ToWord#"),
+    ('9', 213, InTerms, Just "GHC.Internal.PrimopWrappers", "word32ToWord#"),
+    ('9', 214, InTerms, Just "GHC.Internal.Prim", "wordToWord32#"),
+    ('9', 215, InTerms, Just "GHC.Internal.PrimopWrappers", "wordToWord32#"),
+    ('9', 216, InTerms, Just "GHC.Internal.Prim", "plusWord32#"),
+    ('9', 217, InTerms, Just "GHC.Internal.PrimopWrappers", "plusWord32#"),
+    ('9', 218, InTerms, Just "GHC.Internal.Prim", "subWord32#"),
+    ('9', 219, InTerms, Just "GHC.Internal.PrimopWrappers", "subWord32#"),
+    ('9', 220, InTerms, Just "GHC.Internal.Prim", "timesWord32#"),
+    ('9', 221, InTerms, Just "GHC.Internal.PrimopWrappers", "timesWord32#"),
+    ('9', 222, InTerms, Just "GHC.Internal.Prim", "quotWord32#"),
+    ('9', 223, InTerms, Just "GHC.Internal.PrimopWrappers", "quotWord32#"),
+    ('9', 224, InTerms, Just "GHC.Internal.Prim", "remWord32#"),
+    ('9', 225, InTerms, Just "GHC.Internal.PrimopWrappers", "remWord32#"),
+    ('9', 226, InTerms, Just "GHC.Internal.Prim", "quotRemWord32#"),
+    ('9', 227, InTerms, Just "GHC.Internal.PrimopWrappers", "quotRemWord32#"),
+    ('9', 228, InTerms, Just "GHC.Internal.Prim", "andWord32#"),
+    ('9', 229, InTerms, Just "GHC.Internal.PrimopWrappers", "andWord32#"),
+    ('9', 230, InTerms, Just "GHC.Internal.Prim", "orWord32#"),
+    ('9', 231, InTerms, Just "GHC.Internal.PrimopWrappers", "orWord32#"),
+    ('9', 232, InTerms, Just "GHC.Internal.Prim", "xorWord32#"),
+    ('9', 233, InTerms, Just "GHC.Internal.PrimopWrappers", "xorWord32#"),
+    ('9', 234, InTerms, Just "GHC.Internal.Prim", "notWord32#"),
+    ('9', 235, InTerms, Just "GHC.Internal.PrimopWrappers", "notWord32#"),
+    ('9', 236, InTerms, Just "GHC.Internal.Prim", "uncheckedShiftLWord32#"),
+    ('9', 237, InTerms, Just "GHC.Internal.PrimopWrappers", "uncheckedShiftLWord32#"),
+    ('9', 238, InTerms, Just "GHC.Internal.Prim", "uncheckedShiftRLWord32#"),
+    ('9', 239, InTerms, Just "GHC.Internal.PrimopWrappers", "uncheckedShiftRLWord32#"),
+    ('9', 240, InTerms, Just "GHC.Internal.Prim", "word32ToInt32#"),
+    ('9', 241, InTerms, Just "GHC.Internal.PrimopWrappers", "word32ToInt32#"),
+    ('9', 242, InTerms, Just "GHC.Internal.Prim", "eqWord32#"),
+    ('9', 243, InTerms, Just "GHC.Internal.PrimopWrappers", "eqWord32#"),
+    ('9', 244, InTerms, Just "GHC.Internal.Prim", "geWord32#"),
+    ('9', 245, InTerms, Just "GHC.Internal.PrimopWrappers", "geWord32#"),
+    ('9', 246, InTerms, Just "GHC.Internal.Prim", "gtWord32#"),
+    ('9', 247, InTerms, Just "GHC.Internal.PrimopWrappers", "gtWord32#"),
+    ('9', 248, InTerms, Just "GHC.Internal.Prim", "leWord32#"),
+    ('9', 249, InTerms, Just "GHC.Internal.PrimopWrappers", "leWord32#"),
+    ('9', 250, InTerms, Just "GHC.Internal.Prim", "ltWord32#"),
+    ('9', 251, InTerms, Just "GHC.Internal.PrimopWrappers", "ltWord32#"),
+    ('9', 252, InTerms, Just "GHC.Internal.Prim", "neWord32#"),
+    ('9', 253, InTerms, Just "GHC.Internal.PrimopWrappers", "neWord32#"),
+    ('9', 254, InTerms, Just "GHC.Internal.Prim", "int64ToInt#"),
+    ('9', 255, InTerms, Just "GHC.Internal.PrimopWrappers", "int64ToInt#"),
+    ('9', 256, InTerms, Just "GHC.Internal.Prim", "intToInt64#"),
+    ('9', 257, InTerms, Just "GHC.Internal.PrimopWrappers", "intToInt64#"),
+    ('9', 258, InTerms, Just "GHC.Internal.Prim", "negateInt64#"),
+    ('9', 259, InTerms, Just "GHC.Internal.PrimopWrappers", "negateInt64#"),
+    ('9', 260, InTerms, Just "GHC.Internal.Prim", "plusInt64#"),
+    ('9', 261, InTerms, Just "GHC.Internal.PrimopWrappers", "plusInt64#"),
+    ('9', 262, InTerms, Just "GHC.Internal.Prim", "subInt64#"),
+    ('9', 263, InTerms, Just "GHC.Internal.PrimopWrappers", "subInt64#"),
+    ('9', 264, InTerms, Just "GHC.Internal.Prim", "timesInt64#"),
+    ('9', 265, InTerms, Just "GHC.Internal.PrimopWrappers", "timesInt64#"),
+    ('9', 266, InTerms, Just "GHC.Internal.Prim", "quotInt64#"),
+    ('9', 267, InTerms, Just "GHC.Internal.PrimopWrappers", "quotInt64#"),
+    ('9', 268, InTerms, Just "GHC.Internal.Prim", "remInt64#"),
+    ('9', 269, InTerms, Just "GHC.Internal.PrimopWrappers", "remInt64#"),
+    ('9', 270, InTerms, Just "GHC.Internal.Prim", "uncheckedIShiftL64#"),
+    ('9', 271, InTerms, Just "GHC.Internal.PrimopWrappers", "uncheckedIShiftL64#"),
+    ('9', 272, InTerms, Just "GHC.Internal.Prim", "uncheckedIShiftRA64#"),
+    ('9', 273, InTerms, Just "GHC.Internal.PrimopWrappers", "uncheckedIShiftRA64#"),
+    ('9', 274, InTerms, Just "GHC.Internal.Prim", "uncheckedIShiftRL64#"),
+    ('9', 275, InTerms, Just "GHC.Internal.PrimopWrappers", "uncheckedIShiftRL64#"),
+    ('9', 276, InTerms, Just "GHC.Internal.Prim", "int64ToWord64#"),
+    ('9', 277, InTerms, Just "GHC.Internal.PrimopWrappers", "int64ToWord64#"),
+    ('9', 278, InTerms, Just "GHC.Internal.Prim", "eqInt64#"),
+    ('9', 279, InTerms, Just "GHC.Internal.PrimopWrappers", "eqInt64#"),
+    ('9', 280, InTerms, Just "GHC.Internal.Prim", "geInt64#"),
+    ('9', 281, InTerms, Just "GHC.Internal.PrimopWrappers", "geInt64#"),
+    ('9', 282, InTerms, Just "GHC.Internal.Prim", "gtInt64#"),
+    ('9', 283, InTerms, Just "GHC.Internal.PrimopWrappers", "gtInt64#"),
+    ('9', 284, InTerms, Just "GHC.Internal.Prim", "leInt64#"),
+    ('9', 285, InTerms, Just "GHC.Internal.PrimopWrappers", "leInt64#"),
+    ('9', 286, InTerms, Just "GHC.Internal.Prim", "ltInt64#"),
+    ('9', 287, InTerms, Just "GHC.Internal.PrimopWrappers", "ltInt64#"),
+    ('9', 288, InTerms, Just "GHC.Internal.Prim", "neInt64#"),
+    ('9', 289, InTerms, Just "GHC.Internal.PrimopWrappers", "neInt64#"),
+    ('9', 290, InTerms, Just "GHC.Internal.Prim", "word64ToWord#"),
+    ('9', 291, InTerms, Just "GHC.Internal.PrimopWrappers", "word64ToWord#"),
+    ('9', 292, InTerms, Just "GHC.Internal.Prim", "wordToWord64#"),
+    ('9', 293, InTerms, Just "GHC.Internal.PrimopWrappers", "wordToWord64#"),
+    ('9', 294, InTerms, Just "GHC.Internal.Prim", "plusWord64#"),
+    ('9', 295, InTerms, Just "GHC.Internal.PrimopWrappers", "plusWord64#"),
+    ('9', 296, InTerms, Just "GHC.Internal.Prim", "subWord64#"),
+    ('9', 297, InTerms, Just "GHC.Internal.PrimopWrappers", "subWord64#"),
+    ('9', 298, InTerms, Just "GHC.Internal.Prim", "timesWord64#"),
+    ('9', 299, InTerms, Just "GHC.Internal.PrimopWrappers", "timesWord64#"),
+    ('9', 300, InTerms, Just "GHC.Internal.Prim", "quotWord64#"),
+    ('9', 301, InTerms, Just "GHC.Internal.PrimopWrappers", "quotWord64#"),
+    ('9', 302, InTerms, Just "GHC.Internal.Prim", "remWord64#"),
+    ('9', 303, InTerms, Just "GHC.Internal.PrimopWrappers", "remWord64#"),
+    ('9', 304, InTerms, Just "GHC.Internal.Prim", "and64#"),
+    ('9', 305, InTerms, Just "GHC.Internal.PrimopWrappers", "and64#"),
+    ('9', 306, InTerms, Just "GHC.Internal.Prim", "or64#"),
+    ('9', 307, InTerms, Just "GHC.Internal.PrimopWrappers", "or64#"),
+    ('9', 308, InTerms, Just "GHC.Internal.Prim", "xor64#"),
+    ('9', 309, InTerms, Just "GHC.Internal.PrimopWrappers", "xor64#"),
+    ('9', 310, InTerms, Just "GHC.Internal.Prim", "not64#"),
+    ('9', 311, InTerms, Just "GHC.Internal.PrimopWrappers", "not64#"),
+    ('9', 312, InTerms, Just "GHC.Internal.Prim", "uncheckedShiftL64#"),
+    ('9', 313, InTerms, Just "GHC.Internal.PrimopWrappers", "uncheckedShiftL64#"),
+    ('9', 314, InTerms, Just "GHC.Internal.Prim", "uncheckedShiftRL64#"),
+    ('9', 315, InTerms, Just "GHC.Internal.PrimopWrappers", "uncheckedShiftRL64#"),
+    ('9', 316, InTerms, Just "GHC.Internal.Prim", "word64ToInt64#"),
+    ('9', 317, InTerms, Just "GHC.Internal.PrimopWrappers", "word64ToInt64#"),
+    ('9', 318, InTerms, Just "GHC.Internal.Prim", "eqWord64#"),
+    ('9', 319, InTerms, Just "GHC.Internal.PrimopWrappers", "eqWord64#"),
+    ('9', 320, InTerms, Just "GHC.Internal.Prim", "geWord64#"),
+    ('9', 321, InTerms, Just "GHC.Internal.PrimopWrappers", "geWord64#"),
+    ('9', 322, InTerms, Just "GHC.Internal.Prim", "gtWord64#"),
+    ('9', 323, InTerms, Just "GHC.Internal.PrimopWrappers", "gtWord64#"),
+    ('9', 324, InTerms, Just "GHC.Internal.Prim", "leWord64#"),
+    ('9', 325, InTerms, Just "GHC.Internal.PrimopWrappers", "leWord64#"),
+    ('9', 326, InTerms, Just "GHC.Internal.Prim", "ltWord64#"),
+    ('9', 327, InTerms, Just "GHC.Internal.PrimopWrappers", "ltWord64#"),
+    ('9', 328, InTerms, Just "GHC.Internal.Prim", "neWord64#"),
+    ('9', 329, InTerms, Just "GHC.Internal.PrimopWrappers", "neWord64#"),
+    ('9', 330, InTerms, Just "GHC.Internal.Prim", "+#"),
+    ('9', 331, InTerms, Just "GHC.Internal.PrimopWrappers", "+#"),
+    ('9', 332, InTerms, Just "GHC.Internal.Prim", "-#"),
+    ('9', 333, InTerms, Just "GHC.Internal.PrimopWrappers", "-#"),
+    ('9', 334, InTerms, Just "GHC.Internal.Prim", "*#"),
+    ('9', 335, InTerms, Just "GHC.Internal.PrimopWrappers", "*#"),
+    ('9', 336, InTerms, Just "GHC.Internal.Prim", "timesInt2#"),
+    ('9', 337, InTerms, Just "GHC.Internal.PrimopWrappers", "timesInt2#"),
+    ('9', 338, InTerms, Just "GHC.Internal.Prim", "mulIntMayOflo#"),
+    ('9', 339, InTerms, Just "GHC.Internal.PrimopWrappers", "mulIntMayOflo#"),
+    ('9', 340, InTerms, Just "GHC.Internal.Prim", "quotInt#"),
+    ('9', 341, InTerms, Just "GHC.Internal.PrimopWrappers", "quotInt#"),
+    ('9', 342, InTerms, Just "GHC.Internal.Prim", "remInt#"),
+    ('9', 343, InTerms, Just "GHC.Internal.PrimopWrappers", "remInt#"),
+    ('9', 344, InTerms, Just "GHC.Internal.Prim", "quotRemInt#"),
+    ('9', 345, InTerms, Just "GHC.Internal.PrimopWrappers", "quotRemInt#"),
+    ('9', 346, InTerms, Just "GHC.Internal.Prim", "andI#"),
+    ('9', 347, InTerms, Just "GHC.Internal.PrimopWrappers", "andI#"),
+    ('9', 348, InTerms, Just "GHC.Internal.Prim", "orI#"),
+    ('9', 349, InTerms, Just "GHC.Internal.PrimopWrappers", "orI#"),
+    ('9', 350, InTerms, Just "GHC.Internal.Prim", "xorI#"),
+    ('9', 351, InTerms, Just "GHC.Internal.PrimopWrappers", "xorI#"),
+    ('9', 352, InTerms, Just "GHC.Internal.Prim", "notI#"),
+    ('9', 353, InTerms, Just "GHC.Internal.PrimopWrappers", "notI#"),
+    ('9', 354, InTerms, Just "GHC.Internal.Prim", "negateInt#"),
+    ('9', 355, InTerms, Just "GHC.Internal.PrimopWrappers", "negateInt#"),
+    ('9', 356, InTerms, Just "GHC.Internal.Prim", "addIntC#"),
+    ('9', 357, InTerms, Just "GHC.Internal.PrimopWrappers", "addIntC#"),
+    ('9', 358, InTerms, Just "GHC.Internal.Prim", "subIntC#"),
+    ('9', 359, InTerms, Just "GHC.Internal.PrimopWrappers", "subIntC#"),
+    ('9', 360, InTerms, Just "GHC.Internal.Prim", ">#"),
+    ('9', 361, InTerms, Just "GHC.Internal.PrimopWrappers", ">#"),
+    ('9', 362, InTerms, Just "GHC.Internal.Prim", ">=#"),
+    ('9', 363, InTerms, Just "GHC.Internal.PrimopWrappers", ">=#"),
+    ('9', 364, InTerms, Just "GHC.Internal.Prim", "==#"),
+    ('9', 365, InTerms, Just "GHC.Internal.PrimopWrappers", "==#"),
+    ('9', 366, InTerms, Just "GHC.Internal.Prim", "/=#"),
+    ('9', 367, InTerms, Just "GHC.Internal.PrimopWrappers", "/=#"),
+    ('9', 368, InTerms, Just "GHC.Internal.Prim", "<#"),
+    ('9', 369, InTerms, Just "GHC.Internal.PrimopWrappers", "<#"),
+    ('9', 370, InTerms, Just "GHC.Internal.Prim", "<=#"),
+    ('9', 371, InTerms, Just "GHC.Internal.PrimopWrappers", "<=#"),
+    ('9', 372, InTerms, Just "GHC.Internal.Prim", "chr#"),
+    ('9', 373, InTerms, Just "GHC.Internal.PrimopWrappers", "chr#"),
+    ('9', 374, InTerms, Just "GHC.Internal.Prim", "int2Word#"),
+    ('9', 375, InTerms, Just "GHC.Internal.PrimopWrappers", "int2Word#"),
+    ('9', 376, InTerms, Just "GHC.Internal.Prim", "int2Float#"),
+    ('9', 377, InTerms, Just "GHC.Internal.PrimopWrappers", "int2Float#"),
+    ('9', 378, InTerms, Just "GHC.Internal.Prim", "int2Double#"),
+    ('9', 379, InTerms, Just "GHC.Internal.PrimopWrappers", "int2Double#"),
+    ('9', 380, InTerms, Just "GHC.Internal.Prim", "word2Float#"),
+    ('9', 381, InTerms, Just "GHC.Internal.PrimopWrappers", "word2Float#"),
+    ('9', 382, InTerms, Just "GHC.Internal.Prim", "word2Double#"),
+    ('9', 383, InTerms, Just "GHC.Internal.PrimopWrappers", "word2Double#"),
+    ('9', 384, InTerms, Just "GHC.Internal.Prim", "uncheckedIShiftL#"),
+    ('9', 385, InTerms, Just "GHC.Internal.PrimopWrappers", "uncheckedIShiftL#"),
+    ('9', 386, InTerms, Just "GHC.Internal.Prim", "uncheckedIShiftRA#"),
+    ('9', 387, InTerms, Just "GHC.Internal.PrimopWrappers", "uncheckedIShiftRA#"),
+    ('9', 388, InTerms, Just "GHC.Internal.Prim", "uncheckedIShiftRL#"),
+    ('9', 389, InTerms, Just "GHC.Internal.PrimopWrappers", "uncheckedIShiftRL#"),
+    ('9', 390, InTerms, Just "GHC.Internal.Prim", "plusWord#"),
+    ('9', 391, InTerms, Just "GHC.Internal.PrimopWrappers", "plusWord#"),
+    ('9', 392, InTerms, Just "GHC.Internal.Prim", "addWordC#"),
+    ('9', 393, InTerms, Just "GHC.Internal.PrimopWrappers", "addWordC#"),
+    ('9', 394, InTerms, Just "GHC.Internal.Prim", "subWordC#"),
+    ('9', 395, InTerms, Just "GHC.Internal.PrimopWrappers", "subWordC#"),
+    ('9', 396, InTerms, Just "GHC.Internal.Prim", "plusWord2#"),
+    ('9', 397, InTerms, Just "GHC.Internal.PrimopWrappers", "plusWord2#"),
+    ('9', 398, InTerms, Just "GHC.Internal.Prim", "minusWord#"),
+    ('9', 399, InTerms, Just "GHC.Internal.PrimopWrappers", "minusWord#"),
+    ('9', 400, InTerms, Just "GHC.Internal.Prim", "timesWord#"),
+    ('9', 401, InTerms, Just "GHC.Internal.PrimopWrappers", "timesWord#"),
+    ('9', 402, InTerms, Just "GHC.Internal.Prim", "timesWord2#"),
+    ('9', 403, InTerms, Just "GHC.Internal.PrimopWrappers", "timesWord2#"),
+    ('9', 404, InTerms, Just "GHC.Internal.Prim", "quotWord#"),
+    ('9', 405, InTerms, Just "GHC.Internal.PrimopWrappers", "quotWord#"),
+    ('9', 406, InTerms, Just "GHC.Internal.Prim", "remWord#"),
+    ('9', 407, InTerms, Just "GHC.Internal.PrimopWrappers", "remWord#"),
+    ('9', 408, InTerms, Just "GHC.Internal.Prim", "quotRemWord#"),
+    ('9', 409, InTerms, Just "GHC.Internal.PrimopWrappers", "quotRemWord#"),
+    ('9', 410, InTerms, Just "GHC.Internal.Prim", "quotRemWord2#"),
+    ('9', 411, InTerms, Just "GHC.Internal.PrimopWrappers", "quotRemWord2#"),
+    ('9', 412, InTerms, Just "GHC.Internal.Prim", "and#"),
+    ('9', 413, InTerms, Just "GHC.Internal.PrimopWrappers", "and#"),
+    ('9', 414, InTerms, Just "GHC.Internal.Prim", "or#"),
+    ('9', 415, InTerms, Just "GHC.Internal.PrimopWrappers", "or#"),
+    ('9', 416, InTerms, Just "GHC.Internal.Prim", "xor#"),
+    ('9', 417, InTerms, Just "GHC.Internal.PrimopWrappers", "xor#"),
+    ('9', 418, InTerms, Just "GHC.Internal.Prim", "not#"),
+    ('9', 419, InTerms, Just "GHC.Internal.PrimopWrappers", "not#"),
+    ('9', 420, InTerms, Just "GHC.Internal.Prim", "uncheckedShiftL#"),
+    ('9', 421, InTerms, Just "GHC.Internal.PrimopWrappers", "uncheckedShiftL#"),
+    ('9', 422, InTerms, Just "GHC.Internal.Prim", "uncheckedShiftRL#"),
+    ('9', 423, InTerms, Just "GHC.Internal.PrimopWrappers", "uncheckedShiftRL#"),
+    ('9', 424, InTerms, Just "GHC.Internal.Prim", "word2Int#"),
+    ('9', 425, InTerms, Just "GHC.Internal.PrimopWrappers", "word2Int#"),
+    ('9', 426, InTerms, Just "GHC.Internal.Prim", "gtWord#"),
+    ('9', 427, InTerms, Just "GHC.Internal.PrimopWrappers", "gtWord#"),
+    ('9', 428, InTerms, Just "GHC.Internal.Prim", "geWord#"),
+    ('9', 429, InTerms, Just "GHC.Internal.PrimopWrappers", "geWord#"),
+    ('9', 430, InTerms, Just "GHC.Internal.Prim", "eqWord#"),
+    ('9', 431, InTerms, Just "GHC.Internal.PrimopWrappers", "eqWord#"),
+    ('9', 432, InTerms, Just "GHC.Internal.Prim", "neWord#"),
+    ('9', 433, InTerms, Just "GHC.Internal.PrimopWrappers", "neWord#"),
+    ('9', 434, InTerms, Just "GHC.Internal.Prim", "ltWord#"),
+    ('9', 435, InTerms, Just "GHC.Internal.PrimopWrappers", "ltWord#"),
+    ('9', 436, InTerms, Just "GHC.Internal.Prim", "leWord#"),
+    ('9', 437, InTerms, Just "GHC.Internal.PrimopWrappers", "leWord#"),
+    ('9', 438, InTerms, Just "GHC.Internal.Prim", "popCnt8#"),
+    ('9', 439, InTerms, Just "GHC.Internal.PrimopWrappers", "popCnt8#"),
+    ('9', 440, InTerms, Just "GHC.Internal.Prim", "popCnt16#"),
+    ('9', 441, InTerms, Just "GHC.Internal.PrimopWrappers", "popCnt16#"),
+    ('9', 442, InTerms, Just "GHC.Internal.Prim", "popCnt32#"),
+    ('9', 443, InTerms, Just "GHC.Internal.PrimopWrappers", "popCnt32#"),
+    ('9', 444, InTerms, Just "GHC.Internal.Prim", "popCnt64#"),
+    ('9', 445, InTerms, Just "GHC.Internal.PrimopWrappers", "popCnt64#"),
+    ('9', 446, InTerms, Just "GHC.Internal.Prim", "popCnt#"),
+    ('9', 447, InTerms, Just "GHC.Internal.PrimopWrappers", "popCnt#"),
+    ('9', 448, InTerms, Just "GHC.Internal.Prim", "pdep8#"),
+    ('9', 449, InTerms, Just "GHC.Internal.PrimopWrappers", "pdep8#"),
+    ('9', 450, InTerms, Just "GHC.Internal.Prim", "pdep16#"),
+    ('9', 451, InTerms, Just "GHC.Internal.PrimopWrappers", "pdep16#"),
+    ('9', 452, InTerms, Just "GHC.Internal.Prim", "pdep32#"),
+    ('9', 453, InTerms, Just "GHC.Internal.PrimopWrappers", "pdep32#"),
+    ('9', 454, InTerms, Just "GHC.Internal.Prim", "pdep64#"),
+    ('9', 455, InTerms, Just "GHC.Internal.PrimopWrappers", "pdep64#"),
+    ('9', 456, InTerms, Just "GHC.Internal.Prim", "pdep#"),
+    ('9', 457, InTerms, Just "GHC.Internal.PrimopWrappers", "pdep#"),
+    ('9', 458, InTerms, Just "GHC.Internal.Prim", "pext8#"),
+    ('9', 459, InTerms, Just "GHC.Internal.PrimopWrappers", "pext8#"),
+    ('9', 460, InTerms, Just "GHC.Internal.Prim", "pext16#"),
+    ('9', 461, InTerms, Just "GHC.Internal.PrimopWrappers", "pext16#"),
+    ('9', 462, InTerms, Just "GHC.Internal.Prim", "pext32#"),
+    ('9', 463, InTerms, Just "GHC.Internal.PrimopWrappers", "pext32#"),
+    ('9', 464, InTerms, Just "GHC.Internal.Prim", "pext64#"),
+    ('9', 465, InTerms, Just "GHC.Internal.PrimopWrappers", "pext64#"),
+    ('9', 466, InTerms, Just "GHC.Internal.Prim", "pext#"),
+    ('9', 467, InTerms, Just "GHC.Internal.PrimopWrappers", "pext#"),
+    ('9', 468, InTerms, Just "GHC.Internal.Prim", "clz8#"),
+    ('9', 469, InTerms, Just "GHC.Internal.PrimopWrappers", "clz8#"),
+    ('9', 470, InTerms, Just "GHC.Internal.Prim", "clz16#"),
+    ('9', 471, InTerms, Just "GHC.Internal.PrimopWrappers", "clz16#"),
+    ('9', 472, InTerms, Just "GHC.Internal.Prim", "clz32#"),
+    ('9', 473, InTerms, Just "GHC.Internal.PrimopWrappers", "clz32#"),
+    ('9', 474, InTerms, Just "GHC.Internal.Prim", "clz64#"),
+    ('9', 475, InTerms, Just "GHC.Internal.PrimopWrappers", "clz64#"),
+    ('9', 476, InTerms, Just "GHC.Internal.Prim", "clz#"),
+    ('9', 477, InTerms, Just "GHC.Internal.PrimopWrappers", "clz#"),
+    ('9', 478, InTerms, Just "GHC.Internal.Prim", "ctz8#"),
+    ('9', 479, InTerms, Just "GHC.Internal.PrimopWrappers", "ctz8#"),
+    ('9', 480, InTerms, Just "GHC.Internal.Prim", "ctz16#"),
+    ('9', 481, InTerms, Just "GHC.Internal.PrimopWrappers", "ctz16#"),
+    ('9', 482, InTerms, Just "GHC.Internal.Prim", "ctz32#"),
+    ('9', 483, InTerms, Just "GHC.Internal.PrimopWrappers", "ctz32#"),
+    ('9', 484, InTerms, Just "GHC.Internal.Prim", "ctz64#"),
+    ('9', 485, InTerms, Just "GHC.Internal.PrimopWrappers", "ctz64#"),
+    ('9', 486, InTerms, Just "GHC.Internal.Prim", "ctz#"),
+    ('9', 487, InTerms, Just "GHC.Internal.PrimopWrappers", "ctz#"),
+    ('9', 488, InTerms, Just "GHC.Internal.Prim", "byteSwap16#"),
+    ('9', 489, InTerms, Just "GHC.Internal.PrimopWrappers", "byteSwap16#"),
+    ('9', 490, InTerms, Just "GHC.Internal.Prim", "byteSwap32#"),
+    ('9', 491, InTerms, Just "GHC.Internal.PrimopWrappers", "byteSwap32#"),
+    ('9', 492, InTerms, Just "GHC.Internal.Prim", "byteSwap64#"),
+    ('9', 493, InTerms, Just "GHC.Internal.PrimopWrappers", "byteSwap64#"),
+    ('9', 494, InTerms, Just "GHC.Internal.Prim", "byteSwap#"),
+    ('9', 495, InTerms, Just "GHC.Internal.PrimopWrappers", "byteSwap#"),
+    ('9', 496, InTerms, Just "GHC.Internal.Prim", "bitReverse8#"),
+    ('9', 497, InTerms, Just "GHC.Internal.PrimopWrappers", "bitReverse8#"),
+    ('9', 498, InTerms, Just "GHC.Internal.Prim", "bitReverse16#"),
+    ('9', 499, InTerms, Just "GHC.Internal.PrimopWrappers", "bitReverse16#"),
+    ('9', 500, InTerms, Just "GHC.Internal.Prim", "bitReverse32#"),
+    ('9', 501, InTerms, Just "GHC.Internal.PrimopWrappers", "bitReverse32#"),
+    ('9', 502, InTerms, Just "GHC.Internal.Prim", "bitReverse64#"),
+    ('9', 503, InTerms, Just "GHC.Internal.PrimopWrappers", "bitReverse64#"),
+    ('9', 504, InTerms, Just "GHC.Internal.Prim", "bitReverse#"),
+    ('9', 505, InTerms, Just "GHC.Internal.PrimopWrappers", "bitReverse#"),
+    ('9', 506, InTerms, Just "GHC.Internal.Prim", "narrow8Int#"),
+    ('9', 507, InTerms, Just "GHC.Internal.PrimopWrappers", "narrow8Int#"),
+    ('9', 508, InTerms, Just "GHC.Internal.Prim", "narrow16Int#"),
+    ('9', 509, InTerms, Just "GHC.Internal.PrimopWrappers", "narrow16Int#"),
+    ('9', 510, InTerms, Just "GHC.Internal.Prim", "narrow32Int#"),
+    ('9', 511, InTerms, Just "GHC.Internal.PrimopWrappers", "narrow32Int#"),
+    ('9', 512, InTerms, Just "GHC.Internal.Prim", "narrow8Word#"),
+    ('9', 513, InTerms, Just "GHC.Internal.PrimopWrappers", "narrow8Word#"),
+    ('9', 514, InTerms, Just "GHC.Internal.Prim", "narrow16Word#"),
+    ('9', 515, InTerms, Just "GHC.Internal.PrimopWrappers", "narrow16Word#"),
+    ('9', 516, InTerms, Just "GHC.Internal.Prim", "narrow32Word#"),
+    ('9', 517, InTerms, Just "GHC.Internal.PrimopWrappers", "narrow32Word#"),
+    ('9', 518, InTerms, Just "GHC.Internal.Prim", ">##"),
+    ('9', 519, InTerms, Just "GHC.Internal.PrimopWrappers", ">##"),
+    ('9', 520, InTerms, Just "GHC.Internal.Prim", ">=##"),
+    ('9', 521, InTerms, Just "GHC.Internal.PrimopWrappers", ">=##"),
+    ('9', 522, InTerms, Just "GHC.Internal.Prim", "==##"),
+    ('9', 523, InTerms, Just "GHC.Internal.PrimopWrappers", "==##"),
+    ('9', 524, InTerms, Just "GHC.Internal.Prim", "/=##"),
+    ('9', 525, InTerms, Just "GHC.Internal.PrimopWrappers", "/=##"),
+    ('9', 526, InTerms, Just "GHC.Internal.Prim", "<##"),
+    ('9', 527, InTerms, Just "GHC.Internal.PrimopWrappers", "<##"),
+    ('9', 528, InTerms, Just "GHC.Internal.Prim", "<=##"),
+    ('9', 529, InTerms, Just "GHC.Internal.PrimopWrappers", "<=##"),
+    ('9', 530, InTerms, Just "GHC.Internal.Prim", "minDouble#"),
+    ('9', 531, InTerms, Just "GHC.Internal.PrimopWrappers", "minDouble#"),
+    ('9', 532, InTerms, Just "GHC.Internal.Prim", "maxDouble#"),
+    ('9', 533, InTerms, Just "GHC.Internal.PrimopWrappers", "maxDouble#"),
+    ('9', 534, InTerms, Just "GHC.Internal.Prim", "+##"),
+    ('9', 535, InTerms, Just "GHC.Internal.PrimopWrappers", "+##"),
+    ('9', 536, InTerms, Just "GHC.Internal.Prim", "-##"),
+    ('9', 537, InTerms, Just "GHC.Internal.PrimopWrappers", "-##"),
+    ('9', 538, InTerms, Just "GHC.Internal.Prim", "*##"),
+    ('9', 539, InTerms, Just "GHC.Internal.PrimopWrappers", "*##"),
+    ('9', 540, InTerms, Just "GHC.Internal.Prim", "/##"),
+    ('9', 541, InTerms, Just "GHC.Internal.PrimopWrappers", "/##"),
+    ('9', 542, InTerms, Just "GHC.Internal.Prim", "negateDouble#"),
+    ('9', 543, InTerms, Just "GHC.Internal.PrimopWrappers", "negateDouble#"),
+    ('9', 544, InTerms, Just "GHC.Internal.Prim", "fabsDouble#"),
+    ('9', 545, InTerms, Just "GHC.Internal.PrimopWrappers", "fabsDouble#"),
+    ('9', 546, InTerms, Just "GHC.Internal.Prim", "double2Int#"),
+    ('9', 547, InTerms, Just "GHC.Internal.PrimopWrappers", "double2Int#"),
+    ('9', 548, InTerms, Just "GHC.Internal.Prim", "double2Float#"),
+    ('9', 549, InTerms, Just "GHC.Internal.PrimopWrappers", "double2Float#"),
+    ('9', 550, InTerms, Just "GHC.Internal.Prim", "expDouble#"),
+    ('9', 551, InTerms, Just "GHC.Internal.PrimopWrappers", "expDouble#"),
+    ('9', 552, InTerms, Just "GHC.Internal.Prim", "expm1Double#"),
+    ('9', 553, InTerms, Just "GHC.Internal.PrimopWrappers", "expm1Double#"),
+    ('9', 554, InTerms, Just "GHC.Internal.Prim", "logDouble#"),
+    ('9', 555, InTerms, Just "GHC.Internal.PrimopWrappers", "logDouble#"),
+    ('9', 556, InTerms, Just "GHC.Internal.Prim", "log1pDouble#"),
+    ('9', 557, InTerms, Just "GHC.Internal.PrimopWrappers", "log1pDouble#"),
+    ('9', 558, InTerms, Just "GHC.Internal.Prim", "sqrtDouble#"),
+    ('9', 559, InTerms, Just "GHC.Internal.PrimopWrappers", "sqrtDouble#"),
+    ('9', 560, InTerms, Just "GHC.Internal.Prim", "sinDouble#"),
+    ('9', 561, InTerms, Just "GHC.Internal.PrimopWrappers", "sinDouble#"),
+    ('9', 562, InTerms, Just "GHC.Internal.Prim", "cosDouble#"),
+    ('9', 563, InTerms, Just "GHC.Internal.PrimopWrappers", "cosDouble#"),
+    ('9', 564, InTerms, Just "GHC.Internal.Prim", "tanDouble#"),
+    ('9', 565, InTerms, Just "GHC.Internal.PrimopWrappers", "tanDouble#"),
+    ('9', 566, InTerms, Just "GHC.Internal.Prim", "asinDouble#"),
+    ('9', 567, InTerms, Just "GHC.Internal.PrimopWrappers", "asinDouble#"),
+    ('9', 568, InTerms, Just "GHC.Internal.Prim", "acosDouble#"),
+    ('9', 569, InTerms, Just "GHC.Internal.PrimopWrappers", "acosDouble#"),
+    ('9', 570, InTerms, Just "GHC.Internal.Prim", "atanDouble#"),
+    ('9', 571, InTerms, Just "GHC.Internal.PrimopWrappers", "atanDouble#"),
+    ('9', 572, InTerms, Just "GHC.Internal.Prim", "sinhDouble#"),
+    ('9', 573, InTerms, Just "GHC.Internal.PrimopWrappers", "sinhDouble#"),
+    ('9', 574, InTerms, Just "GHC.Internal.Prim", "coshDouble#"),
+    ('9', 575, InTerms, Just "GHC.Internal.PrimopWrappers", "coshDouble#"),
+    ('9', 576, InTerms, Just "GHC.Internal.Prim", "tanhDouble#"),
+    ('9', 577, InTerms, Just "GHC.Internal.PrimopWrappers", "tanhDouble#"),
+    ('9', 578, InTerms, Just "GHC.Internal.Prim", "asinhDouble#"),
+    ('9', 579, InTerms, Just "GHC.Internal.PrimopWrappers", "asinhDouble#"),
+    ('9', 580, InTerms, Just "GHC.Internal.Prim", "acoshDouble#"),
+    ('9', 581, InTerms, Just "GHC.Internal.PrimopWrappers", "acoshDouble#"),
+    ('9', 582, InTerms, Just "GHC.Internal.Prim", "atanhDouble#"),
+    ('9', 583, InTerms, Just "GHC.Internal.PrimopWrappers", "atanhDouble#"),
+    ('9', 584, InTerms, Just "GHC.Internal.Prim", "**##"),
+    ('9', 585, InTerms, Just "GHC.Internal.PrimopWrappers", "**##"),
+    ('9', 586, InTerms, Just "GHC.Internal.Prim", "decodeDouble_2Int#"),
+    ('9', 587, InTerms, Just "GHC.Internal.PrimopWrappers", "decodeDouble_2Int#"),
+    ('9', 588, InTerms, Just "GHC.Internal.Prim", "decodeDouble_Int64#"),
+    ('9', 589, InTerms, Just "GHC.Internal.PrimopWrappers", "decodeDouble_Int64#"),
+    ('9', 590, InTerms, Just "GHC.Internal.Prim", "castDoubleToWord64#"),
+    ('9', 591, InTerms, Just "GHC.Internal.PrimopWrappers", "castDoubleToWord64#"),
+    ('9', 592, InTerms, Just "GHC.Internal.Prim", "castWord64ToDouble#"),
+    ('9', 593, InTerms, Just "GHC.Internal.PrimopWrappers", "castWord64ToDouble#"),
+    ('9', 594, InTerms, Just "GHC.Internal.Prim", "gtFloat#"),
+    ('9', 595, InTerms, Just "GHC.Internal.PrimopWrappers", "gtFloat#"),
+    ('9', 596, InTerms, Just "GHC.Internal.Prim", "geFloat#"),
+    ('9', 597, InTerms, Just "GHC.Internal.PrimopWrappers", "geFloat#"),
+    ('9', 598, InTerms, Just "GHC.Internal.Prim", "eqFloat#"),
+    ('9', 599, InTerms, Just "GHC.Internal.PrimopWrappers", "eqFloat#"),
+    ('9', 600, InTerms, Just "GHC.Internal.Prim", "neFloat#"),
+    ('9', 601, InTerms, Just "GHC.Internal.PrimopWrappers", "neFloat#"),
+    ('9', 602, InTerms, Just "GHC.Internal.Prim", "ltFloat#"),
+    ('9', 603, InTerms, Just "GHC.Internal.PrimopWrappers", "ltFloat#"),
+    ('9', 604, InTerms, Just "GHC.Internal.Prim", "leFloat#"),
+    ('9', 605, InTerms, Just "GHC.Internal.PrimopWrappers", "leFloat#"),
+    ('9', 606, InTerms, Just "GHC.Internal.Prim", "minFloat#"),
+    ('9', 607, InTerms, Just "GHC.Internal.PrimopWrappers", "minFloat#"),
+    ('9', 608, InTerms, Just "GHC.Internal.Prim", "maxFloat#"),
+    ('9', 609, InTerms, Just "GHC.Internal.PrimopWrappers", "maxFloat#"),
+    ('9', 610, InTerms, Just "GHC.Internal.Prim", "plusFloat#"),
+    ('9', 611, InTerms, Just "GHC.Internal.PrimopWrappers", "plusFloat#"),
+    ('9', 612, InTerms, Just "GHC.Internal.Prim", "minusFloat#"),
+    ('9', 613, InTerms, Just "GHC.Internal.PrimopWrappers", "minusFloat#"),
+    ('9', 614, InTerms, Just "GHC.Internal.Prim", "timesFloat#"),
+    ('9', 615, InTerms, Just "GHC.Internal.PrimopWrappers", "timesFloat#"),
+    ('9', 616, InTerms, Just "GHC.Internal.Prim", "divideFloat#"),
+    ('9', 617, InTerms, Just "GHC.Internal.PrimopWrappers", "divideFloat#"),
+    ('9', 618, InTerms, Just "GHC.Internal.Prim", "negateFloat#"),
+    ('9', 619, InTerms, Just "GHC.Internal.PrimopWrappers", "negateFloat#"),
+    ('9', 620, InTerms, Just "GHC.Internal.Prim", "fabsFloat#"),
+    ('9', 621, InTerms, Just "GHC.Internal.PrimopWrappers", "fabsFloat#"),
+    ('9', 622, InTerms, Just "GHC.Internal.Prim", "float2Int#"),
+    ('9', 623, InTerms, Just "GHC.Internal.PrimopWrappers", "float2Int#"),
+    ('9', 624, InTerms, Just "GHC.Internal.Prim", "expFloat#"),
+    ('9', 625, InTerms, Just "GHC.Internal.PrimopWrappers", "expFloat#"),
+    ('9', 626, InTerms, Just "GHC.Internal.Prim", "expm1Float#"),
+    ('9', 627, InTerms, Just "GHC.Internal.PrimopWrappers", "expm1Float#"),
+    ('9', 628, InTerms, Just "GHC.Internal.Prim", "logFloat#"),
+    ('9', 629, InTerms, Just "GHC.Internal.PrimopWrappers", "logFloat#"),
+    ('9', 630, InTerms, Just "GHC.Internal.Prim", "log1pFloat#"),
+    ('9', 631, InTerms, Just "GHC.Internal.PrimopWrappers", "log1pFloat#"),
+    ('9', 632, InTerms, Just "GHC.Internal.Prim", "sqrtFloat#"),
+    ('9', 633, InTerms, Just "GHC.Internal.PrimopWrappers", "sqrtFloat#"),
+    ('9', 634, InTerms, Just "GHC.Internal.Prim", "sinFloat#"),
+    ('9', 635, InTerms, Just "GHC.Internal.PrimopWrappers", "sinFloat#"),
+    ('9', 636, InTerms, Just "GHC.Internal.Prim", "cosFloat#"),
+    ('9', 637, InTerms, Just "GHC.Internal.PrimopWrappers", "cosFloat#"),
+    ('9', 638, InTerms, Just "GHC.Internal.Prim", "tanFloat#"),
+    ('9', 639, InTerms, Just "GHC.Internal.PrimopWrappers", "tanFloat#"),
+    ('9', 640, InTerms, Just "GHC.Internal.Prim", "asinFloat#"),
+    ('9', 641, InTerms, Just "GHC.Internal.PrimopWrappers", "asinFloat#"),
+    ('9', 642, InTerms, Just "GHC.Internal.Prim", "acosFloat#"),
+    ('9', 643, InTerms, Just "GHC.Internal.PrimopWrappers", "acosFloat#"),
+    ('9', 644, InTerms, Just "GHC.Internal.Prim", "atanFloat#"),
+    ('9', 645, InTerms, Just "GHC.Internal.PrimopWrappers", "atanFloat#"),
+    ('9', 646, InTerms, Just "GHC.Internal.Prim", "sinhFloat#"),
+    ('9', 647, InTerms, Just "GHC.Internal.PrimopWrappers", "sinhFloat#"),
+    ('9', 648, InTerms, Just "GHC.Internal.Prim", "coshFloat#"),
+    ('9', 649, InTerms, Just "GHC.Internal.PrimopWrappers", "coshFloat#"),
+    ('9', 650, InTerms, Just "GHC.Internal.Prim", "tanhFloat#"),
+    ('9', 651, InTerms, Just "GHC.Internal.PrimopWrappers", "tanhFloat#"),
+    ('9', 652, InTerms, Just "GHC.Internal.Prim", "asinhFloat#"),
+    ('9', 653, InTerms, Just "GHC.Internal.PrimopWrappers", "asinhFloat#"),
+    ('9', 654, InTerms, Just "GHC.Internal.Prim", "acoshFloat#"),
+    ('9', 655, InTerms, Just "GHC.Internal.PrimopWrappers", "acoshFloat#"),
+    ('9', 656, InTerms, Just "GHC.Internal.Prim", "atanhFloat#"),
+    ('9', 657, InTerms, Just "GHC.Internal.PrimopWrappers", "atanhFloat#"),
+    ('9', 658, InTerms, Just "GHC.Internal.Prim", "powerFloat#"),
+    ('9', 659, InTerms, Just "GHC.Internal.PrimopWrappers", "powerFloat#"),
+    ('9', 660, InTerms, Just "GHC.Internal.Prim", "float2Double#"),
+    ('9', 661, InTerms, Just "GHC.Internal.PrimopWrappers", "float2Double#"),
+    ('9', 662, InTerms, Just "GHC.Internal.Prim", "decodeFloat_Int#"),
+    ('9', 663, InTerms, Just "GHC.Internal.PrimopWrappers", "decodeFloat_Int#"),
+    ('9', 664, InTerms, Just "GHC.Internal.Prim", "castFloatToWord32#"),
+    ('9', 665, InTerms, Just "GHC.Internal.PrimopWrappers", "castFloatToWord32#"),
+    ('9', 666, InTerms, Just "GHC.Internal.Prim", "castWord32ToFloat#"),
+    ('9', 667, InTerms, Just "GHC.Internal.PrimopWrappers", "castWord32ToFloat#"),
+    ('9', 668, InTerms, Just "GHC.Internal.Prim", "fmaddFloat#"),
+    ('9', 669, InTerms, Just "GHC.Internal.PrimopWrappers", "fmaddFloat#"),
+    ('9', 670, InTerms, Just "GHC.Internal.Prim", "fmsubFloat#"),
+    ('9', 671, InTerms, Just "GHC.Internal.PrimopWrappers", "fmsubFloat#"),
+    ('9', 672, InTerms, Just "GHC.Internal.Prim", "fnmaddFloat#"),
+    ('9', 673, InTerms, Just "GHC.Internal.PrimopWrappers", "fnmaddFloat#"),
+    ('9', 674, InTerms, Just "GHC.Internal.Prim", "fnmsubFloat#"),
+    ('9', 675, InTerms, Just "GHC.Internal.PrimopWrappers", "fnmsubFloat#"),
+    ('9', 676, InTerms, Just "GHC.Internal.Prim", "fmaddDouble#"),
+    ('9', 677, InTerms, Just "GHC.Internal.PrimopWrappers", "fmaddDouble#"),
+    ('9', 678, InTerms, Just "GHC.Internal.Prim", "fmsubDouble#"),
+    ('9', 679, InTerms, Just "GHC.Internal.PrimopWrappers", "fmsubDouble#"),
+    ('9', 680, InTerms, Just "GHC.Internal.Prim", "fnmaddDouble#"),
+    ('9', 681, InTerms, Just "GHC.Internal.PrimopWrappers", "fnmaddDouble#"),
+    ('9', 682, InTerms, Just "GHC.Internal.Prim", "fnmsubDouble#"),
+    ('9', 683, InTerms, Just "GHC.Internal.PrimopWrappers", "fnmsubDouble#"),
+    ('9', 684, InTerms, Just "GHC.Internal.Prim", "newArray#"),
+    ('9', 685, InTerms, Just "GHC.Internal.PrimopWrappers", "newArray#"),
+    ('9', 686, InTerms, Just "GHC.Internal.Prim", "readArray#"),
+    ('9', 687, InTerms, Just "GHC.Internal.PrimopWrappers", "readArray#"),
+    ('9', 688, InTerms, Just "GHC.Internal.Prim", "writeArray#"),
+    ('9', 689, InTerms, Just "GHC.Internal.PrimopWrappers", "writeArray#"),
+    ('9', 690, InTerms, Just "GHC.Internal.Prim", "sizeofArray#"),
+    ('9', 691, InTerms, Just "GHC.Internal.PrimopWrappers", "sizeofArray#"),
+    ('9', 692, InTerms, Just "GHC.Internal.Prim", "sizeofMutableArray#"),
+    ('9', 693, InTerms, Just "GHC.Internal.PrimopWrappers", "sizeofMutableArray#"),
+    ('9', 694, InTerms, Just "GHC.Internal.Prim", "indexArray#"),
+    ('9', 695, InTerms, Just "GHC.Internal.PrimopWrappers", "indexArray#"),
+    ('9', 696, InTerms, Just "GHC.Internal.Prim", "unsafeFreezeArray#"),
+    ('9', 697, InTerms, Just "GHC.Internal.PrimopWrappers", "unsafeFreezeArray#"),
+    ('9', 698, InTerms, Just "GHC.Internal.Prim", "unsafeThawArray#"),
+    ('9', 699, InTerms, Just "GHC.Internal.PrimopWrappers", "unsafeThawArray#"),
+    ('9', 700, InTerms, Just "GHC.Internal.Prim", "copyArray#"),
+    ('9', 701, InTerms, Just "GHC.Internal.PrimopWrappers", "copyArray#"),
+    ('9', 702, InTerms, Just "GHC.Internal.Prim", "copyMutableArray#"),
+    ('9', 703, InTerms, Just "GHC.Internal.PrimopWrappers", "copyMutableArray#"),
+    ('9', 704, InTerms, Just "GHC.Internal.Prim", "cloneArray#"),
+    ('9', 705, InTerms, Just "GHC.Internal.PrimopWrappers", "cloneArray#"),
+    ('9', 706, InTerms, Just "GHC.Internal.Prim", "cloneMutableArray#"),
+    ('9', 707, InTerms, Just "GHC.Internal.PrimopWrappers", "cloneMutableArray#"),
+    ('9', 708, InTerms, Just "GHC.Internal.Prim", "freezeArray#"),
+    ('9', 709, InTerms, Just "GHC.Internal.PrimopWrappers", "freezeArray#"),
+    ('9', 710, InTerms, Just "GHC.Internal.Prim", "thawArray#"),
+    ('9', 711, InTerms, Just "GHC.Internal.PrimopWrappers", "thawArray#"),
+    ('9', 712, InTerms, Just "GHC.Internal.Prim", "casArray#"),
+    ('9', 713, InTerms, Just "GHC.Internal.PrimopWrappers", "casArray#"),
+    ('9', 714, InTerms, Just "GHC.Internal.Prim", "newSmallArray#"),
+    ('9', 715, InTerms, Just "GHC.Internal.PrimopWrappers", "newSmallArray#"),
+    ('9', 716, InTerms, Just "GHC.Internal.Prim", "shrinkSmallMutableArray#"),
+    ('9', 717, InTerms, Just "GHC.Internal.PrimopWrappers", "shrinkSmallMutableArray#"),
+    ('9', 718, InTerms, Just "GHC.Internal.Prim", "readSmallArray#"),
+    ('9', 719, InTerms, Just "GHC.Internal.PrimopWrappers", "readSmallArray#"),
+    ('9', 720, InTerms, Just "GHC.Internal.Prim", "writeSmallArray#"),
+    ('9', 721, InTerms, Just "GHC.Internal.PrimopWrappers", "writeSmallArray#"),
+    ('9', 722, InTerms, Just "GHC.Internal.Prim", "sizeofSmallArray#"),
+    ('9', 723, InTerms, Just "GHC.Internal.PrimopWrappers", "sizeofSmallArray#"),
+    ('9', 724, InTerms, Just "GHC.Internal.Prim", "sizeofSmallMutableArray#"),
+    ('9', 725, InTerms, Just "GHC.Internal.PrimopWrappers", "sizeofSmallMutableArray#"),
+    ('9', 726, InTerms, Just "GHC.Internal.Prim", "getSizeofSmallMutableArray#"),
+    ('9', 727, InTerms, Just "GHC.Internal.PrimopWrappers", "getSizeofSmallMutableArray#"),
+    ('9', 728, InTerms, Just "GHC.Internal.Prim", "indexSmallArray#"),
+    ('9', 729, InTerms, Just "GHC.Internal.PrimopWrappers", "indexSmallArray#"),
+    ('9', 730, InTerms, Just "GHC.Internal.Prim", "unsafeFreezeSmallArray#"),
+    ('9', 731, InTerms, Just "GHC.Internal.PrimopWrappers", "unsafeFreezeSmallArray#"),
+    ('9', 732, InTerms, Just "GHC.Internal.Prim", "unsafeThawSmallArray#"),
+    ('9', 733, InTerms, Just "GHC.Internal.PrimopWrappers", "unsafeThawSmallArray#"),
+    ('9', 734, InTerms, Just "GHC.Internal.Prim", "copySmallArray#"),
+    ('9', 735, InTerms, Just "GHC.Internal.PrimopWrappers", "copySmallArray#"),
+    ('9', 736, InTerms, Just "GHC.Internal.Prim", "copySmallMutableArray#"),
+    ('9', 737, InTerms, Just "GHC.Internal.PrimopWrappers", "copySmallMutableArray#"),
+    ('9', 738, InTerms, Just "GHC.Internal.Prim", "cloneSmallArray#"),
+    ('9', 739, InTerms, Just "GHC.Internal.PrimopWrappers", "cloneSmallArray#"),
+    ('9', 740, InTerms, Just "GHC.Internal.Prim", "cloneSmallMutableArray#"),
+    ('9', 741, InTerms, Just "GHC.Internal.PrimopWrappers", "cloneSmallMutableArray#"),
+    ('9', 742, InTerms, Just "GHC.Internal.Prim", "freezeSmallArray#"),
+    ('9', 743, InTerms, Just "GHC.Internal.PrimopWrappers", "freezeSmallArray#"),
+    ('9', 744, InTerms, Just "GHC.Internal.Prim", "thawSmallArray#"),
+    ('9', 745, InTerms, Just "GHC.Internal.PrimopWrappers", "thawSmallArray#"),
+    ('9', 746, InTerms, Just "GHC.Internal.Prim", "casSmallArray#"),
+    ('9', 747, InTerms, Just "GHC.Internal.PrimopWrappers", "casSmallArray#"),
+    ('9', 748, InTerms, Just "GHC.Internal.Prim", "newByteArray#"),
+    ('9', 749, InTerms, Just "GHC.Internal.PrimopWrappers", "newByteArray#"),
+    ('9', 750, InTerms, Just "GHC.Internal.Prim", "newPinnedByteArray#"),
+    ('9', 751, InTerms, Just "GHC.Internal.PrimopWrappers", "newPinnedByteArray#"),
+    ('9', 752, InTerms, Just "GHC.Internal.Prim", "newAlignedPinnedByteArray#"),
+    ('9', 753, InTerms, Just "GHC.Internal.PrimopWrappers", "newAlignedPinnedByteArray#"),
+    ('9', 754, InTerms, Just "GHC.Internal.Prim", "isMutableByteArrayPinned#"),
+    ('9', 755, InTerms, Just "GHC.Internal.PrimopWrappers", "isMutableByteArrayPinned#"),
+    ('9', 756, InTerms, Just "GHC.Internal.Prim", "isByteArrayPinned#"),
+    ('9', 757, InTerms, Just "GHC.Internal.PrimopWrappers", "isByteArrayPinned#"),
+    ('9', 758, InTerms, Just "GHC.Internal.Prim", "isByteArrayWeaklyPinned#"),
+    ('9', 759, InTerms, Just "GHC.Internal.PrimopWrappers", "isByteArrayWeaklyPinned#"),
+    ('9', 760, InTerms, Just "GHC.Internal.Prim", "isMutableByteArrayWeaklyPinned#"),
+    ('9', 761, InTerms, Just "GHC.Internal.PrimopWrappers", "isMutableByteArrayWeaklyPinned#"),
+    ('9', 762, InTerms, Just "GHC.Internal.Prim", "byteArrayContents#"),
+    ('9', 763, InTerms, Just "GHC.Internal.PrimopWrappers", "byteArrayContents#"),
+    ('9', 764, InTerms, Just "GHC.Internal.Prim", "mutableByteArrayContents#"),
+    ('9', 765, InTerms, Just "GHC.Internal.PrimopWrappers", "mutableByteArrayContents#"),
+    ('9', 766, InTerms, Just "GHC.Internal.Prim", "shrinkMutableByteArray#"),
+    ('9', 767, InTerms, Just "GHC.Internal.PrimopWrappers", "shrinkMutableByteArray#"),
+    ('9', 768, InTerms, Just "GHC.Internal.Prim", "resizeMutableByteArray#"),
+    ('9', 769, InTerms, Just "GHC.Internal.PrimopWrappers", "resizeMutableByteArray#"),
+    ('9', 770, InTerms, Just "GHC.Internal.Prim", "unsafeFreezeByteArray#"),
+    ('9', 771, InTerms, Just "GHC.Internal.PrimopWrappers", "unsafeFreezeByteArray#"),
+    ('9', 772, InTerms, Just "GHC.Internal.Prim", "unsafeThawByteArray#"),
+    ('9', 773, InTerms, Just "GHC.Internal.PrimopWrappers", "unsafeThawByteArray#"),
+    ('9', 774, InTerms, Just "GHC.Internal.Prim", "sizeofByteArray#"),
+    ('9', 775, InTerms, Just "GHC.Internal.PrimopWrappers", "sizeofByteArray#"),
+    ('9', 776, InTerms, Just "GHC.Internal.Prim", "sizeofMutableByteArray#"),
+    ('9', 777, InTerms, Just "GHC.Internal.PrimopWrappers", "sizeofMutableByteArray#"),
+    ('9', 778, InTerms, Just "GHC.Internal.Prim", "getSizeofMutableByteArray#"),
+    ('9', 779, InTerms, Just "GHC.Internal.PrimopWrappers", "getSizeofMutableByteArray#"),
+    ('9', 780, InTerms, Just "GHC.Internal.Prim", "indexCharArray#"),
+    ('9', 781, InTerms, Just "GHC.Internal.PrimopWrappers", "indexCharArray#"),
+    ('9', 782, InTerms, Just "GHC.Internal.Prim", "indexWideCharArray#"),
+    ('9', 783, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWideCharArray#"),
+    ('9', 784, InTerms, Just "GHC.Internal.Prim", "indexIntArray#"),
+    ('9', 785, InTerms, Just "GHC.Internal.PrimopWrappers", "indexIntArray#"),
+    ('9', 786, InTerms, Just "GHC.Internal.Prim", "indexWordArray#"),
+    ('9', 787, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWordArray#"),
+    ('9', 788, InTerms, Just "GHC.Internal.Prim", "indexAddrArray#"),
+    ('9', 789, InTerms, Just "GHC.Internal.PrimopWrappers", "indexAddrArray#"),
+    ('9', 790, InTerms, Just "GHC.Internal.Prim", "indexFloatArray#"),
+    ('9', 791, InTerms, Just "GHC.Internal.PrimopWrappers", "indexFloatArray#"),
+    ('9', 792, InTerms, Just "GHC.Internal.Prim", "indexDoubleArray#"),
+    ('9', 793, InTerms, Just "GHC.Internal.PrimopWrappers", "indexDoubleArray#"),
+    ('9', 794, InTerms, Just "GHC.Internal.Prim", "indexStablePtrArray#"),
+    ('9', 795, InTerms, Just "GHC.Internal.PrimopWrappers", "indexStablePtrArray#"),
+    ('9', 796, InTerms, Just "GHC.Internal.Prim", "indexInt8Array#"),
+    ('9', 797, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt8Array#"),
+    ('9', 798, InTerms, Just "GHC.Internal.Prim", "indexWord8Array#"),
+    ('9', 799, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8Array#"),
+    ('9', 800, InTerms, Just "GHC.Internal.Prim", "indexInt16Array#"),
+    ('9', 801, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt16Array#"),
+    ('9', 802, InTerms, Just "GHC.Internal.Prim", "indexWord16Array#"),
+    ('9', 803, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord16Array#"),
+    ('9', 804, InTerms, Just "GHC.Internal.Prim", "indexInt32Array#"),
+    ('9', 805, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt32Array#"),
+    ('9', 806, InTerms, Just "GHC.Internal.Prim", "indexWord32Array#"),
+    ('9', 807, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord32Array#"),
+    ('9', 808, InTerms, Just "GHC.Internal.Prim", "indexInt64Array#"),
+    ('9', 809, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt64Array#"),
+    ('9', 810, InTerms, Just "GHC.Internal.Prim", "indexWord64Array#"),
+    ('9', 811, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord64Array#"),
+    ('9', 812, InTerms, Just "GHC.Internal.Prim", "indexWord8ArrayAsChar#"),
+    ('9', 813, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8ArrayAsChar#"),
+    ('9', 814, InTerms, Just "GHC.Internal.Prim", "indexWord8ArrayAsWideChar#"),
+    ('9', 815, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8ArrayAsWideChar#"),
+    ('9', 816, InTerms, Just "GHC.Internal.Prim", "indexWord8ArrayAsInt#"),
+    ('9', 817, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8ArrayAsInt#"),
+    ('9', 818, InTerms, Just "GHC.Internal.Prim", "indexWord8ArrayAsWord#"),
+    ('9', 819, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8ArrayAsWord#"),
+    ('9', 820, InTerms, Just "GHC.Internal.Prim", "indexWord8ArrayAsAddr#"),
+    ('9', 821, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8ArrayAsAddr#"),
+    ('9', 822, InTerms, Just "GHC.Internal.Prim", "indexWord8ArrayAsFloat#"),
+    ('9', 823, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8ArrayAsFloat#"),
+    ('9', 824, InTerms, Just "GHC.Internal.Prim", "indexWord8ArrayAsDouble#"),
+    ('9', 825, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8ArrayAsDouble#"),
+    ('9', 826, InTerms, Just "GHC.Internal.Prim", "indexWord8ArrayAsStablePtr#"),
+    ('9', 827, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8ArrayAsStablePtr#"),
+    ('9', 828, InTerms, Just "GHC.Internal.Prim", "indexWord8ArrayAsInt16#"),
+    ('9', 829, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8ArrayAsInt16#"),
+    ('9', 830, InTerms, Just "GHC.Internal.Prim", "indexWord8ArrayAsWord16#"),
+    ('9', 831, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8ArrayAsWord16#"),
+    ('9', 832, InTerms, Just "GHC.Internal.Prim", "indexWord8ArrayAsInt32#"),
+    ('9', 833, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8ArrayAsInt32#"),
+    ('9', 834, InTerms, Just "GHC.Internal.Prim", "indexWord8ArrayAsWord32#"),
+    ('9', 835, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8ArrayAsWord32#"),
+    ('9', 836, InTerms, Just "GHC.Internal.Prim", "indexWord8ArrayAsInt64#"),
+    ('9', 837, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8ArrayAsInt64#"),
+    ('9', 838, InTerms, Just "GHC.Internal.Prim", "indexWord8ArrayAsWord64#"),
+    ('9', 839, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8ArrayAsWord64#"),
+    ('9', 840, InTerms, Just "GHC.Internal.Prim", "readCharArray#"),
+    ('9', 841, InTerms, Just "GHC.Internal.PrimopWrappers", "readCharArray#"),
+    ('9', 842, InTerms, Just "GHC.Internal.Prim", "readWideCharArray#"),
+    ('9', 843, InTerms, Just "GHC.Internal.PrimopWrappers", "readWideCharArray#"),
+    ('9', 844, InTerms, Just "GHC.Internal.Prim", "readIntArray#"),
+    ('9', 845, InTerms, Just "GHC.Internal.PrimopWrappers", "readIntArray#"),
+    ('9', 846, InTerms, Just "GHC.Internal.Prim", "readWordArray#"),
+    ('9', 847, InTerms, Just "GHC.Internal.PrimopWrappers", "readWordArray#"),
+    ('9', 848, InTerms, Just "GHC.Internal.Prim", "readAddrArray#"),
+    ('9', 849, InTerms, Just "GHC.Internal.PrimopWrappers", "readAddrArray#"),
+    ('9', 850, InTerms, Just "GHC.Internal.Prim", "readFloatArray#"),
+    ('9', 851, InTerms, Just "GHC.Internal.PrimopWrappers", "readFloatArray#"),
+    ('9', 852, InTerms, Just "GHC.Internal.Prim", "readDoubleArray#"),
+    ('9', 853, InTerms, Just "GHC.Internal.PrimopWrappers", "readDoubleArray#"),
+    ('9', 854, InTerms, Just "GHC.Internal.Prim", "readStablePtrArray#"),
+    ('9', 855, InTerms, Just "GHC.Internal.PrimopWrappers", "readStablePtrArray#"),
+    ('9', 856, InTerms, Just "GHC.Internal.Prim", "readInt8Array#"),
+    ('9', 857, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt8Array#"),
+    ('9', 858, InTerms, Just "GHC.Internal.Prim", "readWord8Array#"),
+    ('9', 859, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8Array#"),
+    ('9', 860, InTerms, Just "GHC.Internal.Prim", "readInt16Array#"),
+    ('9', 861, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt16Array#"),
+    ('9', 862, InTerms, Just "GHC.Internal.Prim", "readWord16Array#"),
+    ('9', 863, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord16Array#"),
+    ('9', 864, InTerms, Just "GHC.Internal.Prim", "readInt32Array#"),
+    ('9', 865, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt32Array#"),
+    ('9', 866, InTerms, Just "GHC.Internal.Prim", "readWord32Array#"),
+    ('9', 867, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord32Array#"),
+    ('9', 868, InTerms, Just "GHC.Internal.Prim", "readInt64Array#"),
+    ('9', 869, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt64Array#"),
+    ('9', 870, InTerms, Just "GHC.Internal.Prim", "readWord64Array#"),
+    ('9', 871, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord64Array#"),
+    ('9', 872, InTerms, Just "GHC.Internal.Prim", "readWord8ArrayAsChar#"),
+    ('9', 873, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8ArrayAsChar#"),
+    ('9', 874, InTerms, Just "GHC.Internal.Prim", "readWord8ArrayAsWideChar#"),
+    ('9', 875, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8ArrayAsWideChar#"),
+    ('9', 876, InTerms, Just "GHC.Internal.Prim", "readWord8ArrayAsInt#"),
+    ('9', 877, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8ArrayAsInt#"),
+    ('9', 878, InTerms, Just "GHC.Internal.Prim", "readWord8ArrayAsWord#"),
+    ('9', 879, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8ArrayAsWord#"),
+    ('9', 880, InTerms, Just "GHC.Internal.Prim", "readWord8ArrayAsAddr#"),
+    ('9', 881, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8ArrayAsAddr#"),
+    ('9', 882, InTerms, Just "GHC.Internal.Prim", "readWord8ArrayAsFloat#"),
+    ('9', 883, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8ArrayAsFloat#"),
+    ('9', 884, InTerms, Just "GHC.Internal.Prim", "readWord8ArrayAsDouble#"),
+    ('9', 885, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8ArrayAsDouble#"),
+    ('9', 886, InTerms, Just "GHC.Internal.Prim", "readWord8ArrayAsStablePtr#"),
+    ('9', 887, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8ArrayAsStablePtr#"),
+    ('9', 888, InTerms, Just "GHC.Internal.Prim", "readWord8ArrayAsInt16#"),
+    ('9', 889, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8ArrayAsInt16#"),
+    ('9', 890, InTerms, Just "GHC.Internal.Prim", "readWord8ArrayAsWord16#"),
+    ('9', 891, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8ArrayAsWord16#"),
+    ('9', 892, InTerms, Just "GHC.Internal.Prim", "readWord8ArrayAsInt32#"),
+    ('9', 893, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8ArrayAsInt32#"),
+    ('9', 894, InTerms, Just "GHC.Internal.Prim", "readWord8ArrayAsWord32#"),
+    ('9', 895, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8ArrayAsWord32#"),
+    ('9', 896, InTerms, Just "GHC.Internal.Prim", "readWord8ArrayAsInt64#"),
+    ('9', 897, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8ArrayAsInt64#"),
+    ('9', 898, InTerms, Just "GHC.Internal.Prim", "readWord8ArrayAsWord64#"),
+    ('9', 899, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8ArrayAsWord64#"),
+    ('9', 900, InTerms, Just "GHC.Internal.Prim", "writeCharArray#"),
+    ('9', 901, InTerms, Just "GHC.Internal.PrimopWrappers", "writeCharArray#"),
+    ('9', 902, InTerms, Just "GHC.Internal.Prim", "writeWideCharArray#"),
+    ('9', 903, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWideCharArray#"),
+    ('9', 904, InTerms, Just "GHC.Internal.Prim", "writeIntArray#"),
+    ('9', 905, InTerms, Just "GHC.Internal.PrimopWrappers", "writeIntArray#"),
+    ('9', 906, InTerms, Just "GHC.Internal.Prim", "writeWordArray#"),
+    ('9', 907, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWordArray#"),
+    ('9', 908, InTerms, Just "GHC.Internal.Prim", "writeAddrArray#"),
+    ('9', 909, InTerms, Just "GHC.Internal.PrimopWrappers", "writeAddrArray#"),
+    ('9', 910, InTerms, Just "GHC.Internal.Prim", "writeFloatArray#"),
+    ('9', 911, InTerms, Just "GHC.Internal.PrimopWrappers", "writeFloatArray#"),
+    ('9', 912, InTerms, Just "GHC.Internal.Prim", "writeDoubleArray#"),
+    ('9', 913, InTerms, Just "GHC.Internal.PrimopWrappers", "writeDoubleArray#"),
+    ('9', 914, InTerms, Just "GHC.Internal.Prim", "writeStablePtrArray#"),
+    ('9', 915, InTerms, Just "GHC.Internal.PrimopWrappers", "writeStablePtrArray#"),
+    ('9', 916, InTerms, Just "GHC.Internal.Prim", "writeInt8Array#"),
+    ('9', 917, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt8Array#"),
+    ('9', 918, InTerms, Just "GHC.Internal.Prim", "writeWord8Array#"),
+    ('9', 919, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8Array#"),
+    ('9', 920, InTerms, Just "GHC.Internal.Prim", "writeInt16Array#"),
+    ('9', 921, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt16Array#"),
+    ('9', 922, InTerms, Just "GHC.Internal.Prim", "writeWord16Array#"),
+    ('9', 923, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord16Array#"),
+    ('9', 924, InTerms, Just "GHC.Internal.Prim", "writeInt32Array#"),
+    ('9', 925, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt32Array#"),
+    ('9', 926, InTerms, Just "GHC.Internal.Prim", "writeWord32Array#"),
+    ('9', 927, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord32Array#"),
+    ('9', 928, InTerms, Just "GHC.Internal.Prim", "writeInt64Array#"),
+    ('9', 929, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt64Array#"),
+    ('9', 930, InTerms, Just "GHC.Internal.Prim", "writeWord64Array#"),
+    ('9', 931, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord64Array#"),
+    ('9', 932, InTerms, Just "GHC.Internal.Prim", "writeWord8ArrayAsChar#"),
+    ('9', 933, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8ArrayAsChar#"),
+    ('9', 934, InTerms, Just "GHC.Internal.Prim", "writeWord8ArrayAsWideChar#"),
+    ('9', 935, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8ArrayAsWideChar#"),
+    ('9', 936, InTerms, Just "GHC.Internal.Prim", "writeWord8ArrayAsInt#"),
+    ('9', 937, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8ArrayAsInt#"),
+    ('9', 938, InTerms, Just "GHC.Internal.Prim", "writeWord8ArrayAsWord#"),
+    ('9', 939, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8ArrayAsWord#"),
+    ('9', 940, InTerms, Just "GHC.Internal.Prim", "writeWord8ArrayAsAddr#"),
+    ('9', 941, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8ArrayAsAddr#"),
+    ('9', 942, InTerms, Just "GHC.Internal.Prim", "writeWord8ArrayAsFloat#"),
+    ('9', 943, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8ArrayAsFloat#"),
+    ('9', 944, InTerms, Just "GHC.Internal.Prim", "writeWord8ArrayAsDouble#"),
+    ('9', 945, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8ArrayAsDouble#"),
+    ('9', 946, InTerms, Just "GHC.Internal.Prim", "writeWord8ArrayAsStablePtr#"),
+    ('9', 947, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8ArrayAsStablePtr#"),
+    ('9', 948, InTerms, Just "GHC.Internal.Prim", "writeWord8ArrayAsInt16#"),
+    ('9', 949, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8ArrayAsInt16#"),
+    ('9', 950, InTerms, Just "GHC.Internal.Prim", "writeWord8ArrayAsWord16#"),
+    ('9', 951, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8ArrayAsWord16#"),
+    ('9', 952, InTerms, Just "GHC.Internal.Prim", "writeWord8ArrayAsInt32#"),
+    ('9', 953, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8ArrayAsInt32#"),
+    ('9', 954, InTerms, Just "GHC.Internal.Prim", "writeWord8ArrayAsWord32#"),
+    ('9', 955, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8ArrayAsWord32#"),
+    ('9', 956, InTerms, Just "GHC.Internal.Prim", "writeWord8ArrayAsInt64#"),
+    ('9', 957, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8ArrayAsInt64#"),
+    ('9', 958, InTerms, Just "GHC.Internal.Prim", "writeWord8ArrayAsWord64#"),
+    ('9', 959, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8ArrayAsWord64#"),
+    ('9', 960, InTerms, Just "GHC.Internal.Prim", "compareByteArrays#"),
+    ('9', 961, InTerms, Just "GHC.Internal.PrimopWrappers", "compareByteArrays#"),
+    ('9', 962, InTerms, Just "GHC.Internal.Prim", "copyByteArray#"),
+    ('9', 963, InTerms, Just "GHC.Internal.PrimopWrappers", "copyByteArray#"),
+    ('9', 964, InTerms, Just "GHC.Internal.Prim", "copyMutableByteArray#"),
+    ('9', 965, InTerms, Just "GHC.Internal.PrimopWrappers", "copyMutableByteArray#"),
+    ('9', 966, InTerms, Just "GHC.Internal.Prim", "copyMutableByteArrayNonOverlapping#"),
+    ('9', 967, InTerms, Just "GHC.Internal.PrimopWrappers", "copyMutableByteArrayNonOverlapping#"),
+    ('9', 968, InTerms, Just "GHC.Internal.Prim", "copyByteArrayToAddr#"),
+    ('9', 969, InTerms, Just "GHC.Internal.PrimopWrappers", "copyByteArrayToAddr#"),
+    ('9', 970, InTerms, Just "GHC.Internal.Prim", "copyMutableByteArrayToAddr#"),
+    ('9', 971, InTerms, Just "GHC.Internal.PrimopWrappers", "copyMutableByteArrayToAddr#"),
+    ('9', 972, InTerms, Just "GHC.Internal.Prim", "copyAddrToByteArray#"),
+    ('9', 973, InTerms, Just "GHC.Internal.PrimopWrappers", "copyAddrToByteArray#"),
+    ('9', 974, InTerms, Just "GHC.Internal.Prim", "copyAddrToAddr#"),
+    ('9', 975, InTerms, Just "GHC.Internal.PrimopWrappers", "copyAddrToAddr#"),
+    ('9', 976, InTerms, Just "GHC.Internal.Prim", "copyAddrToAddrNonOverlapping#"),
+    ('9', 977, InTerms, Just "GHC.Internal.PrimopWrappers", "copyAddrToAddrNonOverlapping#"),
+    ('9', 978, InTerms, Just "GHC.Internal.Prim", "setByteArray#"),
+    ('9', 979, InTerms, Just "GHC.Internal.PrimopWrappers", "setByteArray#"),
+    ('9', 980, InTerms, Just "GHC.Internal.Prim", "setAddrRange#"),
+    ('9', 981, InTerms, Just "GHC.Internal.PrimopWrappers", "setAddrRange#"),
+    ('9', 982, InTerms, Just "GHC.Internal.Prim", "atomicReadIntArray#"),
+    ('9', 983, InTerms, Just "GHC.Internal.PrimopWrappers", "atomicReadIntArray#"),
+    ('9', 984, InTerms, Just "GHC.Internal.Prim", "atomicWriteIntArray#"),
+    ('9', 985, InTerms, Just "GHC.Internal.PrimopWrappers", "atomicWriteIntArray#"),
+    ('9', 986, InTerms, Just "GHC.Internal.Prim", "casIntArray#"),
+    ('9', 987, InTerms, Just "GHC.Internal.PrimopWrappers", "casIntArray#"),
+    ('9', 988, InTerms, Just "GHC.Internal.Prim", "casInt8Array#"),
+    ('9', 989, InTerms, Just "GHC.Internal.PrimopWrappers", "casInt8Array#"),
+    ('9', 990, InTerms, Just "GHC.Internal.Prim", "casInt16Array#"),
+    ('9', 991, InTerms, Just "GHC.Internal.PrimopWrappers", "casInt16Array#"),
+    ('9', 992, InTerms, Just "GHC.Internal.Prim", "casInt32Array#"),
+    ('9', 993, InTerms, Just "GHC.Internal.PrimopWrappers", "casInt32Array#"),
+    ('9', 994, InTerms, Just "GHC.Internal.Prim", "casInt64Array#"),
+    ('9', 995, InTerms, Just "GHC.Internal.PrimopWrappers", "casInt64Array#"),
+    ('9', 996, InTerms, Just "GHC.Internal.Prim", "fetchAddIntArray#"),
+    ('9', 997, InTerms, Just "GHC.Internal.PrimopWrappers", "fetchAddIntArray#"),
+    ('9', 998, InTerms, Just "GHC.Internal.Prim", "fetchSubIntArray#"),
+    ('9', 999, InTerms, Just "GHC.Internal.PrimopWrappers", "fetchSubIntArray#"),
+    ('9', 1000, InTerms, Just "GHC.Internal.Prim", "fetchAndIntArray#"),
+    ('9', 1001, InTerms, Just "GHC.Internal.PrimopWrappers", "fetchAndIntArray#"),
+    ('9', 1002, InTerms, Just "GHC.Internal.Prim", "fetchNandIntArray#"),
+    ('9', 1003, InTerms, Just "GHC.Internal.PrimopWrappers", "fetchNandIntArray#"),
+    ('9', 1004, InTerms, Just "GHC.Internal.Prim", "fetchOrIntArray#"),
+    ('9', 1005, InTerms, Just "GHC.Internal.PrimopWrappers", "fetchOrIntArray#"),
+    ('9', 1006, InTerms, Just "GHC.Internal.Prim", "fetchXorIntArray#"),
+    ('9', 1007, InTerms, Just "GHC.Internal.PrimopWrappers", "fetchXorIntArray#"),
+    ('9', 1008, InTerms, Just "GHC.Internal.Prim", "plusAddr#"),
+    ('9', 1009, InTerms, Just "GHC.Internal.PrimopWrappers", "plusAddr#"),
+    ('9', 1010, InTerms, Just "GHC.Internal.Prim", "minusAddr#"),
+    ('9', 1011, InTerms, Just "GHC.Internal.PrimopWrappers", "minusAddr#"),
+    ('9', 1012, InTerms, Just "GHC.Internal.Prim", "remAddr#"),
+    ('9', 1013, InTerms, Just "GHC.Internal.PrimopWrappers", "remAddr#"),
+    ('9', 1014, InTerms, Just "GHC.Internal.Prim", "addr2Int#"),
+    ('9', 1015, InTerms, Just "GHC.Internal.PrimopWrappers", "addr2Int#"),
+    ('9', 1016, InTerms, Just "GHC.Internal.Prim", "int2Addr#"),
+    ('9', 1017, InTerms, Just "GHC.Internal.PrimopWrappers", "int2Addr#"),
+    ('9', 1018, InTerms, Just "GHC.Internal.Prim", "gtAddr#"),
+    ('9', 1019, InTerms, Just "GHC.Internal.PrimopWrappers", "gtAddr#"),
+    ('9', 1020, InTerms, Just "GHC.Internal.Prim", "geAddr#"),
+    ('9', 1021, InTerms, Just "GHC.Internal.PrimopWrappers", "geAddr#"),
+    ('9', 1022, InTerms, Just "GHC.Internal.Prim", "eqAddr#"),
+    ('9', 1023, InTerms, Just "GHC.Internal.PrimopWrappers", "eqAddr#"),
+    ('9', 1024, InTerms, Just "GHC.Internal.Prim", "neAddr#"),
+    ('9', 1025, InTerms, Just "GHC.Internal.PrimopWrappers", "neAddr#"),
+    ('9', 1026, InTerms, Just "GHC.Internal.Prim", "ltAddr#"),
+    ('9', 1027, InTerms, Just "GHC.Internal.PrimopWrappers", "ltAddr#"),
+    ('9', 1028, InTerms, Just "GHC.Internal.Prim", "leAddr#"),
+    ('9', 1029, InTerms, Just "GHC.Internal.PrimopWrappers", "leAddr#"),
+    ('9', 1030, InTerms, Just "GHC.Internal.Prim", "indexCharOffAddr#"),
+    ('9', 1031, InTerms, Just "GHC.Internal.PrimopWrappers", "indexCharOffAddr#"),
+    ('9', 1032, InTerms, Just "GHC.Internal.Prim", "indexWideCharOffAddr#"),
+    ('9', 1033, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWideCharOffAddr#"),
+    ('9', 1034, InTerms, Just "GHC.Internal.Prim", "indexIntOffAddr#"),
+    ('9', 1035, InTerms, Just "GHC.Internal.PrimopWrappers", "indexIntOffAddr#"),
+    ('9', 1036, InTerms, Just "GHC.Internal.Prim", "indexWordOffAddr#"),
+    ('9', 1037, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWordOffAddr#"),
+    ('9', 1038, InTerms, Just "GHC.Internal.Prim", "indexAddrOffAddr#"),
+    ('9', 1039, InTerms, Just "GHC.Internal.PrimopWrappers", "indexAddrOffAddr#"),
+    ('9', 1040, InTerms, Just "GHC.Internal.Prim", "indexFloatOffAddr#"),
+    ('9', 1041, InTerms, Just "GHC.Internal.PrimopWrappers", "indexFloatOffAddr#"),
+    ('9', 1042, InTerms, Just "GHC.Internal.Prim", "indexDoubleOffAddr#"),
+    ('9', 1043, InTerms, Just "GHC.Internal.PrimopWrappers", "indexDoubleOffAddr#"),
+    ('9', 1044, InTerms, Just "GHC.Internal.Prim", "indexStablePtrOffAddr#"),
+    ('9', 1045, InTerms, Just "GHC.Internal.PrimopWrappers", "indexStablePtrOffAddr#"),
+    ('9', 1046, InTerms, Just "GHC.Internal.Prim", "indexInt8OffAddr#"),
+    ('9', 1047, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt8OffAddr#"),
+    ('9', 1048, InTerms, Just "GHC.Internal.Prim", "indexWord8OffAddr#"),
+    ('9', 1049, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8OffAddr#"),
+    ('9', 1050, InTerms, Just "GHC.Internal.Prim", "indexInt16OffAddr#"),
+    ('9', 1051, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt16OffAddr#"),
+    ('9', 1052, InTerms, Just "GHC.Internal.Prim", "indexWord16OffAddr#"),
+    ('9', 1053, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord16OffAddr#"),
+    ('9', 1054, InTerms, Just "GHC.Internal.Prim", "indexInt32OffAddr#"),
+    ('9', 1055, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt32OffAddr#"),
+    ('9', 1056, InTerms, Just "GHC.Internal.Prim", "indexWord32OffAddr#"),
+    ('9', 1057, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord32OffAddr#"),
+    ('9', 1058, InTerms, Just "GHC.Internal.Prim", "indexInt64OffAddr#"),
+    ('9', 1059, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt64OffAddr#"),
+    ('9', 1060, InTerms, Just "GHC.Internal.Prim", "indexWord64OffAddr#"),
+    ('9', 1061, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord64OffAddr#"),
+    ('9', 1062, InTerms, Just "GHC.Internal.Prim", "indexWord8OffAddrAsChar#"),
+    ('9', 1063, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8OffAddrAsChar#"),
+    ('9', 1064, InTerms, Just "GHC.Internal.Prim", "indexWord8OffAddrAsWideChar#"),
+    ('9', 1065, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8OffAddrAsWideChar#"),
+    ('9', 1066, InTerms, Just "GHC.Internal.Prim", "indexWord8OffAddrAsInt#"),
+    ('9', 1067, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8OffAddrAsInt#"),
+    ('9', 1068, InTerms, Just "GHC.Internal.Prim", "indexWord8OffAddrAsWord#"),
+    ('9', 1069, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8OffAddrAsWord#"),
+    ('9', 1070, InTerms, Just "GHC.Internal.Prim", "indexWord8OffAddrAsAddr#"),
+    ('9', 1071, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8OffAddrAsAddr#"),
+    ('9', 1072, InTerms, Just "GHC.Internal.Prim", "indexWord8OffAddrAsFloat#"),
+    ('9', 1073, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8OffAddrAsFloat#"),
+    ('9', 1074, InTerms, Just "GHC.Internal.Prim", "indexWord8OffAddrAsDouble#"),
+    ('9', 1075, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8OffAddrAsDouble#"),
+    ('9', 1076, InTerms, Just "GHC.Internal.Prim", "indexWord8OffAddrAsStablePtr#"),
+    ('9', 1077, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8OffAddrAsStablePtr#"),
+    ('9', 1078, InTerms, Just "GHC.Internal.Prim", "indexWord8OffAddrAsInt16#"),
+    ('9', 1079, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8OffAddrAsInt16#"),
+    ('9', 1080, InTerms, Just "GHC.Internal.Prim", "indexWord8OffAddrAsWord16#"),
+    ('9', 1081, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8OffAddrAsWord16#"),
+    ('9', 1082, InTerms, Just "GHC.Internal.Prim", "indexWord8OffAddrAsInt32#"),
+    ('9', 1083, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8OffAddrAsInt32#"),
+    ('9', 1084, InTerms, Just "GHC.Internal.Prim", "indexWord8OffAddrAsWord32#"),
+    ('9', 1085, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8OffAddrAsWord32#"),
+    ('9', 1086, InTerms, Just "GHC.Internal.Prim", "indexWord8OffAddrAsInt64#"),
+    ('9', 1087, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8OffAddrAsInt64#"),
+    ('9', 1088, InTerms, Just "GHC.Internal.Prim", "indexWord8OffAddrAsWord64#"),
+    ('9', 1089, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8OffAddrAsWord64#"),
+    ('9', 1090, InTerms, Just "GHC.Internal.Prim", "readCharOffAddr#"),
+    ('9', 1091, InTerms, Just "GHC.Internal.PrimopWrappers", "readCharOffAddr#"),
+    ('9', 1092, InTerms, Just "GHC.Internal.Prim", "readWideCharOffAddr#"),
+    ('9', 1093, InTerms, Just "GHC.Internal.PrimopWrappers", "readWideCharOffAddr#"),
+    ('9', 1094, InTerms, Just "GHC.Internal.Prim", "readIntOffAddr#"),
+    ('9', 1095, InTerms, Just "GHC.Internal.PrimopWrappers", "readIntOffAddr#"),
+    ('9', 1096, InTerms, Just "GHC.Internal.Prim", "readWordOffAddr#"),
+    ('9', 1097, InTerms, Just "GHC.Internal.PrimopWrappers", "readWordOffAddr#"),
+    ('9', 1098, InTerms, Just "GHC.Internal.Prim", "readAddrOffAddr#"),
+    ('9', 1099, InTerms, Just "GHC.Internal.PrimopWrappers", "readAddrOffAddr#"),
+    ('9', 1100, InTerms, Just "GHC.Internal.Prim", "readFloatOffAddr#"),
+    ('9', 1101, InTerms, Just "GHC.Internal.PrimopWrappers", "readFloatOffAddr#"),
+    ('9', 1102, InTerms, Just "GHC.Internal.Prim", "readDoubleOffAddr#"),
+    ('9', 1103, InTerms, Just "GHC.Internal.PrimopWrappers", "readDoubleOffAddr#"),
+    ('9', 1104, InTerms, Just "GHC.Internal.Prim", "readStablePtrOffAddr#"),
+    ('9', 1105, InTerms, Just "GHC.Internal.PrimopWrappers", "readStablePtrOffAddr#"),
+    ('9', 1106, InTerms, Just "GHC.Internal.Prim", "readInt8OffAddr#"),
+    ('9', 1107, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt8OffAddr#"),
+    ('9', 1108, InTerms, Just "GHC.Internal.Prim", "readWord8OffAddr#"),
+    ('9', 1109, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8OffAddr#"),
+    ('9', 1110, InTerms, Just "GHC.Internal.Prim", "readInt16OffAddr#"),
+    ('9', 1111, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt16OffAddr#"),
+    ('9', 1112, InTerms, Just "GHC.Internal.Prim", "readWord16OffAddr#"),
+    ('9', 1113, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord16OffAddr#"),
+    ('9', 1114, InTerms, Just "GHC.Internal.Prim", "readInt32OffAddr#"),
+    ('9', 1115, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt32OffAddr#"),
+    ('9', 1116, InTerms, Just "GHC.Internal.Prim", "readWord32OffAddr#"),
+    ('9', 1117, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord32OffAddr#"),
+    ('9', 1118, InTerms, Just "GHC.Internal.Prim", "readInt64OffAddr#"),
+    ('9', 1119, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt64OffAddr#"),
+    ('9', 1120, InTerms, Just "GHC.Internal.Prim", "readWord64OffAddr#"),
+    ('9', 1121, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord64OffAddr#"),
+    ('9', 1122, InTerms, Just "GHC.Internal.Prim", "readWord8OffAddrAsChar#"),
+    ('9', 1123, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8OffAddrAsChar#"),
+    ('9', 1124, InTerms, Just "GHC.Internal.Prim", "readWord8OffAddrAsWideChar#"),
+    ('9', 1125, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8OffAddrAsWideChar#"),
+    ('9', 1126, InTerms, Just "GHC.Internal.Prim", "readWord8OffAddrAsInt#"),
+    ('9', 1127, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8OffAddrAsInt#"),
+    ('9', 1128, InTerms, Just "GHC.Internal.Prim", "readWord8OffAddrAsWord#"),
+    ('9', 1129, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8OffAddrAsWord#"),
+    ('9', 1130, InTerms, Just "GHC.Internal.Prim", "readWord8OffAddrAsAddr#"),
+    ('9', 1131, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8OffAddrAsAddr#"),
+    ('9', 1132, InTerms, Just "GHC.Internal.Prim", "readWord8OffAddrAsFloat#"),
+    ('9', 1133, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8OffAddrAsFloat#"),
+    ('9', 1134, InTerms, Just "GHC.Internal.Prim", "readWord8OffAddrAsDouble#"),
+    ('9', 1135, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8OffAddrAsDouble#"),
+    ('9', 1136, InTerms, Just "GHC.Internal.Prim", "readWord8OffAddrAsStablePtr#"),
+    ('9', 1137, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8OffAddrAsStablePtr#"),
+    ('9', 1138, InTerms, Just "GHC.Internal.Prim", "readWord8OffAddrAsInt16#"),
+    ('9', 1139, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8OffAddrAsInt16#"),
+    ('9', 1140, InTerms, Just "GHC.Internal.Prim", "readWord8OffAddrAsWord16#"),
+    ('9', 1141, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8OffAddrAsWord16#"),
+    ('9', 1142, InTerms, Just "GHC.Internal.Prim", "readWord8OffAddrAsInt32#"),
+    ('9', 1143, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8OffAddrAsInt32#"),
+    ('9', 1144, InTerms, Just "GHC.Internal.Prim", "readWord8OffAddrAsWord32#"),
+    ('9', 1145, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8OffAddrAsWord32#"),
+    ('9', 1146, InTerms, Just "GHC.Internal.Prim", "readWord8OffAddrAsInt64#"),
+    ('9', 1147, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8OffAddrAsInt64#"),
+    ('9', 1148, InTerms, Just "GHC.Internal.Prim", "readWord8OffAddrAsWord64#"),
+    ('9', 1149, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8OffAddrAsWord64#"),
+    ('9', 1150, InTerms, Just "GHC.Internal.Prim", "writeCharOffAddr#"),
+    ('9', 1151, InTerms, Just "GHC.Internal.PrimopWrappers", "writeCharOffAddr#"),
+    ('9', 1152, InTerms, Just "GHC.Internal.Prim", "writeWideCharOffAddr#"),
+    ('9', 1153, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWideCharOffAddr#"),
+    ('9', 1154, InTerms, Just "GHC.Internal.Prim", "writeIntOffAddr#"),
+    ('9', 1155, InTerms, Just "GHC.Internal.PrimopWrappers", "writeIntOffAddr#"),
+    ('9', 1156, InTerms, Just "GHC.Internal.Prim", "writeWordOffAddr#"),
+    ('9', 1157, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWordOffAddr#"),
+    ('9', 1158, InTerms, Just "GHC.Internal.Prim", "writeAddrOffAddr#"),
+    ('9', 1159, InTerms, Just "GHC.Internal.PrimopWrappers", "writeAddrOffAddr#"),
+    ('9', 1160, InTerms, Just "GHC.Internal.Prim", "writeFloatOffAddr#"),
+    ('9', 1161, InTerms, Just "GHC.Internal.PrimopWrappers", "writeFloatOffAddr#"),
+    ('9', 1162, InTerms, Just "GHC.Internal.Prim", "writeDoubleOffAddr#"),
+    ('9', 1163, InTerms, Just "GHC.Internal.PrimopWrappers", "writeDoubleOffAddr#"),
+    ('9', 1164, InTerms, Just "GHC.Internal.Prim", "writeStablePtrOffAddr#"),
+    ('9', 1165, InTerms, Just "GHC.Internal.PrimopWrappers", "writeStablePtrOffAddr#"),
+    ('9', 1166, InTerms, Just "GHC.Internal.Prim", "writeInt8OffAddr#"),
+    ('9', 1167, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt8OffAddr#"),
+    ('9', 1168, InTerms, Just "GHC.Internal.Prim", "writeWord8OffAddr#"),
+    ('9', 1169, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8OffAddr#"),
+    ('9', 1170, InTerms, Just "GHC.Internal.Prim", "writeInt16OffAddr#"),
+    ('9', 1171, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt16OffAddr#"),
+    ('9', 1172, InTerms, Just "GHC.Internal.Prim", "writeWord16OffAddr#"),
+    ('9', 1173, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord16OffAddr#"),
+    ('9', 1174, InTerms, Just "GHC.Internal.Prim", "writeInt32OffAddr#"),
+    ('9', 1175, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt32OffAddr#"),
+    ('9', 1176, InTerms, Just "GHC.Internal.Prim", "writeWord32OffAddr#"),
+    ('9', 1177, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord32OffAddr#"),
+    ('9', 1178, InTerms, Just "GHC.Internal.Prim", "writeInt64OffAddr#"),
+    ('9', 1179, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt64OffAddr#"),
+    ('9', 1180, InTerms, Just "GHC.Internal.Prim", "writeWord64OffAddr#"),
+    ('9', 1181, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord64OffAddr#"),
+    ('9', 1182, InTerms, Just "GHC.Internal.Prim", "writeWord8OffAddrAsChar#"),
+    ('9', 1183, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8OffAddrAsChar#"),
+    ('9', 1184, InTerms, Just "GHC.Internal.Prim", "writeWord8OffAddrAsWideChar#"),
+    ('9', 1185, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8OffAddrAsWideChar#"),
+    ('9', 1186, InTerms, Just "GHC.Internal.Prim", "writeWord8OffAddrAsInt#"),
+    ('9', 1187, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8OffAddrAsInt#"),
+    ('9', 1188, InTerms, Just "GHC.Internal.Prim", "writeWord8OffAddrAsWord#"),
+    ('9', 1189, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8OffAddrAsWord#"),
+    ('9', 1190, InTerms, Just "GHC.Internal.Prim", "writeWord8OffAddrAsAddr#"),
+    ('9', 1191, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8OffAddrAsAddr#"),
+    ('9', 1192, InTerms, Just "GHC.Internal.Prim", "writeWord8OffAddrAsFloat#"),
+    ('9', 1193, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8OffAddrAsFloat#"),
+    ('9', 1194, InTerms, Just "GHC.Internal.Prim", "writeWord8OffAddrAsDouble#"),
+    ('9', 1195, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8OffAddrAsDouble#"),
+    ('9', 1196, InTerms, Just "GHC.Internal.Prim", "writeWord8OffAddrAsStablePtr#"),
+    ('9', 1197, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8OffAddrAsStablePtr#"),
+    ('9', 1198, InTerms, Just "GHC.Internal.Prim", "writeWord8OffAddrAsInt16#"),
+    ('9', 1199, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8OffAddrAsInt16#"),
+    ('9', 1200, InTerms, Just "GHC.Internal.Prim", "writeWord8OffAddrAsWord16#"),
+    ('9', 1201, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8OffAddrAsWord16#"),
+    ('9', 1202, InTerms, Just "GHC.Internal.Prim", "writeWord8OffAddrAsInt32#"),
+    ('9', 1203, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8OffAddrAsInt32#"),
+    ('9', 1204, InTerms, Just "GHC.Internal.Prim", "writeWord8OffAddrAsWord32#"),
+    ('9', 1205, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8OffAddrAsWord32#"),
+    ('9', 1206, InTerms, Just "GHC.Internal.Prim", "writeWord8OffAddrAsInt64#"),
+    ('9', 1207, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8OffAddrAsInt64#"),
+    ('9', 1208, InTerms, Just "GHC.Internal.Prim", "writeWord8OffAddrAsWord64#"),
+    ('9', 1209, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8OffAddrAsWord64#"),
+    ('9', 1210, InTerms, Just "GHC.Internal.Prim", "atomicExchangeAddrAddr#"),
+    ('9', 1211, InTerms, Just "GHC.Internal.PrimopWrappers", "atomicExchangeAddrAddr#"),
+    ('9', 1212, InTerms, Just "GHC.Internal.Prim", "atomicExchangeWordAddr#"),
+    ('9', 1213, InTerms, Just "GHC.Internal.PrimopWrappers", "atomicExchangeWordAddr#"),
+    ('9', 1214, InTerms, Just "GHC.Internal.Prim", "atomicCasAddrAddr#"),
+    ('9', 1215, InTerms, Just "GHC.Internal.PrimopWrappers", "atomicCasAddrAddr#"),
+    ('9', 1216, InTerms, Just "GHC.Internal.Prim", "atomicCasWordAddr#"),
+    ('9', 1217, InTerms, Just "GHC.Internal.PrimopWrappers", "atomicCasWordAddr#"),
+    ('9', 1218, InTerms, Just "GHC.Internal.Prim", "atomicCasWord8Addr#"),
+    ('9', 1219, InTerms, Just "GHC.Internal.PrimopWrappers", "atomicCasWord8Addr#"),
+    ('9', 1220, InTerms, Just "GHC.Internal.Prim", "atomicCasWord16Addr#"),
+    ('9', 1221, InTerms, Just "GHC.Internal.PrimopWrappers", "atomicCasWord16Addr#"),
+    ('9', 1222, InTerms, Just "GHC.Internal.Prim", "atomicCasWord32Addr#"),
+    ('9', 1223, InTerms, Just "GHC.Internal.PrimopWrappers", "atomicCasWord32Addr#"),
+    ('9', 1224, InTerms, Just "GHC.Internal.Prim", "atomicCasWord64Addr#"),
+    ('9', 1225, InTerms, Just "GHC.Internal.PrimopWrappers", "atomicCasWord64Addr#"),
+    ('9', 1226, InTerms, Just "GHC.Internal.Prim", "fetchAddWordAddr#"),
+    ('9', 1227, InTerms, Just "GHC.Internal.PrimopWrappers", "fetchAddWordAddr#"),
+    ('9', 1228, InTerms, Just "GHC.Internal.Prim", "fetchSubWordAddr#"),
+    ('9', 1229, InTerms, Just "GHC.Internal.PrimopWrappers", "fetchSubWordAddr#"),
+    ('9', 1230, InTerms, Just "GHC.Internal.Prim", "fetchAndWordAddr#"),
+    ('9', 1231, InTerms, Just "GHC.Internal.PrimopWrappers", "fetchAndWordAddr#"),
+    ('9', 1232, InTerms, Just "GHC.Internal.Prim", "fetchNandWordAddr#"),
+    ('9', 1233, InTerms, Just "GHC.Internal.PrimopWrappers", "fetchNandWordAddr#"),
+    ('9', 1234, InTerms, Just "GHC.Internal.Prim", "fetchOrWordAddr#"),
+    ('9', 1235, InTerms, Just "GHC.Internal.PrimopWrappers", "fetchOrWordAddr#"),
+    ('9', 1236, InTerms, Just "GHC.Internal.Prim", "fetchXorWordAddr#"),
+    ('9', 1237, InTerms, Just "GHC.Internal.PrimopWrappers", "fetchXorWordAddr#"),
+    ('9', 1238, InTerms, Just "GHC.Internal.Prim", "atomicReadWordAddr#"),
+    ('9', 1239, InTerms, Just "GHC.Internal.PrimopWrappers", "atomicReadWordAddr#"),
+    ('9', 1240, InTerms, Just "GHC.Internal.Prim", "atomicWriteWordAddr#"),
+    ('9', 1241, InTerms, Just "GHC.Internal.PrimopWrappers", "atomicWriteWordAddr#"),
+    ('9', 1242, InTerms, Just "GHC.Internal.Prim", "newMutVar#"),
+    ('9', 1243, InTerms, Just "GHC.Internal.PrimopWrappers", "newMutVar#"),
+    ('9', 1244, InTerms, Just "GHC.Internal.Prim", "readMutVar#"),
+    ('9', 1245, InTerms, Just "GHC.Internal.PrimopWrappers", "readMutVar#"),
+    ('9', 1246, InTerms, Just "GHC.Internal.Prim", "writeMutVar#"),
+    ('9', 1247, InTerms, Just "GHC.Internal.PrimopWrappers", "writeMutVar#"),
+    ('9', 1248, InTerms, Just "GHC.Internal.Prim", "atomicSwapMutVar#"),
+    ('9', 1249, InTerms, Just "GHC.Internal.PrimopWrappers", "atomicSwapMutVar#"),
+    ('9', 1250, InTerms, Just "GHC.Internal.Prim", "atomicModifyMutVar2#"),
+    ('9', 1251, InTerms, Just "GHC.Internal.PrimopWrappers", "atomicModifyMutVar2#"),
+    ('9', 1252, InTerms, Just "GHC.Internal.Prim", "atomicModifyMutVar_#"),
+    ('9', 1253, InTerms, Just "GHC.Internal.PrimopWrappers", "atomicModifyMutVar_#"),
+    ('9', 1254, InTerms, Just "GHC.Internal.Prim", "casMutVar#"),
+    ('9', 1255, InTerms, Just "GHC.Internal.PrimopWrappers", "casMutVar#"),
+    ('9', 1256, InTerms, Just "GHC.Internal.Prim", "catch#"),
+    ('9', 1257, InTerms, Just "GHC.Internal.PrimopWrappers", "catch#"),
+    ('9', 1258, InTerms, Just "GHC.Internal.Prim", "raise#"),
+    ('9', 1259, InTerms, Just "GHC.Internal.PrimopWrappers", "raise#"),
+    ('9', 1260, InTerms, Just "GHC.Internal.Prim", "raiseUnderflow#"),
+    ('9', 1261, InTerms, Just "GHC.Internal.PrimopWrappers", "raiseUnderflow#"),
+    ('9', 1262, InTerms, Just "GHC.Internal.Prim", "raiseOverflow#"),
+    ('9', 1263, InTerms, Just "GHC.Internal.PrimopWrappers", "raiseOverflow#"),
+    ('9', 1264, InTerms, Just "GHC.Internal.Prim", "raiseDivZero#"),
+    ('9', 1265, InTerms, Just "GHC.Internal.PrimopWrappers", "raiseDivZero#"),
+    ('9', 1266, InTerms, Just "GHC.Internal.Prim", "raiseIO#"),
+    ('9', 1267, InTerms, Just "GHC.Internal.PrimopWrappers", "raiseIO#"),
+    ('9', 1268, InTerms, Just "GHC.Internal.Prim", "maskAsyncExceptions#"),
+    ('9', 1269, InTerms, Just "GHC.Internal.PrimopWrappers", "maskAsyncExceptions#"),
+    ('9', 1270, InTerms, Just "GHC.Internal.Prim", "maskUninterruptible#"),
+    ('9', 1271, InTerms, Just "GHC.Internal.PrimopWrappers", "maskUninterruptible#"),
+    ('9', 1272, InTerms, Just "GHC.Internal.Prim", "unmaskAsyncExceptions#"),
+    ('9', 1273, InTerms, Just "GHC.Internal.PrimopWrappers", "unmaskAsyncExceptions#"),
+    ('9', 1274, InTerms, Just "GHC.Internal.Prim", "getMaskingState#"),
+    ('9', 1275, InTerms, Just "GHC.Internal.PrimopWrappers", "getMaskingState#"),
+    ('9', 1276, InTerms, Just "GHC.Internal.Prim", "newPromptTag#"),
+    ('9', 1277, InTerms, Just "GHC.Internal.PrimopWrappers", "newPromptTag#"),
+    ('9', 1278, InTerms, Just "GHC.Internal.Prim", "prompt#"),
+    ('9', 1279, InTerms, Just "GHC.Internal.PrimopWrappers", "prompt#"),
+    ('9', 1280, InTerms, Just "GHC.Internal.Prim", "control0#"),
+    ('9', 1281, InTerms, Just "GHC.Internal.PrimopWrappers", "control0#"),
+    ('9', 1282, InTerms, Just "GHC.Internal.Prim", "atomically#"),
+    ('9', 1283, InTerms, Just "GHC.Internal.PrimopWrappers", "atomically#"),
+    ('9', 1284, InTerms, Just "GHC.Internal.Prim", "retry#"),
+    ('9', 1285, InTerms, Just "GHC.Internal.PrimopWrappers", "retry#"),
+    ('9', 1286, InTerms, Just "GHC.Internal.Prim", "catchRetry#"),
+    ('9', 1287, InTerms, Just "GHC.Internal.PrimopWrappers", "catchRetry#"),
+    ('9', 1288, InTerms, Just "GHC.Internal.Prim", "catchSTM#"),
+    ('9', 1289, InTerms, Just "GHC.Internal.PrimopWrappers", "catchSTM#"),
+    ('9', 1290, InTerms, Just "GHC.Internal.Prim", "newTVar#"),
+    ('9', 1291, InTerms, Just "GHC.Internal.PrimopWrappers", "newTVar#"),
+    ('9', 1292, InTerms, Just "GHC.Internal.Prim", "readTVar#"),
+    ('9', 1293, InTerms, Just "GHC.Internal.PrimopWrappers", "readTVar#"),
+    ('9', 1294, InTerms, Just "GHC.Internal.Prim", "readTVarIO#"),
+    ('9', 1295, InTerms, Just "GHC.Internal.PrimopWrappers", "readTVarIO#"),
+    ('9', 1296, InTerms, Just "GHC.Internal.Prim", "writeTVar#"),
+    ('9', 1297, InTerms, Just "GHC.Internal.PrimopWrappers", "writeTVar#"),
+    ('9', 1298, InTerms, Just "GHC.Internal.Prim", "newMVar#"),
+    ('9', 1299, InTerms, Just "GHC.Internal.PrimopWrappers", "newMVar#"),
+    ('9', 1300, InTerms, Just "GHC.Internal.Prim", "takeMVar#"),
+    ('9', 1301, InTerms, Just "GHC.Internal.PrimopWrappers", "takeMVar#"),
+    ('9', 1302, InTerms, Just "GHC.Internal.Prim", "tryTakeMVar#"),
+    ('9', 1303, InTerms, Just "GHC.Internal.PrimopWrappers", "tryTakeMVar#"),
+    ('9', 1304, InTerms, Just "GHC.Internal.Prim", "putMVar#"),
+    ('9', 1305, InTerms, Just "GHC.Internal.PrimopWrappers", "putMVar#"),
+    ('9', 1306, InTerms, Just "GHC.Internal.Prim", "tryPutMVar#"),
+    ('9', 1307, InTerms, Just "GHC.Internal.PrimopWrappers", "tryPutMVar#"),
+    ('9', 1308, InTerms, Just "GHC.Internal.Prim", "readMVar#"),
+    ('9', 1309, InTerms, Just "GHC.Internal.PrimopWrappers", "readMVar#"),
+    ('9', 1310, InTerms, Just "GHC.Internal.Prim", "tryReadMVar#"),
+    ('9', 1311, InTerms, Just "GHC.Internal.PrimopWrappers", "tryReadMVar#"),
+    ('9', 1312, InTerms, Just "GHC.Internal.Prim", "isEmptyMVar#"),
+    ('9', 1313, InTerms, Just "GHC.Internal.PrimopWrappers", "isEmptyMVar#"),
+    ('9', 1314, InTerms, Just "GHC.Internal.Prim", "delay#"),
+    ('9', 1315, InTerms, Just "GHC.Internal.PrimopWrappers", "delay#"),
+    ('9', 1316, InTerms, Just "GHC.Internal.Prim", "waitRead#"),
+    ('9', 1317, InTerms, Just "GHC.Internal.PrimopWrappers", "waitRead#"),
+    ('9', 1318, InTerms, Just "GHC.Internal.Prim", "waitWrite#"),
+    ('9', 1319, InTerms, Just "GHC.Internal.PrimopWrappers", "waitWrite#"),
+    ('9', 1320, InTerms, Just "GHC.Internal.Prim", "fork#"),
+    ('9', 1321, InTerms, Just "GHC.Internal.PrimopWrappers", "fork#"),
+    ('9', 1322, InTerms, Just "GHC.Internal.Prim", "forkOn#"),
+    ('9', 1323, InTerms, Just "GHC.Internal.PrimopWrappers", "forkOn#"),
+    ('9', 1324, InTerms, Just "GHC.Internal.Prim", "killThread#"),
+    ('9', 1325, InTerms, Just "GHC.Internal.PrimopWrappers", "killThread#"),
+    ('9', 1326, InTerms, Just "GHC.Internal.Prim", "yield#"),
+    ('9', 1327, InTerms, Just "GHC.Internal.PrimopWrappers", "yield#"),
+    ('9', 1328, InTerms, Just "GHC.Internal.Prim", "myThreadId#"),
+    ('9', 1329, InTerms, Just "GHC.Internal.PrimopWrappers", "myThreadId#"),
+    ('9', 1330, InTerms, Just "GHC.Internal.Prim", "labelThread#"),
+    ('9', 1331, InTerms, Just "GHC.Internal.PrimopWrappers", "labelThread#"),
+    ('9', 1332, InTerms, Just "GHC.Internal.Prim", "isCurrentThreadBound#"),
+    ('9', 1333, InTerms, Just "GHC.Internal.PrimopWrappers", "isCurrentThreadBound#"),
+    ('9', 1334, InTerms, Just "GHC.Internal.Prim", "noDuplicate#"),
+    ('9', 1335, InTerms, Just "GHC.Internal.PrimopWrappers", "noDuplicate#"),
+    ('9', 1336, InTerms, Just "GHC.Internal.Prim", "threadLabel#"),
+    ('9', 1337, InTerms, Just "GHC.Internal.PrimopWrappers", "threadLabel#"),
+    ('9', 1338, InTerms, Just "GHC.Internal.Prim", "threadStatus#"),
+    ('9', 1339, InTerms, Just "GHC.Internal.PrimopWrappers", "threadStatus#"),
+    ('9', 1340, InTerms, Just "GHC.Internal.Prim", "listThreads#"),
+    ('9', 1341, InTerms, Just "GHC.Internal.PrimopWrappers", "listThreads#"),
+    ('9', 1342, InTerms, Just "GHC.Internal.Prim", "mkWeak#"),
+    ('9', 1343, InTerms, Just "GHC.Internal.PrimopWrappers", "mkWeak#"),
+    ('9', 1344, InTerms, Just "GHC.Internal.Prim", "mkWeakNoFinalizer#"),
+    ('9', 1345, InTerms, Just "GHC.Internal.PrimopWrappers", "mkWeakNoFinalizer#"),
+    ('9', 1346, InTerms, Just "GHC.Internal.Prim", "addCFinalizerToWeak#"),
+    ('9', 1347, InTerms, Just "GHC.Internal.PrimopWrappers", "addCFinalizerToWeak#"),
+    ('9', 1348, InTerms, Just "GHC.Internal.Prim", "deRefWeak#"),
+    ('9', 1349, InTerms, Just "GHC.Internal.PrimopWrappers", "deRefWeak#"),
+    ('9', 1350, InTerms, Just "GHC.Internal.Prim", "finalizeWeak#"),
+    ('9', 1351, InTerms, Just "GHC.Internal.PrimopWrappers", "finalizeWeak#"),
+    ('9', 1352, InTerms, Just "GHC.Internal.Prim", "touch#"),
+    ('9', 1353, InTerms, Just "GHC.Internal.PrimopWrappers", "touch#"),
+    ('9', 1354, InTerms, Just "GHC.Internal.Prim", "makeStablePtr#"),
+    ('9', 1355, InTerms, Just "GHC.Internal.PrimopWrappers", "makeStablePtr#"),
+    ('9', 1356, InTerms, Just "GHC.Internal.Prim", "deRefStablePtr#"),
+    ('9', 1357, InTerms, Just "GHC.Internal.PrimopWrappers", "deRefStablePtr#"),
+    ('9', 1358, InTerms, Just "GHC.Internal.Prim", "eqStablePtr#"),
+    ('9', 1359, InTerms, Just "GHC.Internal.PrimopWrappers", "eqStablePtr#"),
+    ('9', 1360, InTerms, Just "GHC.Internal.Prim", "makeStableName#"),
+    ('9', 1361, InTerms, Just "GHC.Internal.PrimopWrappers", "makeStableName#"),
+    ('9', 1362, InTerms, Just "GHC.Internal.Prim", "stableNameToInt#"),
+    ('9', 1363, InTerms, Just "GHC.Internal.PrimopWrappers", "stableNameToInt#"),
+    ('9', 1364, InTerms, Just "GHC.Internal.Prim", "compactNew#"),
+    ('9', 1365, InTerms, Just "GHC.Internal.PrimopWrappers", "compactNew#"),
+    ('9', 1366, InTerms, Just "GHC.Internal.Prim", "compactResize#"),
+    ('9', 1367, InTerms, Just "GHC.Internal.PrimopWrappers", "compactResize#"),
+    ('9', 1368, InTerms, Just "GHC.Internal.Prim", "compactContains#"),
+    ('9', 1369, InTerms, Just "GHC.Internal.PrimopWrappers", "compactContains#"),
+    ('9', 1370, InTerms, Just "GHC.Internal.Prim", "compactContainsAny#"),
+    ('9', 1371, InTerms, Just "GHC.Internal.PrimopWrappers", "compactContainsAny#"),
+    ('9', 1372, InTerms, Just "GHC.Internal.Prim", "compactGetFirstBlock#"),
+    ('9', 1373, InTerms, Just "GHC.Internal.PrimopWrappers", "compactGetFirstBlock#"),
+    ('9', 1374, InTerms, Just "GHC.Internal.Prim", "compactGetNextBlock#"),
+    ('9', 1375, InTerms, Just "GHC.Internal.PrimopWrappers", "compactGetNextBlock#"),
+    ('9', 1376, InTerms, Just "GHC.Internal.Prim", "compactAllocateBlock#"),
+    ('9', 1377, InTerms, Just "GHC.Internal.PrimopWrappers", "compactAllocateBlock#"),
+    ('9', 1378, InTerms, Just "GHC.Internal.Prim", "compactFixupPointers#"),
+    ('9', 1379, InTerms, Just "GHC.Internal.PrimopWrappers", "compactFixupPointers#"),
+    ('9', 1380, InTerms, Just "GHC.Internal.Prim", "compactAdd#"),
+    ('9', 1381, InTerms, Just "GHC.Internal.PrimopWrappers", "compactAdd#"),
+    ('9', 1382, InTerms, Just "GHC.Internal.Prim", "compactAddWithSharing#"),
+    ('9', 1383, InTerms, Just "GHC.Internal.PrimopWrappers", "compactAddWithSharing#"),
+    ('9', 1384, InTerms, Just "GHC.Internal.Prim", "compactSize#"),
+    ('9', 1385, InTerms, Just "GHC.Internal.PrimopWrappers", "compactSize#"),
+    ('9', 1386, InTerms, Just "GHC.Internal.Prim", "reallyUnsafePtrEquality#"),
+    ('9', 1387, InTerms, Just "GHC.Internal.PrimopWrappers", "reallyUnsafePtrEquality#"),
+    ('9', 1388, InTerms, Just "GHC.Internal.Prim", "par#"),
+    ('9', 1389, InTerms, Just "GHC.Internal.PrimopWrappers", "par#"),
+    ('9', 1390, InTerms, Just "GHC.Internal.Prim", "spark#"),
+    ('9', 1391, InTerms, Just "GHC.Internal.PrimopWrappers", "spark#"),
+    ('9', 1392, InTerms, Just "GHC.Internal.Prim", "getSpark#"),
+    ('9', 1393, InTerms, Just "GHC.Internal.PrimopWrappers", "getSpark#"),
+    ('9', 1394, InTerms, Just "GHC.Internal.Prim", "numSparks#"),
+    ('9', 1395, InTerms, Just "GHC.Internal.PrimopWrappers", "numSparks#"),
+    ('9', 1396, InTerms, Just "GHC.Internal.Prim", "keepAlive#"),
+    ('9', 1397, InTerms, Just "GHC.Internal.PrimopWrappers", "keepAlive#"),
+    ('9', 1398, InTerms, Just "GHC.Internal.Prim", "dataToTagSmall#"),
+    ('9', 1399, InTerms, Just "GHC.Internal.PrimopWrappers", "dataToTagSmall#"),
+    ('9', 1400, InTerms, Just "GHC.Internal.Prim", "dataToTagLarge#"),
+    ('9', 1401, InTerms, Just "GHC.Internal.PrimopWrappers", "dataToTagLarge#"),
+    ('9', 1402, InTerms, Just "GHC.Internal.Prim", "tagToEnum#"),
+    ('9', 1403, InTerms, Just "GHC.Internal.PrimopWrappers", "tagToEnum#"),
+    ('9', 1404, InTerms, Just "GHC.Internal.Prim", "addrToAny#"),
+    ('9', 1405, InTerms, Just "GHC.Internal.PrimopWrappers", "addrToAny#"),
+    ('9', 1406, InTerms, Just "GHC.Internal.Prim", "anyToAddr#"),
+    ('9', 1407, InTerms, Just "GHC.Internal.PrimopWrappers", "anyToAddr#"),
+    ('9', 1408, InTerms, Just "GHC.Internal.Prim", "mkApUpd0#"),
+    ('9', 1409, InTerms, Just "GHC.Internal.PrimopWrappers", "mkApUpd0#"),
+    ('9', 1410, InTerms, Just "GHC.Internal.Prim", "newBCO#"),
+    ('9', 1411, InTerms, Just "GHC.Internal.PrimopWrappers", "newBCO#"),
+    ('9', 1412, InTerms, Just "GHC.Internal.Prim", "unpackClosure#"),
+    ('9', 1413, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackClosure#"),
+    ('9', 1414, InTerms, Just "GHC.Internal.Prim", "closureSize#"),
+    ('9', 1415, InTerms, Just "GHC.Internal.PrimopWrappers", "closureSize#"),
+    ('9', 1416, InTerms, Just "GHC.Internal.Prim", "getApStackVal#"),
+    ('9', 1417, InTerms, Just "GHC.Internal.PrimopWrappers", "getApStackVal#"),
+    ('9', 1418, InTerms, Just "GHC.Internal.Prim", "getCCSOf#"),
+    ('9', 1419, InTerms, Just "GHC.Internal.PrimopWrappers", "getCCSOf#"),
+    ('9', 1420, InTerms, Just "GHC.Internal.Prim", "getCurrentCCS#"),
+    ('9', 1421, InTerms, Just "GHC.Internal.PrimopWrappers", "getCurrentCCS#"),
+    ('9', 1422, InTerms, Just "GHC.Internal.Prim", "clearCCS#"),
+    ('9', 1423, InTerms, Just "GHC.Internal.PrimopWrappers", "clearCCS#"),
+    ('9', 1424, InTerms, Just "GHC.Internal.Prim", "annotateStack#"),
+    ('9', 1425, InTerms, Just "GHC.Internal.PrimopWrappers", "annotateStack#"),
+    ('9', 1426, InTerms, Just "GHC.Internal.Prim", "whereFrom#"),
+    ('9', 1427, InTerms, Just "GHC.Internal.PrimopWrappers", "whereFrom#"),
+    ('9', 1428, InTerms, Just "GHC.Internal.Prim", "traceEvent#"),
+    ('9', 1429, InTerms, Just "GHC.Internal.PrimopWrappers", "traceEvent#"),
+    ('9', 1430, InTerms, Just "GHC.Internal.Prim", "traceBinaryEvent#"),
+    ('9', 1431, InTerms, Just "GHC.Internal.PrimopWrappers", "traceBinaryEvent#"),
+    ('9', 1432, InTerms, Just "GHC.Internal.Prim", "traceMarker#"),
+    ('9', 1433, InTerms, Just "GHC.Internal.PrimopWrappers", "traceMarker#"),
+    ('9', 1434, InTerms, Just "GHC.Internal.Prim", "setThreadAllocationCounter#"),
+    ('9', 1435, InTerms, Just "GHC.Internal.PrimopWrappers", "setThreadAllocationCounter#"),
+    ('9', 1436, InTerms, Just "GHC.Internal.Prim", "setOtherThreadAllocationCounter#"),
+    ('9', 1437, InTerms, Just "GHC.Internal.PrimopWrappers", "setOtherThreadAllocationCounter#"),
+    ('9', 1438, InTerms, Just "GHC.Internal.Prim", "broadcastInt8X16#"),
+    ('9', 1439, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastInt8X16#"),
+    ('9', 1440, InTerms, Just "GHC.Internal.Prim", "broadcastInt16X8#"),
+    ('9', 1441, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastInt16X8#"),
+    ('9', 1442, InTerms, Just "GHC.Internal.Prim", "broadcastInt32X4#"),
+    ('9', 1443, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastInt32X4#"),
+    ('9', 1444, InTerms, Just "GHC.Internal.Prim", "broadcastInt64X2#"),
+    ('9', 1445, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastInt64X2#"),
+    ('9', 1446, InTerms, Just "GHC.Internal.Prim", "broadcastInt8X32#"),
+    ('9', 1447, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastInt8X32#"),
+    ('9', 1448, InTerms, Just "GHC.Internal.Prim", "broadcastInt16X16#"),
+    ('9', 1449, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastInt16X16#"),
+    ('9', 1450, InTerms, Just "GHC.Internal.Prim", "broadcastInt32X8#"),
+    ('9', 1451, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastInt32X8#"),
+    ('9', 1452, InTerms, Just "GHC.Internal.Prim", "broadcastInt64X4#"),
+    ('9', 1453, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastInt64X4#"),
+    ('9', 1454, InTerms, Just "GHC.Internal.Prim", "broadcastInt8X64#"),
+    ('9', 1455, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastInt8X64#"),
+    ('9', 1456, InTerms, Just "GHC.Internal.Prim", "broadcastInt16X32#"),
+    ('9', 1457, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastInt16X32#"),
+    ('9', 1458, InTerms, Just "GHC.Internal.Prim", "broadcastInt32X16#"),
+    ('9', 1459, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastInt32X16#"),
+    ('9', 1460, InTerms, Just "GHC.Internal.Prim", "broadcastInt64X8#"),
+    ('9', 1461, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastInt64X8#"),
+    ('9', 1462, InTerms, Just "GHC.Internal.Prim", "broadcastWord8X16#"),
+    ('9', 1463, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastWord8X16#"),
+    ('9', 1464, InTerms, Just "GHC.Internal.Prim", "broadcastWord16X8#"),
+    ('9', 1465, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastWord16X8#"),
+    ('9', 1466, InTerms, Just "GHC.Internal.Prim", "broadcastWord32X4#"),
+    ('9', 1467, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastWord32X4#"),
+    ('9', 1468, InTerms, Just "GHC.Internal.Prim", "broadcastWord64X2#"),
+    ('9', 1469, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastWord64X2#"),
+    ('9', 1470, InTerms, Just "GHC.Internal.Prim", "broadcastWord8X32#"),
+    ('9', 1471, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastWord8X32#"),
+    ('9', 1472, InTerms, Just "GHC.Internal.Prim", "broadcastWord16X16#"),
+    ('9', 1473, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastWord16X16#"),
+    ('9', 1474, InTerms, Just "GHC.Internal.Prim", "broadcastWord32X8#"),
+    ('9', 1475, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastWord32X8#"),
+    ('9', 1476, InTerms, Just "GHC.Internal.Prim", "broadcastWord64X4#"),
+    ('9', 1477, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastWord64X4#"),
+    ('9', 1478, InTerms, Just "GHC.Internal.Prim", "broadcastWord8X64#"),
+    ('9', 1479, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastWord8X64#"),
+    ('9', 1480, InTerms, Just "GHC.Internal.Prim", "broadcastWord16X32#"),
+    ('9', 1481, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastWord16X32#"),
+    ('9', 1482, InTerms, Just "GHC.Internal.Prim", "broadcastWord32X16#"),
+    ('9', 1483, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastWord32X16#"),
+    ('9', 1484, InTerms, Just "GHC.Internal.Prim", "broadcastWord64X8#"),
+    ('9', 1485, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastWord64X8#"),
+    ('9', 1486, InTerms, Just "GHC.Internal.Prim", "broadcastFloatX4#"),
+    ('9', 1487, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastFloatX4#"),
+    ('9', 1488, InTerms, Just "GHC.Internal.Prim", "broadcastDoubleX2#"),
+    ('9', 1489, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastDoubleX2#"),
+    ('9', 1490, InTerms, Just "GHC.Internal.Prim", "broadcastFloatX8#"),
+    ('9', 1491, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastFloatX8#"),
+    ('9', 1492, InTerms, Just "GHC.Internal.Prim", "broadcastDoubleX4#"),
+    ('9', 1493, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastDoubleX4#"),
+    ('9', 1494, InTerms, Just "GHC.Internal.Prim", "broadcastFloatX16#"),
+    ('9', 1495, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastFloatX16#"),
+    ('9', 1496, InTerms, Just "GHC.Internal.Prim", "broadcastDoubleX8#"),
+    ('9', 1497, InTerms, Just "GHC.Internal.PrimopWrappers", "broadcastDoubleX8#"),
+    ('9', 1498, InTerms, Just "GHC.Internal.Prim", "packInt8X16#"),
+    ('9', 1499, InTerms, Just "GHC.Internal.PrimopWrappers", "packInt8X16#"),
+    ('9', 1500, InTerms, Just "GHC.Internal.Prim", "packInt16X8#"),
+    ('9', 1501, InTerms, Just "GHC.Internal.PrimopWrappers", "packInt16X8#"),
+    ('9', 1502, InTerms, Just "GHC.Internal.Prim", "packInt32X4#"),
+    ('9', 1503, InTerms, Just "GHC.Internal.PrimopWrappers", "packInt32X4#"),
+    ('9', 1504, InTerms, Just "GHC.Internal.Prim", "packInt64X2#"),
+    ('9', 1505, InTerms, Just "GHC.Internal.PrimopWrappers", "packInt64X2#"),
+    ('9', 1506, InTerms, Just "GHC.Internal.Prim", "packInt8X32#"),
+    ('9', 1507, InTerms, Just "GHC.Internal.PrimopWrappers", "packInt8X32#"),
+    ('9', 1508, InTerms, Just "GHC.Internal.Prim", "packInt16X16#"),
+    ('9', 1509, InTerms, Just "GHC.Internal.PrimopWrappers", "packInt16X16#"),
+    ('9', 1510, InTerms, Just "GHC.Internal.Prim", "packInt32X8#"),
+    ('9', 1511, InTerms, Just "GHC.Internal.PrimopWrappers", "packInt32X8#"),
+    ('9', 1512, InTerms, Just "GHC.Internal.Prim", "packInt64X4#"),
+    ('9', 1513, InTerms, Just "GHC.Internal.PrimopWrappers", "packInt64X4#"),
+    ('9', 1514, InTerms, Just "GHC.Internal.Prim", "packInt8X64#"),
+    ('9', 1515, InTerms, Just "GHC.Internal.PrimopWrappers", "packInt8X64#"),
+    ('9', 1516, InTerms, Just "GHC.Internal.Prim", "packInt16X32#"),
+    ('9', 1517, InTerms, Just "GHC.Internal.PrimopWrappers", "packInt16X32#"),
+    ('9', 1518, InTerms, Just "GHC.Internal.Prim", "packInt32X16#"),
+    ('9', 1519, InTerms, Just "GHC.Internal.PrimopWrappers", "packInt32X16#"),
+    ('9', 1520, InTerms, Just "GHC.Internal.Prim", "packInt64X8#"),
+    ('9', 1521, InTerms, Just "GHC.Internal.PrimopWrappers", "packInt64X8#"),
+    ('9', 1522, InTerms, Just "GHC.Internal.Prim", "packWord8X16#"),
+    ('9', 1523, InTerms, Just "GHC.Internal.PrimopWrappers", "packWord8X16#"),
+    ('9', 1524, InTerms, Just "GHC.Internal.Prim", "packWord16X8#"),
+    ('9', 1525, InTerms, Just "GHC.Internal.PrimopWrappers", "packWord16X8#"),
+    ('9', 1526, InTerms, Just "GHC.Internal.Prim", "packWord32X4#"),
+    ('9', 1527, InTerms, Just "GHC.Internal.PrimopWrappers", "packWord32X4#"),
+    ('9', 1528, InTerms, Just "GHC.Internal.Prim", "packWord64X2#"),
+    ('9', 1529, InTerms, Just "GHC.Internal.PrimopWrappers", "packWord64X2#"),
+    ('9', 1530, InTerms, Just "GHC.Internal.Prim", "packWord8X32#"),
+    ('9', 1531, InTerms, Just "GHC.Internal.PrimopWrappers", "packWord8X32#"),
+    ('9', 1532, InTerms, Just "GHC.Internal.Prim", "packWord16X16#"),
+    ('9', 1533, InTerms, Just "GHC.Internal.PrimopWrappers", "packWord16X16#"),
+    ('9', 1534, InTerms, Just "GHC.Internal.Prim", "packWord32X8#"),
+    ('9', 1535, InTerms, Just "GHC.Internal.PrimopWrappers", "packWord32X8#"),
+    ('9', 1536, InTerms, Just "GHC.Internal.Prim", "packWord64X4#"),
+    ('9', 1537, InTerms, Just "GHC.Internal.PrimopWrappers", "packWord64X4#"),
+    ('9', 1538, InTerms, Just "GHC.Internal.Prim", "packWord8X64#"),
+    ('9', 1539, InTerms, Just "GHC.Internal.PrimopWrappers", "packWord8X64#"),
+    ('9', 1540, InTerms, Just "GHC.Internal.Prim", "packWord16X32#"),
+    ('9', 1541, InTerms, Just "GHC.Internal.PrimopWrappers", "packWord16X32#"),
+    ('9', 1542, InTerms, Just "GHC.Internal.Prim", "packWord32X16#"),
+    ('9', 1543, InTerms, Just "GHC.Internal.PrimopWrappers", "packWord32X16#"),
+    ('9', 1544, InTerms, Just "GHC.Internal.Prim", "packWord64X8#"),
+    ('9', 1545, InTerms, Just "GHC.Internal.PrimopWrappers", "packWord64X8#"),
+    ('9', 1546, InTerms, Just "GHC.Internal.Prim", "packFloatX4#"),
+    ('9', 1547, InTerms, Just "GHC.Internal.PrimopWrappers", "packFloatX4#"),
+    ('9', 1548, InTerms, Just "GHC.Internal.Prim", "packDoubleX2#"),
+    ('9', 1549, InTerms, Just "GHC.Internal.PrimopWrappers", "packDoubleX2#"),
+    ('9', 1550, InTerms, Just "GHC.Internal.Prim", "packFloatX8#"),
+    ('9', 1551, InTerms, Just "GHC.Internal.PrimopWrappers", "packFloatX8#"),
+    ('9', 1552, InTerms, Just "GHC.Internal.Prim", "packDoubleX4#"),
+    ('9', 1553, InTerms, Just "GHC.Internal.PrimopWrappers", "packDoubleX4#"),
+    ('9', 1554, InTerms, Just "GHC.Internal.Prim", "packFloatX16#"),
+    ('9', 1555, InTerms, Just "GHC.Internal.PrimopWrappers", "packFloatX16#"),
+    ('9', 1556, InTerms, Just "GHC.Internal.Prim", "packDoubleX8#"),
+    ('9', 1557, InTerms, Just "GHC.Internal.PrimopWrappers", "packDoubleX8#"),
+    ('9', 1558, InTerms, Just "GHC.Internal.Prim", "unpackInt8X16#"),
+    ('9', 1559, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackInt8X16#"),
+    ('9', 1560, InTerms, Just "GHC.Internal.Prim", "unpackInt16X8#"),
+    ('9', 1561, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackInt16X8#"),
+    ('9', 1562, InTerms, Just "GHC.Internal.Prim", "unpackInt32X4#"),
+    ('9', 1563, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackInt32X4#"),
+    ('9', 1564, InTerms, Just "GHC.Internal.Prim", "unpackInt64X2#"),
+    ('9', 1565, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackInt64X2#"),
+    ('9', 1566, InTerms, Just "GHC.Internal.Prim", "unpackInt8X32#"),
+    ('9', 1567, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackInt8X32#"),
+    ('9', 1568, InTerms, Just "GHC.Internal.Prim", "unpackInt16X16#"),
+    ('9', 1569, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackInt16X16#"),
+    ('9', 1570, InTerms, Just "GHC.Internal.Prim", "unpackInt32X8#"),
+    ('9', 1571, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackInt32X8#"),
+    ('9', 1572, InTerms, Just "GHC.Internal.Prim", "unpackInt64X4#"),
+    ('9', 1573, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackInt64X4#"),
+    ('9', 1574, InTerms, Just "GHC.Internal.Prim", "unpackInt8X64#"),
+    ('9', 1575, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackInt8X64#"),
+    ('9', 1576, InTerms, Just "GHC.Internal.Prim", "unpackInt16X32#"),
+    ('9', 1577, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackInt16X32#"),
+    ('9', 1578, InTerms, Just "GHC.Internal.Prim", "unpackInt32X16#"),
+    ('9', 1579, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackInt32X16#"),
+    ('9', 1580, InTerms, Just "GHC.Internal.Prim", "unpackInt64X8#"),
+    ('9', 1581, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackInt64X8#"),
+    ('9', 1582, InTerms, Just "GHC.Internal.Prim", "unpackWord8X16#"),
+    ('9', 1583, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackWord8X16#"),
+    ('9', 1584, InTerms, Just "GHC.Internal.Prim", "unpackWord16X8#"),
+    ('9', 1585, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackWord16X8#"),
+    ('9', 1586, InTerms, Just "GHC.Internal.Prim", "unpackWord32X4#"),
+    ('9', 1587, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackWord32X4#"),
+    ('9', 1588, InTerms, Just "GHC.Internal.Prim", "unpackWord64X2#"),
+    ('9', 1589, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackWord64X2#"),
+    ('9', 1590, InTerms, Just "GHC.Internal.Prim", "unpackWord8X32#"),
+    ('9', 1591, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackWord8X32#"),
+    ('9', 1592, InTerms, Just "GHC.Internal.Prim", "unpackWord16X16#"),
+    ('9', 1593, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackWord16X16#"),
+    ('9', 1594, InTerms, Just "GHC.Internal.Prim", "unpackWord32X8#"),
+    ('9', 1595, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackWord32X8#"),
+    ('9', 1596, InTerms, Just "GHC.Internal.Prim", "unpackWord64X4#"),
+    ('9', 1597, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackWord64X4#"),
+    ('9', 1598, InTerms, Just "GHC.Internal.Prim", "unpackWord8X64#"),
+    ('9', 1599, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackWord8X64#"),
+    ('9', 1600, InTerms, Just "GHC.Internal.Prim", "unpackWord16X32#"),
+    ('9', 1601, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackWord16X32#"),
+    ('9', 1602, InTerms, Just "GHC.Internal.Prim", "unpackWord32X16#"),
+    ('9', 1603, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackWord32X16#"),
+    ('9', 1604, InTerms, Just "GHC.Internal.Prim", "unpackWord64X8#"),
+    ('9', 1605, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackWord64X8#"),
+    ('9', 1606, InTerms, Just "GHC.Internal.Prim", "unpackFloatX4#"),
+    ('9', 1607, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackFloatX4#"),
+    ('9', 1608, InTerms, Just "GHC.Internal.Prim", "unpackDoubleX2#"),
+    ('9', 1609, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackDoubleX2#"),
+    ('9', 1610, InTerms, Just "GHC.Internal.Prim", "unpackFloatX8#"),
+    ('9', 1611, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackFloatX8#"),
+    ('9', 1612, InTerms, Just "GHC.Internal.Prim", "unpackDoubleX4#"),
+    ('9', 1613, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackDoubleX4#"),
+    ('9', 1614, InTerms, Just "GHC.Internal.Prim", "unpackFloatX16#"),
+    ('9', 1615, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackFloatX16#"),
+    ('9', 1616, InTerms, Just "GHC.Internal.Prim", "unpackDoubleX8#"),
+    ('9', 1617, InTerms, Just "GHC.Internal.PrimopWrappers", "unpackDoubleX8#"),
+    ('9', 1618, InTerms, Just "GHC.Internal.Prim", "insertInt8X16#"),
+    ('9', 1619, InTerms, Just "GHC.Internal.PrimopWrappers", "insertInt8X16#"),
+    ('9', 1620, InTerms, Just "GHC.Internal.Prim", "insertInt16X8#"),
+    ('9', 1621, InTerms, Just "GHC.Internal.PrimopWrappers", "insertInt16X8#"),
+    ('9', 1622, InTerms, Just "GHC.Internal.Prim", "insertInt32X4#"),
+    ('9', 1623, InTerms, Just "GHC.Internal.PrimopWrappers", "insertInt32X4#"),
+    ('9', 1624, InTerms, Just "GHC.Internal.Prim", "insertInt64X2#"),
+    ('9', 1625, InTerms, Just "GHC.Internal.PrimopWrappers", "insertInt64X2#"),
+    ('9', 1626, InTerms, Just "GHC.Internal.Prim", "insertInt8X32#"),
+    ('9', 1627, InTerms, Just "GHC.Internal.PrimopWrappers", "insertInt8X32#"),
+    ('9', 1628, InTerms, Just "GHC.Internal.Prim", "insertInt16X16#"),
+    ('9', 1629, InTerms, Just "GHC.Internal.PrimopWrappers", "insertInt16X16#"),
+    ('9', 1630, InTerms, Just "GHC.Internal.Prim", "insertInt32X8#"),
+    ('9', 1631, InTerms, Just "GHC.Internal.PrimopWrappers", "insertInt32X8#"),
+    ('9', 1632, InTerms, Just "GHC.Internal.Prim", "insertInt64X4#"),
+    ('9', 1633, InTerms, Just "GHC.Internal.PrimopWrappers", "insertInt64X4#"),
+    ('9', 1634, InTerms, Just "GHC.Internal.Prim", "insertInt8X64#"),
+    ('9', 1635, InTerms, Just "GHC.Internal.PrimopWrappers", "insertInt8X64#"),
+    ('9', 1636, InTerms, Just "GHC.Internal.Prim", "insertInt16X32#"),
+    ('9', 1637, InTerms, Just "GHC.Internal.PrimopWrappers", "insertInt16X32#"),
+    ('9', 1638, InTerms, Just "GHC.Internal.Prim", "insertInt32X16#"),
+    ('9', 1639, InTerms, Just "GHC.Internal.PrimopWrappers", "insertInt32X16#"),
+    ('9', 1640, InTerms, Just "GHC.Internal.Prim", "insertInt64X8#"),
+    ('9', 1641, InTerms, Just "GHC.Internal.PrimopWrappers", "insertInt64X8#"),
+    ('9', 1642, InTerms, Just "GHC.Internal.Prim", "insertWord8X16#"),
+    ('9', 1643, InTerms, Just "GHC.Internal.PrimopWrappers", "insertWord8X16#"),
+    ('9', 1644, InTerms, Just "GHC.Internal.Prim", "insertWord16X8#"),
+    ('9', 1645, InTerms, Just "GHC.Internal.PrimopWrappers", "insertWord16X8#"),
+    ('9', 1646, InTerms, Just "GHC.Internal.Prim", "insertWord32X4#"),
+    ('9', 1647, InTerms, Just "GHC.Internal.PrimopWrappers", "insertWord32X4#"),
+    ('9', 1648, InTerms, Just "GHC.Internal.Prim", "insertWord64X2#"),
+    ('9', 1649, InTerms, Just "GHC.Internal.PrimopWrappers", "insertWord64X2#"),
+    ('9', 1650, InTerms, Just "GHC.Internal.Prim", "insertWord8X32#"),
+    ('9', 1651, InTerms, Just "GHC.Internal.PrimopWrappers", "insertWord8X32#"),
+    ('9', 1652, InTerms, Just "GHC.Internal.Prim", "insertWord16X16#"),
+    ('9', 1653, InTerms, Just "GHC.Internal.PrimopWrappers", "insertWord16X16#"),
+    ('9', 1654, InTerms, Just "GHC.Internal.Prim", "insertWord32X8#"),
+    ('9', 1655, InTerms, Just "GHC.Internal.PrimopWrappers", "insertWord32X8#"),
+    ('9', 1656, InTerms, Just "GHC.Internal.Prim", "insertWord64X4#"),
+    ('9', 1657, InTerms, Just "GHC.Internal.PrimopWrappers", "insertWord64X4#"),
+    ('9', 1658, InTerms, Just "GHC.Internal.Prim", "insertWord8X64#"),
+    ('9', 1659, InTerms, Just "GHC.Internal.PrimopWrappers", "insertWord8X64#"),
+    ('9', 1660, InTerms, Just "GHC.Internal.Prim", "insertWord16X32#"),
+    ('9', 1661, InTerms, Just "GHC.Internal.PrimopWrappers", "insertWord16X32#"),
+    ('9', 1662, InTerms, Just "GHC.Internal.Prim", "insertWord32X16#"),
+    ('9', 1663, InTerms, Just "GHC.Internal.PrimopWrappers", "insertWord32X16#"),
+    ('9', 1664, InTerms, Just "GHC.Internal.Prim", "insertWord64X8#"),
+    ('9', 1665, InTerms, Just "GHC.Internal.PrimopWrappers", "insertWord64X8#"),
+    ('9', 1666, InTerms, Just "GHC.Internal.Prim", "insertFloatX4#"),
+    ('9', 1667, InTerms, Just "GHC.Internal.PrimopWrappers", "insertFloatX4#"),
+    ('9', 1668, InTerms, Just "GHC.Internal.Prim", "insertDoubleX2#"),
+    ('9', 1669, InTerms, Just "GHC.Internal.PrimopWrappers", "insertDoubleX2#"),
+    ('9', 1670, InTerms, Just "GHC.Internal.Prim", "insertFloatX8#"),
+    ('9', 1671, InTerms, Just "GHC.Internal.PrimopWrappers", "insertFloatX8#"),
+    ('9', 1672, InTerms, Just "GHC.Internal.Prim", "insertDoubleX4#"),
+    ('9', 1673, InTerms, Just "GHC.Internal.PrimopWrappers", "insertDoubleX4#"),
+    ('9', 1674, InTerms, Just "GHC.Internal.Prim", "insertFloatX16#"),
+    ('9', 1675, InTerms, Just "GHC.Internal.PrimopWrappers", "insertFloatX16#"),
+    ('9', 1676, InTerms, Just "GHC.Internal.Prim", "insertDoubleX8#"),
+    ('9', 1677, InTerms, Just "GHC.Internal.PrimopWrappers", "insertDoubleX8#"),
+    ('9', 1678, InTerms, Just "GHC.Internal.Prim", "plusInt8X16#"),
+    ('9', 1679, InTerms, Just "GHC.Internal.PrimopWrappers", "plusInt8X16#"),
+    ('9', 1680, InTerms, Just "GHC.Internal.Prim", "plusInt16X8#"),
+    ('9', 1681, InTerms, Just "GHC.Internal.PrimopWrappers", "plusInt16X8#"),
+    ('9', 1682, InTerms, Just "GHC.Internal.Prim", "plusInt32X4#"),
+    ('9', 1683, InTerms, Just "GHC.Internal.PrimopWrappers", "plusInt32X4#"),
+    ('9', 1684, InTerms, Just "GHC.Internal.Prim", "plusInt64X2#"),
+    ('9', 1685, InTerms, Just "GHC.Internal.PrimopWrappers", "plusInt64X2#"),
+    ('9', 1686, InTerms, Just "GHC.Internal.Prim", "plusInt8X32#"),
+    ('9', 1687, InTerms, Just "GHC.Internal.PrimopWrappers", "plusInt8X32#"),
+    ('9', 1688, InTerms, Just "GHC.Internal.Prim", "plusInt16X16#"),
+    ('9', 1689, InTerms, Just "GHC.Internal.PrimopWrappers", "plusInt16X16#"),
+    ('9', 1690, InTerms, Just "GHC.Internal.Prim", "plusInt32X8#"),
+    ('9', 1691, InTerms, Just "GHC.Internal.PrimopWrappers", "plusInt32X8#"),
+    ('9', 1692, InTerms, Just "GHC.Internal.Prim", "plusInt64X4#"),
+    ('9', 1693, InTerms, Just "GHC.Internal.PrimopWrappers", "plusInt64X4#"),
+    ('9', 1694, InTerms, Just "GHC.Internal.Prim", "plusInt8X64#"),
+    ('9', 1695, InTerms, Just "GHC.Internal.PrimopWrappers", "plusInt8X64#"),
+    ('9', 1696, InTerms, Just "GHC.Internal.Prim", "plusInt16X32#"),
+    ('9', 1697, InTerms, Just "GHC.Internal.PrimopWrappers", "plusInt16X32#"),
+    ('9', 1698, InTerms, Just "GHC.Internal.Prim", "plusInt32X16#"),
+    ('9', 1699, InTerms, Just "GHC.Internal.PrimopWrappers", "plusInt32X16#"),
+    ('9', 1700, InTerms, Just "GHC.Internal.Prim", "plusInt64X8#"),
+    ('9', 1701, InTerms, Just "GHC.Internal.PrimopWrappers", "plusInt64X8#"),
+    ('9', 1702, InTerms, Just "GHC.Internal.Prim", "plusWord8X16#"),
+    ('9', 1703, InTerms, Just "GHC.Internal.PrimopWrappers", "plusWord8X16#"),
+    ('9', 1704, InTerms, Just "GHC.Internal.Prim", "plusWord16X8#"),
+    ('9', 1705, InTerms, Just "GHC.Internal.PrimopWrappers", "plusWord16X8#"),
+    ('9', 1706, InTerms, Just "GHC.Internal.Prim", "plusWord32X4#"),
+    ('9', 1707, InTerms, Just "GHC.Internal.PrimopWrappers", "plusWord32X4#"),
+    ('9', 1708, InTerms, Just "GHC.Internal.Prim", "plusWord64X2#"),
+    ('9', 1709, InTerms, Just "GHC.Internal.PrimopWrappers", "plusWord64X2#"),
+    ('9', 1710, InTerms, Just "GHC.Internal.Prim", "plusWord8X32#"),
+    ('9', 1711, InTerms, Just "GHC.Internal.PrimopWrappers", "plusWord8X32#"),
+    ('9', 1712, InTerms, Just "GHC.Internal.Prim", "plusWord16X16#"),
+    ('9', 1713, InTerms, Just "GHC.Internal.PrimopWrappers", "plusWord16X16#"),
+    ('9', 1714, InTerms, Just "GHC.Internal.Prim", "plusWord32X8#"),
+    ('9', 1715, InTerms, Just "GHC.Internal.PrimopWrappers", "plusWord32X8#"),
+    ('9', 1716, InTerms, Just "GHC.Internal.Prim", "plusWord64X4#"),
+    ('9', 1717, InTerms, Just "GHC.Internal.PrimopWrappers", "plusWord64X4#"),
+    ('9', 1718, InTerms, Just "GHC.Internal.Prim", "plusWord8X64#"),
+    ('9', 1719, InTerms, Just "GHC.Internal.PrimopWrappers", "plusWord8X64#"),
+    ('9', 1720, InTerms, Just "GHC.Internal.Prim", "plusWord16X32#"),
+    ('9', 1721, InTerms, Just "GHC.Internal.PrimopWrappers", "plusWord16X32#"),
+    ('9', 1722, InTerms, Just "GHC.Internal.Prim", "plusWord32X16#"),
+    ('9', 1723, InTerms, Just "GHC.Internal.PrimopWrappers", "plusWord32X16#"),
+    ('9', 1724, InTerms, Just "GHC.Internal.Prim", "plusWord64X8#"),
+    ('9', 1725, InTerms, Just "GHC.Internal.PrimopWrappers", "plusWord64X8#"),
+    ('9', 1726, InTerms, Just "GHC.Internal.Prim", "plusFloatX4#"),
+    ('9', 1727, InTerms, Just "GHC.Internal.PrimopWrappers", "plusFloatX4#"),
+    ('9', 1728, InTerms, Just "GHC.Internal.Prim", "plusDoubleX2#"),
+    ('9', 1729, InTerms, Just "GHC.Internal.PrimopWrappers", "plusDoubleX2#"),
+    ('9', 1730, InTerms, Just "GHC.Internal.Prim", "plusFloatX8#"),
+    ('9', 1731, InTerms, Just "GHC.Internal.PrimopWrappers", "plusFloatX8#"),
+    ('9', 1732, InTerms, Just "GHC.Internal.Prim", "plusDoubleX4#"),
+    ('9', 1733, InTerms, Just "GHC.Internal.PrimopWrappers", "plusDoubleX4#"),
+    ('9', 1734, InTerms, Just "GHC.Internal.Prim", "plusFloatX16#"),
+    ('9', 1735, InTerms, Just "GHC.Internal.PrimopWrappers", "plusFloatX16#"),
+    ('9', 1736, InTerms, Just "GHC.Internal.Prim", "plusDoubleX8#"),
+    ('9', 1737, InTerms, Just "GHC.Internal.PrimopWrappers", "plusDoubleX8#"),
+    ('9', 1738, InTerms, Just "GHC.Internal.Prim", "minusInt8X16#"),
+    ('9', 1739, InTerms, Just "GHC.Internal.PrimopWrappers", "minusInt8X16#"),
+    ('9', 1740, InTerms, Just "GHC.Internal.Prim", "minusInt16X8#"),
+    ('9', 1741, InTerms, Just "GHC.Internal.PrimopWrappers", "minusInt16X8#"),
+    ('9', 1742, InTerms, Just "GHC.Internal.Prim", "minusInt32X4#"),
+    ('9', 1743, InTerms, Just "GHC.Internal.PrimopWrappers", "minusInt32X4#"),
+    ('9', 1744, InTerms, Just "GHC.Internal.Prim", "minusInt64X2#"),
+    ('9', 1745, InTerms, Just "GHC.Internal.PrimopWrappers", "minusInt64X2#"),
+    ('9', 1746, InTerms, Just "GHC.Internal.Prim", "minusInt8X32#"),
+    ('9', 1747, InTerms, Just "GHC.Internal.PrimopWrappers", "minusInt8X32#"),
+    ('9', 1748, InTerms, Just "GHC.Internal.Prim", "minusInt16X16#"),
+    ('9', 1749, InTerms, Just "GHC.Internal.PrimopWrappers", "minusInt16X16#"),
+    ('9', 1750, InTerms, Just "GHC.Internal.Prim", "minusInt32X8#"),
+    ('9', 1751, InTerms, Just "GHC.Internal.PrimopWrappers", "minusInt32X8#"),
+    ('9', 1752, InTerms, Just "GHC.Internal.Prim", "minusInt64X4#"),
+    ('9', 1753, InTerms, Just "GHC.Internal.PrimopWrappers", "minusInt64X4#"),
+    ('9', 1754, InTerms, Just "GHC.Internal.Prim", "minusInt8X64#"),
+    ('9', 1755, InTerms, Just "GHC.Internal.PrimopWrappers", "minusInt8X64#"),
+    ('9', 1756, InTerms, Just "GHC.Internal.Prim", "minusInt16X32#"),
+    ('9', 1757, InTerms, Just "GHC.Internal.PrimopWrappers", "minusInt16X32#"),
+    ('9', 1758, InTerms, Just "GHC.Internal.Prim", "minusInt32X16#"),
+    ('9', 1759, InTerms, Just "GHC.Internal.PrimopWrappers", "minusInt32X16#"),
+    ('9', 1760, InTerms, Just "GHC.Internal.Prim", "minusInt64X8#"),
+    ('9', 1761, InTerms, Just "GHC.Internal.PrimopWrappers", "minusInt64X8#"),
+    ('9', 1762, InTerms, Just "GHC.Internal.Prim", "minusWord8X16#"),
+    ('9', 1763, InTerms, Just "GHC.Internal.PrimopWrappers", "minusWord8X16#"),
+    ('9', 1764, InTerms, Just "GHC.Internal.Prim", "minusWord16X8#"),
+    ('9', 1765, InTerms, Just "GHC.Internal.PrimopWrappers", "minusWord16X8#"),
+    ('9', 1766, InTerms, Just "GHC.Internal.Prim", "minusWord32X4#"),
+    ('9', 1767, InTerms, Just "GHC.Internal.PrimopWrappers", "minusWord32X4#"),
+    ('9', 1768, InTerms, Just "GHC.Internal.Prim", "minusWord64X2#"),
+    ('9', 1769, InTerms, Just "GHC.Internal.PrimopWrappers", "minusWord64X2#"),
+    ('9', 1770, InTerms, Just "GHC.Internal.Prim", "minusWord8X32#"),
+    ('9', 1771, InTerms, Just "GHC.Internal.PrimopWrappers", "minusWord8X32#"),
+    ('9', 1772, InTerms, Just "GHC.Internal.Prim", "minusWord16X16#"),
+    ('9', 1773, InTerms, Just "GHC.Internal.PrimopWrappers", "minusWord16X16#"),
+    ('9', 1774, InTerms, Just "GHC.Internal.Prim", "minusWord32X8#"),
+    ('9', 1775, InTerms, Just "GHC.Internal.PrimopWrappers", "minusWord32X8#"),
+    ('9', 1776, InTerms, Just "GHC.Internal.Prim", "minusWord64X4#"),
+    ('9', 1777, InTerms, Just "GHC.Internal.PrimopWrappers", "minusWord64X4#"),
+    ('9', 1778, InTerms, Just "GHC.Internal.Prim", "minusWord8X64#"),
+    ('9', 1779, InTerms, Just "GHC.Internal.PrimopWrappers", "minusWord8X64#"),
+    ('9', 1780, InTerms, Just "GHC.Internal.Prim", "minusWord16X32#"),
+    ('9', 1781, InTerms, Just "GHC.Internal.PrimopWrappers", "minusWord16X32#"),
+    ('9', 1782, InTerms, Just "GHC.Internal.Prim", "minusWord32X16#"),
+    ('9', 1783, InTerms, Just "GHC.Internal.PrimopWrappers", "minusWord32X16#"),
+    ('9', 1784, InTerms, Just "GHC.Internal.Prim", "minusWord64X8#"),
+    ('9', 1785, InTerms, Just "GHC.Internal.PrimopWrappers", "minusWord64X8#"),
+    ('9', 1786, InTerms, Just "GHC.Internal.Prim", "minusFloatX4#"),
+    ('9', 1787, InTerms, Just "GHC.Internal.PrimopWrappers", "minusFloatX4#"),
+    ('9', 1788, InTerms, Just "GHC.Internal.Prim", "minusDoubleX2#"),
+    ('9', 1789, InTerms, Just "GHC.Internal.PrimopWrappers", "minusDoubleX2#"),
+    ('9', 1790, InTerms, Just "GHC.Internal.Prim", "minusFloatX8#"),
+    ('9', 1791, InTerms, Just "GHC.Internal.PrimopWrappers", "minusFloatX8#"),
+    ('9', 1792, InTerms, Just "GHC.Internal.Prim", "minusDoubleX4#"),
+    ('9', 1793, InTerms, Just "GHC.Internal.PrimopWrappers", "minusDoubleX4#"),
+    ('9', 1794, InTerms, Just "GHC.Internal.Prim", "minusFloatX16#"),
+    ('9', 1795, InTerms, Just "GHC.Internal.PrimopWrappers", "minusFloatX16#"),
+    ('9', 1796, InTerms, Just "GHC.Internal.Prim", "minusDoubleX8#"),
+    ('9', 1797, InTerms, Just "GHC.Internal.PrimopWrappers", "minusDoubleX8#"),
+    ('9', 1798, InTerms, Just "GHC.Internal.Prim", "timesInt8X16#"),
+    ('9', 1799, InTerms, Just "GHC.Internal.PrimopWrappers", "timesInt8X16#"),
+    ('9', 1800, InTerms, Just "GHC.Internal.Prim", "timesInt16X8#"),
+    ('9', 1801, InTerms, Just "GHC.Internal.PrimopWrappers", "timesInt16X8#"),
+    ('9', 1802, InTerms, Just "GHC.Internal.Prim", "timesInt32X4#"),
+    ('9', 1803, InTerms, Just "GHC.Internal.PrimopWrappers", "timesInt32X4#"),
+    ('9', 1804, InTerms, Just "GHC.Internal.Prim", "timesInt64X2#"),
+    ('9', 1805, InTerms, Just "GHC.Internal.PrimopWrappers", "timesInt64X2#"),
+    ('9', 1806, InTerms, Just "GHC.Internal.Prim", "timesInt8X32#"),
+    ('9', 1807, InTerms, Just "GHC.Internal.PrimopWrappers", "timesInt8X32#"),
+    ('9', 1808, InTerms, Just "GHC.Internal.Prim", "timesInt16X16#"),
+    ('9', 1809, InTerms, Just "GHC.Internal.PrimopWrappers", "timesInt16X16#"),
+    ('9', 1810, InTerms, Just "GHC.Internal.Prim", "timesInt32X8#"),
+    ('9', 1811, InTerms, Just "GHC.Internal.PrimopWrappers", "timesInt32X8#"),
+    ('9', 1812, InTerms, Just "GHC.Internal.Prim", "timesInt64X4#"),
+    ('9', 1813, InTerms, Just "GHC.Internal.PrimopWrappers", "timesInt64X4#"),
+    ('9', 1814, InTerms, Just "GHC.Internal.Prim", "timesInt8X64#"),
+    ('9', 1815, InTerms, Just "GHC.Internal.PrimopWrappers", "timesInt8X64#"),
+    ('9', 1816, InTerms, Just "GHC.Internal.Prim", "timesInt16X32#"),
+    ('9', 1817, InTerms, Just "GHC.Internal.PrimopWrappers", "timesInt16X32#"),
+    ('9', 1818, InTerms, Just "GHC.Internal.Prim", "timesInt32X16#"),
+    ('9', 1819, InTerms, Just "GHC.Internal.PrimopWrappers", "timesInt32X16#"),
+    ('9', 1820, InTerms, Just "GHC.Internal.Prim", "timesInt64X8#"),
+    ('9', 1821, InTerms, Just "GHC.Internal.PrimopWrappers", "timesInt64X8#"),
+    ('9', 1822, InTerms, Just "GHC.Internal.Prim", "timesWord8X16#"),
+    ('9', 1823, InTerms, Just "GHC.Internal.PrimopWrappers", "timesWord8X16#"),
+    ('9', 1824, InTerms, Just "GHC.Internal.Prim", "timesWord16X8#"),
+    ('9', 1825, InTerms, Just "GHC.Internal.PrimopWrappers", "timesWord16X8#"),
+    ('9', 1826, InTerms, Just "GHC.Internal.Prim", "timesWord32X4#"),
+    ('9', 1827, InTerms, Just "GHC.Internal.PrimopWrappers", "timesWord32X4#"),
+    ('9', 1828, InTerms, Just "GHC.Internal.Prim", "timesWord64X2#"),
+    ('9', 1829, InTerms, Just "GHC.Internal.PrimopWrappers", "timesWord64X2#"),
+    ('9', 1830, InTerms, Just "GHC.Internal.Prim", "timesWord8X32#"),
+    ('9', 1831, InTerms, Just "GHC.Internal.PrimopWrappers", "timesWord8X32#"),
+    ('9', 1832, InTerms, Just "GHC.Internal.Prim", "timesWord16X16#"),
+    ('9', 1833, InTerms, Just "GHC.Internal.PrimopWrappers", "timesWord16X16#"),
+    ('9', 1834, InTerms, Just "GHC.Internal.Prim", "timesWord32X8#"),
+    ('9', 1835, InTerms, Just "GHC.Internal.PrimopWrappers", "timesWord32X8#"),
+    ('9', 1836, InTerms, Just "GHC.Internal.Prim", "timesWord64X4#"),
+    ('9', 1837, InTerms, Just "GHC.Internal.PrimopWrappers", "timesWord64X4#"),
+    ('9', 1838, InTerms, Just "GHC.Internal.Prim", "timesWord8X64#"),
+    ('9', 1839, InTerms, Just "GHC.Internal.PrimopWrappers", "timesWord8X64#"),
+    ('9', 1840, InTerms, Just "GHC.Internal.Prim", "timesWord16X32#"),
+    ('9', 1841, InTerms, Just "GHC.Internal.PrimopWrappers", "timesWord16X32#"),
+    ('9', 1842, InTerms, Just "GHC.Internal.Prim", "timesWord32X16#"),
+    ('9', 1843, InTerms, Just "GHC.Internal.PrimopWrappers", "timesWord32X16#"),
+    ('9', 1844, InTerms, Just "GHC.Internal.Prim", "timesWord64X8#"),
+    ('9', 1845, InTerms, Just "GHC.Internal.PrimopWrappers", "timesWord64X8#"),
+    ('9', 1846, InTerms, Just "GHC.Internal.Prim", "timesFloatX4#"),
+    ('9', 1847, InTerms, Just "GHC.Internal.PrimopWrappers", "timesFloatX4#"),
+    ('9', 1848, InTerms, Just "GHC.Internal.Prim", "timesDoubleX2#"),
+    ('9', 1849, InTerms, Just "GHC.Internal.PrimopWrappers", "timesDoubleX2#"),
+    ('9', 1850, InTerms, Just "GHC.Internal.Prim", "timesFloatX8#"),
+    ('9', 1851, InTerms, Just "GHC.Internal.PrimopWrappers", "timesFloatX8#"),
+    ('9', 1852, InTerms, Just "GHC.Internal.Prim", "timesDoubleX4#"),
+    ('9', 1853, InTerms, Just "GHC.Internal.PrimopWrappers", "timesDoubleX4#"),
+    ('9', 1854, InTerms, Just "GHC.Internal.Prim", "timesFloatX16#"),
+    ('9', 1855, InTerms, Just "GHC.Internal.PrimopWrappers", "timesFloatX16#"),
+    ('9', 1856, InTerms, Just "GHC.Internal.Prim", "timesDoubleX8#"),
+    ('9', 1857, InTerms, Just "GHC.Internal.PrimopWrappers", "timesDoubleX8#"),
+    ('9', 1858, InTerms, Just "GHC.Internal.Prim", "divideFloatX4#"),
+    ('9', 1859, InTerms, Just "GHC.Internal.PrimopWrappers", "divideFloatX4#"),
+    ('9', 1860, InTerms, Just "GHC.Internal.Prim", "divideDoubleX2#"),
+    ('9', 1861, InTerms, Just "GHC.Internal.PrimopWrappers", "divideDoubleX2#"),
+    ('9', 1862, InTerms, Just "GHC.Internal.Prim", "divideFloatX8#"),
+    ('9', 1863, InTerms, Just "GHC.Internal.PrimopWrappers", "divideFloatX8#"),
+    ('9', 1864, InTerms, Just "GHC.Internal.Prim", "divideDoubleX4#"),
+    ('9', 1865, InTerms, Just "GHC.Internal.PrimopWrappers", "divideDoubleX4#"),
+    ('9', 1866, InTerms, Just "GHC.Internal.Prim", "divideFloatX16#"),
+    ('9', 1867, InTerms, Just "GHC.Internal.PrimopWrappers", "divideFloatX16#"),
+    ('9', 1868, InTerms, Just "GHC.Internal.Prim", "divideDoubleX8#"),
+    ('9', 1869, InTerms, Just "GHC.Internal.PrimopWrappers", "divideDoubleX8#"),
+    ('9', 1870, InTerms, Just "GHC.Internal.Prim", "quotInt8X16#"),
+    ('9', 1871, InTerms, Just "GHC.Internal.PrimopWrappers", "quotInt8X16#"),
+    ('9', 1872, InTerms, Just "GHC.Internal.Prim", "quotInt16X8#"),
+    ('9', 1873, InTerms, Just "GHC.Internal.PrimopWrappers", "quotInt16X8#"),
+    ('9', 1874, InTerms, Just "GHC.Internal.Prim", "quotInt32X4#"),
+    ('9', 1875, InTerms, Just "GHC.Internal.PrimopWrappers", "quotInt32X4#"),
+    ('9', 1876, InTerms, Just "GHC.Internal.Prim", "quotInt64X2#"),
+    ('9', 1877, InTerms, Just "GHC.Internal.PrimopWrappers", "quotInt64X2#"),
+    ('9', 1878, InTerms, Just "GHC.Internal.Prim", "quotInt8X32#"),
+    ('9', 1879, InTerms, Just "GHC.Internal.PrimopWrappers", "quotInt8X32#"),
+    ('9', 1880, InTerms, Just "GHC.Internal.Prim", "quotInt16X16#"),
+    ('9', 1881, InTerms, Just "GHC.Internal.PrimopWrappers", "quotInt16X16#"),
+    ('9', 1882, InTerms, Just "GHC.Internal.Prim", "quotInt32X8#"),
+    ('9', 1883, InTerms, Just "GHC.Internal.PrimopWrappers", "quotInt32X8#"),
+    ('9', 1884, InTerms, Just "GHC.Internal.Prim", "quotInt64X4#"),
+    ('9', 1885, InTerms, Just "GHC.Internal.PrimopWrappers", "quotInt64X4#"),
+    ('9', 1886, InTerms, Just "GHC.Internal.Prim", "quotInt8X64#"),
+    ('9', 1887, InTerms, Just "GHC.Internal.PrimopWrappers", "quotInt8X64#"),
+    ('9', 1888, InTerms, Just "GHC.Internal.Prim", "quotInt16X32#"),
+    ('9', 1889, InTerms, Just "GHC.Internal.PrimopWrappers", "quotInt16X32#"),
+    ('9', 1890, InTerms, Just "GHC.Internal.Prim", "quotInt32X16#"),
+    ('9', 1891, InTerms, Just "GHC.Internal.PrimopWrappers", "quotInt32X16#"),
+    ('9', 1892, InTerms, Just "GHC.Internal.Prim", "quotInt64X8#"),
+    ('9', 1893, InTerms, Just "GHC.Internal.PrimopWrappers", "quotInt64X8#"),
+    ('9', 1894, InTerms, Just "GHC.Internal.Prim", "quotWord8X16#"),
+    ('9', 1895, InTerms, Just "GHC.Internal.PrimopWrappers", "quotWord8X16#"),
+    ('9', 1896, InTerms, Just "GHC.Internal.Prim", "quotWord16X8#"),
+    ('9', 1897, InTerms, Just "GHC.Internal.PrimopWrappers", "quotWord16X8#"),
+    ('9', 1898, InTerms, Just "GHC.Internal.Prim", "quotWord32X4#"),
+    ('9', 1899, InTerms, Just "GHC.Internal.PrimopWrappers", "quotWord32X4#"),
+    ('9', 1900, InTerms, Just "GHC.Internal.Prim", "quotWord64X2#"),
+    ('9', 1901, InTerms, Just "GHC.Internal.PrimopWrappers", "quotWord64X2#"),
+    ('9', 1902, InTerms, Just "GHC.Internal.Prim", "quotWord8X32#"),
+    ('9', 1903, InTerms, Just "GHC.Internal.PrimopWrappers", "quotWord8X32#"),
+    ('9', 1904, InTerms, Just "GHC.Internal.Prim", "quotWord16X16#"),
+    ('9', 1905, InTerms, Just "GHC.Internal.PrimopWrappers", "quotWord16X16#"),
+    ('9', 1906, InTerms, Just "GHC.Internal.Prim", "quotWord32X8#"),
+    ('9', 1907, InTerms, Just "GHC.Internal.PrimopWrappers", "quotWord32X8#"),
+    ('9', 1908, InTerms, Just "GHC.Internal.Prim", "quotWord64X4#"),
+    ('9', 1909, InTerms, Just "GHC.Internal.PrimopWrappers", "quotWord64X4#"),
+    ('9', 1910, InTerms, Just "GHC.Internal.Prim", "quotWord8X64#"),
+    ('9', 1911, InTerms, Just "GHC.Internal.PrimopWrappers", "quotWord8X64#"),
+    ('9', 1912, InTerms, Just "GHC.Internal.Prim", "quotWord16X32#"),
+    ('9', 1913, InTerms, Just "GHC.Internal.PrimopWrappers", "quotWord16X32#"),
+    ('9', 1914, InTerms, Just "GHC.Internal.Prim", "quotWord32X16#"),
+    ('9', 1915, InTerms, Just "GHC.Internal.PrimopWrappers", "quotWord32X16#"),
+    ('9', 1916, InTerms, Just "GHC.Internal.Prim", "quotWord64X8#"),
+    ('9', 1917, InTerms, Just "GHC.Internal.PrimopWrappers", "quotWord64X8#"),
+    ('9', 1918, InTerms, Just "GHC.Internal.Prim", "remInt8X16#"),
+    ('9', 1919, InTerms, Just "GHC.Internal.PrimopWrappers", "remInt8X16#"),
+    ('9', 1920, InTerms, Just "GHC.Internal.Prim", "remInt16X8#"),
+    ('9', 1921, InTerms, Just "GHC.Internal.PrimopWrappers", "remInt16X8#"),
+    ('9', 1922, InTerms, Just "GHC.Internal.Prim", "remInt32X4#"),
+    ('9', 1923, InTerms, Just "GHC.Internal.PrimopWrappers", "remInt32X4#"),
+    ('9', 1924, InTerms, Just "GHC.Internal.Prim", "remInt64X2#"),
+    ('9', 1925, InTerms, Just "GHC.Internal.PrimopWrappers", "remInt64X2#"),
+    ('9', 1926, InTerms, Just "GHC.Internal.Prim", "remInt8X32#"),
+    ('9', 1927, InTerms, Just "GHC.Internal.PrimopWrappers", "remInt8X32#"),
+    ('9', 1928, InTerms, Just "GHC.Internal.Prim", "remInt16X16#"),
+    ('9', 1929, InTerms, Just "GHC.Internal.PrimopWrappers", "remInt16X16#"),
+    ('9', 1930, InTerms, Just "GHC.Internal.Prim", "remInt32X8#"),
+    ('9', 1931, InTerms, Just "GHC.Internal.PrimopWrappers", "remInt32X8#"),
+    ('9', 1932, InTerms, Just "GHC.Internal.Prim", "remInt64X4#"),
+    ('9', 1933, InTerms, Just "GHC.Internal.PrimopWrappers", "remInt64X4#"),
+    ('9', 1934, InTerms, Just "GHC.Internal.Prim", "remInt8X64#"),
+    ('9', 1935, InTerms, Just "GHC.Internal.PrimopWrappers", "remInt8X64#"),
+    ('9', 1936, InTerms, Just "GHC.Internal.Prim", "remInt16X32#"),
+    ('9', 1937, InTerms, Just "GHC.Internal.PrimopWrappers", "remInt16X32#"),
+    ('9', 1938, InTerms, Just "GHC.Internal.Prim", "remInt32X16#"),
+    ('9', 1939, InTerms, Just "GHC.Internal.PrimopWrappers", "remInt32X16#"),
+    ('9', 1940, InTerms, Just "GHC.Internal.Prim", "remInt64X8#"),
+    ('9', 1941, InTerms, Just "GHC.Internal.PrimopWrappers", "remInt64X8#"),
+    ('9', 1942, InTerms, Just "GHC.Internal.Prim", "remWord8X16#"),
+    ('9', 1943, InTerms, Just "GHC.Internal.PrimopWrappers", "remWord8X16#"),
+    ('9', 1944, InTerms, Just "GHC.Internal.Prim", "remWord16X8#"),
+    ('9', 1945, InTerms, Just "GHC.Internal.PrimopWrappers", "remWord16X8#"),
+    ('9', 1946, InTerms, Just "GHC.Internal.Prim", "remWord32X4#"),
+    ('9', 1947, InTerms, Just "GHC.Internal.PrimopWrappers", "remWord32X4#"),
+    ('9', 1948, InTerms, Just "GHC.Internal.Prim", "remWord64X2#"),
+    ('9', 1949, InTerms, Just "GHC.Internal.PrimopWrappers", "remWord64X2#"),
+    ('9', 1950, InTerms, Just "GHC.Internal.Prim", "remWord8X32#"),
+    ('9', 1951, InTerms, Just "GHC.Internal.PrimopWrappers", "remWord8X32#"),
+    ('9', 1952, InTerms, Just "GHC.Internal.Prim", "remWord16X16#"),
+    ('9', 1953, InTerms, Just "GHC.Internal.PrimopWrappers", "remWord16X16#"),
+    ('9', 1954, InTerms, Just "GHC.Internal.Prim", "remWord32X8#"),
+    ('9', 1955, InTerms, Just "GHC.Internal.PrimopWrappers", "remWord32X8#"),
+    ('9', 1956, InTerms, Just "GHC.Internal.Prim", "remWord64X4#"),
+    ('9', 1957, InTerms, Just "GHC.Internal.PrimopWrappers", "remWord64X4#"),
+    ('9', 1958, InTerms, Just "GHC.Internal.Prim", "remWord8X64#"),
+    ('9', 1959, InTerms, Just "GHC.Internal.PrimopWrappers", "remWord8X64#"),
+    ('9', 1960, InTerms, Just "GHC.Internal.Prim", "remWord16X32#"),
+    ('9', 1961, InTerms, Just "GHC.Internal.PrimopWrappers", "remWord16X32#"),
+    ('9', 1962, InTerms, Just "GHC.Internal.Prim", "remWord32X16#"),
+    ('9', 1963, InTerms, Just "GHC.Internal.PrimopWrappers", "remWord32X16#"),
+    ('9', 1964, InTerms, Just "GHC.Internal.Prim", "remWord64X8#"),
+    ('9', 1965, InTerms, Just "GHC.Internal.PrimopWrappers", "remWord64X8#"),
+    ('9', 1966, InTerms, Just "GHC.Internal.Prim", "negateInt8X16#"),
+    ('9', 1967, InTerms, Just "GHC.Internal.PrimopWrappers", "negateInt8X16#"),
+    ('9', 1968, InTerms, Just "GHC.Internal.Prim", "negateInt16X8#"),
+    ('9', 1969, InTerms, Just "GHC.Internal.PrimopWrappers", "negateInt16X8#"),
+    ('9', 1970, InTerms, Just "GHC.Internal.Prim", "negateInt32X4#"),
+    ('9', 1971, InTerms, Just "GHC.Internal.PrimopWrappers", "negateInt32X4#"),
+    ('9', 1972, InTerms, Just "GHC.Internal.Prim", "negateInt64X2#"),
+    ('9', 1973, InTerms, Just "GHC.Internal.PrimopWrappers", "negateInt64X2#"),
+    ('9', 1974, InTerms, Just "GHC.Internal.Prim", "negateInt8X32#"),
+    ('9', 1975, InTerms, Just "GHC.Internal.PrimopWrappers", "negateInt8X32#"),
+    ('9', 1976, InTerms, Just "GHC.Internal.Prim", "negateInt16X16#"),
+    ('9', 1977, InTerms, Just "GHC.Internal.PrimopWrappers", "negateInt16X16#"),
+    ('9', 1978, InTerms, Just "GHC.Internal.Prim", "negateInt32X8#"),
+    ('9', 1979, InTerms, Just "GHC.Internal.PrimopWrappers", "negateInt32X8#"),
+    ('9', 1980, InTerms, Just "GHC.Internal.Prim", "negateInt64X4#"),
+    ('9', 1981, InTerms, Just "GHC.Internal.PrimopWrappers", "negateInt64X4#"),
+    ('9', 1982, InTerms, Just "GHC.Internal.Prim", "negateInt8X64#"),
+    ('9', 1983, InTerms, Just "GHC.Internal.PrimopWrappers", "negateInt8X64#"),
+    ('9', 1984, InTerms, Just "GHC.Internal.Prim", "negateInt16X32#"),
+    ('9', 1985, InTerms, Just "GHC.Internal.PrimopWrappers", "negateInt16X32#"),
+    ('9', 1986, InTerms, Just "GHC.Internal.Prim", "negateInt32X16#"),
+    ('9', 1987, InTerms, Just "GHC.Internal.PrimopWrappers", "negateInt32X16#"),
+    ('9', 1988, InTerms, Just "GHC.Internal.Prim", "negateInt64X8#"),
+    ('9', 1989, InTerms, Just "GHC.Internal.PrimopWrappers", "negateInt64X8#"),
+    ('9', 1990, InTerms, Just "GHC.Internal.Prim", "negateFloatX4#"),
+    ('9', 1991, InTerms, Just "GHC.Internal.PrimopWrappers", "negateFloatX4#"),
+    ('9', 1992, InTerms, Just "GHC.Internal.Prim", "negateDoubleX2#"),
+    ('9', 1993, InTerms, Just "GHC.Internal.PrimopWrappers", "negateDoubleX2#"),
+    ('9', 1994, InTerms, Just "GHC.Internal.Prim", "negateFloatX8#"),
+    ('9', 1995, InTerms, Just "GHC.Internal.PrimopWrappers", "negateFloatX8#"),
+    ('9', 1996, InTerms, Just "GHC.Internal.Prim", "negateDoubleX4#"),
+    ('9', 1997, InTerms, Just "GHC.Internal.PrimopWrappers", "negateDoubleX4#"),
+    ('9', 1998, InTerms, Just "GHC.Internal.Prim", "negateFloatX16#"),
+    ('9', 1999, InTerms, Just "GHC.Internal.PrimopWrappers", "negateFloatX16#"),
+    ('9', 2000, InTerms, Just "GHC.Internal.Prim", "negateDoubleX8#"),
+    ('9', 2001, InTerms, Just "GHC.Internal.PrimopWrappers", "negateDoubleX8#"),
+    ('9', 2002, InTerms, Just "GHC.Internal.Prim", "indexInt8X16Array#"),
+    ('9', 2003, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt8X16Array#"),
+    ('9', 2004, InTerms, Just "GHC.Internal.Prim", "indexInt16X8Array#"),
+    ('9', 2005, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt16X8Array#"),
+    ('9', 2006, InTerms, Just "GHC.Internal.Prim", "indexInt32X4Array#"),
+    ('9', 2007, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt32X4Array#"),
+    ('9', 2008, InTerms, Just "GHC.Internal.Prim", "indexInt64X2Array#"),
+    ('9', 2009, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt64X2Array#"),
+    ('9', 2010, InTerms, Just "GHC.Internal.Prim", "indexInt8X32Array#"),
+    ('9', 2011, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt8X32Array#"),
+    ('9', 2012, InTerms, Just "GHC.Internal.Prim", "indexInt16X16Array#"),
+    ('9', 2013, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt16X16Array#"),
+    ('9', 2014, InTerms, Just "GHC.Internal.Prim", "indexInt32X8Array#"),
+    ('9', 2015, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt32X8Array#"),
+    ('9', 2016, InTerms, Just "GHC.Internal.Prim", "indexInt64X4Array#"),
+    ('9', 2017, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt64X4Array#"),
+    ('9', 2018, InTerms, Just "GHC.Internal.Prim", "indexInt8X64Array#"),
+    ('9', 2019, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt8X64Array#"),
+    ('9', 2020, InTerms, Just "GHC.Internal.Prim", "indexInt16X32Array#"),
+    ('9', 2021, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt16X32Array#"),
+    ('9', 2022, InTerms, Just "GHC.Internal.Prim", "indexInt32X16Array#"),
+    ('9', 2023, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt32X16Array#"),
+    ('9', 2024, InTerms, Just "GHC.Internal.Prim", "indexInt64X8Array#"),
+    ('9', 2025, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt64X8Array#"),
+    ('9', 2026, InTerms, Just "GHC.Internal.Prim", "indexWord8X16Array#"),
+    ('9', 2027, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8X16Array#"),
+    ('9', 2028, InTerms, Just "GHC.Internal.Prim", "indexWord16X8Array#"),
+    ('9', 2029, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord16X8Array#"),
+    ('9', 2030, InTerms, Just "GHC.Internal.Prim", "indexWord32X4Array#"),
+    ('9', 2031, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord32X4Array#"),
+    ('9', 2032, InTerms, Just "GHC.Internal.Prim", "indexWord64X2Array#"),
+    ('9', 2033, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord64X2Array#"),
+    ('9', 2034, InTerms, Just "GHC.Internal.Prim", "indexWord8X32Array#"),
+    ('9', 2035, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8X32Array#"),
+    ('9', 2036, InTerms, Just "GHC.Internal.Prim", "indexWord16X16Array#"),
+    ('9', 2037, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord16X16Array#"),
+    ('9', 2038, InTerms, Just "GHC.Internal.Prim", "indexWord32X8Array#"),
+    ('9', 2039, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord32X8Array#"),
+    ('9', 2040, InTerms, Just "GHC.Internal.Prim", "indexWord64X4Array#"),
+    ('9', 2041, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord64X4Array#"),
+    ('9', 2042, InTerms, Just "GHC.Internal.Prim", "indexWord8X64Array#"),
+    ('9', 2043, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8X64Array#"),
+    ('9', 2044, InTerms, Just "GHC.Internal.Prim", "indexWord16X32Array#"),
+    ('9', 2045, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord16X32Array#"),
+    ('9', 2046, InTerms, Just "GHC.Internal.Prim", "indexWord32X16Array#"),
+    ('9', 2047, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord32X16Array#"),
+    ('9', 2048, InTerms, Just "GHC.Internal.Prim", "indexWord64X8Array#"),
+    ('9', 2049, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord64X8Array#"),
+    ('9', 2050, InTerms, Just "GHC.Internal.Prim", "indexFloatX4Array#"),
+    ('9', 2051, InTerms, Just "GHC.Internal.PrimopWrappers", "indexFloatX4Array#"),
+    ('9', 2052, InTerms, Just "GHC.Internal.Prim", "indexDoubleX2Array#"),
+    ('9', 2053, InTerms, Just "GHC.Internal.PrimopWrappers", "indexDoubleX2Array#"),
+    ('9', 2054, InTerms, Just "GHC.Internal.Prim", "indexFloatX8Array#"),
+    ('9', 2055, InTerms, Just "GHC.Internal.PrimopWrappers", "indexFloatX8Array#"),
+    ('9', 2056, InTerms, Just "GHC.Internal.Prim", "indexDoubleX4Array#"),
+    ('9', 2057, InTerms, Just "GHC.Internal.PrimopWrappers", "indexDoubleX4Array#"),
+    ('9', 2058, InTerms, Just "GHC.Internal.Prim", "indexFloatX16Array#"),
+    ('9', 2059, InTerms, Just "GHC.Internal.PrimopWrappers", "indexFloatX16Array#"),
+    ('9', 2060, InTerms, Just "GHC.Internal.Prim", "indexDoubleX8Array#"),
+    ('9', 2061, InTerms, Just "GHC.Internal.PrimopWrappers", "indexDoubleX8Array#"),
+    ('9', 2062, InTerms, Just "GHC.Internal.Prim", "readInt8X16Array#"),
+    ('9', 2063, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt8X16Array#"),
+    ('9', 2064, InTerms, Just "GHC.Internal.Prim", "readInt16X8Array#"),
+    ('9', 2065, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt16X8Array#"),
+    ('9', 2066, InTerms, Just "GHC.Internal.Prim", "readInt32X4Array#"),
+    ('9', 2067, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt32X4Array#"),
+    ('9', 2068, InTerms, Just "GHC.Internal.Prim", "readInt64X2Array#"),
+    ('9', 2069, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt64X2Array#"),
+    ('9', 2070, InTerms, Just "GHC.Internal.Prim", "readInt8X32Array#"),
+    ('9', 2071, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt8X32Array#"),
+    ('9', 2072, InTerms, Just "GHC.Internal.Prim", "readInt16X16Array#"),
+    ('9', 2073, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt16X16Array#"),
+    ('9', 2074, InTerms, Just "GHC.Internal.Prim", "readInt32X8Array#"),
+    ('9', 2075, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt32X8Array#"),
+    ('9', 2076, InTerms, Just "GHC.Internal.Prim", "readInt64X4Array#"),
+    ('9', 2077, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt64X4Array#"),
+    ('9', 2078, InTerms, Just "GHC.Internal.Prim", "readInt8X64Array#"),
+    ('9', 2079, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt8X64Array#"),
+    ('9', 2080, InTerms, Just "GHC.Internal.Prim", "readInt16X32Array#"),
+    ('9', 2081, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt16X32Array#"),
+    ('9', 2082, InTerms, Just "GHC.Internal.Prim", "readInt32X16Array#"),
+    ('9', 2083, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt32X16Array#"),
+    ('9', 2084, InTerms, Just "GHC.Internal.Prim", "readInt64X8Array#"),
+    ('9', 2085, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt64X8Array#"),
+    ('9', 2086, InTerms, Just "GHC.Internal.Prim", "readWord8X16Array#"),
+    ('9', 2087, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8X16Array#"),
+    ('9', 2088, InTerms, Just "GHC.Internal.Prim", "readWord16X8Array#"),
+    ('9', 2089, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord16X8Array#"),
+    ('9', 2090, InTerms, Just "GHC.Internal.Prim", "readWord32X4Array#"),
+    ('9', 2091, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord32X4Array#"),
+    ('9', 2092, InTerms, Just "GHC.Internal.Prim", "readWord64X2Array#"),
+    ('9', 2093, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord64X2Array#"),
+    ('9', 2094, InTerms, Just "GHC.Internal.Prim", "readWord8X32Array#"),
+    ('9', 2095, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8X32Array#"),
+    ('9', 2096, InTerms, Just "GHC.Internal.Prim", "readWord16X16Array#"),
+    ('9', 2097, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord16X16Array#"),
+    ('9', 2098, InTerms, Just "GHC.Internal.Prim", "readWord32X8Array#"),
+    ('9', 2099, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord32X8Array#"),
+    ('9', 2100, InTerms, Just "GHC.Internal.Prim", "readWord64X4Array#"),
+    ('9', 2101, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord64X4Array#"),
+    ('9', 2102, InTerms, Just "GHC.Internal.Prim", "readWord8X64Array#"),
+    ('9', 2103, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8X64Array#"),
+    ('9', 2104, InTerms, Just "GHC.Internal.Prim", "readWord16X32Array#"),
+    ('9', 2105, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord16X32Array#"),
+    ('9', 2106, InTerms, Just "GHC.Internal.Prim", "readWord32X16Array#"),
+    ('9', 2107, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord32X16Array#"),
+    ('9', 2108, InTerms, Just "GHC.Internal.Prim", "readWord64X8Array#"),
+    ('9', 2109, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord64X8Array#"),
+    ('9', 2110, InTerms, Just "GHC.Internal.Prim", "readFloatX4Array#"),
+    ('9', 2111, InTerms, Just "GHC.Internal.PrimopWrappers", "readFloatX4Array#"),
+    ('9', 2112, InTerms, Just "GHC.Internal.Prim", "readDoubleX2Array#"),
+    ('9', 2113, InTerms, Just "GHC.Internal.PrimopWrappers", "readDoubleX2Array#"),
+    ('9', 2114, InTerms, Just "GHC.Internal.Prim", "readFloatX8Array#"),
+    ('9', 2115, InTerms, Just "GHC.Internal.PrimopWrappers", "readFloatX8Array#"),
+    ('9', 2116, InTerms, Just "GHC.Internal.Prim", "readDoubleX4Array#"),
+    ('9', 2117, InTerms, Just "GHC.Internal.PrimopWrappers", "readDoubleX4Array#"),
+    ('9', 2118, InTerms, Just "GHC.Internal.Prim", "readFloatX16Array#"),
+    ('9', 2119, InTerms, Just "GHC.Internal.PrimopWrappers", "readFloatX16Array#"),
+    ('9', 2120, InTerms, Just "GHC.Internal.Prim", "readDoubleX8Array#"),
+    ('9', 2121, InTerms, Just "GHC.Internal.PrimopWrappers", "readDoubleX8Array#"),
+    ('9', 2122, InTerms, Just "GHC.Internal.Prim", "writeInt8X16Array#"),
+    ('9', 2123, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt8X16Array#"),
+    ('9', 2124, InTerms, Just "GHC.Internal.Prim", "writeInt16X8Array#"),
+    ('9', 2125, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt16X8Array#"),
+    ('9', 2126, InTerms, Just "GHC.Internal.Prim", "writeInt32X4Array#"),
+    ('9', 2127, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt32X4Array#"),
+    ('9', 2128, InTerms, Just "GHC.Internal.Prim", "writeInt64X2Array#"),
+    ('9', 2129, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt64X2Array#"),
+    ('9', 2130, InTerms, Just "GHC.Internal.Prim", "writeInt8X32Array#"),
+    ('9', 2131, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt8X32Array#"),
+    ('9', 2132, InTerms, Just "GHC.Internal.Prim", "writeInt16X16Array#"),
+    ('9', 2133, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt16X16Array#"),
+    ('9', 2134, InTerms, Just "GHC.Internal.Prim", "writeInt32X8Array#"),
+    ('9', 2135, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt32X8Array#"),
+    ('9', 2136, InTerms, Just "GHC.Internal.Prim", "writeInt64X4Array#"),
+    ('9', 2137, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt64X4Array#"),
+    ('9', 2138, InTerms, Just "GHC.Internal.Prim", "writeInt8X64Array#"),
+    ('9', 2139, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt8X64Array#"),
+    ('9', 2140, InTerms, Just "GHC.Internal.Prim", "writeInt16X32Array#"),
+    ('9', 2141, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt16X32Array#"),
+    ('9', 2142, InTerms, Just "GHC.Internal.Prim", "writeInt32X16Array#"),
+    ('9', 2143, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt32X16Array#"),
+    ('9', 2144, InTerms, Just "GHC.Internal.Prim", "writeInt64X8Array#"),
+    ('9', 2145, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt64X8Array#"),
+    ('9', 2146, InTerms, Just "GHC.Internal.Prim", "writeWord8X16Array#"),
+    ('9', 2147, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8X16Array#"),
+    ('9', 2148, InTerms, Just "GHC.Internal.Prim", "writeWord16X8Array#"),
+    ('9', 2149, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord16X8Array#"),
+    ('9', 2150, InTerms, Just "GHC.Internal.Prim", "writeWord32X4Array#"),
+    ('9', 2151, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord32X4Array#"),
+    ('9', 2152, InTerms, Just "GHC.Internal.Prim", "writeWord64X2Array#"),
+    ('9', 2153, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord64X2Array#"),
+    ('9', 2154, InTerms, Just "GHC.Internal.Prim", "writeWord8X32Array#"),
+    ('9', 2155, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8X32Array#"),
+    ('9', 2156, InTerms, Just "GHC.Internal.Prim", "writeWord16X16Array#"),
+    ('9', 2157, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord16X16Array#"),
+    ('9', 2158, InTerms, Just "GHC.Internal.Prim", "writeWord32X8Array#"),
+    ('9', 2159, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord32X8Array#"),
+    ('9', 2160, InTerms, Just "GHC.Internal.Prim", "writeWord64X4Array#"),
+    ('9', 2161, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord64X4Array#"),
+    ('9', 2162, InTerms, Just "GHC.Internal.Prim", "writeWord8X64Array#"),
+    ('9', 2163, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8X64Array#"),
+    ('9', 2164, InTerms, Just "GHC.Internal.Prim", "writeWord16X32Array#"),
+    ('9', 2165, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord16X32Array#"),
+    ('9', 2166, InTerms, Just "GHC.Internal.Prim", "writeWord32X16Array#"),
+    ('9', 2167, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord32X16Array#"),
+    ('9', 2168, InTerms, Just "GHC.Internal.Prim", "writeWord64X8Array#"),
+    ('9', 2169, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord64X8Array#"),
+    ('9', 2170, InTerms, Just "GHC.Internal.Prim", "writeFloatX4Array#"),
+    ('9', 2171, InTerms, Just "GHC.Internal.PrimopWrappers", "writeFloatX4Array#"),
+    ('9', 2172, InTerms, Just "GHC.Internal.Prim", "writeDoubleX2Array#"),
+    ('9', 2173, InTerms, Just "GHC.Internal.PrimopWrappers", "writeDoubleX2Array#"),
+    ('9', 2174, InTerms, Just "GHC.Internal.Prim", "writeFloatX8Array#"),
+    ('9', 2175, InTerms, Just "GHC.Internal.PrimopWrappers", "writeFloatX8Array#"),
+    ('9', 2176, InTerms, Just "GHC.Internal.Prim", "writeDoubleX4Array#"),
+    ('9', 2177, InTerms, Just "GHC.Internal.PrimopWrappers", "writeDoubleX4Array#"),
+    ('9', 2178, InTerms, Just "GHC.Internal.Prim", "writeFloatX16Array#"),
+    ('9', 2179, InTerms, Just "GHC.Internal.PrimopWrappers", "writeFloatX16Array#"),
+    ('9', 2180, InTerms, Just "GHC.Internal.Prim", "writeDoubleX8Array#"),
+    ('9', 2181, InTerms, Just "GHC.Internal.PrimopWrappers", "writeDoubleX8Array#"),
+    ('9', 2182, InTerms, Just "GHC.Internal.Prim", "indexInt8X16OffAddr#"),
+    ('9', 2183, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt8X16OffAddr#"),
+    ('9', 2184, InTerms, Just "GHC.Internal.Prim", "indexInt16X8OffAddr#"),
+    ('9', 2185, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt16X8OffAddr#"),
+    ('9', 2186, InTerms, Just "GHC.Internal.Prim", "indexInt32X4OffAddr#"),
+    ('9', 2187, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt32X4OffAddr#"),
+    ('9', 2188, InTerms, Just "GHC.Internal.Prim", "indexInt64X2OffAddr#"),
+    ('9', 2189, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt64X2OffAddr#"),
+    ('9', 2190, InTerms, Just "GHC.Internal.Prim", "indexInt8X32OffAddr#"),
+    ('9', 2191, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt8X32OffAddr#"),
+    ('9', 2192, InTerms, Just "GHC.Internal.Prim", "indexInt16X16OffAddr#"),
+    ('9', 2193, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt16X16OffAddr#"),
+    ('9', 2194, InTerms, Just "GHC.Internal.Prim", "indexInt32X8OffAddr#"),
+    ('9', 2195, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt32X8OffAddr#"),
+    ('9', 2196, InTerms, Just "GHC.Internal.Prim", "indexInt64X4OffAddr#"),
+    ('9', 2197, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt64X4OffAddr#"),
+    ('9', 2198, InTerms, Just "GHC.Internal.Prim", "indexInt8X64OffAddr#"),
+    ('9', 2199, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt8X64OffAddr#"),
+    ('9', 2200, InTerms, Just "GHC.Internal.Prim", "indexInt16X32OffAddr#"),
+    ('9', 2201, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt16X32OffAddr#"),
+    ('9', 2202, InTerms, Just "GHC.Internal.Prim", "indexInt32X16OffAddr#"),
+    ('9', 2203, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt32X16OffAddr#"),
+    ('9', 2204, InTerms, Just "GHC.Internal.Prim", "indexInt64X8OffAddr#"),
+    ('9', 2205, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt64X8OffAddr#"),
+    ('9', 2206, InTerms, Just "GHC.Internal.Prim", "indexWord8X16OffAddr#"),
+    ('9', 2207, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8X16OffAddr#"),
+    ('9', 2208, InTerms, Just "GHC.Internal.Prim", "indexWord16X8OffAddr#"),
+    ('9', 2209, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord16X8OffAddr#"),
+    ('9', 2210, InTerms, Just "GHC.Internal.Prim", "indexWord32X4OffAddr#"),
+    ('9', 2211, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord32X4OffAddr#"),
+    ('9', 2212, InTerms, Just "GHC.Internal.Prim", "indexWord64X2OffAddr#"),
+    ('9', 2213, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord64X2OffAddr#"),
+    ('9', 2214, InTerms, Just "GHC.Internal.Prim", "indexWord8X32OffAddr#"),
+    ('9', 2215, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8X32OffAddr#"),
+    ('9', 2216, InTerms, Just "GHC.Internal.Prim", "indexWord16X16OffAddr#"),
+    ('9', 2217, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord16X16OffAddr#"),
+    ('9', 2218, InTerms, Just "GHC.Internal.Prim", "indexWord32X8OffAddr#"),
+    ('9', 2219, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord32X8OffAddr#"),
+    ('9', 2220, InTerms, Just "GHC.Internal.Prim", "indexWord64X4OffAddr#"),
+    ('9', 2221, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord64X4OffAddr#"),
+    ('9', 2222, InTerms, Just "GHC.Internal.Prim", "indexWord8X64OffAddr#"),
+    ('9', 2223, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8X64OffAddr#"),
+    ('9', 2224, InTerms, Just "GHC.Internal.Prim", "indexWord16X32OffAddr#"),
+    ('9', 2225, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord16X32OffAddr#"),
+    ('9', 2226, InTerms, Just "GHC.Internal.Prim", "indexWord32X16OffAddr#"),
+    ('9', 2227, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord32X16OffAddr#"),
+    ('9', 2228, InTerms, Just "GHC.Internal.Prim", "indexWord64X8OffAddr#"),
+    ('9', 2229, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord64X8OffAddr#"),
+    ('9', 2230, InTerms, Just "GHC.Internal.Prim", "indexFloatX4OffAddr#"),
+    ('9', 2231, InTerms, Just "GHC.Internal.PrimopWrappers", "indexFloatX4OffAddr#"),
+    ('9', 2232, InTerms, Just "GHC.Internal.Prim", "indexDoubleX2OffAddr#"),
+    ('9', 2233, InTerms, Just "GHC.Internal.PrimopWrappers", "indexDoubleX2OffAddr#"),
+    ('9', 2234, InTerms, Just "GHC.Internal.Prim", "indexFloatX8OffAddr#"),
+    ('9', 2235, InTerms, Just "GHC.Internal.PrimopWrappers", "indexFloatX8OffAddr#"),
+    ('9', 2236, InTerms, Just "GHC.Internal.Prim", "indexDoubleX4OffAddr#"),
+    ('9', 2237, InTerms, Just "GHC.Internal.PrimopWrappers", "indexDoubleX4OffAddr#"),
+    ('9', 2238, InTerms, Just "GHC.Internal.Prim", "indexFloatX16OffAddr#"),
+    ('9', 2239, InTerms, Just "GHC.Internal.PrimopWrappers", "indexFloatX16OffAddr#"),
+    ('9', 2240, InTerms, Just "GHC.Internal.Prim", "indexDoubleX8OffAddr#"),
+    ('9', 2241, InTerms, Just "GHC.Internal.PrimopWrappers", "indexDoubleX8OffAddr#"),
+    ('9', 2242, InTerms, Just "GHC.Internal.Prim", "readInt8X16OffAddr#"),
+    ('9', 2243, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt8X16OffAddr#"),
+    ('9', 2244, InTerms, Just "GHC.Internal.Prim", "readInt16X8OffAddr#"),
+    ('9', 2245, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt16X8OffAddr#"),
+    ('9', 2246, InTerms, Just "GHC.Internal.Prim", "readInt32X4OffAddr#"),
+    ('9', 2247, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt32X4OffAddr#"),
+    ('9', 2248, InTerms, Just "GHC.Internal.Prim", "readInt64X2OffAddr#"),
+    ('9', 2249, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt64X2OffAddr#"),
+    ('9', 2250, InTerms, Just "GHC.Internal.Prim", "readInt8X32OffAddr#"),
+    ('9', 2251, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt8X32OffAddr#"),
+    ('9', 2252, InTerms, Just "GHC.Internal.Prim", "readInt16X16OffAddr#"),
+    ('9', 2253, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt16X16OffAddr#"),
+    ('9', 2254, InTerms, Just "GHC.Internal.Prim", "readInt32X8OffAddr#"),
+    ('9', 2255, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt32X8OffAddr#"),
+    ('9', 2256, InTerms, Just "GHC.Internal.Prim", "readInt64X4OffAddr#"),
+    ('9', 2257, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt64X4OffAddr#"),
+    ('9', 2258, InTerms, Just "GHC.Internal.Prim", "readInt8X64OffAddr#"),
+    ('9', 2259, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt8X64OffAddr#"),
+    ('9', 2260, InTerms, Just "GHC.Internal.Prim", "readInt16X32OffAddr#"),
+    ('9', 2261, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt16X32OffAddr#"),
+    ('9', 2262, InTerms, Just "GHC.Internal.Prim", "readInt32X16OffAddr#"),
+    ('9', 2263, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt32X16OffAddr#"),
+    ('9', 2264, InTerms, Just "GHC.Internal.Prim", "readInt64X8OffAddr#"),
+    ('9', 2265, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt64X8OffAddr#"),
+    ('9', 2266, InTerms, Just "GHC.Internal.Prim", "readWord8X16OffAddr#"),
+    ('9', 2267, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8X16OffAddr#"),
+    ('9', 2268, InTerms, Just "GHC.Internal.Prim", "readWord16X8OffAddr#"),
+    ('9', 2269, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord16X8OffAddr#"),
+    ('9', 2270, InTerms, Just "GHC.Internal.Prim", "readWord32X4OffAddr#"),
+    ('9', 2271, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord32X4OffAddr#"),
+    ('9', 2272, InTerms, Just "GHC.Internal.Prim", "readWord64X2OffAddr#"),
+    ('9', 2273, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord64X2OffAddr#"),
+    ('9', 2274, InTerms, Just "GHC.Internal.Prim", "readWord8X32OffAddr#"),
+    ('9', 2275, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8X32OffAddr#"),
+    ('9', 2276, InTerms, Just "GHC.Internal.Prim", "readWord16X16OffAddr#"),
+    ('9', 2277, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord16X16OffAddr#"),
+    ('9', 2278, InTerms, Just "GHC.Internal.Prim", "readWord32X8OffAddr#"),
+    ('9', 2279, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord32X8OffAddr#"),
+    ('9', 2280, InTerms, Just "GHC.Internal.Prim", "readWord64X4OffAddr#"),
+    ('9', 2281, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord64X4OffAddr#"),
+    ('9', 2282, InTerms, Just "GHC.Internal.Prim", "readWord8X64OffAddr#"),
+    ('9', 2283, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8X64OffAddr#"),
+    ('9', 2284, InTerms, Just "GHC.Internal.Prim", "readWord16X32OffAddr#"),
+    ('9', 2285, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord16X32OffAddr#"),
+    ('9', 2286, InTerms, Just "GHC.Internal.Prim", "readWord32X16OffAddr#"),
+    ('9', 2287, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord32X16OffAddr#"),
+    ('9', 2288, InTerms, Just "GHC.Internal.Prim", "readWord64X8OffAddr#"),
+    ('9', 2289, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord64X8OffAddr#"),
+    ('9', 2290, InTerms, Just "GHC.Internal.Prim", "readFloatX4OffAddr#"),
+    ('9', 2291, InTerms, Just "GHC.Internal.PrimopWrappers", "readFloatX4OffAddr#"),
+    ('9', 2292, InTerms, Just "GHC.Internal.Prim", "readDoubleX2OffAddr#"),
+    ('9', 2293, InTerms, Just "GHC.Internal.PrimopWrappers", "readDoubleX2OffAddr#"),
+    ('9', 2294, InTerms, Just "GHC.Internal.Prim", "readFloatX8OffAddr#"),
+    ('9', 2295, InTerms, Just "GHC.Internal.PrimopWrappers", "readFloatX8OffAddr#"),
+    ('9', 2296, InTerms, Just "GHC.Internal.Prim", "readDoubleX4OffAddr#"),
+    ('9', 2297, InTerms, Just "GHC.Internal.PrimopWrappers", "readDoubleX4OffAddr#"),
+    ('9', 2298, InTerms, Just "GHC.Internal.Prim", "readFloatX16OffAddr#"),
+    ('9', 2299, InTerms, Just "GHC.Internal.PrimopWrappers", "readFloatX16OffAddr#"),
+    ('9', 2300, InTerms, Just "GHC.Internal.Prim", "readDoubleX8OffAddr#"),
+    ('9', 2301, InTerms, Just "GHC.Internal.PrimopWrappers", "readDoubleX8OffAddr#"),
+    ('9', 2302, InTerms, Just "GHC.Internal.Prim", "writeInt8X16OffAddr#"),
+    ('9', 2303, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt8X16OffAddr#"),
+    ('9', 2304, InTerms, Just "GHC.Internal.Prim", "writeInt16X8OffAddr#"),
+    ('9', 2305, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt16X8OffAddr#"),
+    ('9', 2306, InTerms, Just "GHC.Internal.Prim", "writeInt32X4OffAddr#"),
+    ('9', 2307, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt32X4OffAddr#"),
+    ('9', 2308, InTerms, Just "GHC.Internal.Prim", "writeInt64X2OffAddr#"),
+    ('9', 2309, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt64X2OffAddr#"),
+    ('9', 2310, InTerms, Just "GHC.Internal.Prim", "writeInt8X32OffAddr#"),
+    ('9', 2311, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt8X32OffAddr#"),
+    ('9', 2312, InTerms, Just "GHC.Internal.Prim", "writeInt16X16OffAddr#"),
+    ('9', 2313, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt16X16OffAddr#"),
+    ('9', 2314, InTerms, Just "GHC.Internal.Prim", "writeInt32X8OffAddr#"),
+    ('9', 2315, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt32X8OffAddr#"),
+    ('9', 2316, InTerms, Just "GHC.Internal.Prim", "writeInt64X4OffAddr#"),
+    ('9', 2317, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt64X4OffAddr#"),
+    ('9', 2318, InTerms, Just "GHC.Internal.Prim", "writeInt8X64OffAddr#"),
+    ('9', 2319, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt8X64OffAddr#"),
+    ('9', 2320, InTerms, Just "GHC.Internal.Prim", "writeInt16X32OffAddr#"),
+    ('9', 2321, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt16X32OffAddr#"),
+    ('9', 2322, InTerms, Just "GHC.Internal.Prim", "writeInt32X16OffAddr#"),
+    ('9', 2323, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt32X16OffAddr#"),
+    ('9', 2324, InTerms, Just "GHC.Internal.Prim", "writeInt64X8OffAddr#"),
+    ('9', 2325, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt64X8OffAddr#"),
+    ('9', 2326, InTerms, Just "GHC.Internal.Prim", "writeWord8X16OffAddr#"),
+    ('9', 2327, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8X16OffAddr#"),
+    ('9', 2328, InTerms, Just "GHC.Internal.Prim", "writeWord16X8OffAddr#"),
+    ('9', 2329, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord16X8OffAddr#"),
+    ('9', 2330, InTerms, Just "GHC.Internal.Prim", "writeWord32X4OffAddr#"),
+    ('9', 2331, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord32X4OffAddr#"),
+    ('9', 2332, InTerms, Just "GHC.Internal.Prim", "writeWord64X2OffAddr#"),
+    ('9', 2333, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord64X2OffAddr#"),
+    ('9', 2334, InTerms, Just "GHC.Internal.Prim", "writeWord8X32OffAddr#"),
+    ('9', 2335, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8X32OffAddr#"),
+    ('9', 2336, InTerms, Just "GHC.Internal.Prim", "writeWord16X16OffAddr#"),
+    ('9', 2337, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord16X16OffAddr#"),
+    ('9', 2338, InTerms, Just "GHC.Internal.Prim", "writeWord32X8OffAddr#"),
+    ('9', 2339, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord32X8OffAddr#"),
+    ('9', 2340, InTerms, Just "GHC.Internal.Prim", "writeWord64X4OffAddr#"),
+    ('9', 2341, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord64X4OffAddr#"),
+    ('9', 2342, InTerms, Just "GHC.Internal.Prim", "writeWord8X64OffAddr#"),
+    ('9', 2343, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8X64OffAddr#"),
+    ('9', 2344, InTerms, Just "GHC.Internal.Prim", "writeWord16X32OffAddr#"),
+    ('9', 2345, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord16X32OffAddr#"),
+    ('9', 2346, InTerms, Just "GHC.Internal.Prim", "writeWord32X16OffAddr#"),
+    ('9', 2347, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord32X16OffAddr#"),
+    ('9', 2348, InTerms, Just "GHC.Internal.Prim", "writeWord64X8OffAddr#"),
+    ('9', 2349, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord64X8OffAddr#"),
+    ('9', 2350, InTerms, Just "GHC.Internal.Prim", "writeFloatX4OffAddr#"),
+    ('9', 2351, InTerms, Just "GHC.Internal.PrimopWrappers", "writeFloatX4OffAddr#"),
+    ('9', 2352, InTerms, Just "GHC.Internal.Prim", "writeDoubleX2OffAddr#"),
+    ('9', 2353, InTerms, Just "GHC.Internal.PrimopWrappers", "writeDoubleX2OffAddr#"),
+    ('9', 2354, InTerms, Just "GHC.Internal.Prim", "writeFloatX8OffAddr#"),
+    ('9', 2355, InTerms, Just "GHC.Internal.PrimopWrappers", "writeFloatX8OffAddr#"),
+    ('9', 2356, InTerms, Just "GHC.Internal.Prim", "writeDoubleX4OffAddr#"),
+    ('9', 2357, InTerms, Just "GHC.Internal.PrimopWrappers", "writeDoubleX4OffAddr#"),
+    ('9', 2358, InTerms, Just "GHC.Internal.Prim", "writeFloatX16OffAddr#"),
+    ('9', 2359, InTerms, Just "GHC.Internal.PrimopWrappers", "writeFloatX16OffAddr#"),
+    ('9', 2360, InTerms, Just "GHC.Internal.Prim", "writeDoubleX8OffAddr#"),
+    ('9', 2361, InTerms, Just "GHC.Internal.PrimopWrappers", "writeDoubleX8OffAddr#"),
+    ('9', 2362, InTerms, Just "GHC.Internal.Prim", "indexInt8ArrayAsInt8X16#"),
+    ('9', 2363, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt8ArrayAsInt8X16#"),
+    ('9', 2364, InTerms, Just "GHC.Internal.Prim", "indexInt16ArrayAsInt16X8#"),
+    ('9', 2365, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt16ArrayAsInt16X8#"),
+    ('9', 2366, InTerms, Just "GHC.Internal.Prim", "indexInt32ArrayAsInt32X4#"),
+    ('9', 2367, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt32ArrayAsInt32X4#"),
+    ('9', 2368, InTerms, Just "GHC.Internal.Prim", "indexInt64ArrayAsInt64X2#"),
+    ('9', 2369, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt64ArrayAsInt64X2#"),
+    ('9', 2370, InTerms, Just "GHC.Internal.Prim", "indexInt8ArrayAsInt8X32#"),
+    ('9', 2371, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt8ArrayAsInt8X32#"),
+    ('9', 2372, InTerms, Just "GHC.Internal.Prim", "indexInt16ArrayAsInt16X16#"),
+    ('9', 2373, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt16ArrayAsInt16X16#"),
+    ('9', 2374, InTerms, Just "GHC.Internal.Prim", "indexInt32ArrayAsInt32X8#"),
+    ('9', 2375, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt32ArrayAsInt32X8#"),
+    ('9', 2376, InTerms, Just "GHC.Internal.Prim", "indexInt64ArrayAsInt64X4#"),
+    ('9', 2377, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt64ArrayAsInt64X4#"),
+    ('9', 2378, InTerms, Just "GHC.Internal.Prim", "indexInt8ArrayAsInt8X64#"),
+    ('9', 2379, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt8ArrayAsInt8X64#"),
+    ('9', 2380, InTerms, Just "GHC.Internal.Prim", "indexInt16ArrayAsInt16X32#"),
+    ('9', 2381, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt16ArrayAsInt16X32#"),
+    ('9', 2382, InTerms, Just "GHC.Internal.Prim", "indexInt32ArrayAsInt32X16#"),
+    ('9', 2383, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt32ArrayAsInt32X16#"),
+    ('9', 2384, InTerms, Just "GHC.Internal.Prim", "indexInt64ArrayAsInt64X8#"),
+    ('9', 2385, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt64ArrayAsInt64X8#"),
+    ('9', 2386, InTerms, Just "GHC.Internal.Prim", "indexWord8ArrayAsWord8X16#"),
+    ('9', 2387, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8ArrayAsWord8X16#"),
+    ('9', 2388, InTerms, Just "GHC.Internal.Prim", "indexWord16ArrayAsWord16X8#"),
+    ('9', 2389, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord16ArrayAsWord16X8#"),
+    ('9', 2390, InTerms, Just "GHC.Internal.Prim", "indexWord32ArrayAsWord32X4#"),
+    ('9', 2391, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord32ArrayAsWord32X4#"),
+    ('9', 2392, InTerms, Just "GHC.Internal.Prim", "indexWord64ArrayAsWord64X2#"),
+    ('9', 2393, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord64ArrayAsWord64X2#"),
+    ('9', 2394, InTerms, Just "GHC.Internal.Prim", "indexWord8ArrayAsWord8X32#"),
+    ('9', 2395, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8ArrayAsWord8X32#"),
+    ('9', 2396, InTerms, Just "GHC.Internal.Prim", "indexWord16ArrayAsWord16X16#"),
+    ('9', 2397, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord16ArrayAsWord16X16#"),
+    ('9', 2398, InTerms, Just "GHC.Internal.Prim", "indexWord32ArrayAsWord32X8#"),
+    ('9', 2399, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord32ArrayAsWord32X8#"),
+    ('9', 2400, InTerms, Just "GHC.Internal.Prim", "indexWord64ArrayAsWord64X4#"),
+    ('9', 2401, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord64ArrayAsWord64X4#"),
+    ('9', 2402, InTerms, Just "GHC.Internal.Prim", "indexWord8ArrayAsWord8X64#"),
+    ('9', 2403, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8ArrayAsWord8X64#"),
+    ('9', 2404, InTerms, Just "GHC.Internal.Prim", "indexWord16ArrayAsWord16X32#"),
+    ('9', 2405, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord16ArrayAsWord16X32#"),
+    ('9', 2406, InTerms, Just "GHC.Internal.Prim", "indexWord32ArrayAsWord32X16#"),
+    ('9', 2407, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord32ArrayAsWord32X16#"),
+    ('9', 2408, InTerms, Just "GHC.Internal.Prim", "indexWord64ArrayAsWord64X8#"),
+    ('9', 2409, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord64ArrayAsWord64X8#"),
+    ('9', 2410, InTerms, Just "GHC.Internal.Prim", "indexFloatArrayAsFloatX4#"),
+    ('9', 2411, InTerms, Just "GHC.Internal.PrimopWrappers", "indexFloatArrayAsFloatX4#"),
+    ('9', 2412, InTerms, Just "GHC.Internal.Prim", "indexDoubleArrayAsDoubleX2#"),
+    ('9', 2413, InTerms, Just "GHC.Internal.PrimopWrappers", "indexDoubleArrayAsDoubleX2#"),
+    ('9', 2414, InTerms, Just "GHC.Internal.Prim", "indexFloatArrayAsFloatX8#"),
+    ('9', 2415, InTerms, Just "GHC.Internal.PrimopWrappers", "indexFloatArrayAsFloatX8#"),
+    ('9', 2416, InTerms, Just "GHC.Internal.Prim", "indexDoubleArrayAsDoubleX4#"),
+    ('9', 2417, InTerms, Just "GHC.Internal.PrimopWrappers", "indexDoubleArrayAsDoubleX4#"),
+    ('9', 2418, InTerms, Just "GHC.Internal.Prim", "indexFloatArrayAsFloatX16#"),
+    ('9', 2419, InTerms, Just "GHC.Internal.PrimopWrappers", "indexFloatArrayAsFloatX16#"),
+    ('9', 2420, InTerms, Just "GHC.Internal.Prim", "indexDoubleArrayAsDoubleX8#"),
+    ('9', 2421, InTerms, Just "GHC.Internal.PrimopWrappers", "indexDoubleArrayAsDoubleX8#"),
+    ('9', 2422, InTerms, Just "GHC.Internal.Prim", "readInt8ArrayAsInt8X16#"),
+    ('9', 2423, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt8ArrayAsInt8X16#"),
+    ('9', 2424, InTerms, Just "GHC.Internal.Prim", "readInt16ArrayAsInt16X8#"),
+    ('9', 2425, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt16ArrayAsInt16X8#"),
+    ('9', 2426, InTerms, Just "GHC.Internal.Prim", "readInt32ArrayAsInt32X4#"),
+    ('9', 2427, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt32ArrayAsInt32X4#"),
+    ('9', 2428, InTerms, Just "GHC.Internal.Prim", "readInt64ArrayAsInt64X2#"),
+    ('9', 2429, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt64ArrayAsInt64X2#"),
+    ('9', 2430, InTerms, Just "GHC.Internal.Prim", "readInt8ArrayAsInt8X32#"),
+    ('9', 2431, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt8ArrayAsInt8X32#"),
+    ('9', 2432, InTerms, Just "GHC.Internal.Prim", "readInt16ArrayAsInt16X16#"),
+    ('9', 2433, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt16ArrayAsInt16X16#"),
+    ('9', 2434, InTerms, Just "GHC.Internal.Prim", "readInt32ArrayAsInt32X8#"),
+    ('9', 2435, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt32ArrayAsInt32X8#"),
+    ('9', 2436, InTerms, Just "GHC.Internal.Prim", "readInt64ArrayAsInt64X4#"),
+    ('9', 2437, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt64ArrayAsInt64X4#"),
+    ('9', 2438, InTerms, Just "GHC.Internal.Prim", "readInt8ArrayAsInt8X64#"),
+    ('9', 2439, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt8ArrayAsInt8X64#"),
+    ('9', 2440, InTerms, Just "GHC.Internal.Prim", "readInt16ArrayAsInt16X32#"),
+    ('9', 2441, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt16ArrayAsInt16X32#"),
+    ('9', 2442, InTerms, Just "GHC.Internal.Prim", "readInt32ArrayAsInt32X16#"),
+    ('9', 2443, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt32ArrayAsInt32X16#"),
+    ('9', 2444, InTerms, Just "GHC.Internal.Prim", "readInt64ArrayAsInt64X8#"),
+    ('9', 2445, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt64ArrayAsInt64X8#"),
+    ('9', 2446, InTerms, Just "GHC.Internal.Prim", "readWord8ArrayAsWord8X16#"),
+    ('9', 2447, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8ArrayAsWord8X16#"),
+    ('9', 2448, InTerms, Just "GHC.Internal.Prim", "readWord16ArrayAsWord16X8#"),
+    ('9', 2449, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord16ArrayAsWord16X8#"),
+    ('9', 2450, InTerms, Just "GHC.Internal.Prim", "readWord32ArrayAsWord32X4#"),
+    ('9', 2451, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord32ArrayAsWord32X4#"),
+    ('9', 2452, InTerms, Just "GHC.Internal.Prim", "readWord64ArrayAsWord64X2#"),
+    ('9', 2453, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord64ArrayAsWord64X2#"),
+    ('9', 2454, InTerms, Just "GHC.Internal.Prim", "readWord8ArrayAsWord8X32#"),
+    ('9', 2455, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8ArrayAsWord8X32#"),
+    ('9', 2456, InTerms, Just "GHC.Internal.Prim", "readWord16ArrayAsWord16X16#"),
+    ('9', 2457, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord16ArrayAsWord16X16#"),
+    ('9', 2458, InTerms, Just "GHC.Internal.Prim", "readWord32ArrayAsWord32X8#"),
+    ('9', 2459, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord32ArrayAsWord32X8#"),
+    ('9', 2460, InTerms, Just "GHC.Internal.Prim", "readWord64ArrayAsWord64X4#"),
+    ('9', 2461, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord64ArrayAsWord64X4#"),
+    ('9', 2462, InTerms, Just "GHC.Internal.Prim", "readWord8ArrayAsWord8X64#"),
+    ('9', 2463, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8ArrayAsWord8X64#"),
+    ('9', 2464, InTerms, Just "GHC.Internal.Prim", "readWord16ArrayAsWord16X32#"),
+    ('9', 2465, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord16ArrayAsWord16X32#"),
+    ('9', 2466, InTerms, Just "GHC.Internal.Prim", "readWord32ArrayAsWord32X16#"),
+    ('9', 2467, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord32ArrayAsWord32X16#"),
+    ('9', 2468, InTerms, Just "GHC.Internal.Prim", "readWord64ArrayAsWord64X8#"),
+    ('9', 2469, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord64ArrayAsWord64X8#"),
+    ('9', 2470, InTerms, Just "GHC.Internal.Prim", "readFloatArrayAsFloatX4#"),
+    ('9', 2471, InTerms, Just "GHC.Internal.PrimopWrappers", "readFloatArrayAsFloatX4#"),
+    ('9', 2472, InTerms, Just "GHC.Internal.Prim", "readDoubleArrayAsDoubleX2#"),
+    ('9', 2473, InTerms, Just "GHC.Internal.PrimopWrappers", "readDoubleArrayAsDoubleX2#"),
+    ('9', 2474, InTerms, Just "GHC.Internal.Prim", "readFloatArrayAsFloatX8#"),
+    ('9', 2475, InTerms, Just "GHC.Internal.PrimopWrappers", "readFloatArrayAsFloatX8#"),
+    ('9', 2476, InTerms, Just "GHC.Internal.Prim", "readDoubleArrayAsDoubleX4#"),
+    ('9', 2477, InTerms, Just "GHC.Internal.PrimopWrappers", "readDoubleArrayAsDoubleX4#"),
+    ('9', 2478, InTerms, Just "GHC.Internal.Prim", "readFloatArrayAsFloatX16#"),
+    ('9', 2479, InTerms, Just "GHC.Internal.PrimopWrappers", "readFloatArrayAsFloatX16#"),
+    ('9', 2480, InTerms, Just "GHC.Internal.Prim", "readDoubleArrayAsDoubleX8#"),
+    ('9', 2481, InTerms, Just "GHC.Internal.PrimopWrappers", "readDoubleArrayAsDoubleX8#"),
+    ('9', 2482, InTerms, Just "GHC.Internal.Prim", "writeInt8ArrayAsInt8X16#"),
+    ('9', 2483, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt8ArrayAsInt8X16#"),
+    ('9', 2484, InTerms, Just "GHC.Internal.Prim", "writeInt16ArrayAsInt16X8#"),
+    ('9', 2485, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt16ArrayAsInt16X8#"),
+    ('9', 2486, InTerms, Just "GHC.Internal.Prim", "writeInt32ArrayAsInt32X4#"),
+    ('9', 2487, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt32ArrayAsInt32X4#"),
+    ('9', 2488, InTerms, Just "GHC.Internal.Prim", "writeInt64ArrayAsInt64X2#"),
+    ('9', 2489, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt64ArrayAsInt64X2#"),
+    ('9', 2490, InTerms, Just "GHC.Internal.Prim", "writeInt8ArrayAsInt8X32#"),
+    ('9', 2491, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt8ArrayAsInt8X32#"),
+    ('9', 2492, InTerms, Just "GHC.Internal.Prim", "writeInt16ArrayAsInt16X16#"),
+    ('9', 2493, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt16ArrayAsInt16X16#"),
+    ('9', 2494, InTerms, Just "GHC.Internal.Prim", "writeInt32ArrayAsInt32X8#"),
+    ('9', 2495, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt32ArrayAsInt32X8#"),
+    ('9', 2496, InTerms, Just "GHC.Internal.Prim", "writeInt64ArrayAsInt64X4#"),
+    ('9', 2497, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt64ArrayAsInt64X4#"),
+    ('9', 2498, InTerms, Just "GHC.Internal.Prim", "writeInt8ArrayAsInt8X64#"),
+    ('9', 2499, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt8ArrayAsInt8X64#"),
+    ('9', 2500, InTerms, Just "GHC.Internal.Prim", "writeInt16ArrayAsInt16X32#"),
+    ('9', 2501, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt16ArrayAsInt16X32#"),
+    ('9', 2502, InTerms, Just "GHC.Internal.Prim", "writeInt32ArrayAsInt32X16#"),
+    ('9', 2503, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt32ArrayAsInt32X16#"),
+    ('9', 2504, InTerms, Just "GHC.Internal.Prim", "writeInt64ArrayAsInt64X8#"),
+    ('9', 2505, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt64ArrayAsInt64X8#"),
+    ('9', 2506, InTerms, Just "GHC.Internal.Prim", "writeWord8ArrayAsWord8X16#"),
+    ('9', 2507, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8ArrayAsWord8X16#"),
+    ('9', 2508, InTerms, Just "GHC.Internal.Prim", "writeWord16ArrayAsWord16X8#"),
+    ('9', 2509, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord16ArrayAsWord16X8#"),
+    ('9', 2510, InTerms, Just "GHC.Internal.Prim", "writeWord32ArrayAsWord32X4#"),
+    ('9', 2511, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord32ArrayAsWord32X4#"),
+    ('9', 2512, InTerms, Just "GHC.Internal.Prim", "writeWord64ArrayAsWord64X2#"),
+    ('9', 2513, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord64ArrayAsWord64X2#"),
+    ('9', 2514, InTerms, Just "GHC.Internal.Prim", "writeWord8ArrayAsWord8X32#"),
+    ('9', 2515, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8ArrayAsWord8X32#"),
+    ('9', 2516, InTerms, Just "GHC.Internal.Prim", "writeWord16ArrayAsWord16X16#"),
+    ('9', 2517, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord16ArrayAsWord16X16#"),
+    ('9', 2518, InTerms, Just "GHC.Internal.Prim", "writeWord32ArrayAsWord32X8#"),
+    ('9', 2519, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord32ArrayAsWord32X8#"),
+    ('9', 2520, InTerms, Just "GHC.Internal.Prim", "writeWord64ArrayAsWord64X4#"),
+    ('9', 2521, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord64ArrayAsWord64X4#"),
+    ('9', 2522, InTerms, Just "GHC.Internal.Prim", "writeWord8ArrayAsWord8X64#"),
+    ('9', 2523, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8ArrayAsWord8X64#"),
+    ('9', 2524, InTerms, Just "GHC.Internal.Prim", "writeWord16ArrayAsWord16X32#"),
+    ('9', 2525, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord16ArrayAsWord16X32#"),
+    ('9', 2526, InTerms, Just "GHC.Internal.Prim", "writeWord32ArrayAsWord32X16#"),
+    ('9', 2527, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord32ArrayAsWord32X16#"),
+    ('9', 2528, InTerms, Just "GHC.Internal.Prim", "writeWord64ArrayAsWord64X8#"),
+    ('9', 2529, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord64ArrayAsWord64X8#"),
+    ('9', 2530, InTerms, Just "GHC.Internal.Prim", "writeFloatArrayAsFloatX4#"),
+    ('9', 2531, InTerms, Just "GHC.Internal.PrimopWrappers", "writeFloatArrayAsFloatX4#"),
+    ('9', 2532, InTerms, Just "GHC.Internal.Prim", "writeDoubleArrayAsDoubleX2#"),
+    ('9', 2533, InTerms, Just "GHC.Internal.PrimopWrappers", "writeDoubleArrayAsDoubleX2#"),
+    ('9', 2534, InTerms, Just "GHC.Internal.Prim", "writeFloatArrayAsFloatX8#"),
+    ('9', 2535, InTerms, Just "GHC.Internal.PrimopWrappers", "writeFloatArrayAsFloatX8#"),
+    ('9', 2536, InTerms, Just "GHC.Internal.Prim", "writeDoubleArrayAsDoubleX4#"),
+    ('9', 2537, InTerms, Just "GHC.Internal.PrimopWrappers", "writeDoubleArrayAsDoubleX4#"),
+    ('9', 2538, InTerms, Just "GHC.Internal.Prim", "writeFloatArrayAsFloatX16#"),
+    ('9', 2539, InTerms, Just "GHC.Internal.PrimopWrappers", "writeFloatArrayAsFloatX16#"),
+    ('9', 2540, InTerms, Just "GHC.Internal.Prim", "writeDoubleArrayAsDoubleX8#"),
+    ('9', 2541, InTerms, Just "GHC.Internal.PrimopWrappers", "writeDoubleArrayAsDoubleX8#"),
+    ('9', 2542, InTerms, Just "GHC.Internal.Prim", "indexInt8OffAddrAsInt8X16#"),
+    ('9', 2543, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt8OffAddrAsInt8X16#"),
+    ('9', 2544, InTerms, Just "GHC.Internal.Prim", "indexInt16OffAddrAsInt16X8#"),
+    ('9', 2545, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt16OffAddrAsInt16X8#"),
+    ('9', 2546, InTerms, Just "GHC.Internal.Prim", "indexInt32OffAddrAsInt32X4#"),
+    ('9', 2547, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt32OffAddrAsInt32X4#"),
+    ('9', 2548, InTerms, Just "GHC.Internal.Prim", "indexInt64OffAddrAsInt64X2#"),
+    ('9', 2549, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt64OffAddrAsInt64X2#"),
+    ('9', 2550, InTerms, Just "GHC.Internal.Prim", "indexInt8OffAddrAsInt8X32#"),
+    ('9', 2551, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt8OffAddrAsInt8X32#"),
+    ('9', 2552, InTerms, Just "GHC.Internal.Prim", "indexInt16OffAddrAsInt16X16#"),
+    ('9', 2553, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt16OffAddrAsInt16X16#"),
+    ('9', 2554, InTerms, Just "GHC.Internal.Prim", "indexInt32OffAddrAsInt32X8#"),
+    ('9', 2555, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt32OffAddrAsInt32X8#"),
+    ('9', 2556, InTerms, Just "GHC.Internal.Prim", "indexInt64OffAddrAsInt64X4#"),
+    ('9', 2557, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt64OffAddrAsInt64X4#"),
+    ('9', 2558, InTerms, Just "GHC.Internal.Prim", "indexInt8OffAddrAsInt8X64#"),
+    ('9', 2559, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt8OffAddrAsInt8X64#"),
+    ('9', 2560, InTerms, Just "GHC.Internal.Prim", "indexInt16OffAddrAsInt16X32#"),
+    ('9', 2561, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt16OffAddrAsInt16X32#"),
+    ('9', 2562, InTerms, Just "GHC.Internal.Prim", "indexInt32OffAddrAsInt32X16#"),
+    ('9', 2563, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt32OffAddrAsInt32X16#"),
+    ('9', 2564, InTerms, Just "GHC.Internal.Prim", "indexInt64OffAddrAsInt64X8#"),
+    ('9', 2565, InTerms, Just "GHC.Internal.PrimopWrappers", "indexInt64OffAddrAsInt64X8#"),
+    ('9', 2566, InTerms, Just "GHC.Internal.Prim", "indexWord8OffAddrAsWord8X16#"),
+    ('9', 2567, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8OffAddrAsWord8X16#"),
+    ('9', 2568, InTerms, Just "GHC.Internal.Prim", "indexWord16OffAddrAsWord16X8#"),
+    ('9', 2569, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord16OffAddrAsWord16X8#"),
+    ('9', 2570, InTerms, Just "GHC.Internal.Prim", "indexWord32OffAddrAsWord32X4#"),
+    ('9', 2571, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord32OffAddrAsWord32X4#"),
+    ('9', 2572, InTerms, Just "GHC.Internal.Prim", "indexWord64OffAddrAsWord64X2#"),
+    ('9', 2573, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord64OffAddrAsWord64X2#"),
+    ('9', 2574, InTerms, Just "GHC.Internal.Prim", "indexWord8OffAddrAsWord8X32#"),
+    ('9', 2575, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8OffAddrAsWord8X32#"),
+    ('9', 2576, InTerms, Just "GHC.Internal.Prim", "indexWord16OffAddrAsWord16X16#"),
+    ('9', 2577, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord16OffAddrAsWord16X16#"),
+    ('9', 2578, InTerms, Just "GHC.Internal.Prim", "indexWord32OffAddrAsWord32X8#"),
+    ('9', 2579, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord32OffAddrAsWord32X8#"),
+    ('9', 2580, InTerms, Just "GHC.Internal.Prim", "indexWord64OffAddrAsWord64X4#"),
+    ('9', 2581, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord64OffAddrAsWord64X4#"),
+    ('9', 2582, InTerms, Just "GHC.Internal.Prim", "indexWord8OffAddrAsWord8X64#"),
+    ('9', 2583, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord8OffAddrAsWord8X64#"),
+    ('9', 2584, InTerms, Just "GHC.Internal.Prim", "indexWord16OffAddrAsWord16X32#"),
+    ('9', 2585, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord16OffAddrAsWord16X32#"),
+    ('9', 2586, InTerms, Just "GHC.Internal.Prim", "indexWord32OffAddrAsWord32X16#"),
+    ('9', 2587, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord32OffAddrAsWord32X16#"),
+    ('9', 2588, InTerms, Just "GHC.Internal.Prim", "indexWord64OffAddrAsWord64X8#"),
+    ('9', 2589, InTerms, Just "GHC.Internal.PrimopWrappers", "indexWord64OffAddrAsWord64X8#"),
+    ('9', 2590, InTerms, Just "GHC.Internal.Prim", "indexFloatOffAddrAsFloatX4#"),
+    ('9', 2591, InTerms, Just "GHC.Internal.PrimopWrappers", "indexFloatOffAddrAsFloatX4#"),
+    ('9', 2592, InTerms, Just "GHC.Internal.Prim", "indexDoubleOffAddrAsDoubleX2#"),
+    ('9', 2593, InTerms, Just "GHC.Internal.PrimopWrappers", "indexDoubleOffAddrAsDoubleX2#"),
+    ('9', 2594, InTerms, Just "GHC.Internal.Prim", "indexFloatOffAddrAsFloatX8#"),
+    ('9', 2595, InTerms, Just "GHC.Internal.PrimopWrappers", "indexFloatOffAddrAsFloatX8#"),
+    ('9', 2596, InTerms, Just "GHC.Internal.Prim", "indexDoubleOffAddrAsDoubleX4#"),
+    ('9', 2597, InTerms, Just "GHC.Internal.PrimopWrappers", "indexDoubleOffAddrAsDoubleX4#"),
+    ('9', 2598, InTerms, Just "GHC.Internal.Prim", "indexFloatOffAddrAsFloatX16#"),
+    ('9', 2599, InTerms, Just "GHC.Internal.PrimopWrappers", "indexFloatOffAddrAsFloatX16#"),
+    ('9', 2600, InTerms, Just "GHC.Internal.Prim", "indexDoubleOffAddrAsDoubleX8#"),
+    ('9', 2601, InTerms, Just "GHC.Internal.PrimopWrappers", "indexDoubleOffAddrAsDoubleX8#"),
+    ('9', 2602, InTerms, Just "GHC.Internal.Prim", "readInt8OffAddrAsInt8X16#"),
+    ('9', 2603, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt8OffAddrAsInt8X16#"),
+    ('9', 2604, InTerms, Just "GHC.Internal.Prim", "readInt16OffAddrAsInt16X8#"),
+    ('9', 2605, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt16OffAddrAsInt16X8#"),
+    ('9', 2606, InTerms, Just "GHC.Internal.Prim", "readInt32OffAddrAsInt32X4#"),
+    ('9', 2607, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt32OffAddrAsInt32X4#"),
+    ('9', 2608, InTerms, Just "GHC.Internal.Prim", "readInt64OffAddrAsInt64X2#"),
+    ('9', 2609, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt64OffAddrAsInt64X2#"),
+    ('9', 2610, InTerms, Just "GHC.Internal.Prim", "readInt8OffAddrAsInt8X32#"),
+    ('9', 2611, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt8OffAddrAsInt8X32#"),
+    ('9', 2612, InTerms, Just "GHC.Internal.Prim", "readInt16OffAddrAsInt16X16#"),
+    ('9', 2613, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt16OffAddrAsInt16X16#"),
+    ('9', 2614, InTerms, Just "GHC.Internal.Prim", "readInt32OffAddrAsInt32X8#"),
+    ('9', 2615, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt32OffAddrAsInt32X8#"),
+    ('9', 2616, InTerms, Just "GHC.Internal.Prim", "readInt64OffAddrAsInt64X4#"),
+    ('9', 2617, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt64OffAddrAsInt64X4#"),
+    ('9', 2618, InTerms, Just "GHC.Internal.Prim", "readInt8OffAddrAsInt8X64#"),
+    ('9', 2619, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt8OffAddrAsInt8X64#"),
+    ('9', 2620, InTerms, Just "GHC.Internal.Prim", "readInt16OffAddrAsInt16X32#"),
+    ('9', 2621, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt16OffAddrAsInt16X32#"),
+    ('9', 2622, InTerms, Just "GHC.Internal.Prim", "readInt32OffAddrAsInt32X16#"),
+    ('9', 2623, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt32OffAddrAsInt32X16#"),
+    ('9', 2624, InTerms, Just "GHC.Internal.Prim", "readInt64OffAddrAsInt64X8#"),
+    ('9', 2625, InTerms, Just "GHC.Internal.PrimopWrappers", "readInt64OffAddrAsInt64X8#"),
+    ('9', 2626, InTerms, Just "GHC.Internal.Prim", "readWord8OffAddrAsWord8X16#"),
+    ('9', 2627, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8OffAddrAsWord8X16#"),
+    ('9', 2628, InTerms, Just "GHC.Internal.Prim", "readWord16OffAddrAsWord16X8#"),
+    ('9', 2629, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord16OffAddrAsWord16X8#"),
+    ('9', 2630, InTerms, Just "GHC.Internal.Prim", "readWord32OffAddrAsWord32X4#"),
+    ('9', 2631, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord32OffAddrAsWord32X4#"),
+    ('9', 2632, InTerms, Just "GHC.Internal.Prim", "readWord64OffAddrAsWord64X2#"),
+    ('9', 2633, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord64OffAddrAsWord64X2#"),
+    ('9', 2634, InTerms, Just "GHC.Internal.Prim", "readWord8OffAddrAsWord8X32#"),
+    ('9', 2635, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8OffAddrAsWord8X32#"),
+    ('9', 2636, InTerms, Just "GHC.Internal.Prim", "readWord16OffAddrAsWord16X16#"),
+    ('9', 2637, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord16OffAddrAsWord16X16#"),
+    ('9', 2638, InTerms, Just "GHC.Internal.Prim", "readWord32OffAddrAsWord32X8#"),
+    ('9', 2639, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord32OffAddrAsWord32X8#"),
+    ('9', 2640, InTerms, Just "GHC.Internal.Prim", "readWord64OffAddrAsWord64X4#"),
+    ('9', 2641, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord64OffAddrAsWord64X4#"),
+    ('9', 2642, InTerms, Just "GHC.Internal.Prim", "readWord8OffAddrAsWord8X64#"),
+    ('9', 2643, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord8OffAddrAsWord8X64#"),
+    ('9', 2644, InTerms, Just "GHC.Internal.Prim", "readWord16OffAddrAsWord16X32#"),
+    ('9', 2645, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord16OffAddrAsWord16X32#"),
+    ('9', 2646, InTerms, Just "GHC.Internal.Prim", "readWord32OffAddrAsWord32X16#"),
+    ('9', 2647, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord32OffAddrAsWord32X16#"),
+    ('9', 2648, InTerms, Just "GHC.Internal.Prim", "readWord64OffAddrAsWord64X8#"),
+    ('9', 2649, InTerms, Just "GHC.Internal.PrimopWrappers", "readWord64OffAddrAsWord64X8#"),
+    ('9', 2650, InTerms, Just "GHC.Internal.Prim", "readFloatOffAddrAsFloatX4#"),
+    ('9', 2651, InTerms, Just "GHC.Internal.PrimopWrappers", "readFloatOffAddrAsFloatX4#"),
+    ('9', 2652, InTerms, Just "GHC.Internal.Prim", "readDoubleOffAddrAsDoubleX2#"),
+    ('9', 2653, InTerms, Just "GHC.Internal.PrimopWrappers", "readDoubleOffAddrAsDoubleX2#"),
+    ('9', 2654, InTerms, Just "GHC.Internal.Prim", "readFloatOffAddrAsFloatX8#"),
+    ('9', 2655, InTerms, Just "GHC.Internal.PrimopWrappers", "readFloatOffAddrAsFloatX8#"),
+    ('9', 2656, InTerms, Just "GHC.Internal.Prim", "readDoubleOffAddrAsDoubleX4#"),
+    ('9', 2657, InTerms, Just "GHC.Internal.PrimopWrappers", "readDoubleOffAddrAsDoubleX4#"),
+    ('9', 2658, InTerms, Just "GHC.Internal.Prim", "readFloatOffAddrAsFloatX16#"),
+    ('9', 2659, InTerms, Just "GHC.Internal.PrimopWrappers", "readFloatOffAddrAsFloatX16#"),
+    ('9', 2660, InTerms, Just "GHC.Internal.Prim", "readDoubleOffAddrAsDoubleX8#"),
+    ('9', 2661, InTerms, Just "GHC.Internal.PrimopWrappers", "readDoubleOffAddrAsDoubleX8#"),
+    ('9', 2662, InTerms, Just "GHC.Internal.Prim", "writeInt8OffAddrAsInt8X16#"),
+    ('9', 2663, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt8OffAddrAsInt8X16#"),
+    ('9', 2664, InTerms, Just "GHC.Internal.Prim", "writeInt16OffAddrAsInt16X8#"),
+    ('9', 2665, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt16OffAddrAsInt16X8#"),
+    ('9', 2666, InTerms, Just "GHC.Internal.Prim", "writeInt32OffAddrAsInt32X4#"),
+    ('9', 2667, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt32OffAddrAsInt32X4#"),
+    ('9', 2668, InTerms, Just "GHC.Internal.Prim", "writeInt64OffAddrAsInt64X2#"),
+    ('9', 2669, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt64OffAddrAsInt64X2#"),
+    ('9', 2670, InTerms, Just "GHC.Internal.Prim", "writeInt8OffAddrAsInt8X32#"),
+    ('9', 2671, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt8OffAddrAsInt8X32#"),
+    ('9', 2672, InTerms, Just "GHC.Internal.Prim", "writeInt16OffAddrAsInt16X16#"),
+    ('9', 2673, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt16OffAddrAsInt16X16#"),
+    ('9', 2674, InTerms, Just "GHC.Internal.Prim", "writeInt32OffAddrAsInt32X8#"),
+    ('9', 2675, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt32OffAddrAsInt32X8#"),
+    ('9', 2676, InTerms, Just "GHC.Internal.Prim", "writeInt64OffAddrAsInt64X4#"),
+    ('9', 2677, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt64OffAddrAsInt64X4#"),
+    ('9', 2678, InTerms, Just "GHC.Internal.Prim", "writeInt8OffAddrAsInt8X64#"),
+    ('9', 2679, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt8OffAddrAsInt8X64#"),
+    ('9', 2680, InTerms, Just "GHC.Internal.Prim", "writeInt16OffAddrAsInt16X32#"),
+    ('9', 2681, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt16OffAddrAsInt16X32#"),
+    ('9', 2682, InTerms, Just "GHC.Internal.Prim", "writeInt32OffAddrAsInt32X16#"),
+    ('9', 2683, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt32OffAddrAsInt32X16#"),
+    ('9', 2684, InTerms, Just "GHC.Internal.Prim", "writeInt64OffAddrAsInt64X8#"),
+    ('9', 2685, InTerms, Just "GHC.Internal.PrimopWrappers", "writeInt64OffAddrAsInt64X8#"),
+    ('9', 2686, InTerms, Just "GHC.Internal.Prim", "writeWord8OffAddrAsWord8X16#"),
+    ('9', 2687, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8OffAddrAsWord8X16#"),
+    ('9', 2688, InTerms, Just "GHC.Internal.Prim", "writeWord16OffAddrAsWord16X8#"),
+    ('9', 2689, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord16OffAddrAsWord16X8#"),
+    ('9', 2690, InTerms, Just "GHC.Internal.Prim", "writeWord32OffAddrAsWord32X4#"),
+    ('9', 2691, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord32OffAddrAsWord32X4#"),
+    ('9', 2692, InTerms, Just "GHC.Internal.Prim", "writeWord64OffAddrAsWord64X2#"),
+    ('9', 2693, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord64OffAddrAsWord64X2#"),
+    ('9', 2694, InTerms, Just "GHC.Internal.Prim", "writeWord8OffAddrAsWord8X32#"),
+    ('9', 2695, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8OffAddrAsWord8X32#"),
+    ('9', 2696, InTerms, Just "GHC.Internal.Prim", "writeWord16OffAddrAsWord16X16#"),
+    ('9', 2697, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord16OffAddrAsWord16X16#"),
+    ('9', 2698, InTerms, Just "GHC.Internal.Prim", "writeWord32OffAddrAsWord32X8#"),
+    ('9', 2699, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord32OffAddrAsWord32X8#"),
+    ('9', 2700, InTerms, Just "GHC.Internal.Prim", "writeWord64OffAddrAsWord64X4#"),
+    ('9', 2701, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord64OffAddrAsWord64X4#"),
+    ('9', 2702, InTerms, Just "GHC.Internal.Prim", "writeWord8OffAddrAsWord8X64#"),
+    ('9', 2703, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord8OffAddrAsWord8X64#"),
+    ('9', 2704, InTerms, Just "GHC.Internal.Prim", "writeWord16OffAddrAsWord16X32#"),
+    ('9', 2705, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord16OffAddrAsWord16X32#"),
+    ('9', 2706, InTerms, Just "GHC.Internal.Prim", "writeWord32OffAddrAsWord32X16#"),
+    ('9', 2707, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord32OffAddrAsWord32X16#"),
+    ('9', 2708, InTerms, Just "GHC.Internal.Prim", "writeWord64OffAddrAsWord64X8#"),
+    ('9', 2709, InTerms, Just "GHC.Internal.PrimopWrappers", "writeWord64OffAddrAsWord64X8#"),
+    ('9', 2710, InTerms, Just "GHC.Internal.Prim", "writeFloatOffAddrAsFloatX4#"),
+    ('9', 2711, InTerms, Just "GHC.Internal.PrimopWrappers", "writeFloatOffAddrAsFloatX4#"),
+    ('9', 2712, InTerms, Just "GHC.Internal.Prim", "writeDoubleOffAddrAsDoubleX2#"),
+    ('9', 2713, InTerms, Just "GHC.Internal.PrimopWrappers", "writeDoubleOffAddrAsDoubleX2#"),
+    ('9', 2714, InTerms, Just "GHC.Internal.Prim", "writeFloatOffAddrAsFloatX8#"),
+    ('9', 2715, InTerms, Just "GHC.Internal.PrimopWrappers", "writeFloatOffAddrAsFloatX8#"),
+    ('9', 2716, InTerms, Just "GHC.Internal.Prim", "writeDoubleOffAddrAsDoubleX4#"),
+    ('9', 2717, InTerms, Just "GHC.Internal.PrimopWrappers", "writeDoubleOffAddrAsDoubleX4#"),
+    ('9', 2718, InTerms, Just "GHC.Internal.Prim", "writeFloatOffAddrAsFloatX16#"),
+    ('9', 2719, InTerms, Just "GHC.Internal.PrimopWrappers", "writeFloatOffAddrAsFloatX16#"),
+    ('9', 2720, InTerms, Just "GHC.Internal.Prim", "writeDoubleOffAddrAsDoubleX8#"),
+    ('9', 2721, InTerms, Just "GHC.Internal.PrimopWrappers", "writeDoubleOffAddrAsDoubleX8#"),
+    ('9', 2722, InTerms, Just "GHC.Internal.Prim", "fmaddFloatX4#"),
+    ('9', 2723, InTerms, Just "GHC.Internal.PrimopWrappers", "fmaddFloatX4#"),
+    ('9', 2724, InTerms, Just "GHC.Internal.Prim", "fmaddDoubleX2#"),
+    ('9', 2725, InTerms, Just "GHC.Internal.PrimopWrappers", "fmaddDoubleX2#"),
+    ('9', 2726, InTerms, Just "GHC.Internal.Prim", "fmaddFloatX8#"),
+    ('9', 2727, InTerms, Just "GHC.Internal.PrimopWrappers", "fmaddFloatX8#"),
+    ('9', 2728, InTerms, Just "GHC.Internal.Prim", "fmaddDoubleX4#"),
+    ('9', 2729, InTerms, Just "GHC.Internal.PrimopWrappers", "fmaddDoubleX4#"),
+    ('9', 2730, InTerms, Just "GHC.Internal.Prim", "fmaddFloatX16#"),
+    ('9', 2731, InTerms, Just "GHC.Internal.PrimopWrappers", "fmaddFloatX16#"),
+    ('9', 2732, InTerms, Just "GHC.Internal.Prim", "fmaddDoubleX8#"),
+    ('9', 2733, InTerms, Just "GHC.Internal.PrimopWrappers", "fmaddDoubleX8#"),
+    ('9', 2734, InTerms, Just "GHC.Internal.Prim", "fmsubFloatX4#"),
+    ('9', 2735, InTerms, Just "GHC.Internal.PrimopWrappers", "fmsubFloatX4#"),
+    ('9', 2736, InTerms, Just "GHC.Internal.Prim", "fmsubDoubleX2#"),
+    ('9', 2737, InTerms, Just "GHC.Internal.PrimopWrappers", "fmsubDoubleX2#"),
+    ('9', 2738, InTerms, Just "GHC.Internal.Prim", "fmsubFloatX8#"),
+    ('9', 2739, InTerms, Just "GHC.Internal.PrimopWrappers", "fmsubFloatX8#"),
+    ('9', 2740, InTerms, Just "GHC.Internal.Prim", "fmsubDoubleX4#"),
+    ('9', 2741, InTerms, Just "GHC.Internal.PrimopWrappers", "fmsubDoubleX4#"),
+    ('9', 2742, InTerms, Just "GHC.Internal.Prim", "fmsubFloatX16#"),
+    ('9', 2743, InTerms, Just "GHC.Internal.PrimopWrappers", "fmsubFloatX16#"),
+    ('9', 2744, InTerms, Just "GHC.Internal.Prim", "fmsubDoubleX8#"),
+    ('9', 2745, InTerms, Just "GHC.Internal.PrimopWrappers", "fmsubDoubleX8#"),
+    ('9', 2746, InTerms, Just "GHC.Internal.Prim", "fnmaddFloatX4#"),
+    ('9', 2747, InTerms, Just "GHC.Internal.PrimopWrappers", "fnmaddFloatX4#"),
+    ('9', 2748, InTerms, Just "GHC.Internal.Prim", "fnmaddDoubleX2#"),
+    ('9', 2749, InTerms, Just "GHC.Internal.PrimopWrappers", "fnmaddDoubleX2#"),
+    ('9', 2750, InTerms, Just "GHC.Internal.Prim", "fnmaddFloatX8#"),
+    ('9', 2751, InTerms, Just "GHC.Internal.PrimopWrappers", "fnmaddFloatX8#"),
+    ('9', 2752, InTerms, Just "GHC.Internal.Prim", "fnmaddDoubleX4#"),
+    ('9', 2753, InTerms, Just "GHC.Internal.PrimopWrappers", "fnmaddDoubleX4#"),
+    ('9', 2754, InTerms, Just "GHC.Internal.Prim", "fnmaddFloatX16#"),
+    ('9', 2755, InTerms, Just "GHC.Internal.PrimopWrappers", "fnmaddFloatX16#"),
+    ('9', 2756, InTerms, Just "GHC.Internal.Prim", "fnmaddDoubleX8#"),
+    ('9', 2757, InTerms, Just "GHC.Internal.PrimopWrappers", "fnmaddDoubleX8#"),
+    ('9', 2758, InTerms, Just "GHC.Internal.Prim", "fnmsubFloatX4#"),
+    ('9', 2759, InTerms, Just "GHC.Internal.PrimopWrappers", "fnmsubFloatX4#"),
+    ('9', 2760, InTerms, Just "GHC.Internal.Prim", "fnmsubDoubleX2#"),
+    ('9', 2761, InTerms, Just "GHC.Internal.PrimopWrappers", "fnmsubDoubleX2#"),
+    ('9', 2762, InTerms, Just "GHC.Internal.Prim", "fnmsubFloatX8#"),
+    ('9', 2763, InTerms, Just "GHC.Internal.PrimopWrappers", "fnmsubFloatX8#"),
+    ('9', 2764, InTerms, Just "GHC.Internal.Prim", "fnmsubDoubleX4#"),
+    ('9', 2765, InTerms, Just "GHC.Internal.PrimopWrappers", "fnmsubDoubleX4#"),
+    ('9', 2766, InTerms, Just "GHC.Internal.Prim", "fnmsubFloatX16#"),
+    ('9', 2767, InTerms, Just "GHC.Internal.PrimopWrappers", "fnmsubFloatX16#"),
+    ('9', 2768, InTerms, Just "GHC.Internal.Prim", "fnmsubDoubleX8#"),
+    ('9', 2769, InTerms, Just "GHC.Internal.PrimopWrappers", "fnmsubDoubleX8#"),
+    ('9', 2770, InTerms, Just "GHC.Internal.Prim", "shuffleInt8X16#"),
+    ('9', 2771, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleInt8X16#"),
+    ('9', 2772, InTerms, Just "GHC.Internal.Prim", "shuffleInt16X8#"),
+    ('9', 2773, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleInt16X8#"),
+    ('9', 2774, InTerms, Just "GHC.Internal.Prim", "shuffleInt32X4#"),
+    ('9', 2775, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleInt32X4#"),
+    ('9', 2776, InTerms, Just "GHC.Internal.Prim", "shuffleInt64X2#"),
+    ('9', 2777, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleInt64X2#"),
+    ('9', 2778, InTerms, Just "GHC.Internal.Prim", "shuffleInt8X32#"),
+    ('9', 2779, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleInt8X32#"),
+    ('9', 2780, InTerms, Just "GHC.Internal.Prim", "shuffleInt16X16#"),
+    ('9', 2781, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleInt16X16#"),
+    ('9', 2782, InTerms, Just "GHC.Internal.Prim", "shuffleInt32X8#"),
+    ('9', 2783, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleInt32X8#"),
+    ('9', 2784, InTerms, Just "GHC.Internal.Prim", "shuffleInt64X4#"),
+    ('9', 2785, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleInt64X4#"),
+    ('9', 2786, InTerms, Just "GHC.Internal.Prim", "shuffleInt8X64#"),
+    ('9', 2787, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleInt8X64#"),
+    ('9', 2788, InTerms, Just "GHC.Internal.Prim", "shuffleInt16X32#"),
+    ('9', 2789, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleInt16X32#"),
+    ('9', 2790, InTerms, Just "GHC.Internal.Prim", "shuffleInt32X16#"),
+    ('9', 2791, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleInt32X16#"),
+    ('9', 2792, InTerms, Just "GHC.Internal.Prim", "shuffleInt64X8#"),
+    ('9', 2793, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleInt64X8#"),
+    ('9', 2794, InTerms, Just "GHC.Internal.Prim", "shuffleWord8X16#"),
+    ('9', 2795, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleWord8X16#"),
+    ('9', 2796, InTerms, Just "GHC.Internal.Prim", "shuffleWord16X8#"),
+    ('9', 2797, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleWord16X8#"),
+    ('9', 2798, InTerms, Just "GHC.Internal.Prim", "shuffleWord32X4#"),
+    ('9', 2799, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleWord32X4#"),
+    ('9', 2800, InTerms, Just "GHC.Internal.Prim", "shuffleWord64X2#"),
+    ('9', 2801, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleWord64X2#"),
+    ('9', 2802, InTerms, Just "GHC.Internal.Prim", "shuffleWord8X32#"),
+    ('9', 2803, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleWord8X32#"),
+    ('9', 2804, InTerms, Just "GHC.Internal.Prim", "shuffleWord16X16#"),
+    ('9', 2805, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleWord16X16#"),
+    ('9', 2806, InTerms, Just "GHC.Internal.Prim", "shuffleWord32X8#"),
+    ('9', 2807, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleWord32X8#"),
+    ('9', 2808, InTerms, Just "GHC.Internal.Prim", "shuffleWord64X4#"),
+    ('9', 2809, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleWord64X4#"),
+    ('9', 2810, InTerms, Just "GHC.Internal.Prim", "shuffleWord8X64#"),
+    ('9', 2811, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleWord8X64#"),
+    ('9', 2812, InTerms, Just "GHC.Internal.Prim", "shuffleWord16X32#"),
+    ('9', 2813, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleWord16X32#"),
+    ('9', 2814, InTerms, Just "GHC.Internal.Prim", "shuffleWord32X16#"),
+    ('9', 2815, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleWord32X16#"),
+    ('9', 2816, InTerms, Just "GHC.Internal.Prim", "shuffleWord64X8#"),
+    ('9', 2817, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleWord64X8#"),
+    ('9', 2818, InTerms, Just "GHC.Internal.Prim", "shuffleFloatX4#"),
+    ('9', 2819, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleFloatX4#"),
+    ('9', 2820, InTerms, Just "GHC.Internal.Prim", "shuffleDoubleX2#"),
+    ('9', 2821, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleDoubleX2#"),
+    ('9', 2822, InTerms, Just "GHC.Internal.Prim", "shuffleFloatX8#"),
+    ('9', 2823, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleFloatX8#"),
+    ('9', 2824, InTerms, Just "GHC.Internal.Prim", "shuffleDoubleX4#"),
+    ('9', 2825, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleDoubleX4#"),
+    ('9', 2826, InTerms, Just "GHC.Internal.Prim", "shuffleFloatX16#"),
+    ('9', 2827, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleFloatX16#"),
+    ('9', 2828, InTerms, Just "GHC.Internal.Prim", "shuffleDoubleX8#"),
+    ('9', 2829, InTerms, Just "GHC.Internal.PrimopWrappers", "shuffleDoubleX8#"),
+    ('9', 2830, InTerms, Just "GHC.Internal.Prim", "minInt8X16#"),
+    ('9', 2831, InTerms, Just "GHC.Internal.PrimopWrappers", "minInt8X16#"),
+    ('9', 2832, InTerms, Just "GHC.Internal.Prim", "minInt16X8#"),
+    ('9', 2833, InTerms, Just "GHC.Internal.PrimopWrappers", "minInt16X8#"),
+    ('9', 2834, InTerms, Just "GHC.Internal.Prim", "minInt32X4#"),
+    ('9', 2835, InTerms, Just "GHC.Internal.PrimopWrappers", "minInt32X4#"),
+    ('9', 2836, InTerms, Just "GHC.Internal.Prim", "minInt64X2#"),
+    ('9', 2837, InTerms, Just "GHC.Internal.PrimopWrappers", "minInt64X2#"),
+    ('9', 2838, InTerms, Just "GHC.Internal.Prim", "minInt8X32#"),
+    ('9', 2839, InTerms, Just "GHC.Internal.PrimopWrappers", "minInt8X32#"),
+    ('9', 2840, InTerms, Just "GHC.Internal.Prim", "minInt16X16#"),
+    ('9', 2841, InTerms, Just "GHC.Internal.PrimopWrappers", "minInt16X16#"),
+    ('9', 2842, InTerms, Just "GHC.Internal.Prim", "minInt32X8#"),
+    ('9', 2843, InTerms, Just "GHC.Internal.PrimopWrappers", "minInt32X8#"),
+    ('9', 2844, InTerms, Just "GHC.Internal.Prim", "minInt64X4#"),
+    ('9', 2845, InTerms, Just "GHC.Internal.PrimopWrappers", "minInt64X4#"),
+    ('9', 2846, InTerms, Just "GHC.Internal.Prim", "minInt8X64#"),
+    ('9', 2847, InTerms, Just "GHC.Internal.PrimopWrappers", "minInt8X64#"),
+    ('9', 2848, InTerms, Just "GHC.Internal.Prim", "minInt16X32#"),
+    ('9', 2849, InTerms, Just "GHC.Internal.PrimopWrappers", "minInt16X32#"),
+    ('9', 2850, InTerms, Just "GHC.Internal.Prim", "minInt32X16#"),
+    ('9', 2851, InTerms, Just "GHC.Internal.PrimopWrappers", "minInt32X16#"),
+    ('9', 2852, InTerms, Just "GHC.Internal.Prim", "minInt64X8#"),
+    ('9', 2853, InTerms, Just "GHC.Internal.PrimopWrappers", "minInt64X8#"),
+    ('9', 2854, InTerms, Just "GHC.Internal.Prim", "minWord8X16#"),
+    ('9', 2855, InTerms, Just "GHC.Internal.PrimopWrappers", "minWord8X16#"),
+    ('9', 2856, InTerms, Just "GHC.Internal.Prim", "minWord16X8#"),
+    ('9', 2857, InTerms, Just "GHC.Internal.PrimopWrappers", "minWord16X8#"),
+    ('9', 2858, InTerms, Just "GHC.Internal.Prim", "minWord32X4#"),
+    ('9', 2859, InTerms, Just "GHC.Internal.PrimopWrappers", "minWord32X4#"),
+    ('9', 2860, InTerms, Just "GHC.Internal.Prim", "minWord64X2#"),
+    ('9', 2861, InTerms, Just "GHC.Internal.PrimopWrappers", "minWord64X2#"),
+    ('9', 2862, InTerms, Just "GHC.Internal.Prim", "minWord8X32#"),
+    ('9', 2863, InTerms, Just "GHC.Internal.PrimopWrappers", "minWord8X32#"),
+    ('9', 2864, InTerms, Just "GHC.Internal.Prim", "minWord16X16#"),
+    ('9', 2865, InTerms, Just "GHC.Internal.PrimopWrappers", "minWord16X16#"),
+    ('9', 2866, InTerms, Just "GHC.Internal.Prim", "minWord32X8#"),
+    ('9', 2867, InTerms, Just "GHC.Internal.PrimopWrappers", "minWord32X8#"),
+    ('9', 2868, InTerms, Just "GHC.Internal.Prim", "minWord64X4#"),
+    ('9', 2869, InTerms, Just "GHC.Internal.PrimopWrappers", "minWord64X4#"),
+    ('9', 2870, InTerms, Just "GHC.Internal.Prim", "minWord8X64#"),
+    ('9', 2871, InTerms, Just "GHC.Internal.PrimopWrappers", "minWord8X64#"),
+    ('9', 2872, InTerms, Just "GHC.Internal.Prim", "minWord16X32#"),
+    ('9', 2873, InTerms, Just "GHC.Internal.PrimopWrappers", "minWord16X32#"),
+    ('9', 2874, InTerms, Just "GHC.Internal.Prim", "minWord32X16#"),
+    ('9', 2875, InTerms, Just "GHC.Internal.PrimopWrappers", "minWord32X16#"),
+    ('9', 2876, InTerms, Just "GHC.Internal.Prim", "minWord64X8#"),
+    ('9', 2877, InTerms, Just "GHC.Internal.PrimopWrappers", "minWord64X8#"),
+    ('9', 2878, InTerms, Just "GHC.Internal.Prim", "minFloatX4#"),
+    ('9', 2879, InTerms, Just "GHC.Internal.PrimopWrappers", "minFloatX4#"),
+    ('9', 2880, InTerms, Just "GHC.Internal.Prim", "minDoubleX2#"),
+    ('9', 2881, InTerms, Just "GHC.Internal.PrimopWrappers", "minDoubleX2#"),
+    ('9', 2882, InTerms, Just "GHC.Internal.Prim", "minFloatX8#"),
+    ('9', 2883, InTerms, Just "GHC.Internal.PrimopWrappers", "minFloatX8#"),
+    ('9', 2884, InTerms, Just "GHC.Internal.Prim", "minDoubleX4#"),
+    ('9', 2885, InTerms, Just "GHC.Internal.PrimopWrappers", "minDoubleX4#"),
+    ('9', 2886, InTerms, Just "GHC.Internal.Prim", "minFloatX16#"),
+    ('9', 2887, InTerms, Just "GHC.Internal.PrimopWrappers", "minFloatX16#"),
+    ('9', 2888, InTerms, Just "GHC.Internal.Prim", "minDoubleX8#"),
+    ('9', 2889, InTerms, Just "GHC.Internal.PrimopWrappers", "minDoubleX8#"),
+    ('9', 2890, InTerms, Just "GHC.Internal.Prim", "maxInt8X16#"),
+    ('9', 2891, InTerms, Just "GHC.Internal.PrimopWrappers", "maxInt8X16#"),
+    ('9', 2892, InTerms, Just "GHC.Internal.Prim", "maxInt16X8#"),
+    ('9', 2893, InTerms, Just "GHC.Internal.PrimopWrappers", "maxInt16X8#"),
+    ('9', 2894, InTerms, Just "GHC.Internal.Prim", "maxInt32X4#"),
+    ('9', 2895, InTerms, Just "GHC.Internal.PrimopWrappers", "maxInt32X4#"),
+    ('9', 2896, InTerms, Just "GHC.Internal.Prim", "maxInt64X2#"),
+    ('9', 2897, InTerms, Just "GHC.Internal.PrimopWrappers", "maxInt64X2#"),
+    ('9', 2898, InTerms, Just "GHC.Internal.Prim", "maxInt8X32#"),
+    ('9', 2899, InTerms, Just "GHC.Internal.PrimopWrappers", "maxInt8X32#"),
+    ('9', 2900, InTerms, Just "GHC.Internal.Prim", "maxInt16X16#"),
+    ('9', 2901, InTerms, Just "GHC.Internal.PrimopWrappers", "maxInt16X16#"),
+    ('9', 2902, InTerms, Just "GHC.Internal.Prim", "maxInt32X8#"),
+    ('9', 2903, InTerms, Just "GHC.Internal.PrimopWrappers", "maxInt32X8#"),
+    ('9', 2904, InTerms, Just "GHC.Internal.Prim", "maxInt64X4#"),
+    ('9', 2905, InTerms, Just "GHC.Internal.PrimopWrappers", "maxInt64X4#"),
+    ('9', 2906, InTerms, Just "GHC.Internal.Prim", "maxInt8X64#"),
+    ('9', 2907, InTerms, Just "GHC.Internal.PrimopWrappers", "maxInt8X64#"),
+    ('9', 2908, InTerms, Just "GHC.Internal.Prim", "maxInt16X32#"),
+    ('9', 2909, InTerms, Just "GHC.Internal.PrimopWrappers", "maxInt16X32#"),
+    ('9', 2910, InTerms, Just "GHC.Internal.Prim", "maxInt32X16#"),
+    ('9', 2911, InTerms, Just "GHC.Internal.PrimopWrappers", "maxInt32X16#"),
+    ('9', 2912, InTerms, Just "GHC.Internal.Prim", "maxInt64X8#"),
+    ('9', 2913, InTerms, Just "GHC.Internal.PrimopWrappers", "maxInt64X8#"),
+    ('9', 2914, InTerms, Just "GHC.Internal.Prim", "maxWord8X16#"),
+    ('9', 2915, InTerms, Just "GHC.Internal.PrimopWrappers", "maxWord8X16#"),
+    ('9', 2916, InTerms, Just "GHC.Internal.Prim", "maxWord16X8#"),
+    ('9', 2917, InTerms, Just "GHC.Internal.PrimopWrappers", "maxWord16X8#"),
+    ('9', 2918, InTerms, Just "GHC.Internal.Prim", "maxWord32X4#"),
+    ('9', 2919, InTerms, Just "GHC.Internal.PrimopWrappers", "maxWord32X4#"),
+    ('9', 2920, InTerms, Just "GHC.Internal.Prim", "maxWord64X2#"),
+    ('9', 2921, InTerms, Just "GHC.Internal.PrimopWrappers", "maxWord64X2#"),
+    ('9', 2922, InTerms, Just "GHC.Internal.Prim", "maxWord8X32#"),
+    ('9', 2923, InTerms, Just "GHC.Internal.PrimopWrappers", "maxWord8X32#"),
+    ('9', 2924, InTerms, Just "GHC.Internal.Prim", "maxWord16X16#"),
+    ('9', 2925, InTerms, Just "GHC.Internal.PrimopWrappers", "maxWord16X16#"),
+    ('9', 2926, InTerms, Just "GHC.Internal.Prim", "maxWord32X8#"),
+    ('9', 2927, InTerms, Just "GHC.Internal.PrimopWrappers", "maxWord32X8#"),
+    ('9', 2928, InTerms, Just "GHC.Internal.Prim", "maxWord64X4#"),
+    ('9', 2929, InTerms, Just "GHC.Internal.PrimopWrappers", "maxWord64X4#"),
+    ('9', 2930, InTerms, Just "GHC.Internal.Prim", "maxWord8X64#"),
+    ('9', 2931, InTerms, Just "GHC.Internal.PrimopWrappers", "maxWord8X64#"),
+    ('9', 2932, InTerms, Just "GHC.Internal.Prim", "maxWord16X32#"),
+    ('9', 2933, InTerms, Just "GHC.Internal.PrimopWrappers", "maxWord16X32#"),
+    ('9', 2934, InTerms, Just "GHC.Internal.Prim", "maxWord32X16#"),
+    ('9', 2935, InTerms, Just "GHC.Internal.PrimopWrappers", "maxWord32X16#"),
+    ('9', 2936, InTerms, Just "GHC.Internal.Prim", "maxWord64X8#"),
+    ('9', 2937, InTerms, Just "GHC.Internal.PrimopWrappers", "maxWord64X8#"),
+    ('9', 2938, InTerms, Just "GHC.Internal.Prim", "maxFloatX4#"),
+    ('9', 2939, InTerms, Just "GHC.Internal.PrimopWrappers", "maxFloatX4#"),
+    ('9', 2940, InTerms, Just "GHC.Internal.Prim", "maxDoubleX2#"),
+    ('9', 2941, InTerms, Just "GHC.Internal.PrimopWrappers", "maxDoubleX2#"),
+    ('9', 2942, InTerms, Just "GHC.Internal.Prim", "maxFloatX8#"),
+    ('9', 2943, InTerms, Just "GHC.Internal.PrimopWrappers", "maxFloatX8#"),
+    ('9', 2944, InTerms, Just "GHC.Internal.Prim", "maxDoubleX4#"),
+    ('9', 2945, InTerms, Just "GHC.Internal.PrimopWrappers", "maxDoubleX4#"),
+    ('9', 2946, InTerms, Just "GHC.Internal.Prim", "maxFloatX16#"),
+    ('9', 2947, InTerms, Just "GHC.Internal.PrimopWrappers", "maxFloatX16#"),
+    ('9', 2948, InTerms, Just "GHC.Internal.Prim", "maxDoubleX8#"),
+    ('9', 2949, InTerms, Just "GHC.Internal.PrimopWrappers", "maxDoubleX8#"),
+    ('9', 2950, InTerms, Just "GHC.Internal.Prim", "prefetchByteArray3#"),
+    ('9', 2951, InTerms, Just "GHC.Internal.PrimopWrappers", "prefetchByteArray3#"),
+    ('9', 2952, InTerms, Just "GHC.Internal.Prim", "prefetchMutableByteArray3#"),
+    ('9', 2953, InTerms, Just "GHC.Internal.PrimopWrappers", "prefetchMutableByteArray3#"),
+    ('9', 2954, InTerms, Just "GHC.Internal.Prim", "prefetchAddr3#"),
+    ('9', 2955, InTerms, Just "GHC.Internal.PrimopWrappers", "prefetchAddr3#"),
+    ('9', 2956, InTerms, Just "GHC.Internal.Prim", "prefetchValue3#"),
+    ('9', 2957, InTerms, Just "GHC.Internal.PrimopWrappers", "prefetchValue3#"),
+    ('9', 2958, InTerms, Just "GHC.Internal.Prim", "prefetchByteArray2#"),
+    ('9', 2959, InTerms, Just "GHC.Internal.PrimopWrappers", "prefetchByteArray2#"),
+    ('9', 2960, InTerms, Just "GHC.Internal.Prim", "prefetchMutableByteArray2#"),
+    ('9', 2961, InTerms, Just "GHC.Internal.PrimopWrappers", "prefetchMutableByteArray2#"),
+    ('9', 2962, InTerms, Just "GHC.Internal.Prim", "prefetchAddr2#"),
+    ('9', 2963, InTerms, Just "GHC.Internal.PrimopWrappers", "prefetchAddr2#"),
+    ('9', 2964, InTerms, Just "GHC.Internal.Prim", "prefetchValue2#"),
+    ('9', 2965, InTerms, Just "GHC.Internal.PrimopWrappers", "prefetchValue2#"),
+    ('9', 2966, InTerms, Just "GHC.Internal.Prim", "prefetchByteArray1#"),
+    ('9', 2967, InTerms, Just "GHC.Internal.PrimopWrappers", "prefetchByteArray1#"),
+    ('9', 2968, InTerms, Just "GHC.Internal.Prim", "prefetchMutableByteArray1#"),
+    ('9', 2969, InTerms, Just "GHC.Internal.PrimopWrappers", "prefetchMutableByteArray1#"),
+    ('9', 2970, InTerms, Just "GHC.Internal.Prim", "prefetchAddr1#"),
+    ('9', 2971, InTerms, Just "GHC.Internal.PrimopWrappers", "prefetchAddr1#"),
+    ('9', 2972, InTerms, Just "GHC.Internal.Prim", "prefetchValue1#"),
+    ('9', 2973, InTerms, Just "GHC.Internal.PrimopWrappers", "prefetchValue1#"),
+    ('9', 2974, InTerms, Just "GHC.Internal.Prim", "prefetchByteArray0#"),
+    ('9', 2975, InTerms, Just "GHC.Internal.PrimopWrappers", "prefetchByteArray0#"),
+    ('9', 2976, InTerms, Just "GHC.Internal.Prim", "prefetchMutableByteArray0#"),
+    ('9', 2977, InTerms, Just "GHC.Internal.PrimopWrappers", "prefetchMutableByteArray0#"),
+    ('9', 2978, InTerms, Just "GHC.Internal.Prim", "prefetchAddr0#"),
+    ('9', 2979, InTerms, Just "GHC.Internal.PrimopWrappers", "prefetchAddr0#"),
+    ('9', 2980, InTerms, Just "GHC.Internal.Prim", "prefetchValue0#"),
+    ('9', 2981, InTerms, Just "GHC.Internal.PrimopWrappers", "prefetchValue0#"),
+    ('b', 5, InTypes, Just "GHC.Internal.Types", "WordBox"),
+    ('b', 6, InTerms, Just "GHC.Internal.Types", "$tcWordBox"),
+    ('b', 7, InTerms, Just "GHC.Internal.Types", "MkWordBox"),
+    ('b', 8, InTerms, Just "GHC.Internal.Types", "MkWordBox"),
+    ('b', 9, InTerms, Just "GHC.Internal.Types", "$tc'MkWordBox"),
+    ('b', 10, InTypes, Just "GHC.Internal.Types", "IntBox"),
+    ('b', 11, InTerms, Just "GHC.Internal.Types", "$tcIntBox"),
+    ('b', 12, InTerms, Just "GHC.Internal.Types", "MkIntBox"),
+    ('b', 13, InTerms, Just "GHC.Internal.Types", "MkIntBox"),
+    ('b', 14, InTerms, Just "GHC.Internal.Types", "$tc'MkIntBox"),
+    ('b', 15, InTypes, Just "GHC.Internal.Types", "FloatBox"),
+    ('b', 16, InTerms, Just "GHC.Internal.Types", "$tcFloatBox"),
+    ('b', 17, InTerms, Just "GHC.Internal.Types", "MkFloatBox"),
+    ('b', 18, InTerms, Just "GHC.Internal.Types", "MkFloatBox"),
+    ('b', 19, InTerms, Just "GHC.Internal.Types", "$tc'MkFloatBox"),
+    ('b', 20, InTypes, Just "GHC.Internal.Types", "DoubleBox"),
+    ('b', 21, InTerms, Just "GHC.Internal.Types", "$tcDoubleBox"),
+    ('b', 22, InTerms, Just "GHC.Internal.Types", "MkDoubleBox"),
+    ('b', 23, InTerms, Just "GHC.Internal.Types", "MkDoubleBox"),
+    ('b', 24, InTerms, Just "GHC.Internal.Types", "$tc'MkDoubleBox"),
+    ('b', 25, InTypes, Just "GHC.Internal.Types", "Int8Box"),
+    ('b', 26, InTerms, Just "GHC.Internal.Types", "$tcInt8Box"),
+    ('b', 27, InTerms, Just "GHC.Internal.Types", "MkInt8Box"),
+    ('b', 28, InTerms, Just "GHC.Internal.Types", "MkInt8Box"),
+    ('b', 29, InTerms, Just "GHC.Internal.Types", "$tc'MkInt8Box"),
+    ('b', 30, InTypes, Just "GHC.Internal.Types", "Int16Box"),
+    ('b', 31, InTerms, Just "GHC.Internal.Types", "$tcInt16Box"),
+    ('b', 32, InTerms, Just "GHC.Internal.Types", "MkInt16Box"),
+    ('b', 33, InTerms, Just "GHC.Internal.Types", "MkInt16Box"),
+    ('b', 34, InTerms, Just "GHC.Internal.Types", "$tc'MkInt16Box"),
+    ('b', 35, InTypes, Just "GHC.Internal.Types", "Int32Box"),
+    ('b', 36, InTerms, Just "GHC.Internal.Types", "$tcInt32Box"),
+    ('b', 37, InTerms, Just "GHC.Internal.Types", "MkInt32Box"),
+    ('b', 38, InTerms, Just "GHC.Internal.Types", "MkInt32Box"),
+    ('b', 39, InTerms, Just "GHC.Internal.Types", "$tc'MkInt32Box"),
+    ('b', 40, InTypes, Just "GHC.Internal.Types", "Int64Box"),
+    ('b', 41, InTerms, Just "GHC.Internal.Types", "$tcInt64Box"),
+    ('b', 42, InTerms, Just "GHC.Internal.Types", "MkInt64Box"),
+    ('b', 43, InTerms, Just "GHC.Internal.Types", "MkInt64Box"),
+    ('b', 44, InTerms, Just "GHC.Internal.Types", "$tc'MkInt64Box"),
+    ('b', 45, InTypes, Just "GHC.Internal.Types", "Word8Box"),
+    ('b', 46, InTerms, Just "GHC.Internal.Types", "$tcWord8Box"),
+    ('b', 47, InTerms, Just "GHC.Internal.Types", "MkWord8Box"),
+    ('b', 48, InTerms, Just "GHC.Internal.Types", "MkWord8Box"),
+    ('b', 49, InTerms, Just "GHC.Internal.Types", "$tc'MkWord8Box"),
+    ('b', 50, InTypes, Just "GHC.Internal.Types", "Word16Box"),
+    ('b', 51, InTerms, Just "GHC.Internal.Types", "$tcWord16Box"),
+    ('b', 52, InTerms, Just "GHC.Internal.Types", "MkWord16Box"),
+    ('b', 53, InTerms, Just "GHC.Internal.Types", "MkWord16Box"),
+    ('b', 54, InTerms, Just "GHC.Internal.Types", "$tc'MkWord16Box"),
+    ('b', 55, InTypes, Just "GHC.Internal.Types", "Word32Box"),
+    ('b', 56, InTerms, Just "GHC.Internal.Types", "$tcWord32Box"),
+    ('b', 57, InTerms, Just "GHC.Internal.Types", "MkWord32Box"),
+    ('b', 58, InTerms, Just "GHC.Internal.Types", "MkWord32Box"),
+    ('b', 59, InTerms, Just "GHC.Internal.Types", "$tc'MkWord32Box"),
+    ('b', 60, InTypes, Just "GHC.Internal.Types", "Word64Box"),
+    ('b', 61, InTerms, Just "GHC.Internal.Types", "$tcWord64Box"),
+    ('b', 62, InTerms, Just "GHC.Internal.Types", "MkWord64Box"),
+    ('b', 63, InTerms, Just "GHC.Internal.Types", "MkWord64Box"),
+    ('b', 64, InTerms, Just "GHC.Internal.Types", "$tc'MkWord64Box"),
+    ('b', 65, InTypes, Just "GHC.Internal.Types", "LiftBox"),
+    ('b', 66, InTerms, Just "GHC.Internal.Types", "$tcLiftBox"),
+    ('b', 67, InTerms, Just "GHC.Internal.Types", "MkLiftBox"),
+    ('b', 68, InTerms, Just "GHC.Internal.Types", "MkLiftBox"),
+    ('b', 69, InTerms, Just "GHC.Internal.Types", "$tc'MkLiftBox"),
+    ('b', 70, InTypes, Just "GHC.Internal.Types", "DictBox"),
+    ('b', 71, InTerms, Just "GHC.Internal.Types", "$tcDictBox"),
+    ('b', 72, InTerms, Just "GHC.Internal.Types", "MkDictBox"),
+    ('b', 73, InTerms, Just "GHC.Internal.Types", "MkDictBox"),
+    ('b', 74, InTerms, Just "GHC.Internal.Types", "$tc'MkDictBox")
+  ]
+
+-- | The module GHC keeps the primitive operations in, which has no
+-- interface file, and the fixities declared there.
+primops :: (Text, [(Text, Fixity)])
+primops =
+  ( "GHC.Internal.Prim",
+    [ ("*#", Fixity LeftAssoc 7),
+      ("*##", Fixity LeftAssoc 7),
+      ("**##", Fixity LeftAssoc 9),
+      ("+#", Fixity LeftAssoc 6),
+      ("+##", Fixity LeftAssoc 6),
+      ("-#", Fixity LeftAssoc 6),
+      ("-##", Fixity LeftAssoc 6),
+      ("/##", Fixity LeftAssoc 7),
+      ("/=#", Fixity NoAssoc 4),
+      ("/=##", Fixity NoAssoc 4),
+      ("<#", Fixity NoAssoc 4),
+      ("<##", Fixity NoAssoc 4),
+      ("<=#", Fixity NoAssoc 4),
+      ("<=##", Fixity NoAssoc 4),
+      ("==#", Fixity NoAssoc 4),
+      ("==##", Fixity NoAssoc 4),
+      (">#", Fixity NoAssoc 4),
+      (">##", Fixity NoAssoc 4),
+      (">=#", Fixity NoAssoc 4),
+      (">=##", Fixity NoAssoc 4),
+      ("seq", Fixity RightAssoc 0)
+    ]
+  )
diff --git a/src/Tilia/Fixity/PackageDb.hs b/src/Tilia/Fixity/PackageDb.hs
--- a/src/Tilia/Fixity/PackageDb.hs
+++ b/src/Tilia/Fixity/PackageDb.hs
@@ -30,9 +30,11 @@
     ipName :: Text,
     -- | Package version
     ipVersion :: Text,
-    -- | Every module it holds, hidden ones included, with re-export clauses
-    -- dropped.
+    -- | Every module it holds, hidden ones included.
     ipModules :: [Text],
+    -- | The modules it exposes that another package holds, each with its
+    -- name there.
+    ipReexports :: [(Text, Text)],
     -- | Where its compiled interfaces are.
     ipImportDirs :: [FilePath]
   }
@@ -50,7 +52,8 @@
 
 -- | Everything the compiler can see, and where it read it from.
 --
--- Empty if @ghc-pkg@ cannot be run, which is not fatal.
+-- Empty if @ghc-pkg@ cannot be run, which leaves the packages that come with
+-- the compiler unread.
 --
 -- @ghc-pkg@ is invoked rather than a database read off disk because where
 -- the databases are is not knowable from outside: under Nix the wrapper
@@ -110,6 +113,8 @@
           concatMap
             (maybe [] moduleNames . (`Map.lookup` fields))
             ["exposed-modules", "hidden-modules"],
+        ipReexports =
+          maybe [] reexportedModules (Map.lookup "exposed-modules" fields),
         ipImportDirs =
           maybe
             []
@@ -123,9 +128,9 @@
   Nothing -> path
   Just root -> T.replace "${pkgroot}" (unquote root) path
 
--- | The module names in an @exposed-modules@ field.
+-- | The modules an @exposed-modules@ field names that the package holds.
 moduleNames :: Text -> [Text]
-moduleNames = go . filter (not . T.null) . concatMap (T.split (== ',')) . T.words
+moduleNames = go . moduleTokens
   where
     go = \case
       (_ : "from" : _ : rest) -> go rest
@@ -135,6 +140,21 @@
     looksLikeModule m = case T.uncons m of
       Just (c, _) -> c `elem` ['A' .. 'Z'] && not (T.any (== ':') m)
       Nothing -> False
+
+-- | The modules an @exposed-modules@ field names that another package
+-- holds, each with its name there.
+reexportedModules :: Text -> [(Text, Text)]
+reexportedModules = go . moduleTokens
+  where
+    go = \case
+      (m : "from" : original : rest) ->
+        (m, T.takeWhileEnd (/= ':') original) : go rest
+      (_ : rest) -> go rest
+      [] -> []
+
+-- | The words of a field that lists modules.
+moduleTokens :: Text -> [Text]
+moduleTokens = filter (not . T.null) . concatMap (T.split (== ',')) . T.words
 
 -- | Split a record into its fields.
 parseFields :: Text -> Map.Map Text Text
diff --git a/src/Tilia/Fixity/Plan.hs b/src/Tilia/Fixity/Plan.hs
--- a/src/Tilia/Fixity/Plan.hs
+++ b/src/Tilia/Fixity/Plan.hs
@@ -41,1845 +41,1827 @@
     Resolver (..),
     newResolver,
     newResolverVia,
-    withReexports,
-    scopeFor,
-  )
-where
-
-import Codec.Archive.Tar qualified as Tar
-import Codec.Compression.GZip qualified as GZip
-import Control.Applicative ((<|>))
-import Control.Concurrent (getNumCapabilities, newEmptyMVar, putMVar, readMVar)
-import Control.Concurrent.QSem (newQSem, signalQSem, waitQSem)
-import Control.Exception (bracket_)
-import Control.Monad (filterM, foldM, join, void)
-import Crypto.Hash.SHA256 qualified as SHA256
-import Data.Aeson
-  ( FromJSON (..),
-    Value,
-    decodeStrict,
-    eitherDecodeFileStrict,
-    withObject,
-    (.:),
-    (.:?),
-  )
-import Data.Aeson.Types (parseMaybe)
-import Data.ByteString qualified as BS
-import Data.ByteString.Base16 qualified as B16
-import Data.ByteString.Lazy qualified as BL
-import Data.Choice (Choice, fromBool, isTrue, pattern Do)
-import Data.Foldable (toList, traverse_)
-import Data.IORef
-import Data.List (isSuffixOf)
-import Data.List qualified
-import Data.List.NonEmpty (NonEmpty ((:|)))
-import Data.List.NonEmpty qualified as NE
-import Data.Map.Strict (Map)
-import Data.Map.Strict qualified as Map
-import Data.Maybe (catMaybes, fromMaybe, listToMaybe, mapMaybe)
-import Data.Set (Set)
-import Data.Set qualified as Set
-import Data.Text (Text)
-import Data.Text qualified as T
-import Data.Text.Encoding qualified as T
-import Data.Text.Read qualified as T
-import GHC.Hs (HsModule)
-import GHC.Hs.Extension (GhcPs)
-import GHC.IO.Handle (hDuplicate)
-import GHC.LanguageExtensions.Type (Extension (ImplicitPrelude))
-import System.Directory
-  ( XdgDirectory (XdgCache),
-    doesFileExist,
-    getAppUserDataDirectory,
-    getModificationTime,
-    getXdgDirectory,
-    listDirectory,
-  )
-import System.Environment (lookupEnv)
-import System.Exit (ExitCode (..))
-import System.FilePath (isRelative, takeDirectory, (</>))
-import System.IO (hFlush, stderr)
-import System.Info qualified
-import System.Process
-  ( StdStream (Inherit, UseHandle),
-    createProcess,
-    cwd,
-    proc,
-    std_err,
-    std_out,
-    waitForProcess,
-  )
-import Tilia.Cabal.Package (newPackageReader)
-import Tilia.Cpp.Directives (branchLeaves, withoutRuledOut)
-import Tilia.Cpp.Macros (Macros (..))
-import Tilia.Fixity
-import Tilia.Fixity.Builtin (builtinFixities)
-import Tilia.Fixity.ByHand (byHandFixities, hscFixities)
-import Tilia.Fixity.Cabal
-  ( cabalFileAtTop,
-    cabalFileInArchive,
-    containedModules,
-    declaredExtensions,
-    entryPosixPath,
-    packageModules,
-    sourceDirs,
-  )
-import Tilia.Fixity.Cache
-import Tilia.Fixity.Interface
-import Tilia.Fixity.PackageDb
-import Tilia.Parser
-import Tilia.Pragma (effectiveExtensions)
-import Tilia.Process (readProgramOutput)
-import Tilia.Utils (inParallel, quietly)
-
-----------------------------------------------------------------------------
--- The plan
-
--- | One package of a build plan.
-data PlanPackage = PlanPackage
-  { -- | Package name
-    ppName :: Text,
-    -- | Package version
-    ppVersion :: Text,
-    -- | Package source
-    ppSource :: PackageSource,
-    -- | Which components of the package the entry is about.
-    --
-    -- Usually one, because @cabal@ configures a package one component at a
-    -- time and gives each its own entry. A package it cannot take apart—one
-    -- with a @Custom@ build type, whose @Setup.hs@ is entitled to do as it
-    -- pleases—is planned whole instead, and its entry is about every
-    -- component at once.
-    ppComponents :: [Text]
-  }
-  deriving (Eq, Show)
-
--- | Where a package's source is.
-data PackageSource
-  = -- | Already installed, so @cabal@ will not build it.
-    --
-    -- Not the same as "ships with the compiler", though it includes those.
-    PreExisting
-  | -- | A directory on this machine—the project being formatted, or a
-    -- sibling of it in the same repository.
-    LocalPackage FilePath
-  | -- | Fetched from a repository as a tarball, with the SHA-256 the plan
-    -- expects it to have and where it was fetched from.
-    RepoPackage (Maybe Text) RepoProvenance
-  | -- | A @source-repository-package@ we have not found the sources of.
-    SourceRepo
-  | -- | The same, found unpacked under the project's own @dist-newstyle@.
-    CheckedOut FilePath
-  deriving (Eq, Show)
-
--- | Which repository a package was fetched from, as far as it bears on
--- finding the tarball afterwards.
-data RepoProvenance
-  = -- | One @cabal@ downloads from, named by its URI. The tarball goes into
-    -- the package cache, in a directory named after the repository as the
-    -- configuration spells it.
-    RepoDownloaded Text
-  | -- | A directory of tarballs, named by @file+noindex@. Nothing is
-    -- downloaded and nothing is cached: the tarball is already sitting
-    -- there, beside the index @cabal@ wrote for it.
-    RepoFromDirectory FilePath
-  | -- | A plan that does not say. Older @cabal@ wrote nothing here, and
-    -- Hackage is the only guess worth making.
-    RepoNoProvenance
-  deriving (Eq, Show)
-
--- | Is there a tarball to go and read?
-isFetchable :: PlanPackage -> Bool
-isFetchable p = case ppSource p of
-  RepoPackage _ _ -> True
-  _ -> False
-
--- | Every package the compiler can see.
-getInstalledPackages :: Maybe Cache -> IO [InstalledPackage]
-getInstalledPackages cache =
-  remembered >>= \case
-    Just packages -> pure packages
-    Nothing -> do
-      found <- readInstalledPackages
-      traverse_ (`storeInstalled` found) cache
-      pure (installedPackages found)
-  where
-    remembered = maybe (pure Nothing) cachedInstalled cache
-
--- | Summarize a 'BuildPlan', and the environment it will be read in, by
--- hashing over both.
-tokenForBuildPlan :: BuildPlan -> IO PlanToken
-tokenForBuildPlan plan = do
-  environment <- compilerIdentity
-  pure (tokenForEnvAndBuildPlan environment plan)
-
--- | Similar to 'tokenForBuildPlan', but allows passing a compiler identity
--- as an argument.
-tokenForEnvAndBuildPlan :: Text -> BuildPlan -> PlanToken
-tokenForEnvAndBuildPlan environment plan =
-  PlanToken
-    . T.take 16
-    . T.decodeUtf8Lenient
-    . B16.encode
-    . SHA256.hash
-    . T.encodeUtf8
-    $ T.intercalate
-      "\n"
-      (environment : bpCompiler plan : Data.List.sort (fmap cacheKey (bpPackages plan)))
-
--- | The SHA-256 the plan expects this package's tarball to have.
-sourceHashOf :: PlanPackage -> Maybe Text
-sourceHashOf p = case ppSource p of
-  RepoPackage hash _ -> hash
-  _ -> Nothing
-
--- | A resolved build plan.
-data BuildPlan = BuildPlan
-  { bpCompiler :: Text,
-    bpPackages :: [PlanPackage]
-  }
-  deriving (Eq, Show)
-
-instance FromJSON BuildPlan where
-  parseJSON = withObject "BuildPlan" $ \o ->
-    BuildPlan
-      <$> o .: "compiler-id"
-      <*> o .: "install-plan"
-
-instance FromJSON PlanPackage where
-  parseJSON = withObject "PlanPackage" $ \o -> do
-    name <- o .: "pkg-name"
-    version <- o .: "pkg-version"
-    kind <- o .:? "type"
-    sourceKind <- o .:? "pkg-src" >>= traverse (.: "type")
-    sourcePath <- o .:? "pkg-src" >>= traverse (.:? "path")
-    sourceHash <- o .:? "pkg-src-sha256"
-    repo <- o .:? "pkg-src" >>= traverse (.:? "repo")
-    repoKind <- traverse (traverse (.:? "type")) repo
-    repoUri <- traverse (traverse (.:? "uri")) repo
-    repoPath <- traverse (traverse (.:? "path")) repo
-    named <- o .:? "component-name"
-    whole <- o .:? "components"
-    pure
-      PlanPackage
-        { ppName = name,
-          ppVersion = version,
-          ppComponents = componentsOf named whole,
-          ppSource = case (kind :: Maybe Text, sourceKind :: Maybe Text) of
-            (Just "pre-existing", _) -> PreExisting
-            (_, Just "repo-tar") ->
-              RepoPackage
-                sourceHash
-                ( case (join (join repoKind) :: Maybe Text, join (join repoPath), join (join repoUri)) of
-                    (Just "local-repo-no-index", Just dir, _) -> RepoFromDirectory (T.unpack dir)
-                    (_, _, Just uri) -> RepoDownloaded uri
-                    _ -> RepoNoProvenance
-                )
-            (_, Just "local") -> LocalPackage (maybe "" T.unpack (join sourcePath))
-            (_, Just "source-repo") -> SourceRepo
-            -- Anything else is treated as already present.
-            _ -> PreExisting
-        }
-
--- | The components one plan entry is about.
---
--- @cabal@ writes this two ways. An entry for a single component names it in
--- @component-name@; an entry for a package planned whole carries a
--- @components@ object instead, keyed by the very same spellings. Reading
--- only the first would leave every @Custom@ package looking like one the
--- plan says nothing about, and a run would keep asking @cabal@ to solve
--- again for components a fresh solve would file exactly where this one did.
---
--- @setup@ is dropped. It is the @Setup.hs@ program @cabal@ builds in order
--- to build the package, not a component of the package, and nothing in the
--- project will ever be formatted as part of it.
-componentsOf :: Maybe Text -> Maybe (Map Text Value) -> [Text]
-componentsOf named whole = case named of
-  Just component -> [component]
-  Nothing -> filter (/= "setup") (Map.keys (fromMaybe Map.empty whole))
-
--- | Read @plan.json@.
-readBuildPlan :: FilePath -> IO (Either Text BuildPlan)
-readBuildPlan path =
-  doesFileExist path >>= \case
-    False -> pure (Left ("no build plan at " <> T.pack path))
-    True ->
-      eitherDecodeFileStrict path >>= \case
-        Left why -> pure (Left (T.pack why))
-        Right plan -> Right <$> checkedOutIn (takeDirectory (takeDirectory path)) plan
-
--- | Read a plan that is to be trusted as up to date.
-readGivenPlan ::
-  -- | The project root.
-  FilePath ->
-  -- | The plan.
-  FilePath ->
-  IO (Either Text BuildPlan)
-readGivenPlan root path = do
-  exists <- doesFileExist path
-  if exists
-    then
-      eitherDecodeFileStrict path >>= \case
-        Left why -> pure (Left (T.pack why))
-        Right plan -> pure (Right plan{bpPackages = fmap rooted (bpPackages plan)})
-    else pure (Left ("no build plan at " <> T.pack path))
-  where
-    rooted p = case ppSource p of
-      LocalPackage dir | isRelative dir -> p{ppSource = LocalPackage (root </> dir)}
-      _ -> p
-
--- | Find where @cabal@ unpacked each @source-repository-package@.
-checkedOutIn :: FilePath -> BuildPlan -> IO BuildPlan
-checkedOutIn distDir plan = do
-  packages <- traverse locate (bpPackages plan)
-  pure plan{bpPackages = packages}
-  where
-    locate p = case ppSource p of
-      SourceRepo ->
-        clonesOf p >>= \case
-          (dir : _) -> pure p{ppSource = CheckedOut dir}
-          [] -> pure p
-      _ -> pure p
-    clonesOf p = quietly [] $ do
-      entries <- listDirectory (distDir </> "src")
-      filterM
-        (isThePackage p)
-        [ distDir </> "src" </> e
-        | e <- Data.List.sort entries,
-          (ppName p <> "-") `T.isPrefixOf` T.pack e
-        ]
-    isThePackage p dir = quietly False $ do
-      contents <- readFileText (dir </> T.unpack (ppName p) <> ".cabal")
-      pure (maybe False (describes p) contents)
-    describes p text =
-      any (names "name:" (ppName p)) (T.lines text)
-        && any (names "version:" (ppVersion p)) (T.lines text)
-    names field value line = case T.stripPrefix field (T.toLower (T.strip line)) of
-      Just rest -> T.strip rest == T.toLower value
-      Nothing -> False
-
--- | The version macros a plan settles.
-macrosOf :: BuildPlan -> Macros
-macrosOf plan =
-  Macros
-    { macroVersions =
-        Map.fromList
-          ( [ ("MIN_VERSION_" <> underscored name, version)
-            | (name, [version]) <- Map.toList (Map.map Set.toList versions)
-            ]
-              <> [("MIN_VERSION_GLASGOW_HASKELL", v) | v <- toList compiler]
-          ),
-      macroNumbers =
-        Map.fromList
-          [ entry
-          | (major : minor : patches) <- toList compiler,
-            entry <-
-              [ ("__GLASGOW_HASKELL__", major * 100 + minor),
-                ("__GLASGOW_HASKELL_PATCHLEVEL1__", nth 0 patches),
-                ("__GLASGOW_HASKELL_PATCHLEVEL2__", nth 1 patches)
-              ]
-          ]
-    }
-  where
-    versions =
-      Map.fromListWith
-        Set.union
-        [ (ppName p, Set.singleton v)
-        | p <- bpPackages plan,
-          Just v <- [numberedVersion (ppVersion p)]
-        ]
-    compiler = do
-      version <- T.stripPrefix "ghc-" (bpCompiler plan)
-      parts <- numberedVersion version
-      case parts of
-        _ : _ : _ -> Just (take 4 (parts <> repeat 0))
-        _ -> Nothing
-    nth i xs = if i < length xs then xs !! i else 0
-
--- | The modules @cabal@ writes itself for a plan's packages.
-generatedModules :: BuildPlan -> Set Text
-generatedModules plan =
-  Set.fromList
-    [ prefix <> underscored (ppName p)
-    | p <- bpPackages plan,
-      prefix <- ["Paths_", "PackageInfo_"]
-    ]
-
--- | A package's name as a module name spells it, which is with the hyphens
--- turned into underscores. @cabal@ does this for the version macros and for
--- the modules it generates alike.
-underscored :: Text -> Text
-underscored = T.map (\c -> if c == '-' then '_' else c)
-
--- | A version as its numbers, or 'Nothing' where any of them is not one.
-numberedVersion :: Text -> Maybe [Integer]
-numberedVersion = traverse number . T.splitOn "."
-  where
-    number part = case T.decimal part of
-      Right (n, rest) | T.null rest -> Just n
-      _ -> Nothing
-
-----------------------------------------------------------------------------
--- Readiness
-
--- | A component of the project.
-data PlanComponent = PlanComponent
-  { -- | The package it belongs to.
-    pcPackage :: Text,
-    -- | @lib@, @exe:name@, @test:name@, @bench:name@.
-    pcName :: Text
-  }
-  deriving (Eq, Ord, Show)
-
--- | A component as it would be written on the command line.
-spellComponent :: PlanComponent -> Text
-spellComponent c = pcPackage c <> ":" <> pcName c
-
--- | The components of the project's own packages that a plan covers.
-plannedComponents :: BuildPlan -> [PlanComponent]
-plannedComponents plan =
-  [ PlanComponent (ppName p) component
-  | p <- bpPackages plan,
-    LocalPackage _ <- [ppSource p],
-    component <- ppComponents p
-  ]
-
--- | Whether everything the resolver needs is on disk.
-data Readiness
-  = -- | Nothing to do.
-    Ready
-  | -- | No build plan; @cabal@ has not solved this project yet.
-    PlanMissing
-  | -- | The plan is older than the files that determine it.
-    PlanStale [FilePath]
-  | -- | The plan says nothing about components the run is about to format.
-    PlanNarrow [Text]
-  | -- | The plan is there, and some packages have neither been downloaded
-    -- nor built. The names are listed so that a caller can say what it is
-    -- waiting for.
-    --
-    -- Built counts as having them: their interfaces provide everything the
-    -- source tarball would.
-    SourcesMissing [Text]
-  deriving (Eq, Show)
-
--- | Where @cabal@ writes the plan for a project.
-planPathFor :: FilePath -> FilePath
-planPathFor projectDir = projectDir </> "dist-newstyle" </> "cache" </> "plan.json"
-
--- | Check what is missing.
---
--- One read of the plan and one @stat@ per package, so this is fast enough
--- to run before every format.
-checkReadiness :: Choice "useCache" -> [PlanComponent] -> FilePath -> IO Readiness
-checkReadiness caching wanted projectDir =
-  readBuildPlan (planPathFor projectDir) >>= \case
-    Left _ -> pure PlanMissing
-    Right plan -> do
-      newer <- filesNewerThanPlan plan projectDir
-      let covered = plannedComponents plan
-          missing = [spellComponent c | c <- wanted, c `notElem` covered]
-      case (newer, missing) of
-        (_ : _, _) -> pure (PlanStale newer)
-        ([], _ : _) -> pure (PlanNarrow missing)
-        ([], []) ->
-          sourcesShortOf caching plan >>= \case
-            [] -> pure Ready
-            ps -> pure (SourcesMissing (fmap ppName ps))
-
--- | The packages the plan expects to fetch whose sources are not here.
-sourcesShortOf :: Choice "useCache" -> BuildPlan -> IO [PlanPackage]
-sourcesShortOf caching plan = do
-  tarballs <- filter (isFetchable . fst) <$> plannedTarballs plan
-  absent <- fmap fst <$> filterM (fmap not . doesFileExist . snd) tarballs
-  short <-
-    if null absent
-      then pure []
-      else do
-        cache <- openCache caching =<< tokenForBuildPlan plan
-        installed <- getInstalledPackages cache
-        pure (filter (not . builtAlready installed) absent)
-  pure short
-
--- | Has the compiler got this package already?
-builtAlready :: [InstalledPackage] -> PlanPackage -> Bool
-builtAlready installed p = any matches installed
-  where
-    matches i = ipName i == ppName p && ipVersion i == ppVersion p
-
--- | The project files that have changed since the plan was written.
-filesNewerThanPlan :: BuildPlan -> FilePath -> IO [FilePath]
-filesNewerThanPlan plan projectDir = quietly [] $ do
-  planTime <- getModificationTime (planPathFor projectDir)
-  atRoot <- quietly [] (listDirectory projectDir)
-  inPackages <- concat <$> traverse cabalFilesIn (localDirs plan)
-  let candidates =
-        [projectDir </> f | f <- atRoot, f `elem` projectFiles]
-          <> [projectDir </> f | f <- atRoot, ".cabal" `isSuffixOf` f]
-          <> inPackages
-  newer <- traverse (isNewerThan planTime) candidates
-  pure [f | Just f <- newer]
-  where
-    projectFiles =
-      ["cabal.project", "cabal.project.local", "cabal.project.freeze"]
-    localDirs p =
-      Data.List.nub [dir | LocalPackage dir <- fmap ppSource (bpPackages p)]
-    cabalFilesIn dir = quietly [] $ do
-      entries <- listDirectory dir
-      pure [dir </> f | f <- entries, ".cabal" `isSuffixOf` f]
-    isNewerThan planTime path = quietly Nothing $ do
-      t <- getModificationTime path
-      pure (if t > planTime then Just path else Nothing)
-
--- | Do whatever is missing, by asking @cabal@.
-prepare ::
-  -- | Whether to use the cache.
-  Choice "useCache" ->
-  -- | Whether to download what is missing.
-  Choice "download" ->
-  -- | The components the run is about to format.
-  [PlanComponent] ->
-  -- | The project being prepared.
-  FilePath ->
-  -- | What it was found to be short of.
-  Readiness ->
-  IO (Either Text ())
-prepare caching downloading wanted projectDir readiness =
-  prepareWith
-    caching
-    downloading
-    (runCabal projectDir)
-    (futilityFor caching projectDir)
-    wanted
-    projectDir
-    readiness
-
--- | An account of actions we know are not worth attempting.
-data Futility = Futility
-  { -- | Has solving this plan already been tried and left it as narrow?
-    solveWasFutile :: IO Bool,
-    -- | Record that a solve has been run and left it narrow, which is what
-    -- 'solveWasFutile' answers from afterwards.
-    rememberFutileSolve :: IO (),
-    -- | The packages an earlier fetch was still short of afterwards.
-    fetchWasFutileFor :: IO [Text],
-    -- | Remember what a fetch left missing.
-    rememberFutileFetch :: [Text] -> IO ()
-  }
-
--- | The state when we know nothing about futile actions yet.
-undiscoveredFutility :: Futility
-undiscoveredFutility =
-  Futility
-    { solveWasFutile = pure False,
-      rememberFutileSolve = pure (),
-      fetchWasFutileFor = pure [],
-      rememberFutileFetch = const (pure ())
-    }
-
--- | A memory kept in the cache, under the plan the project has now.
-futilityFor :: Choice "useCache" -> FilePath -> Futility
-futilityFor caching projectDir =
-  Futility
-    { solveWasFutile = withCache False cachedFutileSolve,
-      rememberFutileSolve = withCache () storeFutileSolve,
-      fetchWasFutileFor = withCache [] cachedFutileFetch,
-      rememberFutileFetch = \packages -> withCache () (`storeFutileFetch` packages)
-    }
-  where
-    withCache fallback use =
-      readBuildPlan (planPathFor projectDir) >>= \case
-        Left _ -> pure fallback
-        Right plan -> do
-          opened <- openCache caching =<< tokenForBuildPlan plan
-          maybe (pure fallback) use opened
-
--- | 'prepare', given a way to run @cabal@ and a memory of what earlier
--- attempts came to.
-prepareWith ::
-  -- | Whether to use the cache.
-  Choice "useCache" ->
-  -- | Whether to download what is missing.
-  Choice "download" ->
-  -- | Run @cabal@ with these arguments.
-  ([String] -> IO (Either Text ())) ->
-  -- | What earlier attempts came to.
-  Futility ->
-  -- | The components the run is about to format.
-  [PlanComponent] ->
-  -- | The project being prepared.
-  FilePath ->
-  -- | What it was found to be short of.
-  Readiness ->
-  IO (Either Text ())
-prepareWith caching downloading cabal futility wanted projectDir = \case
-  Ready -> pure (Right ())
-  SourcesMissing _ -> fetch
-  PlanMissing -> solveThenFetch
-  PlanStale _ -> solveThenFetch
-  PlanNarrow _ ->
-    solveWasFutile futility >>= \case
-      True -> fetchWhatIsShort
-      False -> solveThenFetch
-  where
-    wholeProject = ["--enable-tests", "--enable-benchmarks"]
-    tryWholeProject args =
-      cabal (args <> wholeProject) >>= \case
-        Right () -> pure (Right ())
-        Left _ -> cabal args
-    fetch
-      | isTrue downloading = tryWholeProject ["build", "all", "--only-download"]
-      | otherwise = pure (Right ())
-    fetchWhatIsShort =
-      readBuildPlan (planPathFor projectDir) >>= \case
-        Left _ -> pure (Right ())
-        Right plan -> do
-          short <- fmap ppName <$> sourcesShortOf caching plan
-          refused <- fetchWasFutileFor futility
-          if null short || all (`elem` refused) short
-            then pure (Right ())
-            else
-              fetch >>= \case
-                Left err -> pure (Left err)
-                Right () -> do
-                  left <- sourcesShortOf caching plan
-                  rememberFutileFetch futility (fmap ppName left)
-                  pure (Right ())
-    solveThenFetch =
-      tryWholeProject ["build", "all", "--dry-run"] >>= \case
-        Left err -> pure (Left err)
-        Right () ->
-          checkReadiness caching wanted projectDir >>= \case
-            SourcesMissing _ -> fetch
-            PlanNarrow _ -> rememberFutileSolve futility >> fetchWhatIsShort
-            _ -> pure (Right ())
-
--- | Run @cabal@ in a project directory, letting it speak for itself.
-runCabal :: FilePath -> [String] -> IO (Either Text ())
-runCabal projectDir args = quietly (Left "could not run cabal") $ do
-  hFlush stderr
-  -- A duplicate because 'createProcess' closes the handle it is given once
-  -- the child has it, and closing the real standard error would leave
-  -- nothing to report the failure on.
-  passed <- hDuplicate stderr
-  (_, _, _, running) <-
-    createProcess
-      (proc "cabal" args)
-        { cwd = Just projectDir,
-          std_out = UseHandle passed,
-          std_err = Inherit
-        }
-  code <- waitForProcess running
-  pure $ case code of
-    ExitSuccess -> Right ()
-    _ -> Left ("cabal " <> T.unwords (fmap T.pack args) <> " failed; see above")
-
--- | Fetch the sources of a trusted plan's dependencies that are neither
--- installed nor fetched already, at the versions the plan names.
-fetchUninstalled ::
-  -- | Whether to use the cache.
-  Choice "useCache" ->
-  -- | The project the plan is for.
-  FilePath ->
-  -- | The build plan to use.
-  BuildPlan ->
-  IO ()
-fetchUninstalled caching projectDir plan =
-  sourcesShortOf caching plan >>= \case
-    [] -> pure ()
-    short ->
-      void . runCabal projectDir $
-        "fetch"
-          : "--no-dependencies"
-          : [T.unpack (ppName p <> "-" <> ppVersion p) | p <- short]
-
--- | Get a plan that is safe to use, doing whatever @cabal@ work is needed.
-loadPlan ::
-  -- | Whether to use the cache.
-  Choice "useCache" ->
-  -- | Whether to download what is missing.
-  Choice "download" ->
-  -- | The components the run is about to format, so that a plan which says
-  -- nothing about them is solved again rather than trusted.
-  [PlanComponent] ->
-  -- | The project whose plan it is.
-  FilePath ->
-  IO (Either Text BuildPlan)
-loadPlan caching downloading wanted projectDir = do
-  readiness <- checkReadiness caching wanted projectDir
-  prepare caching downloading wanted projectDir readiness >>= \case
-    Left err -> pure (Left err)
-    _ -> readBuildPlan (planPathFor projectDir)
-
--- | Every planned package whose source could be in the package cache, with
--- where that would be.
-plannedTarballs :: BuildPlan -> IO [(PlanPackage, FilePath)]
-plannedTarballs plan = do
-  cacheRoot <- packageCacheRoot
-  repos <- quietly [] (Data.List.sort <$> listDirectory cacheRoot)
-  traverse
-    (\p -> (,) p <$> tarballFor cacheRoot repos p)
-    [p | p <- bpPackages plan, not (isLocal p)]
-  where
-    isLocal p = case ppSource p of
-      LocalPackage _ -> True
-      CheckedOut _ -> True
-      _ -> False
-
--- | Where @cabal@ keeps downloaded package sources, one directory per
--- repository it downloads from.
-packageCacheRoot :: IO FilePath
-packageCacheRoot =
-  readProgramOutput
-    "cabal"
-    ["path", "--remote-repo-cache", "--output-format=json"]
-    >>= \case
-      Just said | Just dir <- remoteRepoCacheIn said -> pure dir
-      _ -> guessedPackageCacheRoot
-
--- | The package cache directory, out of what @cabal path@ printed.
-remoteRepoCacheIn :: Text -> Maybe FilePath
-remoteRepoCacheIn said = do
-  spoken <-
-    listToMaybe $
-      reverse (filter (not . T.null) (fmap T.strip (T.lines said)))
-  value <- decodeStrict (T.encodeUtf8 spoken)
-  parseMaybe (withObject "cabal path" (.: "remote-repo-cache")) value
-
--- | Where @cabal@ probably keeps its downloaded packages.
-guessedPackageCacheRoot :: IO FilePath
-guessedPackageCacheRoot =
-  lookupEnv "CABAL_DIR" >>= \case
-    Just dir -> pure (dir </> "packages")
-    Nothing -> do
-      places <- cabalDirs
-      found <- filterM holdsAnIndex (toList places)
-      pure (fromMaybe (NE.head places) (listToMaybe found))
-  where
-    holdsAnIndex dir =
-      quietly False (doesFileExist (dir </> hackage </> "01-index.tar"))
-    hackage = "hackage.haskell.org"
-
--- | Every directory @cabal@ could be keeping a package cache in, the
--- platform's own default first.
-cabalDirs :: IO (NonEmpty FilePath)
-cabalDirs = do
-  appData <- getAppUserDataDirectory "cabal"
-  xdg <- quietly Nothing (Just <$> getXdgDirectory XdgCache "cabal")
-  pure . fmap (</> "packages") $ case xdg of
-    Just dir | not onWindows -> dir :| [appData]
-    Just dir -> appData :| [dir]
-    Nothing -> appData :| []
-
--- | Whether this is a Windows build, for the places that differ there.
-onWindows :: Bool
-onWindows = System.Info.os == "mingw32"
-
--- | The repository @cabal@ would have kept a package's sources under.
-hackageByDefault :: FilePath
-hackageByDefault = "hackage.haskell.org"
-
--- | Where a package's source tarball is, or where fetching would put it.
-tarballFor :: FilePath -> [FilePath] -> PlanPackage -> IO FilePath
-tarballFor cacheRoot repos p = case provenanceOf p of
-  RepoFromDirectory dir -> pure (dir </> flat)
-  RepoDownloaded uri -> searched (hostOf uri)
-  RepoNoProvenance -> searched Nothing
-  where
-    flat = T.unpack (ppName p <> "-" <> ppVersion p <> ".tar.gz")
-    under repo =
-      cacheRoot
-        </> repo
-        </> T.unpack (ppName p)
-        </> T.unpack (ppVersion p)
-        </> flat
-    searched preferred = do
-      let first' = fromMaybe hackageByDefault preferred
-          rest = filter (/= first') repos
-      found <- filterM doesFileExist (fmap under (first' : rest))
-      pure (fromMaybe (under first') (listToMaybe found))
-
--- | Which repository a package came from, where it came from one.
-provenanceOf :: PlanPackage -> RepoProvenance
-provenanceOf p = case ppSource p of
-  RepoPackage _ repo -> repo
-  _ -> RepoNoProvenance
-
--- | The host a URI names, which is what @cabal@ conventionally calls the
--- repository that lives there.
-hostOf :: Text -> Maybe FilePath
-hostOf uri = case T.breakOn "//" uri of
-  (_, rest)
-    | not (T.null rest),
-      host <- T.takeWhile (/= '/') (T.drop 2 rest),
-      not (T.null host) ->
-        Just (T.unpack host)
-  _ -> Nothing
-
-----------------------------------------------------------------------------
--- Resolving
-
--- | Where a module's fixities can be read from.
-data Route
-  = -- | The compiled interface the package database points at. Cheap, and
-    -- authoritative where it exists, since it is the compiler's own account
-    -- of what it settled on.
-    FromInterface
-  | -- | The module's source, out of the package's tarball in Cabal's
-    -- package cache. Slower, and the only route for a package that is
-    -- planned but not built.
-    FromSource
-  deriving (Eq, Show)
-
--- | What can be asked about a module, once a plan says where to look.
-data Resolver = Resolver
-  { -- | What a module exports, with 'Nothing' for one that could not be
-    -- read, which is not the same as its having no operators; see
-    -- 'Tilia.Fixity.resolveScope' for why the difference has to survive.
-    askFixities :: Text -> IO (Maybe (Fixities)),
-    -- | What a module keeps under each of its names, for the sake of a
-    -- @T(..)@ in an import list.
-    askChildren :: Text -> IO (Map OpName (Set OpName)),
-    -- | The operators an unread module's export list names, asked only of
-    -- the modules 'askFixities' gave up on, and what keeps a module that
-    -- plainly has no such operator from being blamed for one.
-    askExportNames :: Text -> IO (Maybe (Set OpName)),
-    -- | The modules reading a module went through before giving up, the one
-    -- it gave up on last. Asked only of the modules 'askFixities' gave up
-    -- on, and only so that a message can name the exact problematic module
-    -- rather than the import that happens to sit above it.
-    askChain :: Text -> IO [Text]
-  }
-
--- | Build a new 'Resolver'.
---
--- Answers are remembered on disk between runs by "Tilia.Fixity.Cache", so a
--- package is decompressed and parsed once per machine rather than once per
--- file.
-newResolver ::
-  -- | The build plan to use.
-  BuildPlan ->
-  IO Resolver
-newResolver = newResolverVia (Do #useCache) [FromInterface, FromSource]
-
--- | 'newResolver', restricted to the routes given.
-newResolverVia ::
-  -- | Whether to use the cache.
-  Choice "useCache" ->
-  -- | Which readings to try, in order.
-  [Route] ->
-  -- | The build plan to use.
-  BuildPlan ->
-  IO Resolver
-newResolverVia caching routes plan = do
-  tarballs <-
-    if FromSource `elem` routes
-      then plannedTarballs plan
-      else pure []
-  cache <- openCache caching =<< tokenForBuildPlan plan
-  installed <- getInstalledPackages cache
-  index <- buildModuleIndex cache installed tarballs
-  let interfaces = interfaceIndex installed
-  local <- localModules plan
-  memo <- newIORef Map.empty
-  childrenRead <- newIORef Map.empty
-  askPackage <- newPackageReader
-  extensionsRead <- newIORef Map.empty
-  exportsRead <- newIORef Map.empty
-  interfacesRead <- newIORef Map.empty
-  reading <- newQSem =<< getNumCapabilities
-  let interfaceOf modName = do
-        slot <- newEmptyMVar
-        claimed <-
-          atomicModifyIORef' interfacesRead $ \m -> case Map.lookup modName m of
-            Just other -> (m, Left other)
-            Nothing -> (Map.insert modName slot m, Right slot)
-        case claimed of
-          Left other -> readMVar other
-          Right mine -> do
-            found <- case Map.lookup modName interfaces of
-              Nothing -> pure Nothing
-              Just (_, path) ->
-                bracket_ (waitQSem reading) (signalQSem reading) $
-                  readInterface modName path
-            -- Being listed is not the same as being readable: @ghc-pkg@
-            -- names @GHC.Prim@ among @ghc-prim@'s modules and there is no
-            -- file at the path that implies. So the table answers for a
-            -- module with nothing to read, however it came to have nothing.
-            let interface = case found of
-                  Just _ -> found
-                  Nothing -> asInterface <$> Map.lookup modName builtinFixities
-            putMVar mine interface
-            pure interface
-  let workings =
-        Workings
-          { wkRoutes = routes,
-            wkCache = cache,
-            wkLocal = local,
-            wkIndex = index,
-            wkInterfaces = interfaces,
-            wkInterfaceOf = interfaceOf,
-            wkReach = reach,
-            wkReachChildren = children,
-            wkReachExports = exports,
-            wkExtensionsOf = extensionsOf,
-            wkMacros = macrosOf plan,
-            wkGenerated = generatedModules plan
-          }
-      resolved visiting modName = do
-        known <- readIORef memo
-        case Map.lookup modName known of
-          Just answer -> pure answer
-          Nothing -> do
-            answer <- resolveModule workings visiting modName
-            atomicModifyIORef' memo (\m -> (Map.insert modName answer m, ()))
-            pure answer
-      reach visiting modName
-        | modName `Set.member` visiting = pure Nothing
-        | otherwise = fixitiesEstablished <$> resolved visiting modName
-      chain visiting = go Set.empty
-        where
-          go seen modName
-            | modName `Set.member` seen = pure []
-            | otherwise =
-                resolved visiting modName >>= \case
-                  Unreadable (Just below) ->
-                    (below :) <$> go (Set.insert modName seen) below
-                  _ -> pure []
-      exports visiting modName
-        | modName `Set.member` visiting = pure Nothing
-        | otherwise = do
-            seen <- readIORef exportsRead
-            case Map.lookup modName seen of
-              Just names -> pure names
-              Nothing -> do
-                names <- exportNamesOfModule workings visiting modName
-                atomicModifyIORef' exportsRead (\m -> (Map.insert modName names m, ()))
-                pure names
-      extensionsOf modName
-        | Just path <- Map.lookup modName local =
-            either (const []) id <$> askPackage path
-        | Just (package, tarball) <- Map.lookup modName index = do
-            seen <- readIORef extensionsRead
-            case Map.lookup package seen of
-              Just extensions -> pure extensions
-              Nothing -> do
-                extensions <- fromTarball tarball
-                atomicModifyIORef' extensionsRead (\m -> (Map.insert package extensions m, ()))
-                pure extensions
-        | otherwise = pure []
-      fromTarball tarball =
-        quietly [] $ do
-          bytes <- BL.readFile tarball
-          pure (foldMap declaredExtensions (cabalFileInArchive (Tar.read (GZip.decompress bytes))))
-      children visiting modName
-        | modName `Set.member` visiting = pure Map.empty
-        | otherwise = do
-            seen <- readIORef childrenRead
-            case Map.lookup modName seen of
-              Just kept -> pure kept
-              Nothing -> do
-                kept <- childrenOfModule workings visiting modName
-                atomicModifyIORef' childrenRead (\m -> (Map.insert modName kept m, ()))
-                pure kept
-  pure
-    Resolver
-      { askFixities = reach Set.empty,
-        askChildren = children Set.empty,
-        askExportNames = exports Set.empty,
-        askChain = chain Set.empty
-      }
-
--- | The operators a module's export list names, following what it
--- reexports.
---
--- Asked only about modules whose fixities could not be established, and
--- only to decide which of them an unsettled operator can be blamed on. A
--- module that hands on one nobody could read answers 'Nothing'; one with no
--- export list exports what it declares, which is every fixity it could
--- supply.
-exportNamesOfModule :: Workings -> Set Text -> Text -> IO (Maybe (Set OpName))
-exportNamesOfModule
-  Workings{wkCache, wkLocal, wkIndex, wkReachChildren, wkReachExports, wkMacros}
-  visiting
-  modName
-    | Just path <- Map.lookup modName wkLocal,
-      writtenForHsc path =
-        pure (Just (hscSupplies modName))
-    | Just path <- Map.lookup modName wkLocal = namesIn =<< readFileText path
-    | Just (package, tarball) <- Map.lookup modName wkIndex =
-        remembered package >>= \case
-          Just answer -> pure (exportedNames answer)
-          Nothing ->
-            readModule tarball modName >>= \case
-              Nothing -> pure Nothing
-              Just ForHsc -> do
-                let names = Just (hscSupplies modName)
-                store package (asExported names)
-                pure names
-              Just (Haskell text) -> do
-                names <- namesIn (Just text)
-                store package (asExported names)
-                pure names
-    | otherwise = pure Nothing
-    where
-      remembered package = case wkCache of
-        Nothing -> pure Nothing
-        Just c -> cachedExportNames c package modName
-      store package answer = case wkCache of
-        Nothing -> pure ()
-        Just c -> storeExportNames c package modName answer
-      namesIn text = case parsedLeaves =<< text of
-        Nothing -> pure Nothing
-        Just modules ->
-          fmap Set.unions . sequence <$> traverse readOne modules
-      readOne (implicitPrelude, hsModule) =
-        exportNamesWithReexports
-          implicitPrelude
-          (wkReachExports visiting')
-          (wkReachChildren visiting')
-          modName
-          hsModule
-      visiting' = Set.insert modName visiting
-      parsedLeaves = configurationsOf wkMacros Nothing modName
-
--- | What a module keeps under each of its names, so that a @T(..)@ in an
--- import list can be told what it brings in.
-childrenOfModule :: Workings -> Set Text -> Text -> IO (Map OpName (Set OpName))
-childrenOfModule
-  Workings
-    { wkRoutes,
-      wkCache,
-      wkLocal,
-      wkIndex,
-      wkInterfaces,
-      wkInterfaceOf,
-      wkReachChildren,
-      wkExtensionsOf,
-      wkMacros
-    }
-  visiting
-  modName
-    | Just path <- Map.lookup modName wkLocal,
-      writtenForHsc path =
-        pure Map.empty
-    | Just path <- Map.lookup modName wkLocal =
-        readFileText path >>= \case
-          Nothing -> pure Map.empty
-          Just text -> inSource text
-    | otherwise = firstAnswer (fmap taking wkRoutes)
-    where
-      taking = \case
-        FromInterface -> case Map.lookup modName wkInterfaces of
-          Nothing -> pure Nothing
-          Just (key, _) -> keptUnder key outOfInterface
-        FromSource -> case Map.lookup modName wkIndex of
-          Nothing -> pure Nothing
-          Just (package, tarball) ->
-            keptUnder package $
-              readModule tarball modName >>= \case
-                Nothing -> pure Nothing
-                Just ForHsc -> pure (Just Map.empty)
-                Just (Haskell text) -> Just <$> inSource text
-      firstAnswer [] = pure Map.empty
-      firstAnswer (route : rest) =
-        route >>= \case
-          Just kept -> pure kept
-          Nothing -> firstAnswer rest
-      keptUnder package readIt =
-        remembered package >>= \case
-          Just kept -> pure (Just kept)
-          Nothing -> do
-            kept <- readIt
-            traverse_ (store package) kept
-            pure kept
-      remembered package = case wkCache of
-        Nothing -> pure Nothing
-        Just c -> cachedChildren c package modName
-      store package kept = case wkCache of
-        Nothing -> pure ()
-        Just c -> storeChildren c package modName kept
-      outOfInterface = fmap interfaceChildren <$> wkInterfaceOf modName
-      inSource text = do
-        extensions <- wkExtensionsOf modName
-        case parsedLeaves extensions text of
-          Nothing -> pure Map.empty
-          Just modules ->
-            Map.unionsWith Set.union
-              <$> traverse readOne modules
-      readOne (implicitPrelude, hsModule) =
-        childrenWithReexports
-          implicitPrelude
-          (wkReachChildren visiting')
-          modName
-          hsModule
-      visiting' = Set.insert modName visiting
-      parsedLeaves extensions = configurationsOf wkMacros (Just extensions) modName
-
--- | Work out what a module can see, using a resolver to reach its imports.
---
--- This is the join between the pure half of "Tilia.Fixity" and the half
--- that touches the disk: the imports are resolved first, and the scope is
--- then computed from the answers. Note that an import the resolver could
--- not read arrives as 'Nothing' and stays 'Nothing', which is what lets
--- 'Tilia.Fixity.lookupFixity' distinguish a conclusion from a guess.
-scopeFor ::
-  -- | What can be asked about the modules it imports.
-  Resolver ->
-  -- | Whether @ImplicitPrelude@ is on, which the module's own pragmas
-  -- and its package's @default-extensions@ decide between them.
-  Choice "implicitPrelude" ->
-  -- | The module whose scope is wanted, already parsed.
-  HsModule GhcPs ->
-  -- | Everything that module can see, and what it could not find out.
-  IO Scope
-scopeFor resolver implicitPrelude hsModule = do
-  let imports = moduleImports implicitPrelude hsModule
-  answers <- inParallel (\m -> (m,) <$> askFixities resolver m) (fmap importModule imports)
-  let table = Map.fromList answers
-      unread = [m | (m, Nothing) <- answers]
-  names <- Map.fromList <$> inParallel (\m -> (m,) <$> askExportNames resolver m) unread
-  chains <- Map.fromList <$> inParallel (\m -> (m,) <$> askChain resolver m) unread
-  kept <-
-    Map.fromList
-      <$> inParallel
-        (\m -> (m,) <$> askChildren resolver m)
-        (Set.toList (Set.fromList (fmap importModule (filter expands imports))))
-  pure $
-    resolveScope
-      implicitPrelude
-      KnownModules
-        { knownFixities = \m -> Map.findWithDefault Nothing m table,
-          knownChildren = \m -> Map.findWithDefault Map.empty m kept,
-          knownExportNames = \m -> Map.findWithDefault Nothing m names,
-          knownChain = \m -> Map.findWithDefault [] m chains
-        }
-      hsModule
-  where
-    expands i = case importNames i of
-      Nothing -> False
-      Just (_, items) -> any isAll items
-    isAll = \case
-      ImportedAll _ -> True
-      _ -> False
-
--- | Everything a resolver consults, and the way back into it.
---
--- None of it changes from one module to the next, which is why
--- 'newResolverVia' builds it once and hands it over whole. What comes back
--- out of that is the 'Resolver'; this is what is behind it.
-data Workings = Workings
-  { -- | Which readings to try, in the order given.
-    wkRoutes :: [Route],
-    -- | Where to remember answers between runs.
-    wkCache :: Maybe Cache,
-    -- | The modules of the project's own packages, which are read straight
-    -- from disk rather than out of an archive.
-    wkLocal :: Map Text FilePath,
-    -- | Which package holds each module, and the tarball to find it in; the
-    -- package is the cache key, which carries the hash the tarball was
-    -- verified against.
-    wkIndex :: Map Text (Text, FilePath),
-    -- | What to file an answer read out of each module's interface under.
-    wkInterfaces :: Map Text (Text, FilePath),
-    -- | A module's interface, read at most once a run.
-    wkInterfaceOf :: Text -> IO (Maybe Interface),
-    -- | How to reach another module. Tied back on itself by
-    -- 'newResolverVia', so that the memo it keeps covers the recursive
-    -- calls too.
-    wkReach :: Set Text -> Text -> IO (Maybe (Fixities)),
-    -- | How to reach another module for what its names carry with them,
-    -- tied back the same way and against a visiting set of its own.
-    wkReachChildren :: Set Text -> Text -> IO (Map OpName (Set OpName)),
-    -- | How to reach another module for what its export list names, tied
-    -- back the same way again.
-    wkReachExports :: Set Text -> Text -> IO (Maybe (Set OpName)),
-    -- | What extensions the package a module belongs to puts in force.
-    wkExtensionsOf :: Text -> IO [Extension],
-    -- | Known macro expansions.
-    wkMacros :: Macros,
-    -- | The modules @cabal@ writes itself, which are therefore in no
-    -- package's sources. See 'generatedModules'.
-    wkGenerated :: Set Text
-  }
-
--- | Where a module's fixities come from, in order of cost.
-resolveModule ::
-  -- | Where to look, and how to get back to the resolver.
-  Workings ->
-  -- | Modules currently being resolved further up the call chain.
-  Set Text ->
-  -- | The module to resolve.
-  Text ->
-  -- | Its operator fixities, or, where they could not be established, the
-  -- module below it that stopped us.
-  IO Established
-resolveModule
-  Workings
-    { wkRoutes,
-      wkCache,
-      wkLocal,
-      wkIndex,
-      wkInterfaces,
-      wkInterfaceOf,
-      wkReach,
-      wkReachChildren,
-      wkExtensionsOf,
-      wkMacros,
-      wkGenerated
-    }
-  visiting
-  modName
-    | Just builtin <- Map.lookup modName builtinFixities = pure (Declares builtin)
-    | Just path <- Map.lookup modName wkLocal,
-      writtenForHsc path =
-        pure (hscDeclares modName)
-    | Just path <- Map.lookup modName wkLocal =
-        readFileText path >>= \case
-          Nothing -> pure (Unreadable Nothing)
-          Just source -> do
-            extensions <- wkExtensionsOf modName
-            fromText
-              wkMacros
-              extensions
-              (wkReach visiting')
-              (wkReachChildren visiting')
-              visiting'
-              source
-              modName
-    | otherwise = answered <$> firstAnswer (fmap taking wkRoutes)
-    where
-      visiting' = Set.insert modName visiting
-
-      taking = \case
-        FromInterface -> viaInterface
-        FromSource -> viaArchive
-
-      firstAnswer = go Nothing
-        where
-          go blamed [] = pure (Unreadable blamed)
-          go blamed (route : rest) =
-            route >>= \case
-              Just (Declares fixities) -> pure (Declares fixities)
-              Just (Unreadable below) -> go (blamed <|> below) rest
-              Nothing -> go blamed rest
-
-      viaInterface = case Map.lookup modName wkInterfaces of
-        Nothing -> pure Nothing
-        Just (key, _) ->
-          cachedFor key >>= \case
-            Just remembered -> pure (Just remembered)
-            Nothing -> do
-              established <- fromInterface wkInterfaceOf modName
-              storeFor key established
-              pure (Just established)
-
-      viaArchive = case Map.lookup modName wkIndex of
-        Nothing -> pure Nothing
-        Just (package, tarball) ->
-          cachedFor package >>= \case
-            Just remembered -> pure (Just remembered)
-            Nothing -> do
-              extensions <- wkExtensionsOf modName
-              fromSource
-                wkMacros
-                extensions
-                (wkReach visiting')
-                (wkReachChildren visiting')
-                visiting'
-                tarball
-                modName
-                >>= \case
-                  NoArchive -> pure Nothing
-                  FromArchive established -> do
-                    storeFor package established
-                    pure (Just established)
-
-      answered = \case
-        Declares fixities -> Declares fixities
-        Unreadable below
-          | Set.member modName wkGenerated -> Declares Map.empty
-          | otherwise -> maybe (Unreadable below) Declares (byHand modName)
-      byHand = fmap inBothNamespaces . (`Map.lookup` byHandFixities)
-      cachedFor package = case wkCache of
-        Nothing -> pure Nothing
-        Just c -> cachedFixities c package modName
-      storeFor package fixities = case wkCache of
-        Nothing -> pure ()
-        Just c -> storeFixities c package modName fixities
-
--- | Which package and tarball holds each module.
-buildModuleIndex ::
-  -- | Where to remember each package's module list, if anywhere.
-  Maybe Cache ->
-  -- | What the compiler says is installed. Empty if @ghc-pkg@ could not be
-  -- run, in which case every package falls back to its @.cabal@ file.
-  [InstalledPackage] ->
-  -- | Every package that might have a tarball, and where it would be.
-  [(PlanPackage, FilePath)] ->
-  -- | For each module, the package that exposes it (as a cache key) and
-  -- the tarball holding its source.
-  IO (Map Text (Text, FilePath))
-buildModuleIndex cache installed tarballs =
-  Map.fromListWith (\_ first' -> first') . concat <$> traverse one tarballs
-  where
-    byNameVersion =
-      Map.fromList [((ipName i, ipVersion i), ipModules i) | i <- installed]
-    one (p, tarball) = do
-      let key = cacheKey p
-      let exposed = Map.lookup (ppName p, ppVersion p) byNameVersion
-      held <- fromCabalFile cache key tarball p
-      let modules = case (exposed, held) of
-            (Nothing, Nothing) -> []
-            (a, b) -> concat (catMaybes [a, b])
-      pure [(m, (key, tarball)) | m <- modules]
-
--- | Where each installed module's compiled interface is.
-interfaceIndex :: [InstalledPackage] -> Map Text (Text, FilePath)
-interfaceIndex installed =
-  Map.fromListWith
-    (\_ first' -> first')
-    [ (m, (key, dir </> T.unpack (T.replace "." "/" m) <> ".hi"))
-    | i <- installed,
-      dir <- ipImportDirs i,
-      -- Bound out here so that the directory is hashed once rather than
-      -- once for each of the modules found in it.
-      let key = keyFor dir,
-      m <- ipModules i
-    ]
-  where
-    keyFor dir =
-      "interface-"
-        <> T.take 24 (T.decodeUtf8Lenient (B16.encode (SHA256.hash (T.encodeUtf8 (T.pack dir)))))
-
--- | Present a fixity map as an 'Interface'.
-asInterface :: Fixities -> Interface
-asInterface fixities =
-  Interface
-    { interfaceDeclares = fixities,
-      interfaceReexports = [],
-      interfaceChildren = Map.empty
-    }
-
--- | The fixities a compiled interface reports, and those it passes on.
-fromInterface ::
-  -- | A module's interface, if it has one.
-  (Text -> IO (Maybe Interface)) ->
-  -- | The module to read.
-  Text ->
-  IO Established
-fromInterface interfaceOf modName =
-  interfaceOf modName >>= \case
-    Nothing -> pure (Unreadable Nothing)
-    Just iface -> do
-      declarers <- inParallel asked (distinct (fmap fst (interfaceReexports iface)))
-      pure $ case [m | (m, Nothing) <- declarers] of
-        (m : _) -> Unreadable (Just m)
-        [] ->
-          Declares . Map.union (interfaceDeclares iface) . Map.unions $
-            [ Map.filterWithKey (\(_, o) _ -> o == op) (interfaceDeclares declarer)
-            | (m, op) <- interfaceReexports iface,
-              Just (Just declarer) <- [lookup m declarers]
-            ]
-  where
-    asked m = do
-      interface <- interfaceOf m
-      pure (m, interface)
-    distinct = Map.keys . Map.fromList . fmap (,())
-
--- | A package's module list from the @.cabal@ file in its tarball.
-fromCabalFile ::
-  -- | Where to remember the answer, if anywhere.
-  Maybe Cache ->
-  -- | What to file it under. Carries the hash the tarball was verified
-  -- against, so a changed tarball misses rather than matching stale data.
-  Text ->
-  -- | The tarball to read the @.cabal@ file out of.
-  FilePath ->
-  -- | The package it belongs to, consulted for the hash to verify against.
-  PlanPackage ->
-  -- | The modules it exposes, or 'Nothing' if the tarball is absent, fails
-  -- verification, or holds no @.cabal@ file.
-  IO (Maybe [Text])
-fromCabalFile cache key tarball p = do
-  remembered <- case cache of
-    Nothing -> pure Nothing
-    Just c -> cachedModules c key
-  case remembered of
-    Just ms -> pure (Just ms)
-    Nothing ->
-      verified p tarball >>= \case
-        False -> pure Nothing
-        True ->
-          packageModules tarball >>= \case
-            Nothing -> pure Nothing
-            Just ms -> do
-              case cache of
-                Nothing -> pure ()
-                Just c -> storeModules c key ms
-              pure (Just ms)
-
--- | How a package's cached answers are filed.
-cacheKey :: PlanPackage -> Text
-cacheKey p =
-  ppName p <> "-" <> ppVersion p <> maybe "" (("-" <>) . T.take 16) (sourceHashOf p)
-
--- | Does the tarball hash to what the plan says it should?
-verified :: PlanPackage -> FilePath -> IO Bool
-verified p tarball = case sourceHashOf p of
-  Nothing -> pure True
-  Just expected ->
-    quietly False $ do
-      actual <- sha256OfFile tarball
-      pure (actual == T.toLower expected)
-
--- | The SHA-256 of a file, as lower-case hex.
-sha256OfFile :: FilePath -> IO Text
-sha256OfFile path = do
-  bytes <- BL.readFile path
-  pure (T.decodeUtf8Lenient (B16.encode (SHA256.hashlazy bytes)))
-
--- | Read a module's fixities out of a tarball, following re-exports.
-fromSource ::
-  -- | What the plan settles about its conditionals.
-  Macros ->
-  -- | What the module's package puts in force, before its own pragmas.
-  [Extension] ->
-  -- | How to reach another module, for chasing re-exports. This is
-  -- 'resolveModule' tied back on itself, with the visiting set already
-  -- extended.
-  (Text -> IO (Maybe (Fixities))) ->
-  -- | How to reach another module for what its names carry with them.
-  (Text -> IO (Map OpName (Set OpName))) ->
-  -- | Modules currently being resolved, passed through so that a
-  -- re-export chain cannot loop.
-  Set Text ->
-  -- | The tarball holding this module's source.
-  FilePath ->
-  -- | The module to read.
-  Text ->
-  -- | What it declares, including what it only reexports, and whether that
-  -- is worth remembering.
-  IO Reading
-fromSource macros extensions reach reachChildren visiting tarball modName =
-  doesFileExist tarball >>= \case
-    False -> pure NoArchive
-    True ->
-      readModule tarball modName >>= \case
-        Nothing -> pure (FromArchive (Unreadable Nothing))
-        Just ForHsc -> pure (FromArchive (hscDeclares modName))
-        Just (Haskell source) ->
-          FromArchive
-            <$> fromText macros extensions reach reachChildren visiting source modName
-
--- | What came of looking for a module in an archive.
-data Reading
-  = -- | The archive was there, and this is what reading it established.
-    FromArchive Established
-  | -- | There was no archive to open.
-    NoArchive
-
--- | The fixities a module's text declares and passes on.
-fromText ::
-  -- | What the plan settles about its conditionals.
-  Macros ->
-  -- | What the module's package puts in force, before its own pragmas.
-  [Extension] ->
-  -- | How to reach another module, for chasing re-exports. This is
-  -- 'resolveModule' tied back on itself, with the visiting set already
-  -- extended.
-  (Text -> IO (Maybe (Fixities))) ->
-  -- | How to reach another module for what its names carry with them.
-  (Text -> IO (Map OpName (Set OpName))) ->
-  -- | Modules currently being resolved, passed through so that a re-export
-  -- chain cannot loop.
-  Set Text ->
-  -- | The module's source.
-  Text ->
-  -- | Its name.
-  Text ->
-  IO Established
-fromText macros extensions reach reachChildren visiting source modName =
-  case configurationsOf macros (Just extensions) modName source of
-    Nothing -> pure (Unreadable Nothing)
-    Just modules ->
-      agreeing <$> traverse readOne modules
-  where
-    readOne (implicitPrelude, hsModule) =
-      withReexports
-        implicitPrelude
-        reach
-        reachChildren
-        visiting
-        modName
-        hsModule
-
--- | One answer from every configuration that could be read, if they agree.
---
--- A module may declare a fixity in one configuration and a different one in
--- another. Which of them holds depends on how the module is compiled, which
--- is not ours to decide, so disagreement is not an answer. Agreement across
--- the ones we could read is one, and a stronger one than the blanked text
--- could give.
---
--- A configuration whose imports could not be resolved is passed over rather
--- than counted against the rest, because almost every one of those is a
--- branch meant for a different platform.
-agreeing :: NonEmpty Established -> Established
-agreeing answers = case [fixities | Declares fixities <- toList answers] of
-  [] -> Unreadable (listToMaybe (catMaybes [below | Unreadable below <- toList answers]))
-  readable ->
-    maybe (Unreadable Nothing) Declares (foldM together Map.empty readable)
-  where
-    together settled found
-      | and (Map.intersectionWith (==) settled found) = Just (Map.union settled found)
-      | otherwise = Nothing
-
--- | Where each module that lives in a directory rather than an archive is.
-localModules :: BuildPlan -> IO (Map Text FilePath)
-localModules plan =
-  Map.unions <$> traverse forPackage (concatMap directoryOf (bpPackages plan))
-  where
-    directoryOf p = case ppSource p of
-      LocalPackage dir -> [dir]
-      CheckedOut dir -> [dir]
-      _ -> []
-    forPackage dir = quietly Map.empty $ do
-      entries <- listDirectory dir
-      case filter (".cabal" `isSuffixOf`) entries of
-        [] -> pure Map.empty
-        (cabalFile : _) -> do
-          contents <- readFileText (dir </> cabalFile)
-          case contents of
-            Nothing -> pure Map.empty
-            Just text ->
-              Map.fromList . concat
-                <$> traverse (locate dir (sourceDirs text)) (containedModules text)
-    locate dir dirs m = do
-      found <-
-        filterM
-          doesFileExist
-          [ dir </> T.unpack d </> modulePath m ending
-          | d <- dirs,
-            ending <- moduleEndings
-          ]
-      pure [(m, path) | path <- take 1 found]
-
-    modulePath m ending = T.unpack (T.replace "." "/" m) <> ending
-
--- | Read a file, if it is there and is text.
-readFileText :: FilePath -> IO (Maybe Text)
-readFileText path = quietly Nothing $ do
-  there <- doesFileExist path
-  if there
-    then Just . T.decodeUtf8Lenient <$> BS.readFile path
-    else pure Nothing
-
--- | What a module reexports, as well as what it declares.
-withReexports ::
-  -- | Whether @ImplicitPrelude@ is on in the module being read.
-  Choice "implicitPrelude" ->
-  -- | How to reach another module, for names this one only passes on.
-  (Text -> IO (Maybe (Fixities))) ->
-  -- | How to reach another module for what its names carry with them,
-  -- which is what a @T(..)@ this module hands on amounts to.
-  (Text -> IO (Map OpName (Set OpName))) ->
-  -- | Modules currently being resolved. A candidate already in here is
-  -- skipped rather than followed.
-  Set Text ->
-  -- | The name this module was looked up under, used to recognise a
-  -- @module M@ export that refers to the module itself.
-  Text ->
-  -- | The module, already parsed.
-  HsModule GhcPs ->
-  -- | What it declares together with what it re-exports, or the module it
-  -- passes names on from that could not be read.
-  IO Established
-withReexports implicitPrelude reach reachChildren visiting modName hsModule =
-  case moduleExports hsModule of
-    Nothing -> pure (Declares own)
-    Just items -> do
-      carried <- carriedNames implicitPrelude reachChildren hsModule items
-      let wanted = wantedNames items <> fromCarried carried
-      visible <-
-        if null wanted
-          then pure []
-          else
-            traverse
-              (\i -> (,) i <$> fromModule (importModule i))
-              (moduleImports implicitPrelude hsModule)
-      let handedOnWhole =
-            wantedModules implicitPrelude modName hsModule items
-      wholeModules <- traverse (\m -> (,) m <$> fromModule m) handedOnWhole
-      pure $ case stoppedAt visible wholeModules of
-        Just below -> Unreadable (Just below)
-        Nothing ->
-          let seen = [(i, exported) | (i, Just exported) <- visible]
-              whole = [exported | (_, Just exported) <- wholeModules]
-              passedOn =
-                Map.unions
-                  [ found
-                  | (qualifier, op) <- wanted,
-                    found <- take 1 (from qualifier op seen)
-                  ]
-           in Declares (Map.unions (own : passedOn : whole))
-  where
-    stoppedAt visible wholeModules =
-      listToMaybe $
-        [importModule i | (i, Nothing) <- visible]
-          <> [m | (m, Nothing) <- wholeModules]
-    own = declaredFixities hsModule
-    defined = declaredNames hsModule
-    wantedNames items =
-      [(qualifier, op) | ExportName qualifier op <- items, not (Set.member op defined)]
-        <> [(qualifier, op) | ExportAll qualifier op <- items, not (Set.member op defined)]
-    fromCarried carried =
-      [ (qualifier, op)
-      | ((qualifier, _), Just ops) <- carried,
-        op <- Set.toList ops,
-        not (Set.member op defined)
-      ]
-    from qualifier op seen =
-      [ found
-      | (i, exported) <- seen,
-        canSupply qualifier op i,
-        let found = Map.filterWithKey (\(_, o) _ -> o == op) exported,
-        not (Map.null found)
-      ]
-    fromModule m
-      | m `Set.member` visiting = pure (Just Map.empty)
-      | otherwise = reach m
-
--- | What each name a module's export list hands on carries with it.
-childrenWithReexports ::
-  -- | Whether @ImplicitPrelude@ is on in the module being read.
-  Choice "implicitPrelude" ->
-  -- | How to reach another module for what its names carry.
-  (Text -> IO (Map OpName (Set OpName))) ->
-  -- | The name this module was looked up under.
-  Text ->
-  -- | The module, already parsed.
-  HsModule GhcPs ->
-  IO (Map OpName (Set OpName))
-childrenWithReexports implicitPrelude reachChildren modName hsModule =
-  case moduleExports hsModule of
-    Nothing -> pure (moduleChildren hsModule)
-    Just items -> do
-      carried <- carriedNames implicitPrelude reachChildren hsModule items
-      let handedOnWhole =
-            wantedModules implicitPrelude modName hsModule items
-      wholes <- traverse reachChildren handedOnWhole
-      pure . Map.unionsWith Set.union $
-        moduleChildren hsModule
-          : Map.fromListWith Set.union [(parent, ops) | ((_, parent), Just ops) <- carried]
-          : wholes
-
--- | The operators a module's export list names, following what it
--- reexports.
-exportNamesWithReexports ::
-  -- | Whether @ImplicitPrelude@ is on in the module being read.
-  Choice "implicitPrelude" ->
-  -- | How to reach another module for what its export list names.
-  (Text -> IO (Maybe (Set OpName))) ->
-  -- | How to reach another module for what its names carry.
-  (Text -> IO (Map OpName (Set OpName))) ->
-  -- | The name this module was looked up under.
-  Text ->
-  -- | The module, already parsed.
-  HsModule GhcPs ->
-  IO (Maybe (Set OpName))
-exportNamesWithReexports
-  implicitPrelude
-  reachNames
-  reachChildren
-  modName
-  hsModule =
-    case moduleExports hsModule of
-      Nothing -> pure (Just (Set.fromList [op | (_, op) <- Map.keys (declaredFixities hsModule)]))
-      Just items -> do
-        carried <- carriedNames implicitPrelude reachChildren hsModule items
-        let handedOnWhole =
-              wantedModules implicitPrelude modName hsModule items
-        wholes <- traverse reachNames handedOnWhole
-        pure $ do
-          fromWholes <- sequence wholes
-          fromCarried <-
-            traverse (\((_, parent), kids) -> Set.insert parent <$> kids) carried
-          pure (Set.unions (named items : declaredHere items : fromCarried <> fromWholes))
-    where
-      declared = declaredChildren hsModule
-      named items = Set.fromList [op | ExportName _ op <- items]
-      declaredHere items =
-        Set.unions
-          [ Set.insert parent kids
-          | ExportAll _ parent <- items,
-            Just kids <- [Map.lookup parent declared]
-          ]
-
--- | What the types a module reexports carry with them, asked of the modules
--- they could have come from.
-carriedNames ::
-  -- | Whether @ImplicitPrelude@ is on in the module being read.
-  Choice "implicitPrelude" ->
-  -- | How to reach another module for what its export list names.
-  (Text -> IO (Map OpName (Set OpName))) ->
-  -- | The module, already parsed.
-  HsModule GhcPs ->
-  -- | Export items.
-  [ExportItem] ->
-  -- | For each reexported name, what it carries, or 'Nothing' where no
-  -- module that could have supplied it had anything to say about it.
-  IO [((Maybe Text, OpName), Maybe (Set OpName))]
-carriedNames implicitPrelude reachChildren hsModule items =
-  traverse (\(qualifier, parent) -> ((qualifier, parent),) <$> carriedBy qualifier parent) handedOn
-  where
-    declared = declaredChildren hsModule
-    imports = moduleImports implicitPrelude hsModule
-    handedOn =
-      [ (qualifier, parent)
-      | ExportAll qualifier parent <- items,
-        not (Map.member parent declared)
-      ]
-    carriedBy qualifier parent = do
-      answers <- traverse (reachChildren . importModule) (filter (canSupply qualifier parent) imports)
-      pure $ case mapMaybe (Map.lookup parent) answers of
-        [] -> Nothing
-        kids -> Just (Set.unions kids)
-
--- | Could this import have supplied a name an export list reexports?
-canSupply :: Maybe Text -> OpName -> Import -> Bool
-canSupply qualifier op i =
-  reaches && case importNames i of
-    Nothing -> True
-    Just (True, hidden) -> not (surelyNames Map.empty op hidden)
-    Just (False, shown) -> mightBring Map.empty op shown
-  where
-    reaches = case qualifier of
-      Nothing -> not (importQualified i)
-      Just q -> importAlias i == q
-
--- | The modules a @module M@ export reexports whole, by their own names.
-wantedModules ::
-  -- | Whether @ImplicitPrelude@ is on in the module being read.
-  Choice "implicitPrelude" ->
-  -- | The name this module was looked up under, so that a module handing
-  -- itself on under it is not chased.
-  Text ->
-  -- | The module, already parsed.
-  HsModule GhcPs ->
-  -- | Export items.
-  [ExportItem] ->
-  -- | The modules named, with an alias resolved to what it was imported
-  -- as, and this module itself left out.
-  [Text]
-wantedModules implicitPrelude modName hsModule items =
-  Set.toList . Set.fromList $
-    concat [under m | ExportModule m <- items, not (isSelf m)]
-  where
-    under m = case [importModule i | i <- imports, importAlias i == m] of
-      [] -> [m]
-      aliased -> aliased
-    imports = moduleImports implicitPrelude hsModule
-    isSelf m = Just m == moduleName hsModule || m == modName
-
--- | Every configuration the preprocessor allows of a module's text that is
--- Haskell, parsed, each with whether it has the Prelude without importing
--- it.
-configurationsOf ::
-  -- | What the plan settles about the questions its conditionals ask.
-  Macros ->
-  -- | What extensions the module's package puts in force.
-  Maybe [Extension] ->
-  -- | The module's name, for the parser to put in its errors.
-  Text ->
-  -- | Its text.
-  Text ->
-  Maybe (NonEmpty (Choice "implicitPrelude", HsModule GhcPs))
-configurationsOf macros extensions modName text =
-  NE.nonEmpty . mapMaybe parsed
-    =<< whatParsed (branchLeaves (withoutRuledOut macros text))
-  where
-    parsed leaf =
-      (,) (hasImplicitPrelude (fromMaybe [] extensions) leaf) . pmModule
-        <$> whatParsed (parseModule (configOf leaf) named leaf)
-    whatParsed = either (const Nothing) Just
-    configOf leaf = maybe defaultParserConfig (configFor leaf) extensions
-    configFor leaf exts = parserConfigFor (effectiveExtensions exts leaf)
-    named = T.unpack modName
-
--- | Does this module see the Prelude without importing it?
-hasImplicitPrelude :: [Extension] -> Text -> Choice "implicitPrelude"
-hasImplicitPrelude extensions source =
-  fromBool (ImplicitPrelude `elem` effectiveExtensions extensions source)
-
--- | Find a module inside a tarball and say what was found.
-readModule :: FilePath -> Text -> IO (Maybe InArchive)
-readModule tarball modName = quietly Nothing $ do
-  bytes <- BL.readFile tarball
-  let (cabal, candidates) = sweep Nothing [] (Tar.read (GZip.decompress bytes))
-      dirs = maybe [] sourceDirs cabal
-  pure (listToMaybe (mapMaybe (pick dirs candidates) moduleEndings))
-  where
-    suffix ending = "/" <> T.unpack (T.replace "." "/" modName) <> ending
-    suffixes = fmap suffix moduleEndings
-    sweep cabal found = \case
-      Tar.Next entry rest
-        | Tar.NormalFile content _ <- Tar.entryContent entry,
-          cabalFileAtTop (entryPosixPath entry),
-          Nothing <- cabal ->
-            sweep (Just (decode content)) found rest
-        | Tar.NormalFile content _ <- Tar.entryContent entry,
-          any (`isSuffixOf` entryPosixPath entry) suffixes ->
-            sweep cabal ((entryPosixPath entry, decode content) : found) rest
-        | otherwise -> sweep cabal found rest
-      _ -> (cabal, reverse found)
-    pick dirs candidates ending =
-      inArchive ending . snd
-        <$> listToMaybe (under sfx dirs matching <> matching)
-      where
-        sfx = suffix ending
-        matching = [c | c <- candidates, sfx `isSuffixOf` fst c]
-    under sfx dirs matching = [e | d <- dirs, e <- matching, inDir sfx d (fst e)]
-    inDir sfx d path
-      | d == "." = takeWhile (/= '/') path <> sfx == path
-      | otherwise = ("/" <> T.unpack d <> sfx) `isSuffixOf` path
-    decode = T.decodeUtf8Lenient . BL.toStrict
-
--- | The endings a package may write a module under, in the order they are
--- tried.
-moduleEndings :: [String]
-moduleEndings = [".hs", ".hsc"]
-
--- | What an archive holds for a module.
-data InArchive
-  = -- | Haskell, as the package wrote it.
-    Haskell Text
-  | -- | A module written for @hsc2hs@. Its text is not kept: there is
-    -- nothing to be done with it, and 'hscFixities' answers for it.
-    ForHsc
-
--- | What was found under one ending amounts to.
-inArchive :: String -> Text -> InArchive
-inArchive ending text
-  | writtenForHsc ending = ForHsc
-  | otherwise = Haskell text
-
--- | Is this a module @hsc2hs@ writes rather than one anybody compiles?
-writtenForHsc :: FilePath -> Bool
-writtenForHsc = isSuffixOf ".hsc"
-
--- | What an @.hsc@ module declares, which is nothing unless it is named.
-hscDeclares :: Text -> Established
-hscDeclares modName =
-  Declares (maybe Map.empty inBothNamespaces (Map.lookup modName hscFixities))
-
--- | The fixities an 'Established' holds, where it holds any.
-fixitiesEstablished :: Established -> Maybe (Fixities)
-fixitiesEstablished = \case
-  Declares fixities -> Just fixities
-  Unreadable _ -> Nothing
-
--- | The operators an @.hsc@ module can supply, on the same reasoning.
-hscSupplies :: Text -> Set OpName
-hscSupplies modName =
-  maybe Set.empty Map.keysSet (Map.lookup modName hscFixities)
+    newResolverWith,
+    withReexports,
+    scopeFor,
+  )
+where
+
+import Codec.Archive.Tar qualified as Tar
+import Codec.Compression.GZip qualified as GZip
+import Control.Applicative ((<|>))
+import Control.Concurrent
+  ( MVar,
+    ThreadId,
+    getNumCapabilities,
+    modifyMVar,
+    modifyMVar_,
+    myThreadId,
+    newEmptyMVar,
+    newMVar,
+    readMVar,
+    tryPutMVar,
+    tryReadMVar,
+  )
+import Control.Concurrent.QSem (newQSem, signalQSem, waitQSem)
+import Control.DeepSeq (NFData, force)
+import Control.Exception (bracket_, evaluate, onException)
+import Control.Monad (filterM, join, void)
+import Crypto.Hash.SHA256 qualified as SHA256
+import Data.Aeson
+  ( FromJSON (..),
+    Value,
+    decodeStrict,
+    eitherDecodeFileStrict,
+    withObject,
+    (.:),
+    (.:?),
+  )
+import Data.Aeson.Types (parseMaybe)
+import Data.ByteString qualified as BS
+import Data.ByteString.Base16 qualified as B16
+import Data.ByteString.Lazy qualified as BL
+import Data.Choice (Choice, fromBool, isTrue, pattern Do)
+import Data.Foldable (toList, traverse_)
+import Data.IORef
+import Data.List (isSuffixOf)
+import Data.List qualified
+import Data.List.NonEmpty (NonEmpty ((:|)))
+import Data.List.NonEmpty qualified as NE
+import Data.Map.Strict (Map)
+import Data.Map.Strict qualified as Map
+import Data.Maybe (catMaybes, fromMaybe, isNothing, listToMaybe, mapMaybe)
+import Data.Set (Set)
+import Data.Set qualified as Set
+import Data.Text (Text)
+import Data.Text qualified as T
+import Data.Text.Encoding qualified as T
+import Data.Text.Read qualified as T
+import Data.Unique (Unique, newUnique)
+import GHC.Generics (Generic)
+import GHC.Hs (HsModule)
+import GHC.Hs.Extension (GhcPs)
+import GHC.IO.Handle (hDuplicate)
+import GHC.LanguageExtensions.Type (Extension (ImplicitPrelude))
+import System.Directory
+  ( XdgDirectory (XdgCache),
+    doesFileExist,
+    getAppUserDataDirectory,
+    getModificationTime,
+    getXdgDirectory,
+    listDirectory,
+  )
+import System.Environment (lookupEnv)
+import System.Exit (ExitCode (..))
+import System.FilePath (isRelative, takeDirectory, (</>))
+import System.IO (hClose, hFlush, stderr)
+import System.Info qualified
+import System.Process
+  ( StdStream (CreatePipe, Inherit, UseHandle),
+    createProcess,
+    cwd,
+    proc,
+    std_err,
+    std_in,
+    std_out,
+    waitForProcess,
+  )
+import Tilia.Cabal.Package (newPackageReader)
+import Tilia.Cpp.Directives (branchLeaves, withoutRuledOut)
+import Tilia.Cpp.Macros (Macros (..))
+import Tilia.Fixity
+import Tilia.Fixity.ByHand (hscFixities)
+import Tilia.Fixity.Cabal
+  ( cabalFileAtTop,
+    containedModules,
+    declaredExtensions,
+    entryPosixPath,
+    packageModules,
+    sourceDirs,
+  )
+import Tilia.Fixity.Cache
+import Tilia.Fixity.HiFile (primopFixities)
+import Tilia.Fixity.Interface
+import Tilia.Fixity.PackageDb
+import Tilia.Parser
+import Tilia.Pragma (effectiveExtensions)
+import Tilia.Process (readProgramOutput)
+import Tilia.Utils (inParallel, quietly)
+
+----------------------------------------------------------------------------
+-- The plan
+
+-- | One package of a build plan.
+data PlanPackage = PlanPackage
+  { -- | Package name
+    ppName :: Text,
+    -- | Package version
+    ppVersion :: Text,
+    -- | Package source
+    ppSource :: PackageSource,
+    -- | Which components of the package the entry is about.
+    --
+    -- Usually one, because @cabal@ configures a package one component at a
+    -- time and gives each its own entry. A package it cannot take apart—one
+    -- with a @Custom@ build type, whose @Setup.hs@ is entitled to do as it
+    -- pleases—is planned whole instead, and its entry is about every
+    -- component at once.
+    ppComponents :: [Text]
+  }
+  deriving (Eq, Show)
+
+-- | Where a package's source is.
+data PackageSource
+  = -- | Already installed, so @cabal@ will not build it.
+    --
+    -- Not the same as "ships with the compiler", though it includes those.
+    PreExisting
+  | -- | A directory on this machine—the project being formatted, or a
+    -- sibling of it in the same repository.
+    LocalPackage FilePath
+  | -- | Fetched from a repository as a tarball, with the SHA-256 the plan
+    -- expects it to have and where it was fetched from.
+    RepoPackage (Maybe Text) RepoProvenance
+  | -- | A @source-repository-package@ we have not found the sources of.
+    SourceRepo
+  | -- | The same, found unpacked under the project's own @dist-newstyle@.
+    CheckedOut FilePath
+  deriving (Eq, Show)
+
+-- | Which repository a package was fetched from, as far as it bears on
+-- finding the tarball afterwards.
+data RepoProvenance
+  = -- | One @cabal@ downloads from, named by its URI. The tarball goes into
+    -- the package cache, in a directory named after the repository as the
+    -- configuration spells it.
+    RepoDownloaded Text
+  | -- | A directory of tarballs, named by @file+noindex@. Nothing is
+    -- downloaded and nothing is cached: the tarball is already sitting
+    -- there, beside the index @cabal@ wrote for it.
+    RepoFromDirectory FilePath
+  | -- | A plan that does not say. Older @cabal@ wrote nothing here, and
+    -- Hackage is the only guess worth making.
+    RepoNoProvenance
+  deriving (Eq, Show)
+
+-- | Is there a tarball to go and read?
+isFetchable :: PlanPackage -> Bool
+isFetchable p = case ppSource p of
+  RepoPackage _ _ -> True
+  _ -> False
+
+-- | Every package the compiler can see.
+getInstalledPackages :: Cache -> IO [InstalledPackage]
+getInstalledPackages cache =
+  cachedInstalled cache >>= \case
+    Just packages -> pure packages
+    Nothing -> do
+      found <- readInstalledPackages
+      storeInstalled cache found
+      pure (installedPackages found)
+
+-- | Summarize a 'BuildPlan', and the environment it will be read in, by
+-- hashing over both.
+tokenForBuildPlan :: BuildPlan -> IO PlanToken
+tokenForBuildPlan plan = do
+  environment <- compilerIdentity
+  pure (tokenForEnvAndBuildPlan environment plan)
+
+-- | Similar to 'tokenForBuildPlan', but allows passing a compiler identity
+-- as an argument.
+tokenForEnvAndBuildPlan :: Text -> BuildPlan -> PlanToken
+tokenForEnvAndBuildPlan environment plan =
+  PlanToken
+    . T.take 16
+    . T.decodeUtf8Lenient
+    . B16.encode
+    . SHA256.hash
+    . T.encodeUtf8
+    $ T.intercalate
+      "\n"
+      ( environment
+          : bpCompiler plan
+          : Data.List.sort (fmap cacheKey (bpPackages plan))
+      )
+
+-- | The SHA-256 the plan expects this package's tarball to have.
+sourceHashOf :: PlanPackage -> Maybe Text
+sourceHashOf p = case ppSource p of
+  RepoPackage hash _ -> hash
+  _ -> Nothing
+
+-- | A resolved build plan.
+data BuildPlan = BuildPlan
+  { bpCompiler :: Text,
+    bpPackages :: [PlanPackage]
+  }
+  deriving (Eq, Show)
+
+instance FromJSON BuildPlan where
+  parseJSON = withObject "BuildPlan" $ \o ->
+    BuildPlan
+      <$> o .: "compiler-id"
+      <*> o .: "install-plan"
+
+instance FromJSON PlanPackage where
+  parseJSON = withObject "PlanPackage" $ \o -> do
+    name <- o .: "pkg-name"
+    version <- o .: "pkg-version"
+    kind <- o .:? "type"
+    sourceKind <- o .:? "pkg-src" >>= traverse (.: "type")
+    sourcePath <- o .:? "pkg-src" >>= traverse (.:? "path")
+    sourceHash <- o .:? "pkg-src-sha256"
+    repo <- o .:? "pkg-src" >>= traverse (.:? "repo")
+    repoKind <- traverse (traverse (.:? "type")) repo
+    repoUri <- traverse (traverse (.:? "uri")) repo
+    repoPath <- traverse (traverse (.:? "path")) repo
+    named <- o .:? "component-name"
+    whole <- o .:? "components"
+    pure
+      PlanPackage
+        { ppName = name,
+          ppVersion = version,
+          ppComponents = componentsOf named whole,
+          ppSource = case (kind :: Maybe Text, sourceKind :: Maybe Text) of
+            (Just "pre-existing", _) -> PreExisting
+            (_, Just "repo-tar") ->
+              RepoPackage
+                sourceHash
+                ( case ( join (join repoKind) :: Maybe Text,
+                         join (join repoPath),
+                         join (join repoUri)
+                       ) of
+                    (Just "local-repo-no-index", Just dir, _) ->
+                      RepoFromDirectory (T.unpack dir)
+                    (_, _, Just uri) -> RepoDownloaded uri
+                    _ -> RepoNoProvenance
+                )
+            (_, Just "local") -> LocalPackage (maybe "" T.unpack (join sourcePath))
+            (_, Just "source-repo") -> SourceRepo
+            -- Anything else is treated as already present.
+            _ -> PreExisting
+        }
+
+-- | The components one plan entry is about.
+--
+-- @cabal@ writes this two ways. An entry for a single component names it in
+-- @component-name@; an entry for a package planned whole carries a
+-- @components@ object instead, keyed by the very same spellings. Reading
+-- only the first would leave every @Custom@ package looking like one the
+-- plan says nothing about, and a run would keep asking @cabal@ to solve
+-- again for components a fresh solve would file exactly where this one did.
+--
+-- @setup@ is dropped. It is the @Setup.hs@ program @cabal@ builds in order
+-- to build the package, not a component of the package, and nothing in the
+-- project will ever be formatted as part of it.
+componentsOf :: Maybe Text -> Maybe (Map Text Value) -> [Text]
+componentsOf named whole = case named of
+  Just component -> [component]
+  Nothing -> filter (/= "setup") (Map.keys (fromMaybe Map.empty whole))
+
+-- | Read @plan.json@.
+readBuildPlan :: FilePath -> IO (Either Text BuildPlan)
+readBuildPlan path =
+  decodePlan path >>= traverse (checkedOutIn (takeDirectory (takeDirectory path)))
+
+-- | Read a plan that is to be trusted as up to date.
+readGivenPlan ::
+  -- | The project root.
+  FilePath ->
+  -- | The plan.
+  FilePath ->
+  IO (Either Text BuildPlan)
+readGivenPlan root path =
+  fmap (\plan -> plan{bpPackages = fmap rooted (bpPackages plan)})
+    <$> decodePlan path
+  where
+    rooted p = case ppSource p of
+      LocalPackage dir
+        | isRelative dir ->
+            p{ppSource = LocalPackage (root </> dir)}
+      _ -> p
+
+-- | Decode a plan, or say why it cannot be.
+decodePlan :: FilePath -> IO (Either Text BuildPlan)
+decodePlan path =
+  doesFileExist path >>= \case
+    False -> pure (Left ("no build plan at " <> T.pack path))
+    True -> either (Left . T.pack) Right <$> eitherDecodeFileStrict path
+
+-- | Find where @cabal@ unpacked each @source-repository-package@.
+checkedOutIn :: FilePath -> BuildPlan -> IO BuildPlan
+checkedOutIn distDir plan = do
+  packages <- traverse locate (bpPackages plan)
+  pure plan{bpPackages = packages}
+  where
+    locate p = case ppSource p of
+      SourceRepo ->
+        clonesOf p >>= \case
+          (dir : _) -> pure p{ppSource = CheckedOut dir}
+          [] -> pure p
+      _ -> pure p
+    clonesOf p = quietly [] $ do
+      entries <- listDirectory (distDir </> "src")
+      filterM
+        (isThePackage p)
+        [ distDir </> "src" </> e
+        | e <- Data.List.sort entries,
+          (ppName p <> "-") `T.isPrefixOf` T.pack e
+        ]
+    isThePackage p dir = quietly False $ do
+      contents <- readFileText (dir </> T.unpack (ppName p) <> ".cabal")
+      pure (maybe False (describes p) contents)
+    describes p text =
+      any (names "name:" (ppName p)) (T.lines text)
+        && any (names "version:" (ppVersion p)) (T.lines text)
+    names field value line = case T.stripPrefix field (T.toLower (T.strip line)) of
+      Just rest -> T.strip rest == T.toLower value
+      Nothing -> False
+
+-- | The version macros a plan settles.
+macrosOf :: BuildPlan -> Macros
+macrosOf plan =
+  mempty
+    { macroVersions =
+        Map.fromList
+          ( [ ("MIN_VERSION_" <> underscored name, version)
+            | (name, [version]) <- Map.toList (Map.map Set.toList versions)
+            ]
+              <> [("MIN_VERSION_GLASGOW_HASKELL", v) | v <- toList compiler]
+          ),
+      macroNumbers =
+        Map.fromList
+          [ entry
+          | (major : minor : patches) <- toList compiler,
+            entry <-
+              [ ("__GLASGOW_HASKELL__", major * 100 + minor),
+                ("__GLASGOW_HASKELL_PATCHLEVEL1__", nth 0 patches),
+                ("__GLASGOW_HASKELL_PATCHLEVEL2__", nth 1 patches)
+              ]
+          ],
+      macroUndefined =
+        if null compiler
+          then Set.empty
+          else Set.fromList ["__MHS__", "__HUGS__"]
+    }
+  where
+    versions =
+      Map.fromListWith
+        Set.union
+        [ (ppName p, Set.singleton v)
+        | p <- bpPackages plan,
+          Just v <- [numberedVersion (ppVersion p)]
+        ]
+    compiler = do
+      version <- T.stripPrefix "ghc-" (bpCompiler plan)
+      parts <- numberedVersion version
+      case parts of
+        _ : _ : _ -> Just (take 4 (parts <> repeat 0))
+        _ -> Nothing
+    nth i xs = if i < length xs then xs !! i else 0
+
+-- | The modules @cabal@ writes itself for a plan's packages.
+generatedModules :: BuildPlan -> Set Text
+generatedModules plan =
+  Set.fromList
+    [ prefix <> underscored (ppName p)
+    | p <- bpPackages plan,
+      prefix <- ["Paths_", "PackageInfo_"]
+    ]
+
+-- | A package's name as a module name spells it, which is with the hyphens
+-- turned into underscores. @cabal@ does this for the version macros and for
+-- the modules it generates alike.
+underscored :: Text -> Text
+underscored = T.map (\c -> if c == '-' then '_' else c)
+
+-- | A version as its numbers, or 'Nothing' where any of them is not one.
+numberedVersion :: Text -> Maybe [Integer]
+numberedVersion = traverse number . T.splitOn "."
+  where
+    number part = case T.decimal part of
+      Right (n, rest) | T.null rest -> Just n
+      _ -> Nothing
+
+----------------------------------------------------------------------------
+-- Readiness
+
+-- | A component of the project.
+data PlanComponent = PlanComponent
+  { -- | The package it belongs to.
+    pcPackage :: Text,
+    -- | @lib@, @exe:name@, @test:name@, @bench:name@.
+    pcName :: Text
+  }
+  deriving (Eq, Ord, Show)
+
+-- | A component as it would be written on the command line.
+spellComponent :: PlanComponent -> Text
+spellComponent c = pcPackage c <> ":" <> pcName c
+
+-- | The components of the project's own packages that a plan covers.
+plannedComponents :: BuildPlan -> [PlanComponent]
+plannedComponents plan =
+  [ PlanComponent (ppName p) component
+  | p <- bpPackages plan,
+    LocalPackage _ <- [ppSource p],
+    component <- ppComponents p
+  ]
+
+-- | Whether everything the resolver needs is on disk.
+data Readiness
+  = -- | Nothing to do.
+    Ready
+  | -- | No build plan; @cabal@ has not solved this project yet.
+    PlanMissing
+  | -- | The plan is older than the files that determine it.
+    PlanStale [FilePath]
+  | -- | The plan says nothing about components the run is about to format.
+    PlanNarrow [Text]
+  | -- | The plan is there, and some packages have neither been downloaded
+    -- nor built. The names are listed so that a caller can say what it is
+    -- waiting for.
+    --
+    -- Built counts as having them: their interfaces provide everything the
+    -- source tarball would.
+    SourcesMissing [Text]
+  deriving (Eq, Show)
+
+-- | Where @cabal@ writes the plan for a project.
+planPathFor :: FilePath -> FilePath
+planPathFor projectDir = projectDir </> "dist-newstyle" </> "cache" </> "plan.json"
+
+-- | Check what is missing.
+--
+-- One read of the plan and one @stat@ per package, so this is fast enough
+-- to run before every format.
+checkReadiness :: Choice "useCache" -> [PlanComponent] -> FilePath -> IO Readiness
+checkReadiness caching wanted projectDir =
+  readBuildPlan (planPathFor projectDir) >>= \case
+    Left _ -> pure PlanMissing
+    Right plan -> do
+      newer <- filesNewerThanPlan plan projectDir
+      let covered = plannedComponents plan
+          missing = [spellComponent c | c <- wanted, c `notElem` covered]
+      case (newer, missing) of
+        (_ : _, _) -> pure (PlanStale newer)
+        ([], _ : _) -> pure (PlanNarrow missing)
+        ([], []) ->
+          sourcesShortOf caching plan >>= \case
+            [] -> pure Ready
+            ps -> pure (SourcesMissing (fmap ppName ps))
+
+-- | The packages the plan expects to fetch whose sources are not here.
+sourcesShortOf :: Choice "useCache" -> BuildPlan -> IO [PlanPackage]
+sourcesShortOf caching plan = do
+  tarballs <- filter (isFetchable . fst) <$> plannedTarballs plan
+  absent <- fmap fst <$> filterM (fmap not . doesFileExist . snd) tarballs
+  short <-
+    if null absent
+      then pure []
+      else do
+        cache <- openCache caching =<< tokenForBuildPlan plan
+        installed <- getInstalledPackages cache
+        pure (filter (not . builtAlready installed) absent)
+  pure short
+
+-- | Has the compiler got this package already?
+builtAlready :: [InstalledPackage] -> PlanPackage -> Bool
+builtAlready installed p = any matches installed
+  where
+    matches i = ipName i == ppName p && ipVersion i == ppVersion p
+
+-- | The project files that have changed since the plan was written.
+filesNewerThanPlan :: BuildPlan -> FilePath -> IO [FilePath]
+filesNewerThanPlan plan projectDir = quietly [] $ do
+  planTime <- getModificationTime (planPathFor projectDir)
+  atRoot <- quietly [] (listDirectory projectDir)
+  inPackages <- concat <$> traverse cabalFilesIn (localDirs plan)
+  let candidates =
+        [projectDir </> f | f <- atRoot, f `elem` projectFiles]
+          <> [projectDir </> f | f <- atRoot, ".cabal" `isSuffixOf` f]
+          <> inPackages
+  newer <- traverse (isNewerThan planTime) candidates
+  pure [f | Just f <- newer]
+  where
+    projectFiles =
+      ["cabal.project", "cabal.project.local", "cabal.project.freeze"]
+    localDirs p =
+      Data.List.nub [dir | LocalPackage dir <- fmap ppSource (bpPackages p)]
+    cabalFilesIn dir = quietly [] $ do
+      entries <- listDirectory dir
+      pure [dir </> f | f <- entries, ".cabal" `isSuffixOf` f]
+    isNewerThan planTime path = quietly Nothing $ do
+      t <- getModificationTime path
+      pure (if t > planTime then Just path else Nothing)
+
+-- | An account of actions we know are not worth attempting.
+data Futility = Futility
+  { -- | Has solving this plan already been tried and left it as narrow?
+    solveWasFutile :: IO Bool,
+    -- | Record that a solve has been run and left it narrow, which is what
+    -- 'solveWasFutile' answers from afterwards.
+    rememberFutileSolve :: IO (),
+    -- | The packages an earlier fetch was still short of afterwards.
+    fetchWasFutileFor :: IO [Text],
+    -- | Remember what a fetch left missing.
+    rememberFutileFetch :: [Text] -> IO ()
+  }
+
+-- | The state when we know nothing about futile actions yet.
+undiscoveredFutility :: Futility
+undiscoveredFutility =
+  Futility
+    { solveWasFutile = pure False,
+      rememberFutileSolve = pure (),
+      fetchWasFutileFor = pure [],
+      rememberFutileFetch = const (pure ())
+    }
+
+-- | A memory kept in the cache, under the plan the project has now.
+futilityFor :: Choice "useCache" -> FilePath -> Futility
+futilityFor caching projectDir =
+  Futility
+    { solveWasFutile = withCache False cachedFutileSolve,
+      rememberFutileSolve = withCache () storeFutileSolve,
+      fetchWasFutileFor = withCache [] cachedFutileFetch,
+      rememberFutileFetch = \packages ->
+        withCache () (`storeFutileFetch` packages)
+    }
+  where
+    withCache fallback use =
+      readBuildPlan (planPathFor projectDir) >>= \case
+        Left _ -> pure fallback
+        Right plan -> use =<< openCache caching =<< tokenForBuildPlan plan
+
+-- | Do whatever is missing, given a way to run @cabal@ and a memory of what
+-- earlier attempts came to.
+prepareWith ::
+  -- | Whether to use the cache.
+  Choice "useCache" ->
+  -- | Whether to download what is missing.
+  Choice "download" ->
+  -- | Run @cabal@ with these arguments.
+  ([String] -> IO (Either Text ())) ->
+  -- | What earlier attempts came to.
+  Futility ->
+  -- | The components the run is about to format.
+  [PlanComponent] ->
+  -- | The project being prepared.
+  FilePath ->
+  -- | What it was found to be short of.
+  Readiness ->
+  IO (Either Text ())
+prepareWith caching downloading cabal futility wanted projectDir = \case
+  Ready -> pure (Right ())
+  SourcesMissing _ -> fetch
+  PlanMissing -> solveThenFetch
+  PlanStale _ -> solveThenFetch
+  PlanNarrow _ ->
+    solveWasFutile futility >>= \case
+      True -> fetchWhatIsShort
+      False -> solveThenFetch
+  where
+    wholeProject = ["--enable-tests", "--enable-benchmarks"]
+    tryWholeProject args =
+      cabal (args <> wholeProject) >>= \case
+        Right () -> pure (Right ())
+        Left _ -> cabal args
+    fetch
+      | isTrue downloading = tryWholeProject ["build", ":all", "--only-download"]
+      | otherwise = pure (Right ())
+    fetchWhatIsShort =
+      readBuildPlan (planPathFor projectDir) >>= \case
+        Left _ -> pure (Right ())
+        Right plan -> do
+          short <- fmap ppName <$> sourcesShortOf caching plan
+          refused <- fetchWasFutileFor futility
+          if null short || all (`elem` refused) short
+            then pure (Right ())
+            else
+              fetch >>= \case
+                Left err -> pure (Left err)
+                Right () -> do
+                  left <- sourcesShortOf caching plan
+                  rememberFutileFetch futility (fmap ppName left)
+                  pure (Right ())
+    solveThenFetch =
+      tryWholeProject ["build", ":all", "--dry-run"] >>= \case
+        Left err -> pure (Left err)
+        Right () ->
+          checkReadiness caching wanted projectDir >>= \case
+            SourcesMissing _ -> fetch
+            PlanNarrow _ -> rememberFutileSolve futility >> fetchWhatIsShort
+            _ -> pure (Right ())
+
+-- | Run @cabal@ in a project directory, letting it speak for itself.
+runCabal :: FilePath -> [String] -> IO (Either Text ())
+runCabal projectDir args = quietly (Left "could not run cabal") $ do
+  hFlush stderr
+  -- A duplicate because 'createProcess' closes the handle it is given once
+  -- the child has it, and closing the real standard error would leave
+  -- nothing to report the failure on.
+  passed <- hDuplicate stderr
+  -- A pipe closed at once rather than our standard input, which in an
+  -- editor's process carries what the editor says to it.
+  (toChild, _, _, running) <-
+    createProcess
+      (proc "cabal" args)
+        { cwd = Just projectDir,
+          std_in = CreatePipe,
+          std_out = UseHandle passed,
+          std_err = Inherit
+        }
+  traverse_ hClose toChild
+  code <- waitForProcess running
+  pure $ case code of
+    ExitSuccess -> Right ()
+    _ -> Left ("cabal " <> T.unwords (fmap T.pack args) <> " failed; see above")
+
+-- | Fetch the sources of a trusted plan's dependencies that are neither
+-- installed nor fetched already, at the versions the plan names.
+fetchUninstalled ::
+  -- | Whether to use the cache.
+  Choice "useCache" ->
+  -- | The project the plan is for.
+  FilePath ->
+  -- | The build plan to use.
+  BuildPlan ->
+  IO ()
+fetchUninstalled caching projectDir plan =
+  sourcesShortOf caching plan >>= \case
+    [] -> pure ()
+    short ->
+      void . runCabal projectDir $
+        "fetch"
+          : "--no-dependencies"
+          : [T.unpack (ppName p <> "-" <> ppVersion p) | p <- short]
+
+-- | Get a plan that is safe to use, doing whatever @cabal@ work is needed.
+loadPlan ::
+  -- | Whether to use the cache.
+  Choice "useCache" ->
+  -- | Whether to download what is missing.
+  Choice "download" ->
+  -- | The components the run is about to format, so that a plan which says
+  -- nothing about them is solved again rather than trusted.
+  [PlanComponent] ->
+  -- | The project whose plan it is.
+  FilePath ->
+  IO (Either Text BuildPlan)
+loadPlan caching downloading wanted projectDir = do
+  readiness <- checkReadiness caching wanted projectDir
+  prepareWith
+    caching
+    downloading
+    (runCabal projectDir)
+    (futilityFor caching projectDir)
+    wanted
+    projectDir
+    readiness
+    >>= \case
+      Left err -> pure (Left err)
+      _ -> readBuildPlan (planPathFor projectDir)
+
+-- | Every planned package whose source could be in the package cache, with
+-- where that would be.
+plannedTarballs :: BuildPlan -> IO [(PlanPackage, FilePath)]
+plannedTarballs plan = do
+  cacheRoot <- packageCacheRoot
+  repos <- quietly [] (Data.List.sort <$> listDirectory cacheRoot)
+  traverse
+    (\p -> (,) p <$> tarballFor cacheRoot repos p)
+    [p | p <- bpPackages plan, not (isLocal p)]
+  where
+    isLocal p = case ppSource p of
+      LocalPackage _ -> True
+      CheckedOut _ -> True
+      _ -> False
+
+-- | Where @cabal@ keeps downloaded package sources, one directory per
+-- repository it downloads from.
+packageCacheRoot :: IO FilePath
+packageCacheRoot =
+  readProgramOutput
+    "cabal"
+    ["path", "--remote-repo-cache", "--output-format=json"]
+    >>= \case
+      Just said | Just dir <- remoteRepoCacheIn said -> pure dir
+      _ -> guessedPackageCacheRoot
+
+-- | The package cache directory, out of what @cabal path@ printed.
+remoteRepoCacheIn :: Text -> Maybe FilePath
+remoteRepoCacheIn said = do
+  spoken <-
+    listToMaybe $
+      reverse (filter (not . T.null) (fmap T.strip (T.lines said)))
+  value <- decodeStrict (T.encodeUtf8 spoken)
+  parseMaybe (withObject "cabal path" (.: "remote-repo-cache")) value
+
+-- | Where @cabal@ probably keeps its downloaded packages.
+guessedPackageCacheRoot :: IO FilePath
+guessedPackageCacheRoot =
+  lookupEnv "CABAL_DIR" >>= \case
+    Just dir -> pure (dir </> "packages")
+    Nothing -> do
+      places <- cabalDirs
+      found <- filterM holdsAnIndex (toList places)
+      pure (fromMaybe (NE.head places) (listToMaybe found))
+  where
+    holdsAnIndex dir =
+      quietly False (doesFileExist (dir </> hackage </> "01-index.tar"))
+    hackage = "hackage.haskell.org"
+
+-- | Every directory @cabal@ could be keeping a package cache in, the
+-- platform's own default first.
+cabalDirs :: IO (NonEmpty FilePath)
+cabalDirs = do
+  appData <- getAppUserDataDirectory "cabal"
+  xdg <- quietly Nothing (Just <$> getXdgDirectory XdgCache "cabal")
+  pure . fmap (</> "packages") $ case xdg of
+    Just dir | not onWindows -> dir :| [appData]
+    Just dir -> appData :| [dir]
+    Nothing -> appData :| []
+
+-- | Whether this is a Windows build, for the places that differ there.
+onWindows :: Bool
+onWindows = System.Info.os == "mingw32"
+
+-- | The repository @cabal@ would have kept a package's sources under.
+hackageByDefault :: FilePath
+hackageByDefault = "hackage.haskell.org"
+
+-- | Where a package's source tarball is, or where fetching would put it.
+tarballFor :: FilePath -> [FilePath] -> PlanPackage -> IO FilePath
+tarballFor cacheRoot repos p = case provenanceOf p of
+  RepoFromDirectory dir -> pure (dir </> flat)
+  RepoDownloaded uri -> searched (hostOf uri)
+  RepoNoProvenance -> searched Nothing
+  where
+    flat = T.unpack (ppName p <> "-" <> ppVersion p <> ".tar.gz")
+    under repo =
+      cacheRoot
+        </> repo
+        </> T.unpack (ppName p)
+        </> T.unpack (ppVersion p)
+        </> flat
+    searched preferred = do
+      let first' = fromMaybe hackageByDefault preferred
+          rest = filter (/= first') repos
+      found <- filterM doesFileExist (fmap under (first' : rest))
+      pure (fromMaybe (under first') (listToMaybe found))
+
+-- | Which repository a package came from, where it came from one.
+provenanceOf :: PlanPackage -> RepoProvenance
+provenanceOf p = case ppSource p of
+  RepoPackage _ repo -> repo
+  _ -> RepoNoProvenance
+
+-- | The host a URI names, which is what @cabal@ conventionally calls the
+-- repository that lives there.
+hostOf :: Text -> Maybe FilePath
+hostOf uri = case T.breakOn "//" uri of
+  (_, rest)
+    | not (T.null rest),
+      host <- T.takeWhile (/= '/') (T.drop 2 rest),
+      not (T.null host) ->
+        Just (T.unpack host)
+  _ -> Nothing
+
+----------------------------------------------------------------------------
+-- Resolving
+
+-- | Where a module's fixities can be read from.
+data Route
+  = -- | The compiled interface the package database points at. Cheap, and
+    -- authoritative where it exists, since it is the compiler's own account
+    -- of what it settled on.
+    FromInterface
+  | -- | The module's source, out of the package's tarball in Cabal's
+    -- package cache. Slower, and the only route for a package that is
+    -- planned but not built.
+    FromSource
+  deriving (Eq, Show)
+
+-- | What can be asked about a module, once a plan says where to look.
+newtype Resolver = Resolver
+  { -- | What reading a module established about the names it exports.
+    askModule :: Text -> IO Established
+  }
+
+-- | Build a new 'Resolver'.
+--
+-- Answers are remembered on disk between runs by "Tilia.Fixity.Cache", so a
+-- package is decompressed and parsed once per machine rather than once per
+-- file.
+newResolver ::
+  -- | The build plan to use.
+  BuildPlan ->
+  IO Resolver
+newResolver = newResolverVia (Do #useCache) [FromInterface, FromSource]
+
+-- | 'newResolver', restricted to the routes given.
+newResolverVia ::
+  -- | Whether to use the cache.
+  Choice "useCache" ->
+  -- | Which readings to try, in order.
+  [Route] ->
+  -- | The build plan to use.
+  BuildPlan ->
+  IO Resolver
+newResolverVia caching routes plan = do
+  tarballs <-
+    if FromSource `elem` routes
+      then plannedTarballs plan
+      else pure []
+  cache <- openCache caching =<< tokenForBuildPlan plan
+  installed <- getInstalledPackages cache
+  newResolverWith routes cache installed tarballs plan
+
+-- | 'newResolverVia', given what it would find out from the machine.
+newResolverWith ::
+  -- | Which readings to try, in order.
+  [Route] ->
+  -- | Where to remember answers between runs.
+  Cache ->
+  -- | Every package the compiler can see.
+  [InstalledPackage] ->
+  -- | Every planned package that might have a tarball, and where it would
+  -- be.
+  [(PlanPackage, FilePath)] ->
+  -- | The build plan to use.
+  BuildPlan ->
+  IO Resolver
+newResolverWith routes cache installed tarballs plan = do
+  index <- buildModuleIndex cache installed tarballs
+  let interfaces = interfaceIndex installed
+  local <- localModules plan
+  flights <- newMVar (Flights Map.empty Map.empty)
+  answersRead <- newMemo
+  askPackage <- newPackageReader
+  extensionsRead <- newMemo
+  summariesRead <- newMemo
+  archivesRead <- newMemo
+  interfacesRead <- newMemo
+  reading <- newQSem =<< getNumCapabilities
+  let interfaceOf modName =
+        memoized flights interfacesRead Nothing modName $
+          case Map.lookup modName primopFixities of
+            Just declared -> pure (Just (asInterface declared))
+            Nothing -> case Map.lookup modName interfaces of
+              Nothing -> pure Nothing
+              Just (_, path) ->
+                bracket_ (waitQSem reading) (signalQSem reading) $
+                  readInterface modName path
+  let workings =
+        Workings
+          { wkRoutes = routes,
+            wkCache = cache,
+            wkLocal = local,
+            wkIndex = index,
+            wkInterfaces = interfaces,
+            wkInterfaceOf = interfaceOf,
+            wkReach = reach,
+            wkSummariesOf = summariesOf,
+            wkModuleInArchive = moduleInArchive,
+            wkGenerated = generatedModules plan,
+            wkReexported =
+              Map.fromList [pair | i <- installed, pair <- ipReexports i]
+          }
+      -- The stand-in is what 'withReexports' makes of a module it is in the
+      -- middle of reading.
+      reach visiting modName
+        | modName `Set.member` visiting = pure mempty
+        | otherwise =
+            memoized flights answersRead mempty modName $
+              resolveModule workings visiting modName
+      summariesOf modName text =
+        memoized flights summariesRead Nothing modName $ do
+          extensions <- extensionsOf modName
+          let summarized =
+                evaluate . force $
+                  configurationsOf
+                    (macrosOf plan)
+                    (Just extensions)
+                    modName
+                    text
+              stamp =
+                digestOf $
+                  T.intercalate "\n" [T.pack (show extensions), macrosRead, text]
+          case digestOf . T.pack <$> Map.lookup modName local of
+            Nothing -> summarized
+            Just key ->
+              join
+                <$> recalled
+                  (cachedSummaries cache key stamp)
+                  (storeSummaries cache key stamp)
+                  (Just <$> summarized)
+      macrosRead = T.pack (show (macrosOf plan))
+      extensionsOf modName
+        | Just path <- Map.lookup modName local =
+            either (const []) id <$> askPackage path
+        | Just (package, tarball) <- Map.lookup modName index =
+            memoized flights extensionsRead [] package $
+              foldMap declaredExtensions . (archiveCabal =<<) <$> archiveOf tarball
+        | otherwise = pure []
+      archiveOf tarball =
+        memoized flights archivesRead Nothing (T.pack tarball) (readArchive tarball)
+      moduleInArchive tarball modName = (moduleIn modName =<<) <$> archiveOf tarball
+  pure Resolver{askModule = reach Set.empty}
+
+-- | Answers filed under the names they are about, each worked out once.
+data Memo v = Memo Unique (IORef (Map Text (MVar v)))
+
+-- | An empty 'Memo'.
+newMemo :: IO (Memo v)
+newMemo = Memo <$> newUnique <*> newIORef Map.empty
+
+-- | Which thread is working out which answer, and which answer each waiting
+-- thread waits for, across all of a resolver's tables.
+data Flights = Flights
+  { flightOwners :: Map (Unique, Text) ThreadId,
+    flightWaits :: Map ThreadId (Unique, Text)
+  }
+
+-- | Look an answer up in a table, working it out and filing it the first
+-- time.
+memoized ::
+  -- | Who is working out what.
+  MVar Flights ->
+  -- | Where the answers are filed.
+  Memo v ->
+  -- | The answer for a thread that cannot wait.
+  v ->
+  -- | What the answer is about.
+  Text ->
+  -- | Work that is being memoized.
+  IO v ->
+  IO v
+memoized flights (Memo table answers) standIn key work =
+  Map.lookup key <$> readIORef answers >>= \case
+    Just slot -> tryReadMVar slot >>= maybe (waitFor slot) pure
+    Nothing -> do
+      me <- myThreadId
+      claimed <- modifyMVar flights $ \fl -> do
+        filed <- readIORef answers
+        case Map.lookup key filed of
+          Just slot -> pure (fl, Left slot)
+          Nothing -> do
+            slot <- newEmptyMVar
+            writeIORef answers (Map.insert key slot filed)
+            pure
+              ( fl{flightOwners = Map.insert (table, key) me (flightOwners fl)},
+                Right slot
+              )
+      case claimed of
+        Left slot -> waitFor slot
+        Right slot -> do
+          answer <- work `onException` file slot standIn
+          answer <$ file slot answer
+  where
+    file slot answer = modifyMVar_ flights $ \fl -> do
+      _ <- tryPutMVar slot answer
+      pure fl{flightOwners = Map.delete (table, key) (flightOwners fl)}
+    waitFor slot = do
+      me <- myThreadId
+      settled <- modifyMVar flights $ \fl ->
+        tryReadMVar slot >>= \case
+          Just answer -> pure (fl, Just answer)
+          Nothing
+            | waitedOnBy fl me (table, key) -> pure (fl, Just standIn)
+            | otherwise ->
+                pure
+                  ( fl{flightWaits = Map.insert me (table, key) (flightWaits fl)},
+                    Nothing
+                  )
+      case settled of
+        Just answer -> pure answer
+        Nothing -> do
+          answer <- readMVar slot
+          modifyMVar_ flights $ \fl ->
+            pure fl{flightWaits = Map.delete me (flightWaits fl)}
+          pure answer
+
+-- | Is this answer being worked out by the given thread, or by one that
+-- waits for it, directly or through others?
+waitedOnBy :: Flights -> ThreadId -> (Unique, Text) -> Bool
+waitedOnBy fl me = go
+  where
+    go key = case Map.lookup key (flightOwners fl) of
+      Nothing -> False
+      Just owner
+        | owner == me -> True
+        | otherwise -> maybe False go (Map.lookup owner (flightWaits fl))
+
+-- | Work out what a module can see, using a resolver to reach its imports.
+--
+-- This is the join between the pure half of "Tilia.Fixity" and the half
+-- that touches the disk: the imports are resolved first, and the scope is
+-- then computed from the answers. Note that a name an import leaves
+-- unsettled stays unsettled, which is what lets 'Tilia.Fixity.lookupFixity'
+-- distinguish a conclusion from a guess.
+scopeFor ::
+  -- | What can be asked about the modules it imports.
+  Resolver ->
+  -- | Whether @ImplicitPrelude@ is on, which the module's own pragmas
+  -- and its package's @default-extensions@ decide between them.
+  Choice "implicitPrelude" ->
+  -- | The configurations of the module whose scope is wanted, already
+  -- parsed.
+  NonEmpty (HsModule GhcPs) ->
+  -- | Everything that module can see, and what it could not find out.
+  IO Scope
+scopeFor resolver implicitPrelude configurations = do
+  let imports = moduleImports implicitPrelude configurations
+  answers <-
+    inParallel
+      (\m -> (m,) <$> askModule resolver m)
+      (fmap importModule imports)
+  let table = Map.fromList answers
+  pure $
+    resolveScope
+      implicitPrelude
+      (\m -> Map.findWithDefault unreadable m table)
+      configurations
+
+-- | Everything a resolver consults, and the way back into it.
+--
+-- None of it changes from one module to the next, which is why
+-- 'newResolverVia' builds it once and hands it over whole. What comes back
+-- out of that is the 'Resolver'; this is what is behind it.
+data Workings = Workings
+  { -- | Which readings to try, in the order given.
+    wkRoutes :: [Route],
+    -- | Where to remember answers between runs.
+    wkCache :: Cache,
+    -- | The modules of the project's own packages, which are read straight
+    -- from disk rather than out of an archive.
+    wkLocal :: Map Text FilePath,
+    -- | Which package holds each module, and the tarball to find it in; the
+    -- package is the cache key, which carries the hash the tarball was
+    -- verified against.
+    wkIndex :: Map Text (Text, FilePath),
+    -- | What to file an answer read out of each module's interface under.
+    wkInterfaces :: Map Text (Text, FilePath),
+    -- | A module's interface, read at most once a run.
+    wkInterfaceOf :: Text -> IO (Maybe Interface),
+    -- | How to reach another module. Tied back on itself by
+    -- 'newResolverVia', so that the memo it keeps covers the recursive
+    -- calls too.
+    wkReach :: Set Text -> Text -> IO Established,
+    -- | What each configuration of a module says, given its text, worked
+    -- out once a run.
+    wkSummariesOf :: Text -> Text -> IO (Maybe (NonEmpty ModuleSummary)),
+    -- | What a tarball holds for a module, each tarball read once a run.
+    wkModuleInArchive :: FilePath -> Text -> IO (Maybe InArchive),
+    -- | The modules @cabal@ writes itself, which are therefore in no
+    -- package's sources. See 'generatedModules'.
+    wkGenerated :: Set Text,
+    -- | The modules an installed package exposes that another one holds,
+    -- each with its name there.
+    wkReexported :: Map Text Text
+  }
+
+-- | What reading a module establishes, by the cheapest route that settles
+-- it.
+resolveModule ::
+  -- | Where to look, and how to get back to the resolver.
+  Workings ->
+  -- | Modules currently being resolved further up the call chain.
+  Set Text ->
+  -- | The module to resolve.
+  Text ->
+  IO Established
+resolveModule
+  Workings
+    { wkRoutes,
+      wkCache,
+      wkLocal,
+      wkIndex,
+      wkInterfaces,
+      wkInterfaceOf,
+      wkReach,
+      wkSummariesOf,
+      wkModuleInArchive,
+      wkGenerated,
+      wkReexported
+    }
+  visiting
+  modName
+    | Just path <- Map.lookup modName wkLocal,
+      writtenForHsc path =
+        pure (hscDeclares modName)
+    | Just path <- Map.lookup modName wkLocal =
+        readFileText path >>= \case
+          Nothing -> pure unreadable
+          Just source ->
+            fromSummaries (wkReach visiting') modName =<< wkSummariesOf modName source
+    | Just original <- Map.lookup modName wkReexported,
+      Map.notMember modName wkInterfaces =
+        wkReach visiting' original
+    | otherwise = answered <$> firstAnswer (fmap taking wkRoutes)
+    where
+      visiting' = Set.insert modName visiting
+
+      taking = \case
+        FromInterface -> viaInterface
+        FromSource -> viaArchive
+
+      -- A route that read some of the module is kept in case no later one
+      -- reads all of it.
+      firstAnswer = go Nothing
+        where
+          go partial [] = pure (fromMaybe unreadable partial)
+          go partial (route : rest) =
+            route >>= \case
+              Just established
+                | settlesEverything established -> pure established
+                | established /= unreadable -> go (partial <|> Just established) rest
+              _ -> go partial rest
+
+      viaInterface = case Map.lookup modName wkInterfaces of
+        Nothing -> pure Nothing
+        Just (key, _) ->
+          throughCache key (Just <$> fromInterface wkInterfaceOf modName)
+
+      viaArchive = case Map.lookup modName wkIndex of
+        Nothing -> pure Nothing
+        Just (package, tarball) ->
+          throughCache package $
+            fromSource
+              wkModuleInArchive
+              wkSummariesOf
+              (wkReach visiting')
+              tarball
+              modName
+
+      answered established
+        | settlesEverything established = established
+        | Set.member modName wkGenerated = settledAs Map.empty established
+        | otherwise = established
+      throughCache key =
+        recalled
+          (cachedEstablished wkCache key modName)
+          (storeEstablished wkCache key modName)
+
+-- | Which package and tarball holds each module.
+buildModuleIndex ::
+  -- | Where to remember each package's module list.
+  Cache ->
+  -- | What the compiler says is installed. Empty if @ghc-pkg@ could not be
+  -- run, in which case every package falls back to its @.cabal@ file.
+  [InstalledPackage] ->
+  -- | Every package that might have a tarball, and where it would be.
+  [(PlanPackage, FilePath)] ->
+  -- | For each module, the package that exposes it (as a cache key) and
+  -- the tarball holding its source.
+  IO (Map Text (Text, FilePath))
+buildModuleIndex cache installed tarballs =
+  Map.fromListWith (\_ first' -> first') . concat <$> traverse one tarballs
+  where
+    byNameVersion =
+      Map.fromList [((ipName i, ipVersion i), ipModules i) | i <- installed]
+    one (p, tarball) = do
+      let key = cacheKey p
+      let exposed = Map.lookup (ppName p, ppVersion p) byNameVersion
+      held <- fromCabalFile cache key tarball p
+      let modules = case (exposed, held) of
+            (Nothing, Nothing) -> []
+            (a, b) -> concat (catMaybes [a, b])
+      pure [(m, (key, tarball)) | m <- modules]
+
+-- | Where each installed module's compiled interface is.
+interfaceIndex :: [InstalledPackage] -> Map Text (Text, FilePath)
+interfaceIndex installed =
+  Map.fromListWith
+    (\_ first' -> first')
+    [ (m, (key, dir </> T.unpack (T.replace "." "/" m) <> ".hi"))
+    | i <- installed,
+      dir <- ipImportDirs i,
+      -- Bound out here so that the directory is hashed once rather than
+      -- once for each of the modules found in it.
+      let key = keyFor dir,
+      m <- ipModules i
+    ]
+  where
+    keyFor dir = "interface-" <> digestOf (T.pack dir)
+
+-- | A name for some text, short enough to file something under.
+digestOf :: Text -> Text
+digestOf =
+  T.take 24 . T.decodeUtf8Lenient . B16.encode . SHA256.hash . T.encodeUtf8
+
+-- | Present a fixity map as an 'Interface'.
+asInterface :: Fixities -> Interface
+asInterface fixities =
+  Interface
+    { interfaceDeclares = fixities,
+      interfaceReexports = [],
+      interfaceMembers = Map.empty,
+      interfaceExports = Nothing
+    }
+
+-- | What a compiled interface says a module exports, with the fixities of
+-- what it passes on read from where each is declared.
+fromInterface ::
+  -- | A module's interface, if it has one.
+  (Text -> IO (Maybe Interface)) ->
+  -- | The module to read.
+  Text ->
+  IO Established
+fromInterface interfaceOf modName =
+  interfaceOf modName >>= \case
+    Nothing -> pure unreadable
+    Just iface -> do
+      declarers <-
+        inParallel
+          asked
+          (distinct (fmap fst (interfaceReexports iface)))
+      let declarer m = join (lookup m declarers)
+      pure
+        Established
+          { establishedFixities =
+              Map.union (interfaceDeclares iface) . Map.unions $
+                [ Map.filterWithKey
+                    (\(_, o) _ -> o == op)
+                    (interfaceDeclares declared)
+                | (m, op) <- interfaceReexports iface,
+                  Just declared <- [declarer m]
+                ],
+            establishedUnsettled =
+              Map.fromListWith
+                Set.union
+                [ ([m], Set.fromList [(InTypes, op), (InTerms, op)])
+                | (m, op) <- interfaceReexports iface,
+                  Nothing <- [declarer m]
+                ],
+            establishedUntold = Set.empty,
+            establishedCertain = fromMaybe mempty (interfaceExports iface),
+            establishedMembers = interfaceMembers iface
+          }
+  where
+    asked m = do
+      interface <- interfaceOf m
+      pure (m, interface)
+    distinct = Map.keys . Map.fromList . fmap (,())
+
+-- | A package's module list from the @.cabal@ file in its tarball.
+fromCabalFile ::
+  -- | Where to remember the answer.
+  Cache ->
+  -- | What to file it under. Carries the hash the tarball was verified
+  -- against, so a changed tarball misses rather than matching stale data.
+  Text ->
+  -- | The tarball to read the @.cabal@ file out of.
+  FilePath ->
+  -- | The package it belongs to, consulted for the hash to verify against.
+  PlanPackage ->
+  -- | The modules it exposes, or 'Nothing' if the tarball is absent, fails
+  -- verification, or holds no @.cabal@ file.
+  IO (Maybe [Text])
+fromCabalFile cache key tarball p =
+  recalled (cachedModules cache key) (storeModules cache key) $
+    verified p tarball >>= \case
+      False -> pure Nothing
+      True -> packageModules tarball
+
+-- | How a package's cached answers are filed.
+cacheKey :: PlanPackage -> Text
+cacheKey p =
+  ppName p <> "-" <> ppVersion p <> maybe "" (("-" <>) . T.take 16) (sourceHashOf p)
+
+-- | Does the tarball hash to what the plan says it should?
+verified :: PlanPackage -> FilePath -> IO Bool
+verified p tarball = case sourceHashOf p of
+  Nothing -> pure True
+  Just expected ->
+    quietly False $ do
+      actual <- sha256OfFile tarball
+      pure (actual == T.toLower expected)
+
+-- | The SHA-256 of a file, as lower-case hex.
+sha256OfFile :: FilePath -> IO Text
+sha256OfFile path = do
+  bytes <- BL.readFile path
+  pure (T.decodeUtf8Lenient (B16.encode (SHA256.hashlazy bytes)))
+
+-- | Read what a module exports out of a tarball, following re-exports.
+fromSource ::
+  -- | What a tarball holds for a module.
+  (FilePath -> Text -> IO (Maybe InArchive)) ->
+  -- | What each configuration of a module says, given its text.
+  (Text -> Text -> IO (Maybe (NonEmpty ModuleSummary))) ->
+  -- | How to reach another module, for chasing re-exports. This is
+  -- 'resolveModule' tied back on itself, with the visiting set already
+  -- extended.
+  (Text -> IO Established) ->
+  -- | The tarball holding this module's source.
+  FilePath ->
+  -- | The module to read.
+  Text ->
+  -- | What reading it established, or 'Nothing' if there is no archive to
+  -- read it from.
+  IO (Maybe Established)
+fromSource moduleInArchive summariesOf reach tarball modName =
+  doesFileExist tarball >>= \case
+    False -> pure Nothing
+    True ->
+      fmap Just $
+        moduleInArchive tarball modName >>= \case
+          Nothing -> pure unreadable
+          Just ForHsc -> pure (hscDeclares modName)
+          Just (Haskell source) ->
+            fromSummaries reach modName =<< summariesOf modName source
+
+-- | What a module exports, out of what each of its configurations says.
+fromSummaries ::
+  -- | How to reach another module, for chasing re-exports. This is
+  -- 'resolveModule' tied back on itself, with the visiting set already
+  -- extended.
+  (Text -> IO Established) ->
+  -- | The name the module was looked up under.
+  Text ->
+  -- | What each configuration of it says, or 'Nothing' where none of them
+  -- parses.
+  Maybe (NonEmpty ModuleSummary) ->
+  IO Established
+fromSummaries reach modName = \case
+  Nothing -> pure unreadable
+  Just summaries ->
+    agreeing <$> traverse (withReexports reach modName) summaries
+
+-- | One answer from every configuration of a module that counts.
+--
+-- A module may declare a fixity in one configuration and a different one in
+-- another. Which of them holds depends on how the module is compiled, which
+-- is not ours to decide, so disagreement leaves the name unsettled.
+-- Agreement across the ones that count is an answer, and a stronger one
+-- than the blanked text could give.
+--
+-- A configuration that leaves names unsettled is passed over where another
+-- settles every name, because almost every one of those is a branch meant
+-- for a different platform. Where none does, every configuration counts,
+-- and a name any of them leaves unsettled stays unsettled.
+agreeing :: NonEmpty Established -> Established
+agreeing answers =
+  settledOnly
+    Established
+      { establishedFixities = Map.mapMaybe sole declared,
+        establishedUnsettled =
+          Map.unionsWith
+            Set.union
+            ( maybe
+                Map.empty
+                (Map.singleton [])
+                disagreed
+                : fmap establishedUnsettled (toList counted)
+            ),
+        establishedUntold = foldMap establishedUntold counted,
+        establishedCertain = foldr1 inEvery (fmap establishedCertain counted),
+        establishedMembers =
+          Map.unionsWith Set.union (fmap establishedMembers counted)
+      }
+  where
+    counted =
+      fromMaybe answers $
+        NE.nonEmpty (NE.filter settlesEverything answers)
+    declared =
+      Map.unionsWith
+        (<>)
+        [Map.map pure (establishedFixities a) | a <- toList counted]
+    sole (fixity :| rest) =
+      if all (== fixity) rest then Just fixity else Nothing
+    disagreed = inhabited (Map.keysSet (Map.filter (isNothing . sole) declared))
+    inEvery a b =
+      Certain
+        { certainNames = Set.intersection (certainNames a) (certainNames b),
+          certainMembers =
+            Map.intersectionWith
+              Set.intersection
+              (certainMembers a)
+              (certainMembers b)
+        }
+
+-- | Where each module that lives in a directory rather than an archive is.
+localModules :: BuildPlan -> IO (Map Text FilePath)
+localModules plan =
+  Map.unions <$> traverse forPackage (concatMap directoryOf (bpPackages plan))
+  where
+    directoryOf p = case ppSource p of
+      LocalPackage dir -> [dir]
+      CheckedOut dir -> [dir]
+      _ -> []
+    forPackage dir = quietly Map.empty $ do
+      entries <- listDirectory dir
+      case filter (".cabal" `isSuffixOf`) entries of
+        [] -> pure Map.empty
+        (cabalFile : _) -> do
+          contents <- readFileText (dir </> cabalFile)
+          case contents of
+            Nothing -> pure Map.empty
+            Just text ->
+              Map.fromList . concat
+                <$> traverse (locate dir (sourceDirs text)) (containedModules text)
+    locate dir dirs m = do
+      found <-
+        filterM
+          doesFileExist
+          [ dir </> T.unpack d </> modulePath m ending
+          | d <- dirs,
+            ending <- moduleEndings
+          ]
+      pure [(m, path) | path <- take 1 found]
+
+    modulePath m ending = T.unpack (T.replace "." "/" m) <> ending
+
+-- | Read a file, if it is there and is text.
+readFileText :: FilePath -> IO (Maybe Text)
+readFileText path = quietly Nothing $ do
+  there <- doesFileExist path
+  if there
+    then Just . T.decodeUtf8Lenient <$> BS.readFile path
+    else pure Nothing
+
+-- | What a module exports, out of what it declares and what its imports
+-- bring in.
+withReexports ::
+  -- | How to reach another module, for names this one only passes on.
+  (Text -> IO Established) ->
+  -- | The name this module was looked up under.
+  Text ->
+  -- | The module.
+  ModuleSummary ->
+  IO Established
+withReexports reach modName summary =
+  case summaryExports summary of
+    Nothing -> pure own
+    Just items -> do
+      listed <-
+        reached $ \i ->
+          any (suppliedBy i) (concatMap named items)
+            || ( not (importQualified i)
+                   && importAlias i
+                     `elem` [m | ExportModule m <- items]
+               )
+      let reexported =
+            Map.fromList
+              [ ((qualifier, parent), membersFrom listed qualifier parent)
+              | ExportAll qualifier parent <- items,
+                Map.notMember parent declared
+              ]
+          members =
+            [ (qualifier, kid)
+            | ((qualifier, _), Just kids) <- Map.toList reexported,
+              kid <- Set.toList kids,
+              Set.notMember kid defined
+            ]
+      more <- reached $ \i ->
+        Map.notMember (importModule i) listed && any (suppliedBy i) members
+      let answers = Map.union listed more
+      pure . together $
+        mempty
+          { establishedFixities = summaryFixities summary,
+            establishedMembers = summaryListedMembers summary
+          }
+          : fmap (exported answers reexported) items
+  where
+    imports = summaryImports summary
+    declared = summaryDeclaredMembers summary
+    defined =
+      Set.map snd (summaryNames summary)
+        <> Set.map snd (Map.keysSet (summaryFixities summary))
+    own =
+      mempty
+        { establishedFixities = summaryFixities summary,
+          establishedCertain = Certain (summaryNames summary) declared,
+          establishedMembers = Map.map (Set.map snd) declared
+        }
+    reached wanted =
+      Map.fromList
+        <$> traverse
+          (\m -> (m,) <$> reach m)
+          (Set.toList (Set.fromList [importModule i | i <- imports, wanted i]))
+    suppliedBy i (qualifier, op) = maySupply Map.empty qualifier op i
+    named = \case
+      ExportName _ qualifier op ->
+        [(qualifier, op) | Set.notMember op defined]
+      ExportAll qualifier parent ->
+        [(qualifier, parent) | Set.notMember parent defined]
+      ExportSome qualifier parent kids ->
+        [(qualifier, op) | op <- parent : kids, Set.notMember op defined]
+      ExportModule _ -> []
+
+    exported answers reexported = \case
+      ExportName namespace qualifier op ->
+        settled answers True qualifier (namespace, op)
+          <> certainly (Set.singleton (namespace, op)) Map.empty
+      ExportAll qualifier parent
+        | Just kids <- Map.lookup parent declared -> withMembers parent kids
+        | otherwise ->
+            let found = settled answers True qualifier (InTypes, parent)
+                kids =
+                  Map.findWithDefault Nothing (qualifier, parent) reexported
+             in found
+                  <> mempty{establishedUntold = Map.keysSet (establishedUnsettled found)}
+                  <> foldMap (member answers qualifier parent) (foldMap Set.toList kids)
+                  <> case kids of
+                    Nothing -> certainly (Set.singleton (InTypes, parent)) Map.empty
+                    Just known ->
+                      withMembers parent (certainMembersOf answers qualifier parent)
+                        <> mempty{establishedMembers = Map.singleton parent known}
+      ExportSome qualifier parent kids ->
+        settled answers True qualifier (InTypes, parent)
+          <> foldMap (member answers qualifier parent) kids
+          <> withMembers
+            parent
+            ( Set.filter
+                ((`elem` kids) . snd)
+                ( fromMaybe
+                    (certainMembersOf answers qualifier parent)
+                    (Map.lookup parent declared)
+                )
+            )
+      ExportModule m ->
+        (if Just m == summaryName summary || m == modName then own else mempty)
+          <> foldMap
+            (whole answers)
+            [i | i <- imports, not (importQualified i), importAlias i == m]
+
+    certainly names members = mempty{establishedCertain = Certain names members}
+    withMembers parent kids =
+      certainly (Set.insert (InTypes, parent) kids) (Map.singleton parent kids)
+    member answers qualifier parent kid
+      | Set.member kid defined = mempty
+      | otherwise =
+          case [ (i, established, certainKids)
+               | (i, established) <- candidates answers qualifier parent,
+                 decides established (InTypes, parent) i,
+                 let certainKids =
+                       Set.filter
+                         ((== kid) . snd)
+                         ( Map.findWithDefault
+                             Set.empty
+                             parent
+                             (certainMembers (establishedCertain established))
+                         ),
+                 not (Set.null certainKids)
+               ] of
+            (i, established, certainKids) : _ ->
+              foldMap (from [(i, established)]) certainKids
+            [] ->
+              foldMap
+                ( \namespace ->
+                    settled answers False qualifier (namespace, kid)
+                )
+                [InTypes, InTerms]
+
+    candidates answers qualifier op =
+      [ (i, established)
+      | i <- imports,
+        Just established <- [Map.lookup (importModule i) answers],
+        maySupply (establishedMembers established) qualifier op i
+      ]
+
+    settled answers certain qualifier name@(_, op)
+      | Set.member op defined = mempty
+      | otherwise = case [ (i, established)
+                         | certain,
+                           (i, established) <- found,
+                           decides established name i
+                         ] of
+          decider : _ -> from [decider] name
+          [] -> from found name
+      where
+        found = candidates answers qualifier op
+
+    from imported name =
+      case [ importModule i : chain
+           | (i, established) <- imported,
+             chain <- unsettledThrough established name
+           ] of
+        [] ->
+          mempty
+            { establishedFixities =
+                Map.fromList
+                  ( take
+                      1
+                      [ (name, fixity)
+                      | (_, a) <- imported,
+                        Just fixity <- [Map.lookup name (establishedFixities a)]
+                      ]
+                  )
+            }
+        chains ->
+          mempty
+            { establishedUnsettled =
+                Map.fromList [(chain, Set.singleton name) | chain <- chains]
+            }
+
+    membersFrom answers qualifier parent =
+      case mapMaybe
+        (Map.lookup parent . establishedMembers . snd)
+        (candidates answers qualifier parent) of
+        [] -> Nothing
+        kids -> Just (Set.unions kids)
+
+    certainMembersOf answers qualifier parent =
+      Set.unions
+        [ Set.filter (\kid -> certainlyBrings (establishedMembers established) kid i) kids
+        | (i, established) <- candidates answers qualifier parent,
+          let certain = establishedCertain established,
+          Set.member (InTypes, parent) (certainNames certain),
+          Just kids <- [Map.lookup parent (certainMembers certain)]
+        ]
+
+    whole answers i =
+      Established
+        { establishedFixities =
+            Map.filterWithKey
+              (\(_, op) _ -> admitted op)
+              (establishedFixities established),
+          establishedUnsettled =
+            Map.mapKeys
+              (importModule i :)
+              ( Map.mapMaybe
+                  (inhabited . Set.filter (admitted . snd))
+                  (establishedUnsettled established)
+              ),
+          establishedUntold =
+            Set.map
+              (importModule i :)
+              (establishedUntold established),
+          establishedCertain =
+            Certain
+              { certainNames = Set.filter included (certainNames certain),
+                certainMembers =
+                  Map.map
+                    (Set.filter included)
+                    ( Map.filterWithKey
+                        (\parent _ -> included (InTypes, parent))
+                        (certainMembers certain)
+                    )
+              },
+          establishedMembers = establishedMembers established
+        }
+      where
+        established = Map.findWithDefault mempty (importModule i) answers
+        certain = establishedCertain established
+        admitted op = maySupply (establishedMembers established) Nothing op i
+        included name = certainlyBrings (establishedMembers established) name i
+
+-- | The parts of what a module exports, together.
+--
+-- A name one part certainly exports with a settled fixity is the one every
+-- other part exports under that name too, or the module would not compile,
+-- so no part leaves it unsettled.
+together :: [Established] -> Established
+together parts =
+  settledOnly
+    combined
+      { establishedUnsettled =
+          Map.mapMaybe
+            (inhabited . (`Set.difference` certain))
+            (establishedUnsettled combined)
+      }
+  where
+    combined = mconcat parts
+    certain =
+      Set.unions
+        [ Set.filter
+            (null . unsettledThrough part)
+            (certainNames (establishedCertain part))
+        | part <- parts
+        ]
+
+-- | An answer without the fixities of the names it leaves unsettled.
+settledOnly :: Established -> Established
+settledOnly established
+  | settlesEverything established = established
+  | otherwise =
+      established
+        { establishedFixities =
+            Map.filterWithKey
+              (\name _ -> null (unsettledThrough established name))
+              (establishedFixities established)
+        }
+
+-- | An answer whose fixities come from elsewhere, and settle every name.
+settledAs :: Fixities -> Established -> Established
+settledAs fixities established =
+  established
+    { establishedFixities = fixities,
+      establishedUnsettled = Map.empty,
+      establishedUntold = Set.empty
+    }
+
+-- | A set, unless it is empty.
+inhabited :: Set a -> Maybe (Set a)
+inhabited names
+  | Set.null names = Nothing
+  | otherwise = Just names
+
+-- | Every configuration the preprocessor allows of a module's text that is
+-- Haskell, parsed and summarized.
+configurationsOf ::
+  -- | What the plan settles about the questions its conditionals ask.
+  Macros ->
+  -- | What extensions the module's package puts in force.
+  Maybe [Extension] ->
+  -- | The module's name, for the parser to put in its errors.
+  Text ->
+  -- | Its text.
+  Text ->
+  Maybe (NonEmpty ModuleSummary)
+configurationsOf macros extensions modName text =
+  NE.nonEmpty . mapMaybe parsed
+    =<< whatParsed (branchLeaves (withoutRuledOut macros text))
+  where
+    parsed leaf =
+      summarize (hasImplicitPrelude (fromMaybe [] extensions) leaf) . pmModule
+        <$> whatParsed (parseModule (configOf leaf) named leaf)
+    whatParsed = either (const Nothing) Just
+    configOf leaf = maybe defaultParserConfig (configFor leaf) extensions
+    configFor leaf exts = parserConfigFor (effectiveExtensions exts leaf)
+    named = T.unpack modName
+
+-- | Does this module see the Prelude without importing it?
+hasImplicitPrelude :: [Extension] -> Text -> Choice "implicitPrelude"
+hasImplicitPrelude extensions source =
+  fromBool (ImplicitPrelude `elem` effectiveExtensions extensions source)
+
+-- | What a tarball holds that a module could be read out of.
+data Archive = Archive
+  { -- | The package's @.cabal@ file, the first one at the top.
+    archiveCabal :: Maybe Text,
+    -- | Every file that could hold a module, by where it sits, in the order
+    -- the tarball has them.
+    archiveFiles :: [(FilePath, BS.ByteString)]
+  }
+  deriving (Generic)
+
+instance NFData Archive
+
+-- | Read a tarball, keeping what a module could be read out of.
+readArchive :: FilePath -> IO (Maybe Archive)
+readArchive tarball = quietly Nothing $ do
+  bytes <- BL.readFile tarball
+  Just <$> evaluate (force (sweep Nothing [] (Tar.read (GZip.decompress bytes))))
+  where
+    sweep cabal found = \case
+      Tar.Next entry rest
+        | Tar.NormalFile content _ <- Tar.entryContent entry,
+          cabalFileAtTop (entryPosixPath entry),
+          Nothing <- cabal ->
+            sweep (Just (T.decodeUtf8Lenient (BL.toStrict content))) found rest
+        | Tar.NormalFile content _ <- Tar.entryContent entry,
+          any (`isSuffixOf` entryPosixPath entry) moduleEndings ->
+            sweep cabal ((entryPosixPath entry, BL.toStrict content) : found) rest
+        | otherwise -> sweep cabal found rest
+      _ -> Archive cabal (reverse found)
+
+-- | Find a module in what a tarball holds and say what was found.
+moduleIn :: Text -> Archive -> Maybe InArchive
+moduleIn modName archive = listToMaybe (mapMaybe pick moduleEndings)
+  where
+    dirs = maybe [] sourceDirs (archiveCabal archive)
+    pick ending =
+      inArchive ending . T.decodeUtf8Lenient . snd
+        <$> listToMaybe (under sfx matching <> matching)
+      where
+        sfx = "/" <> T.unpack (T.replace "." "/" modName) <> ending
+        matching = [f | f <- archiveFiles archive, sfx `isSuffixOf` fst f]
+    under sfx matching = [f | d <- dirs, f <- matching, inDir sfx d (fst f)]
+    inDir sfx d path
+      | d == "." = takeWhile (/= '/') path <> sfx == path
+      | otherwise = ("/" <> T.unpack d <> sfx) `isSuffixOf` path
+
+-- | The endings a package may write a module under, in the order they are
+-- tried.
+moduleEndings :: [String]
+moduleEndings = [".hs", ".hsc"]
+
+-- | What an archive holds for a module.
+data InArchive
+  = -- | Haskell, as the package wrote it.
+    Haskell Text
+  | -- | A module written for @hsc2hs@. Its text is not kept: there is
+    -- nothing to be done with it, and 'hscFixities' answers for it.
+    ForHsc
+
+-- | What was found under one ending amounts to.
+inArchive :: String -> Text -> InArchive
+inArchive ending text
+  | writtenForHsc ending = ForHsc
+  | otherwise = Haskell text
+
+-- | Is this a module @hsc2hs@ writes rather than one anybody compiles?
+writtenForHsc :: FilePath -> Bool
+writtenForHsc = isSuffixOf ".hsc"
+
+-- | What an @.hsc@ module declares, which is nothing unless it is named.
+hscDeclares :: Text -> Established
+hscDeclares modName =
+  mempty
+    { establishedFixities =
+        maybe Map.empty inBothNamespaces (Map.lookup modName hscFixities)
+    }
diff --git a/src/Tilia/Format.hs b/src/Tilia/Format.hs
--- a/src/Tilia/Format.hs
+++ b/src/Tilia/Format.hs
@@ -9,10 +9,12 @@
     formatErrorExitCode,
     refused,
     Session,
+    sessionRoot,
     PlanSource (..),
     newSession,
     fixityNotesOf,
     formatSource,
+    rewritten,
   )
 where
 
@@ -38,9 +40,9 @@
 import Tilia.Cabal.Project (ProjectRoot (..), findProjectRoot)
 import Tilia.Cpp
   ( CppError (..),
-    blankCpp,
     correspondingBranches,
     describeCppError,
+    everyBranch,
     formatWithCpp,
     usesCpp,
     withoutRuledOut,
@@ -52,6 +54,7 @@
   ( OpName,
     Unknown (..),
     operatorSpelling,
+    spellDisagreement,
     spellUnreadIn,
     unknownOperators,
   )
@@ -75,13 +78,12 @@
     describeParseError,
     parseModule,
     parserConfigFor,
+    pmGathered,
     pmModule,
-    pmSource,
   )
 import Tilia.Pragma (effectiveExtensions, movesPositions)
 import Tilia.Render (RenderConfig (..), defaultRenderConfig, renderModule)
-import Tilia.Source (comments)
-import Tilia.Utils (tshow)
+import Tilia.Utils (collected, spellList, tshow)
 
 -- | Why a file could not be formatted.
 data FormatError
@@ -133,29 +135,21 @@
     "will not format "
       <> file path
       <> ": "
-      <> T.intercalate ", and " (fmap saying (together unknown))
+      <> T.intercalate ", and " (fmap saying (collected (fmap named unknown)))
     where
+      named ((qualifier, op), why) =
+        (why, paint palette Operator (operatorSpelling qualifier op))
       saying (why, ops) =
-        (if length ops == 1 then "the fixity of " else "the fixities of ")
-          <> listing ops
+        (if single then "the fixity of " else "the fixities of ")
+          <> spellList ops
           <> " "
-          <> because why
-      because = \case
-        NotRead missing -> "may be declared in " <> spellUnreadIn palette missing
-        Ambiguous -> "is declared differently by two modules in scope"
-      together = foldl put []
+          <> because
         where
-          put seen ((qualifier, op), why) =
-            let named = paint palette Operator (operatorSpelling qualifier op)
-             in case break ((== why) . fst) seen of
-                  (before, (_, ops) : after) ->
-                    before <> [(why, ops <> [named])] <> after
-                  _ -> seen <> [(why, [named])]
-      listing ops = case reverse ops of
-        [] -> ""
-        [one] -> one
-        [second, first'] -> first' <> " and " <> second
-        (final : rest) -> T.intercalate ", " (reverse rest) <> ", and " <> final
+          single = length ops == 1
+          because = case why of
+            NotRead missing -> "may be declared in " <> spellUnreadIn palette missing
+            Ambiguous offers ->
+              (if single then "is " else "are ") <> spellDisagreement palette offers
   where
     file = paint palette Place . T.pack
     located t = case T.breakOn ":" t of
@@ -178,12 +172,13 @@
   NotEquivalent{} -> 17
   NotIdempotent{} -> 18
   CppUnsupported _ why -> case why of
-    UnhandledDirective{} -> 9
-    UnsplittableConditional -> 10
-    TooManyConfigurations -> 11
-    ConfigurationNotParsed{} -> 12
-    DirectiveUnplaceable{} -> 13
-    DirectiveInQuotedText{} -> 14
+    MalformedConditional{} -> 9
+    TooManyConfigurations -> 10
+    ConfigurationNotParsed{} -> 11
+    DirectiveInQuotedText{} -> 12
+    MacroInQuotedText{} -> 12
+    RuledOutBranch{} -> 13
+    AbortingAlternative{} -> 14
 
 -- | Did we decline to format the file, rather than fail to?
 refused :: FormatError -> Bool
@@ -205,7 +200,9 @@
 -- about as much as formatting a small file, and none of it depends on which
 -- file is being formatted.
 data Session = Session
-  { -- | What can be asked about the modules a file imports.
+  { -- | The project.
+    sessionRoot :: ProjectRoot,
+    -- | What can be asked about the modules a file imports.
     sessionResolver :: Resolver,
     -- | What the plan settles about the questions a file's conditionals
     -- ask, so that a branch it rules out is not read as part of the file.
@@ -249,7 +246,8 @@
   Choice "debugFixity" ->
   IO (Either FormatError Session)
 newSession start planSource caching downloading checkAst checkIdempotence debugFixity = runExceptT $ do
-  root <- prPath <$> (need (NoProject start) =<< liftIO (findProjectRoot start))
+  project <- need (NoProject start) =<< liftIO (findProjectRoot start)
+  let root = prPath project
   (plan, resolver) <- case planSource of
     PlanFromCabal components -> do
       plan <- orElse (NoBuildPlan root) =<< liftIO (loadPlan caching downloading components root)
@@ -268,7 +266,8 @@
       else pure Nothing
   pure
     Session
-      { sessionResolver = resolver,
+      { sessionRoot = project,
+        sessionResolver = resolver,
         sessionMacros = macrosOf plan,
         sessionPackage = askPackage,
         sessionCheckAst = checkAst,
@@ -304,26 +303,24 @@
   package <- orElse (NoPackage path) =<< liftIO (sessionPackage session path)
   let resolver = sessionResolver session
       config = parserConfigFor package
-      reading = blankCpp . withoutRuledOut (sessionMacros session)
       extensionsAndCpp text =
         let declared = effectiveExtensions package text
          in (Set.fromList declared, usesCpp declared text)
-      renderConfigFor extensions hsModule = do
+      renderConfigFor extensions parsed = do
         let implicitPrelude =
               fromBool (Set.member ImplicitPrelude extensions)
-        scope <- liftIO (scopeFor resolver implicitPrelude hsModule)
+        scope <- liftIO (scopeFor resolver implicitPrelude (fmap pmModule parsed))
         liftIO $ case sessionFixityNotes session of
           Nothing -> pure ()
           Just ref -> do
             told <-
               fixityNotes
                 implicitPrelude
-                (askFixities resolver)
-                (askChain resolver)
+                (askModule resolver)
                 scope
-                hsModule
+                parsed
             atomicModifyIORef' ref (\m -> (Map.insertWith (\_ old -> old) path told m, ()))
-        case unknownOperators scope hsModule of
+        case unknownOperators scope (fmap pmGathered parsed) of
           [] ->
             pure
               defaultRenderConfig
@@ -333,9 +330,9 @@
           unknown -> throwE (UnknownFixity path unknown)
       formatting (extensions, cpp) already text
         | cpp = do
-            render <- case parseModule config path (reading text) of
-              Left _ -> pure defaultRenderConfig{rcExtensions = extensions}
-              Right whole -> renderConfigFor extensions (pmModule whole)
+            render <- case everyBranch config path (withoutRuledOut (sessionMacros session) text) of
+              Nothing -> pure defaultRenderConfig{rcExtensions = extensions}
+              Just branches -> renderConfigFor extensions branches
             printed <-
               orElse
                 (CppUnsupported path)
@@ -344,7 +341,7 @@
         | otherwise = do
             parsed <-
               maybe (orElse NotParsed (parseModule config path text)) pure already
-            render <- renderConfigFor extensions (pmModule parsed)
+            render <- renderConfigFor extensions (pure parsed)
             pure
               ( printDoc defaultRenderOptions (renderModule render parsed),
                 Just parsed
@@ -410,10 +407,7 @@
   where
     comparing b' a' =
       syntaxDifference (pmModule b') (pmModule a')
-        <|> commentDifference
-          (pmModule b', pmModule a')
-          (comments (pmSource b'))
-          (comments (pmSource a'))
+        <|> commentDifference b' a'
     whatParsed = either (const Nothing) Just
     underCpp = case correspondingBranches before after of
       Left _ -> Just "the input or output could not be split into configurations"
diff --git a/src/Tilia/Gathered.hs b/src/Tilia/Gathered.hs
new file mode 100644
--- /dev/null
+++ b/src/Tilia/Gathered.hs
@@ -0,0 +1,51 @@
+-- | The nodes of a module that formatting queries, gathered in one walk
+-- over its syntax tree.
+module Tilia.Gathered
+  ( Gathered (..),
+    gathered,
+  )
+where
+
+import Data.Data (Proxy (..), gmapQr, typeOf, typeRep, typeRepTyCon)
+import Data.Generics.Aliases (GenericQ, extQ)
+import GHC.Hs
+
+-- | Every node of each kind, in the order a walk from the top, left to
+-- right, meets them.
+data Gathered = Gathered
+  { -- | Expressions.
+    gatheredExpressions :: [HsExpr GhcPs],
+    -- | Types.
+    gatheredTypes :: [HsType GhcPs],
+    -- | Haddocks.
+    gatheredDocs :: [LHsDoc GhcPs],
+    -- | The entries of import and export lists.
+    gatheredEntries :: [LIE GhcPs],
+    -- | The equations of functions, the alternatives of cases, and the
+    -- bodies of lambdas.
+    gatheredMatches :: [Match GhcPs (LHsExpr GhcPs)]
+  }
+
+-- | Gather a module's nodes.
+gathered :: HsModule GhcPs -> Gathered
+gathered hsModule = walk hsModule (Gathered [] [] [] [] [])
+  where
+    walk :: GenericQ (Gathered -> Gathered)
+    walk x
+      | annotation x = id
+      | otherwise = keep x . descend x
+    descend :: GenericQ (Gathered -> Gathered)
+    descend =
+      (\x g -> gmapQr ($) g walk x)
+        `extQ` (\(_ :: HsDocString) -> id)
+        `extQ` (\(_ :: String) -> id)
+    annotation x = typeRepTyCon (typeOf x) == epAnn
+    epAnn = typeRepTyCon (typeRep (Proxy :: Proxy EpAnn))
+    keep :: GenericQ (Gathered -> Gathered)
+    keep =
+      const id
+        `extQ` (\x g -> g{gatheredExpressions = x : gatheredExpressions g})
+        `extQ` (\x g -> g{gatheredTypes = x : gatheredTypes g})
+        `extQ` (\x g -> g{gatheredDocs = x : gatheredDocs g})
+        `extQ` (\x g -> g{gatheredEntries = x : gatheredEntries g})
+        `extQ` (\x g -> g{gatheredMatches = x : gatheredMatches g})
diff --git a/src/Tilia/Ignore.hs b/src/Tilia/Ignore.hs
new file mode 100644
--- /dev/null
+++ b/src/Tilia/Ignore.hs
@@ -0,0 +1,290 @@
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+
+-- | Ignore files written the way @.gitignore@ files are.
+module Tilia.Ignore
+  ( IgnoreFile,
+    parseIgnoreFile,
+    isIgnored,
+    isIgnoredInProject,
+    ignoreFilesAbove,
+    belowRoot,
+  )
+where
+
+import Data.Char
+  ( isAlpha,
+    isAlphaNum,
+    isControl,
+    isDigit,
+    isHexDigit,
+    isLower,
+    isPrint,
+    isPunctuation,
+    isSpace,
+    isSymbol,
+    isUpper,
+  )
+import Data.List (inits, isPrefixOf, isSuffixOf, stripPrefix, tails)
+import Data.Map.Strict (Map)
+import Data.Map.Strict qualified as Map
+import Data.Maybe (mapMaybe)
+import Data.Set qualified as Set
+import Data.Text (Text)
+import Data.Text qualified as T
+import Data.Text.IO qualified as T
+import System.Directory (canonicalizePath, doesFileExist)
+import System.FilePath (joinPath, normalise, splitDirectories, (</>))
+import Tilia.Utils (quietly)
+
+-- | The patterns of one ignore file, in the order they are written.
+newtype IgnoreFile = IgnoreFile [Pattern]
+
+-- | One line of an ignore file.
+data Pattern = Pattern
+  { -- | Whether it begins with @!@ and so re-includes what it matches.
+    patNegated :: Bool,
+    -- | Whether it ends with @/@ and so matches directories alone.
+    patDirectoryOnly :: Bool,
+    -- | Whether it holds a @/@ other than a trailing one, and so matches
+    -- the path from the ignore file's directory rather than the last name.
+    patAnchored :: Bool,
+    -- | What it matches.
+    patTokens :: [Token]
+  }
+
+-- | One piece of a pattern.
+data Token
+  = -- | A character that stands for itself.
+    Literal Char
+  | -- | @?@, any character but @/@.
+    AnyChar
+  | -- | @*@, any run of characters without @/@.
+    AnyRun
+  | -- | @**/@ at the start, any number of leading directories.
+    LeadingDirectories
+  | -- | @/**/@, a @/@ with any number of directories inside it.
+    InnerDirectories
+  | -- | @/**@ at the end, everything below the directory before it.
+    Everything
+  | -- | A bracket expression, whether it is negated, and what it holds.
+    Bracket Bool [Char -> Bool]
+
+-- | Read an ignore file.
+parseIgnoreFile :: Text -> IgnoreFile
+parseIgnoreFile =
+  IgnoreFile
+    . mapMaybe (parsePattern . T.unpack . withoutReturn)
+    . T.lines
+  where
+    withoutReturn = T.dropWhileEnd (== '\r')
+
+-- | Read one line of an ignore file.
+parsePattern :: String -> Maybe Pattern
+parsePattern line0 = case trimmed line0 of
+  "" -> Nothing
+  '#' : _ -> Nothing
+  '!' : rest -> pattern True rest
+  line -> pattern False line
+  where
+    pattern negated body = do
+      let directoryOnly = "/" `isSuffixOf` body
+          stripped = if directoryOnly then init body else body
+          anchored = '/' `elem` stripped
+          relative = case stripped of
+            '/' : rest -> rest
+            _ -> stripped
+      tokens <- tokenize relative
+      if null tokens
+        then Nothing
+        else
+          Just
+            Pattern
+              { patNegated = negated,
+                patDirectoryOnly = directoryOnly,
+                patAnchored = anchored,
+                patTokens = tokens
+              }
+
+-- | A line without the spaces it ends in, except one escaped with @\\@.
+trimmed :: String -> String
+trimmed = reverse . go . reverse
+  where
+    go = \case
+      ' ' : '\\' : rest -> ' ' : '\\' : rest
+      ' ' : rest -> go rest
+      other -> other
+
+-- | Split a pattern into its pieces, or 'Nothing' where a bracket is left
+-- open.
+tokenize :: String -> Maybe [Token]
+tokenize = go True
+  where
+    go atStart = \case
+      [] -> Just []
+      '*' : '*' : '/' : rest
+        | atStart -> (LeadingDirectories :) <$> go True rest
+      '/' : '*' : '*' : '/' : rest -> (InnerDirectories :) <$> go True rest
+      "/**" -> Just [Everything]
+      '*' : rest -> (AnyRun :) <$> go False (dropWhile (== '*') rest)
+      '?' : rest -> (AnyChar :) <$> go False rest
+      '[' : rest -> do
+        (token, rest') <- bracket rest
+        (token :) <$> go False rest'
+      '\\' : c : rest -> (Literal c :) <$> go False rest
+      c : rest -> (Literal c :) <$> go (c == '/') rest
+
+-- | Read a bracket expression after its @[@.
+bracket :: String -> Maybe (Token, String)
+bracket = \case
+  c : rest | c `elem` ['!', '^'] -> members True [] True rest
+  rest -> members False [] True rest
+  where
+    members negated acc first = \case
+      ']' : rest | not first -> Just (Bracket negated acc, rest)
+      '[' : ':' : rest
+        | (name, ':' : ']' : rest') <- break (== ':') rest,
+          Just p <- lookup name posixClasses ->
+            members negated (p : acc) False rest'
+      '\\' : c : rest -> range negated acc c rest
+      c : rest -> range negated acc c rest
+      [] -> Nothing
+    range negated acc lo = \case
+      '-' : hi : rest
+        | hi /= ']' ->
+            let hi' = case (hi, rest) of
+                  ('\\', h : _) -> h
+                  _ -> hi
+                rest' = if hi == '\\' then drop 1 rest else rest
+             in members negated ((\c -> lo <= c && c <= hi') : acc) False rest'
+      rest -> members negated ((== lo) : acc) False rest
+
+-- | The character classes a bracket expression can name.
+posixClasses :: [(String, Char -> Bool)]
+posixClasses =
+  [ ("alnum", isAlphaNum),
+    ("alpha", isAlpha),
+    ("blank", (`elem` [' ', '\t'])),
+    ("cntrl", isControl),
+    ("digit", isDigit),
+    ("graph", \c -> isPrint c && not (isSpace c)),
+    ("lower", isLower),
+    ("print", isPrint),
+    ("punct", \c -> isPunctuation c || isSymbol c),
+    ("space", isSpace),
+    ("upper", isUpper),
+    ("xdigit", isHexDigit)
+  ]
+
+-- | Whether a pattern matches a path, given relative to the directory of
+-- the ignore file the pattern is in, and whether that path is a directory.
+matches :: Pattern -> [String] -> Bool -> Bool
+matches p segments isDirectory
+  | patDirectoryOnly p && not isDirectory = False
+  | patAnchored p = wildmatch (patTokens p) (joinSegments segments)
+  | otherwise = case reverse segments of
+      name : _ -> wildmatch (patTokens p) name
+      [] -> False
+
+-- | Whether the pieces of a pattern match a path, @/@ and all.
+wildmatch :: [Token] -> String -> Bool
+wildmatch = \case
+  [] -> null
+  Literal c : ts -> \case
+    x : xs | x == c -> wildmatch ts xs
+    _ -> False
+  AnyChar : ts -> \case
+    x : xs | x /= '/' -> wildmatch ts xs
+    _ -> False
+  Bracket negated ps : ts -> \case
+    x : xs | x /= '/', any ($ x) ps /= negated -> wildmatch ts xs
+    _ -> False
+  AnyRun : ts -> \s ->
+    any
+      (wildmatch ts)
+      [rest | (skipped, rest) <- splits s, '/' `notElem` skipped]
+  LeadingDirectories : ts -> \s ->
+    any
+      (wildmatch ts)
+      (s : [rest | (skipped, rest) <- splits s, "/" `isSuffixOf` skipped])
+  InnerDirectories : ts -> \s ->
+    any
+      (wildmatch ts)
+      [ rest
+      | (skipped, rest) <- splits s,
+        "/" `isPrefixOf` skipped,
+        "/" `isSuffixOf` skipped
+      ]
+  Everything : _ -> \s -> "/" `isPrefixOf` s && length s > 1
+  where
+    splits s = zip (inits s) (tails s)
+
+-- | A path's segments, joined with @/@.
+joinSegments :: [String] -> String
+joinSegments = \case
+  [] -> ""
+  s : ss -> s <> concatMap ('/' :) ss
+
+-- | Whether a file is ignored, given its path as segments relative to the
+-- project root and the ignore files found in the directories above it, each
+-- by its directory's segments.
+isIgnored :: Map [String] IgnoreFile -> [String] -> Bool
+isIgnored files path =
+  any (\n -> excluded (take n path) True) [1 .. length path - 1]
+    || excluded path False
+  where
+    excluded entry isDirectory =
+      case [ not (patNegated p)
+           | (n, IgnoreFile ps) <- applicable entry,
+             p <- ps,
+             matches p (drop n entry) isDirectory
+           ] of
+        [] -> False
+        verdicts -> last verdicts
+    applicable entry =
+      [ (n, file)
+      | n <- [0 .. length entry - 1],
+        Just file <- [Map.lookup (take n entry) files]
+      ]
+
+-- | Whether the @.tiliaignore@ files of a project ignore a file, which need
+-- not exist.
+isIgnoredInProject ::
+  -- | The project root, canonical.
+  FilePath ->
+  -- | The file.
+  FilePath ->
+  IO Bool
+isIgnoredInProject root path = quietly False $ do
+  file <- canonicalizePath path
+  case belowRoot root file of
+    Nothing -> pure False
+    Just below -> do
+      ignoreFiles <- ignoreFilesAbove root [below]
+      pure (isIgnored ignoreFiles below)
+
+-- | The @.tiliaignore@ files in the project root and in every directory
+-- between it and the given files, each by its directory's segments relative
+-- to the root.
+ignoreFilesAbove :: FilePath -> [[FilePath]] -> IO (Map [FilePath] IgnoreFile)
+ignoreFilesAbove root paths =
+  Map.fromList . concat <$> traverse read' (Set.toList directories)
+  where
+    directories =
+      Set.fromList [take n path | path <- paths, n <- [0 .. length path - 1]]
+    read' directory = do
+      let file = joinPath (root : directory) </> ".tiliaignore"
+      exists <- doesFileExist file
+      if exists
+        then (\t -> [(directory, parseIgnoreFile t)]) <$> T.readFile file
+        else pure []
+
+-- | A path's segments relative to the project root, if it is under it.
+belowRoot ::
+  -- | The project root.
+  FilePath ->
+  -- | The path.
+  FilePath ->
+  Maybe [FilePath]
+belowRoot root path =
+  stripPrefix (splitDirectories root) (splitDirectories (normalise path))
diff --git a/src/Tilia/Imports.hs b/src/Tilia/Imports.hs
--- a/src/Tilia/Imports.hs
+++ b/src/Tilia/Imports.hs
@@ -23,8 +23,8 @@
 import GHC.Types.SourceText (StringLiteral (..))
 import GHC.Types.SrcLoc
 import Tilia.Comments (Comment (..), commentTrailing, commentsWithin)
-import Tilia.Span (endPoint, startPoint)
-import Tilia.Span.Ghc (spanOf, spanOfSrcSpan)
+import Tilia.Span (endPoint, isSingleLine, startPoint)
+import Tilia.Span.Ghc (bracketsSpan, spanOf, spanOfSrcSpan, tokenSpan)
 
 -- | Sort and fold together a module's imports.
 normalizeImports ::
@@ -32,20 +32,22 @@
   Choice "implicitPrelude" ->
   -- | Source lines the block must not be sorted across.
   [Int] ->
+  -- | Source lines the names of a list must not be sorted across.
+  [Int] ->
   -- | The module's comments.
   [Comment] ->
   -- | Original imports.
   [LImportDecl GhcPs] ->
   -- | Normalized imports.
   [LImportDecl GhcPs]
-normalizeImports implicitPrelude barriers written imports =
-  concatMap stretch (cutAtBarriers (barriersBetween imports barriers) tidied)
+normalizeImports implicitPrelude barriers directives written imports =
+  concatMap stretch (cutAtBarriers barriers tidied)
   where
-    tidied = fmap (fmap (tidyImportList written)) imports
+    tidied = fmap (fmap (tidyImportList directives written)) imports
     stretch is =
       foldRuns
-        (combineImports written)
-        [((importIdentity implicitPrelude i, alone i), i) | i <- is]
+        (combineImports directives written)
+        [((importIdentity implicitPrelude i, hiddenNames i, alone i), i) | i <- is]
     alone i
       | any strands (spanOf i) = startLineOf i
       | otherwise = 0
@@ -60,6 +62,23 @@
       RealSrcLoc l _ -> srcLocLine l
       _ -> 0
 
+-- | The names an import hides, where it hides any, so that only imports
+-- hiding the same names are folded together.
+hiddenNames ::
+  LImportDecl GhcPs ->
+  Maybe [(NameIdentity, Maybe (Bool, [NameIdentity]))]
+hiddenNames (L _ decl) = case ideclImportList decl of
+  Just (EverythingBut, L _ items) -> Just (fmap (hidden . unLoc) items)
+  _ -> Nothing
+  where
+    hidden item = (nameIdentity item, subordinates item)
+    subordinates = \case
+      IEThingAll{} -> Just (True, [])
+      IEThingWith _ _ NoIEWildcard subs _ -> Just (False, names subs)
+      IEThingWith _ _ (IEWildcard _) subs _ -> Just (True, names subs)
+      _ -> Nothing
+    names = fmap (wrappedNameIdentity . unLoc)
+
 -- | Where every name an import lists begins, each as a line and a column.
 --
 -- The names inside a thing's own brackets count too, so @T (A, B)@ gives
@@ -78,37 +97,18 @@
         concatMap (foldMap ((: []) . startPoint) . spanOf) members
       _ -> []
 
--- | The barriers that fall between two imports rather than inside one.
-barriersBetween ::
-  -- | The imports as written, for the lines each of them covers.
-  [LImportDecl GhcPs] ->
-  -- | Lines the block must not be sorted across.
-  [Int] ->
-  -- | Those of them that lie between imports.
-  [Int]
-barriersBetween imports = filter (not . within)
-  where
-    within l = any (\(from, to) -> from <= l && l <= to) spans'
-    spans' =
-      [ (srcLocLine from, srcLocLine to)
-      | i <- imports,
-        Just (from, to) <- [endsOf i]
-      ]
-    endsOf i = case (srcSpanStart (getLocA i), srcSpanEnd (getLocA i)) of
-      (RealSrcLoc from _, RealSrcLoc to _) -> Just (from, to)
-      _ -> Nothing
-
--- | Cut the imports into the stretches the barriers leave between them.
+-- | Cut imports, or the names of a list, into the stretches the barriers
+-- leave between them.
 cutAtBarriers ::
-  -- | Lines the block must not be sorted across, in ascending order.
+  -- | Lines not to be sorted across, in ascending order.
   [Int] ->
-  -- | The imports, as they were written.
-  [LImportDecl GhcPs] ->
-  -- | One stretch per run of imports between barriers, in the same order.
-  [[LImportDecl GhcPs]]
-cutAtBarriers [] imports = [imports]
-cutAtBarriers barriers imports =
-  groupBy ((==) `on` fst) [(between i, i) | i <- imports] & fmap (fmap snd)
+  -- | What to cut, as it was written.
+  [GenLocated SrcSpanAnnA a] ->
+  -- | One stretch per run between barriers, in the same order.
+  [[GenLocated SrcSpanAnnA a]]
+cutAtBarriers [] xs = [xs]
+cutAtBarriers barriers xs =
+  groupBy ((==) `on` fst) [(between i, i) | i <- xs] & fmap (fmap snd)
   where
     between i = length (takeWhile (< lineOf i) barriers)
     lineOf i = case srcSpanStart (getLocA i) of
@@ -203,6 +203,8 @@
 
 -- | Keep the first import and give it everything the second named.
 combineImports ::
+  -- | Source lines the names of a list must not be sorted across.
+  [Int] ->
   -- | The module's comments, which decide how far the span may grow.
   [Comment] ->
   -- | The import kept, whose spelling the result takes.
@@ -211,36 +213,70 @@
   LImportDecl GhcPs ->
   -- | The first, listing what both named, across both their spans.
   LImportDecl GhcPs
-combineImports written (L ann kept) (L other folded) =
+combineImports directives written (L ann kept) (L other folded) =
   L
     ann{entry = EpaSpan (combineSrcSpans (locA ann) (locA other))}
     kept{ideclImportList = both (ideclImportList kept) (ideclImportList folded)}
   where
     both (Just (interpretation, L l xs)) (Just (_, L l' ys)) =
-      Just (interpretation, L (widened written l l') (tidyImportItems written (xs <> ys)))
+      Just
+        ( interpretation,
+          L
+            (bracketsAcross (widened written l l') l')
+            (tidyImportItems directives written interpretation (xs <> ys))
+        )
     both _ _ = Nothing
 
+-- | Take the second list's brackets where only they were written across
+-- lines, so that a list folded out of several breaks if any of them did.
+bracketsAcross :: EpAnn (AnnList a) -> EpAnn (AnnList a) -> EpAnn (AnnList a)
+bracketsAcross kept folded
+  | onOneLine kept && not (onOneLine folded) =
+      kept{anns = (anns kept){al_brackets = al_brackets (anns folded)}}
+  | otherwise = kept
+  where
+    onOneLine = all isSingleLine . bracketsSpan . al_brackets . anns
+
 -- | An import with its list sorted and the entries naming one thing folded
 -- together. An import with no list is left as it is.
-tidyImportList :: [Comment] -> ImportDecl GhcPs -> ImportDecl GhcPs
-tidyImportList written decl =
+tidyImportList :: [Int] -> [Comment] -> ImportDecl GhcPs -> ImportDecl GhcPs
+tidyImportList directives written decl =
   decl
-    { ideclImportList =
-        fmap (fmap (tidyImportItems written)) <$> ideclImportList decl
+    { ideclImportList = tidied <$> ideclImportList decl
     }
+  where
+    tidied (interpretation, items) =
+      ( interpretation,
+        tidyImportItems directives written interpretation <$> items
+      )
 
--- | Sort an import list and fold together the entries naming one thing.
+-- | Sort an import list and fold together the entries naming one thing,
+-- each stretch between directives on its own.
 --
 -- @import M (T (A), T (B))@ names one type twice and comes out as @import M
 -- (T (A, B))@.
-tidyImportItems :: [Comment] -> [LIE GhcPs] -> [LIE GhcPs]
-tidyImportItems written items
+tidyImportItems ::
+  [Int] ->
+  [Comment] ->
+  ImportListInterpretation ->
+  [LIE GhcPs] ->
+  [LIE GhcPs]
+tidyImportItems directives written interpretation items
   | any (unnameable . unLoc) items = items
-  | otherwise =
+  | otherwise = concatMap tidied (cutAtBarriers directives items)
+  where
+    tidied stretch =
       foldRuns
         (wider written)
-        [(nameIdentity (unLoc i), fmap sortSubnames i) | i <- items]
-  where
+        [ ((nameIdentity (unLoc i), apart (unLoc i)), fmap sortSubnames i)
+        | i <- stretch
+        ]
+    -- A bare name in a hiding list also hides any data constructor of that
+    -- name, which the name with its own parentheses does not.
+    apart item = case (interpretation, item) of
+      (EverythingBut, IEThingAll{}) -> True
+      (EverythingBut, IEThingWith{}) -> True
+      _ -> False
     unnameable = \case
       IEVar{} -> False
       IEThingAbs{} -> False
@@ -265,9 +301,9 @@
     combine a b = case (a, b) of
       (IEThingAll x n _, _) -> IEThingAll x n Nothing
       (_, IEThingAll x n _) -> IEThingAll x n Nothing
-      (IEThingWith x n wildcard subs _, IEThingWith _ _ wildcard' subs' _) ->
+      (IEThingWith x n wildcard subs _, IEThingWith x' _ wildcard' subs' _) ->
         IEThingWith
-          x
+          (parensAcross x x')
           n
           (eitherWildcard wildcard wildcard')
           (dedupeSubnames (subs <> subs'))
@@ -282,6 +318,12 @@
     eitherWildcard a b = case (a, b) of
       (NoIEWildcard, NoIEWildcard) -> NoIEWildcard
       _ -> IEWildcard 0
+
+    parensAcross (warning, (open, dots, comma, close)) (_, (open', _, _, close'))
+      | onOneLine open close && not (onOneLine open' close') =
+          (warning, (open', dots, comma, close'))
+      | otherwise = (warning, (open, dots, comma, close))
+    onOneLine open close = all isSingleLine (tokenSpan open <> tokenSpan close)
 
 -- | An entry with the names in its own brackets sorted and deduplicated.
 sortSubnames :: IE GhcPs -> IE GhcPs
diff --git a/src/Tilia/Parser.hs b/src/Tilia/Parser.hs
--- a/src/Tilia/Parser.hs
+++ b/src/Tilia/Parser.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE CPP #-}
+{-# LANGUAGE LambdaCase #-}
 {-# LANGUAGE OverloadedStrings #-}
 
 -- | Turning source text into a syntax tree and a comment stream.
@@ -6,6 +7,8 @@
   ( ParsedModule (..),
     parseModule,
     parseConfiguration,
+    readAlike,
+    importLayout,
     ParseError (..),
     describeParseError,
     ParserConfig (..),
@@ -16,9 +19,12 @@
 where
 
 import Data.Foldable (toList)
+import Data.IntMap.Strict (IntMap)
+import Data.IntMap.Strict qualified as IntMap
 import Data.List (isSuffixOf, nub, sortOn)
 import Data.Text (Text)
 import Data.Text qualified as T
+import Data.Text.Encoding qualified as T
 import GHC.Data.EnumSet qualified as EnumSet
 import GHC.Data.FastString (mkFastString)
 import GHC.Data.StringBuffer qualified as GHC
@@ -27,13 +33,14 @@
 import GHC.Hs.Extension (GhcPs)
 import GHC.LanguageExtensions.Type (Extension)
 import GHC.Parser qualified as GHC
-import GHC.Parser.Annotation (getLocA)
+import GHC.Parser.Annotation (LEpaComment, getLocA)
 import GHC.Parser.Lexer qualified as GHC
 import GHC.Types.Error qualified as GHC
 import GHC.Types.SrcLoc qualified as GHC
 import GHC.Unit.Module.Warnings (emptyWarningCategorySet)
 import GHC.Utils.Error qualified as GHC
 import GHC.Utils.Outputable qualified as GHC
+import Tilia.Gathered (Gathered (..), gathered)
 import Tilia.Pragma (effectiveExtensions)
 import Tilia.Source (Lines, Source, SourceType (..), Written (..), lineTexts, linesOf, sourceOf)
 import Tilia.Span (Span (..))
@@ -45,6 +52,8 @@
     pmModule :: HsModule GhcPs,
     -- | The module as its author wrote it.
     pmSource :: Source,
+    -- | The nodes of the syntax tree that formatting queries.
+    pmGathered :: Gathered,
     -- | Whether GHC read this as a module or as a Backpack signature.
     pmSourceType :: SourceType,
     -- | The lines above the module that the parser never sees.
@@ -86,7 +95,7 @@
   Text ->
   Either ParseError ParsedModule
 parseConfiguration config path written source =
-  case GHC.unP entryPoint initialState of
+  case GHC.unP entryPoint start of
     GHC.PFailed pstate -> Left (whyNot pstate)
     GHC.POk pstate (GHC.L _ hsModule)
       | not (GHC.isEmptyMessages (GHC.getPsErrorMessages pstate)) ->
@@ -95,13 +104,14 @@
           Right
             ParsedModule
               { pmModule = hsModule,
-                pmSource = sourceOf written (headerComments pstate) hsModule,
+                pmSource = sourceOf written (lexedComments start),
+                pmGathered = gathered hsModule,
                 pmSourceType = sourceType,
                 pmPrologue = prologueOf (lineTexts written),
                 pmHeaderEnd = headerEndOf hsModule
               }
   where
-    headerComments = concat . GHC.header_comments
+    start = stateFor config path source
 
     sourceType = sourceTypeOf path
 
@@ -130,16 +140,94 @@
         . GHC.diagnosticMessage GHC.NoDiagnosticOpts
         . GHC.errMsgDiagnostic
 
+-- | Return each line a token other than a comment begins on, and whether
+-- the leftmost such token on the line begins an item of the top level.
+-- 'Nothing' if the module has no imports, writes its top level in explicit
+-- braces, or does not lex.
+importLayout ::
+  -- | Parser config.
+  ParserConfig ->
+  -- | The module, with its preprocessor directives blanked.
+  Text ->
+  -- | The import layout.
+  Maybe (IntMap Bool)
+importLayout config source =
+  case GHC.unP (lexing Nothing Nothing IntMap.empty) (stateFor config "" source) of
+    GHC.POk _ found -> found
+    GHC.PFailed _ -> Nothing
+  where
+    lexing topLevel previous found =
+      GHC.lexer False $ \(GHC.L s t) -> case GHC.srcSpanStart s of
+        _ | GHC.ITeof <- t -> pure (atTopLevel topLevel found)
+        GHC.RealSrcLoc l _
+          | code t ->
+              let column = GHC.srcLocCol l
+                  found' = IntMap.insertWith min (GHC.srcLocLine l) column found
+               in case (t, previous, topLevel) of
+                    (GHC.ITocurly, Just GHC.ITwhere, Nothing) -> pure Nothing
+                    (GHC.ITimport, _, Nothing) -> lexing (Just column) (Just t) found'
+                    (_, _, Just c)
+                      | column <= c,
+                        not (isImport t) ->
+                          pure (atTopLevel topLevel found')
+                    _ -> lexing topLevel (Just t) found'
+        _ -> lexing topLevel previous found
+    atTopLevel topLevel found = (\c -> fmap (<= c) found) <$> topLevel
+    isImport = \case
+      GHC.ITimport -> True
+      _ -> False
+    code = \case
+      GHC.ITvocurly -> False
+      GHC.ITvccurly -> False
+      GHC.ITsemi -> False
+      t -> not (isComment t)
+
+-- | Lex every comment, in source order, from the state a parse starts in.
+lexedComments :: GHC.PState -> [LEpaComment]
+lexedComments s =
+  case GHC.lexTokenStream (GHC.options s) (GHC.buffer s) loc of
+    GHC.PFailed _ -> error "Tilia: a module that parses cannot fail to lex"
+    GHC.POk _ tokens ->
+      [ GHC.commentToAnnotation (GHC.L l t)
+      | GHC.L (GHC.RealSrcSpan l _) t <- tokens,
+        isComment t
+      ]
+  where
+    loc = GHC.psRealLoc (GHC.loc s)
+
+-- | Is this token a comment?
+isComment :: GHC.Token -> Bool
+isComment = \case
+  GHC.ITlineComment _ _ -> True
+  GHC.ITblockComment _ _ -> True
+  GHC.ITdocComment _ _ -> True
+  GHC.ITdocOptions _ _ -> True
+  _ -> False
+
+-- | The state to start reading a module in.
+stateFor :: ParserConfig -> FilePath -> Text -> GHC.PState
+stateFor config path source =
+  GHC.initParserState
+    (parserOpts config')
+    (GHC.stringBufferFromByteString (T.encodeUtf8 source))
+    (GHC.mkRealSrcLoc (mkFastString path) 1 1)
+  where
     config' =
       config
         { pcExtensions = withImplied (effectiveExtensions (pcExtensions config) source)
         }
 
-    initialState =
-      GHC.initParserState
-        (parserOpts config')
-        (GHC.stringToStringBuffer (T.unpack source))
-        (GHC.mkRealSrcLoc (mkFastString path) 1 1)
+-- | Would the parser read these two texts with the same extensions?
+readAlike :: ParserConfig -> Text -> Text -> Bool
+readAlike config a b = bits a == bits b
+  where
+    bits t =
+      GHC.pExtsBitmap
+        ( parserOpts
+            config
+              { pcExtensions = withImplied (effectiveExtensions (pcExtensions config) t)
+              }
+        )
 
 -- | Close a set of extensions under what they imply.
 withImplied :: [Extension] -> [Extension]
@@ -158,7 +246,7 @@
     quietDiagnostics
     False -- safe imports
     True -- keep Haddock tokens
-    True -- keep ordinary comment tokens
+    False -- keep ordinary comment tokens
     True -- let @LINE@ and @COLUMN@ pragmas move the source position
 
 -- | Diagnostics are not reported, so the settings only have to be
diff --git a/src/Tilia/Render.hs b/src/Tilia/Render.hs
--- a/src/Tilia/Render.hs
+++ b/src/Tilia/Render.hs
@@ -3,12 +3,15 @@
   ( RenderConfig (..),
     defaultRenderConfig,
     renderModule,
+    renderConfiguration,
   )
 where
 
 import Data.Choice (fromBool)
+import Data.IntMap.Strict qualified as IntMap
 import Data.Map.Strict (Map)
 import Data.Map.Strict qualified as Map
+import Data.Maybe (isJust, listToMaybe)
 import Data.Set (Set)
 import Data.Set qualified as Set
 import Data.Text (Text)
@@ -18,15 +21,19 @@
 import GHC.Types.SrcLoc (getLoc)
 import Tilia.Comments
   ( Comment (..),
+    asOrdinary,
     bracketed,
+    carriedOnFrom,
     closesItself,
     commentTrailing,
-    escapeTrigger,
+    continuesHaddock,
+    holdsOff,
     widenTrigger,
   )
 import Tilia.Comments.Attach (attachComments)
 import Tilia.Doc.Combinators
-import Tilia.Fixity (Scope)
+import Tilia.Fixity (Scope, capturedUses)
+import Tilia.Gathered (Gathered)
 import Tilia.Imports (normalizeImports)
 import Tilia.Parser (ParsedModule (..))
 import Tilia.Render.Context
@@ -35,7 +42,7 @@
 import Tilia.Render.Haddock (haddockSpans)
 import Tilia.Render.Header (HeaderPragma (..), hsModule, takeHeaderPragmas, takeStackHeader)
 import Tilia.Render.Signature (sigDecl)
-import Tilia.Source (comments)
+import Tilia.Source (Lines, blankAt, comments, sourceLines)
 import Tilia.Span
 import Tilia.Span.Ghc (spanOf, spanOfSrcSpan)
 
@@ -47,7 +54,9 @@
     -- | What the module can see, if it could be worked out.
     rcScope :: Maybe Scope,
     -- | Source lines the import block must not be sorted across.
-    rcImportBarriers :: [Int]
+    rcImportBarriers :: [Int],
+    -- | Source lines the names of an import list must not be sorted across.
+    rcNameBarriers :: [Int]
   }
 
 -- | A configuration that asserts nothing.
@@ -56,22 +65,38 @@
   RenderConfig
     { rcExtensions = Set.empty,
       rcScope = Nothing,
-      rcImportBarriers = []
+      rcImportBarriers = [],
+      rcNameBarriers = []
     }
 
 -- | Render a parsed module, comments and all.
 renderModule :: RenderConfig -> ParsedModule -> Doc
-renderModule settings parsed =
-  prologue (pmPrologue parsed)
-    <> stackHeader
-    <> attachComments loose (hsModule ctx pragmas (sorted hsMod))
+renderModule settings parsed = attachComments loose doc
   where
+    (doc, loose) = renderConfiguration settings parsed
+
+-- | Render one configuration of a module, and return the comments the
+-- syntax tree does not carry rather than attach them.
+renderConfiguration :: RenderConfig -> ParsedModule -> (Doc, [Comment])
+renderConfiguration settings parsed =
+  ( prologue (pmPrologue parsed)
+      <> stackHeader
+      <> hsModule ctx pragmas opening (sorted hsMod),
+    loose
+  )
+  where
     hsMod = pmModule parsed
-    (haddocks, loose') = splitHaddocks hsMod (comments (pmSource parsed))
+    (haddocks, loose') =
+      splitHaddocks
+        (sourceLines (pmSource parsed))
+        (pmGathered parsed)
+        (comments (pmSource parsed))
     plain = heldOff haddocks loose'
     (stackHeader, rest) = takeStackHeader (pmHeaderEnd parsed) plain
     (pragmas, uncovered) = takeHeaderPragmas (pmSource parsed) (pmHeaderEnd parsed) rest
-    loose = heldOffModuleDoc hsMod haddocks pragmas uncovered
+    held = heldOffModuleDoc hsMod haddocks pragmas uncovered
+    opening = importsOpening (sourceLines (pmSource parsed)) held hsMod
+    loose = fmap (belowOpening opening) held
     implicitPrelude =
       fromBool (Set.member ImplicitPrelude (rcExtensions settings))
     sorted m =
@@ -80,6 +105,7 @@
             normalizeImports
               implicitPrelude
               (rcImportBarriers settings)
+              (rcNameBarriers settings)
               (comments (pmSource parsed))
               (hsmodImports m)
         }
@@ -88,8 +114,12 @@
         { ctxExtensions = rcExtensions settings,
           ctxSourceType = pmSourceType parsed,
           ctxScope = rcScope settings,
+          ctxCaptured = capturedUses (pmGathered parsed),
           ctxSource = pmSource parsed,
           ctxLineComments = indexOn (filter (not . closesItself) loose),
+          ctxCarryingOn =
+            Set.fromList
+              (startPoint . commentSpan <$> filter (isJust . carriedOnFrom loose) loose),
           ctxHaddocks = indexOn haddocks,
           ctxKnot = knot
         }
@@ -98,7 +128,7 @@
 heldOff :: [Comment] -> [Comment] -> [Comment]
 heldOff haddocks = fmap holdOff
   where
-    written = filter (not . bracketed) haddocks
+    written = filter holdsOff haddocks
     ends = Set.fromList (fmap (spanEndLine . commentSpan) written)
     starts =
       Set.fromList
@@ -111,14 +141,19 @@
       | otherwise =
           c
             { commentGapAbove =
-                commentGapAbove c || Set.member (spanStartLine s - 1) ends,
+                commentGapAbove c
+                  || continuesHaddock c
+                    && Set.member (spanStartLine s - 1) ends,
               commentGapBelow =
                 commentGapBelow c || Set.member (spanEndLine s + 1) starts
             }
       where
         s = commentSpan c
 
--- | Hold the first comment of the header off the module's own Haddock.
+-- | Hold the comment that comes out right under the module's own Haddock
+-- off it: the first one between the Haddock and the module line with no
+-- pragma after it, since one with a pragma after it is placed with that
+-- pragma, above the Haddock.
 heldOffModuleDoc ::
   HsModule GhcPs ->
   -- | The Haddocks of the module, the module's own among them.
@@ -137,10 +172,10 @@
     uncoveredBetween ended began c =
       ended < spanStartLine here
         && spanStartLine here < began
-        && not (Set.member (spanEndLine here + 1) travellers)
+        && not (any (\p -> spanEndLine here < p && p < began) pragmaStarts)
       where
         here = commentSpan c
-    travellers = Set.fromList (fmap (spanStartLine . hpSpan) pragmas)
+    pragmaStarts = fmap (spanStartLine . hpSpan) pragmas
     endOfModuleDoc = do
       s <- moduleDoc
       c <- lookup (startPoint s) [(startPoint (commentSpan h), h) | h <- haddocks]
@@ -150,6 +185,33 @@
       _ -> Nothing
     startOfModuleLine = spanStartLine <$> (spanOf =<< hsmodName hsMod)
 
+-- | The empty line right above the first import, or above the comments
+-- written on top of it.
+importsOpening :: Lines -> [Comment] -> HsModule GhcPs -> Maybe Int
+importsOpening ls cs hsMod =
+  climb . pred . spanStartLine =<< spanOf =<< listToMaybe (hsmodImports hsMod)
+  where
+    climb n
+      | blankAt n ls = Just n
+      | otherwise = climb . pred =<< IntMap.lookup n onTheirOwnLines
+    onTheirOwnLines =
+      IntMap.fromList
+        [ (spanEndLine s, spanStartLine s)
+        | c <- cs,
+          not (commentTrailing c),
+          let s = commentSpan c
+        ]
+
+-- | Leave the empty line above the comments written on top of the first
+-- import at the top of the imports, rather than carry it along when sorting
+-- moves that import.
+belowOpening :: Maybe Int -> Comment -> Comment
+belowOpening opening c
+  | Just l <- opening,
+    spanStartLine (commentSpan c) == l + 1 =
+      c{commentGapAbove = False}
+  | otherwise = c
+
 -- | The lines above the module, put back exactly as they were written.
 prologue :: [Text] -> Doc
 prologue = foldMap (\l -> txt l <> hardBreak)
@@ -168,18 +230,21 @@
 
 -- | Separate the comments the syntax tree also knows about from the rest.
 splitHaddocks ::
-  HsModule GhcPs ->
+  -- | The module's lines.
+  Lines ->
+  -- | What the tree holds.
+  Gathered ->
   -- | Every comment in the module.
   [Comment] ->
   -- | The ones the tree carries, and the ones it does not.
   ([Comment], [Comment])
-splitHaddocks hsMod = foldr sort' ([], [])
+splitHaddocks ls found = foldr sort' ([], [])
   where
-    inTree = Set.fromList (fmap startPoint (haddockSpans hsMod))
+    inTree = Set.fromList (fmap startPoint (haddockSpans found))
     sort' c (docs, rest)
       | startPoint (commentSpan c) `Set.member` inTree =
           (widenTrigger c : docs, rest)
-      | otherwise = (docs, escapeTrigger c : rest)
+      | otherwise = (docs, asOrdinary ls c <> rest)
 
 -- | Index comments by where they begin.
 indexOn :: [Comment] -> Map (Int, Int) Comment
diff --git a/src/Tilia/Render/Body.hs b/src/Tilia/Render/Body.hs
--- a/src/Tilia/Render/Body.hs
+++ b/src/Tilia/Render/Body.hs
@@ -60,10 +60,11 @@
     | maybe False isSingleLine (spanOf p) -> Hanging
     | otherwise -> Normal
   HsApp _ _ y -> exprHangs (unLoc y)
-  OpApp _ _ op y
+  OpApp _ x op y
     | Just n <- operatorName op,
       occNameString (rdrNameOcc n) == "$" ->
         exprHangs (unLoc y)
+    | otherwise -> exprHangs (unLoc x)
   _ -> Normal
 
 -- | Does this command absorb the line break that introduces it?
diff --git a/src/Tilia/Render/Class.hs b/src/Tilia/Render/Class.hs
--- a/src/Tilia/Render/Class.hs
+++ b/src/Tilia/Render/Class.hs
@@ -136,16 +136,17 @@
     head' =
       foldMap (\w -> breakOrSpace <> at ctx w warningTxt) warning
         <> breakOrSpace
-        <> at
-          ctx
-          cid_poly_ty
-          ( \sigTy ->
-              indent $
-                foldMap (<> breakOrSpace) (overlapMode cid_overlap_mode)
-                  <> hsSigTypeBody ctx sigTy
-                  <> includeUnless
-                    (null members)
-                    (breakOrSpace <> keywordAt ctx whereSpan "where")
+        <> indent
+          ( foldMap (<> breakOrSpace) (overlapMode ctx cid_overlap_mode)
+              <> at
+                ctx
+                cid_poly_ty
+                ( \sigTy ->
+                    hsSigTypeBody ctx sigTy
+                      <> includeUnless
+                        (null members)
+                        (breakOrSpace <> keywordAt ctx whereSpan "where")
+                )
           )
 
     body =
@@ -170,7 +171,7 @@
         txt "instance"
           <> foldMap (\w -> breakOrSpace <> at ctx w warningTxt) warning
           <> breakOrSpace
-          <> foldMap (<> breakOrSpace) (overlapMode deriv_overlap_mode)
+          <> foldMap (<> breakOrSpace) (overlapMode ctx deriv_overlap_mode)
           <> nest (if indented then 1 else 0) (hsSigType ctx (hswc_body deriv_type))
 
     strategy = case deriv_strategy of
diff --git a/src/Tilia/Render/Context.hs b/src/Tilia/Render/Context.hs
--- a/src/Tilia/Render/Context.hs
+++ b/src/Tilia/Render/Context.hs
@@ -19,7 +19,10 @@
     operatorFixity,
 
     -- * What lies between two spans
-    commentBetween,
+    commentPrintedBetween,
+    lineCommentWrittenBetween,
+    commentRightUnder,
+    remarkUnder,
     separatedByBlank,
 
     -- * Entering the tree
@@ -31,7 +34,7 @@
     layoutFrom,
     layoutWithin,
     layoutAcross,
-    insideBrackets,
+    attachOperator,
 
     -- * Haddocks
     writtenHaddock,
@@ -62,7 +65,13 @@
     lookupFixity,
   )
 import Tilia.Render.Layout (Bracing (..))
-import Tilia.Source (Source, SourceType, blankAt, sourceLines)
+import Tilia.Source
+  ( Source,
+    SourceType,
+    blankAt,
+    directivePresentOnLine,
+    sourceLines,
+  )
 import Tilia.Span
 import Tilia.Span.Ghc
 
@@ -77,8 +86,13 @@
     ctxSourceType :: SourceType,
     -- | What imports the module can see, if that could be worked out.
     ctxScope :: Maybe Scope,
+    -- | The uses of an operator a local binding captures, by where the
+    -- operator is written, with their fixities.
+    ctxCaptured :: Map Span Fixity,
     -- | The comments that take whole lines, by starting position.
     ctxLineComments :: Map (Int, Int) Comment,
+    -- | Where each comment that carries on a trailing comment begins.
+    ctxCarryingOn :: Set (Int, Int),
     -- | The module as its author wrote it.
     ctxSource :: Source,
     -- | The author's own text for each Haddock, by starting position.
@@ -188,19 +202,59 @@
   Maybe Span ->
   Maybe Span
 nextPrinted ctx (Just a) mb@(Just b) =
-  case filter (not . commentTrailing) (Map.elems inTheGap) of
+  case printedBetween ctx a b of
     (c : _) -> Just (commentSpan c)
     [] -> mb
+nextPrinted _ _ mb = mb
+
+-- | The comments printed between two spans rather than after the first.
+printedBetween :: Ctx -> Span -> Span -> [Comment]
+printedBetween ctx a b = filter (not . printedAfter) (Map.elems inTheGap)
   where
     inTheGap =
       Map.takeWhileAntitone (< startPoint b) $
         Map.dropWhileAntitone (< endPoint a) (ctxLineComments ctx)
-nextPrinted _ _ mb = mb
+    printedAfter c =
+      commentTrailing c
+        || ( Set.member (startPoint s) (ctxCarryingOn ctx)
+               && spanStartColumn b < spanStartColumn s
+           )
+      where
+        s = commentSpan c
 
 -- | Is a comment going to be printed between the two spans?
-commentBetween :: Ctx -> Maybe Span -> Maybe Span -> Bool
-commentBetween ctx a b = nextPrinted ctx a b /= b
+commentPrintedBetween :: Ctx -> Maybe Span -> Maybe Span -> Bool
+commentPrintedBetween ctx a b = nextPrinted ctx a b /= b
 
+-- | Was a comment that ends its line written between the two spans, wherever
+-- it is printed?
+lineCommentWrittenBetween :: Ctx -> Maybe Span -> Maybe Span -> Bool
+lineCommentWrittenBetween ctx (Just a) (Just b) =
+  holdsLineComment ctx (mkSpan (endPoint a) (startPoint b))
+lineCommentWrittenBetween _ _ _ = False
+
+-- | Do the comments printed between the two spans begin right under the
+-- first, with an empty line the author left under one of them and no
+-- preprocessor directive anywhere between?
+remarkUnder :: Ctx -> Maybe Span -> Maybe Span -> Bool
+remarkUnder ctx ma@(Just a) mb@(Just b) =
+  not (separatedByBlank ctx ma mb)
+    && not (any directiveAt [spanEndLine a + 1 .. spanStartLine b - 1])
+    && any
+      (writtenBlank ctx . (+ 1) . spanEndLine . commentSpan)
+      (printedBetween ctx a b)
+  where
+    directiveAt n = directivePresentOnLine n (sourceLines (ctxSource ctx))
+remarkUnder _ _ _ = False
+
+-- | Does the first comment printed between the two spans begin on the line
+-- right under the first?
+commentRightUnder :: Ctx -> Maybe Span -> Maybe Span -> Bool
+commentRightUnder ctx (Just a) (Just b) = case printedBetween ctx a b of
+  c : _ -> spanStartLine (commentSpan c) == spanEndLine a + 1
+  [] -> False
+commentRightUnder _ _ _ = False
+
 -- | Did the author leave an empty line directly after the first of these?
 separatedByBlank :: Ctx -> Maybe Span -> Maybe Span -> Bool
 separatedByBlank ctx ma@(Just a) mb = case nextPrinted ctx ma mb of
@@ -240,7 +294,7 @@
 -- of an @if@—and for nothing else.
 atSpan :: Ctx -> Maybe Span -> Doc -> Doc
 atSpan _ Nothing d = d
-atSpan ctx (Just s) d = located s (grouped ctx s d)
+atSpan _ (Just s) d = located s (group s d)
 
 -- | A keyword, claiming the span it was written on.
 keywordAt :: Ctx -> Maybe Span -> Text -> Doc
@@ -258,7 +312,7 @@
 -- line or several.
 layoutFrom :: Ctx -> Maybe Span -> Doc -> Doc
 layoutFrom _ Nothing d = flat d
-layoutFrom ctx (Just s) d = grouped ctx s d
+layoutFrom _ (Just s) d = group s d
 
 -- | Lay a construct out from the region its contents occupy rather than the
 -- region it occupies.
@@ -280,15 +334,36 @@
 layoutAcross :: (HasLoc l) => Ctx -> [GenLocated l a] -> Doc -> Doc
 layoutAcross ctx xs = layoutFrom ctx (spansOf xs)
 
--- | Give the inside of a bracketed construct an anchor at its far end.
-insideBrackets :: Maybe Span -> Doc -> Doc
-insideBrackets here d = d <> foldMap (emptyAnchor . endOf) here
-
--- | Lay a document out according to a span, and to the comments inside it.
-grouped :: Ctx -> Span -> Doc -> Doc
-grouped ctx s d
-  | holdsLineComment ctx s = broken d
-  | otherwise = group s d
+-- | 'attach' an operator and its operand, leaving the operator's region at
+-- the end of the line when it was written there, so that the comments
+-- written around it stay on that line, and giving the indentation of the
+-- operand's line a region, so that those above the operand come before it.
+attachOperator ::
+  Placement ->
+  -- | What the operator follows.
+  Maybe Span ->
+  -- | The operator.
+  Maybe Span ->
+  -- | Its operand.
+  Maybe Span ->
+  -- | The operator, printed.
+  Doc ->
+  -- | Its operand, printed.
+  Doc ->
+  Doc
+attachOperator placement before here after op operand = case here of
+  Just s
+    | placement == Normal,
+      sameLine before here,
+      not (sameLine here after) ->
+        indent (located s mempty)
+          <> attach
+            Normal
+            (foldMap indentation after <> unclaimed op <> space <> operand)
+  _ -> attach placement (op <> space <> operand)
+  where
+    indentation o =
+      located (mkSpan (spanStartLine o, 1) (startPoint o)) mempty
 
 -- | Does a comment that takes whole lines begin inside this span?
 holdsLineComment :: Ctx -> Span -> Bool
diff --git a/src/Tilia/Render/Data.hs b/src/Tilia/Render/Data.hs
--- a/src/Tilia/Render/Data.hs
+++ b/src/Tilia/Render/Data.hs
@@ -56,7 +56,7 @@
   HsDataDefn GhcPs ->
   Doc
 dataDecl ctx style tyCon tyVars tyVarSpan renderTyVar fixity outerBinders HsDataDefn{..} =
-  txt keyword <> txt instanceWord <> header <> constructors <> derivings
+  txt (keyword <> instanceWord) <> header <> constructors <> derivings
   where
     keyword = case dd_cons of
       NewTypeCon _ -> "newtype"
@@ -329,7 +329,8 @@
         brokenIfDocumented ctx tys $ case tys of
           DctSingle NoExtField sigTy -> parens (hsSigType ctx sigTy)
           DctMulti NoExtField sigTys ->
-            parens (commaSep (fmap (align . hsSigType ctx) sigTys))
+            parens . insideBrackets (spanOf deriv_clause_tys) $
+              commaSep (fmap (align . hsSigType ctx) sigTys)
 
     strategy = case deriv_clause_strategy of
       Nothing -> breakOrSpace <> indent what
diff --git a/src/Tilia/Render/Declaration.hs b/src/Tilia/Render/Declaration.hs
--- a/src/Tilia/Render/Declaration.hs
+++ b/src/Tilia/Render/Declaration.hs
@@ -65,22 +65,28 @@
       | separate previous current = breakOrSpace : render current
       | otherwise = render current
 
-    separate previous current = case grouping of
-      Disregard -> True
-      Respect ->
-        separatedByBlank ctx ended began
-          || commentBetween ctx ended began
-          || isDocumented previous
-          || isDocumented current
+    separate previous current =
+      not (remarkUnder ctx ended began || underHeading) && case grouping of
+        Disregard -> True
+        Respect ->
+          separatedByBlank ctx ended began
+            || isDocumented previous
+            || isDocumented current
       where
         ended = spanOf (NE.last previous)
         began = spanOf (NE.head current)
+        underHeading =
+          isHeading (unLoc (NE.last previous))
+            && commentRightUnder ctx ended began
 
     isDocumented = any (isDocNext . unLoc)
     isDocNext = \case
       DocD _ (DocCommentNext _) -> True
       DocD _ (DocCommentPrev _) -> True
       _ -> False
+    isHeading = \case
+      DocD _ DocGroup{} -> True
+      _ -> False
 
 -- | Gather declarations that belong together.
 groupDecls :: Ctx -> Bool -> [LHsDecl GhcPs] -> [NonEmpty (LHsDecl GhcPs)]
@@ -92,16 +98,22 @@
         | isDoc (unLoc (NE.head g)) -> (d :| []) : g : gs
         | otherwise -> (d <| g) : gs
   | otherwise =
-      let (together, rest) = span belongs (zip (d : ds) ds)
-       in (d :| fmap snd together) : groupDecls ctx isSignatureFile (fmap snd rest)
+      let (together, rest) = gather d ds
+       in (d :| together) : groupDecls ctx isSignatureFile rest
   where
+    gather previous = \case
+      current : more
+        | belongs previous current ->
+            let (together, rest) = gather current more
+             in (current : together, rest)
+      remaining -> ([], remaining)
     isDocNext = \case
       DocD _ (DocCommentNext _) -> True
       _ -> False
     isDoc = \case
       DocD _ _ -> True
       _ -> False
-    belongs (previous, current) =
+    belongs previous current =
       (not isSignatureFile && isSignatureSeries ctx previous current)
         || isDerivingSeries ctx previous current
         || relatedDecls d current
@@ -112,7 +124,7 @@
 isSignatureSeries :: Ctx -> LHsDecl GhcPs -> LHsDecl GhcPs -> Bool
 isSignatureSeries ctx x@(L _ a) y@(L _ b) = case (a, b) of
   (SigD _ TypeSig{}, SigD _ TypeSig{}) ->
-    not (commentBetween ctx (spanOf x) (spanOf y))
+    not (commentPrintedBetween ctx (spanOf x) (spanOf y))
   _ -> False
 
 -- | Two standalone @deriving@ declarations the author ran together.
diff --git a/src/Tilia/Render/Expression.hs b/src/Tilia/Render/Expression.hs
--- a/src/Tilia/Render/Expression.hs
+++ b/src/Tilia/Render/Expression.hs
@@ -18,12 +18,14 @@
   )
 where
 
+import Control.Applicative ((<|>))
 import Data.Choice (Choice, fromBool, isTrue, pattern Is, pattern Isn't)
 import Data.Function (on)
 import Data.Generics.Schemes (listify)
 import Data.List (sortBy, unsnoc)
 import Data.List.NonEmpty (NonEmpty (..))
 import Data.List.NonEmpty qualified as NE
+import Data.Map.Strict qualified as Map
 import Data.Text (Text)
 import Data.Text qualified as T
 import GHC.Data.FastString (unpackFS)
@@ -106,17 +108,19 @@
       <> breakOrSpace
       <> underSite site (sepBy breakOrSpace (fmap alternative (NE.toList guards)))
     where
-      alternative g =
-        atSpan
-          ctx
-          (grhsSpan (unLoc g))
-          (guardedRhs ctx Normal (siteBracing site) (ExprBody ctx) RightArrow (unLoc g))
-  HsLet _ binds e -> letIn ctx (bodyIn (ExprBody ctx) (siteBracing site)) binds e
+      alternative =
+        guardedRhs ctx Normal (siteBracing site) (ExprBody ctx) RightArrow
+  HsLet tokens binds e ->
+    letIn ctx (bodyIn (ExprBody ctx) (siteBracing site)) nested tokens binds e
+    where
+      nested = case unLoc e of
+        HsLet{} -> True
+        _ -> False
   HsDo anns flavour es -> case flavour of
     DoExpr moduleName -> doBlock moduleName "do"
     MDoExpr moduleName -> doBlock moduleName "mdo"
-    ListComp -> comprehension ctx site es
-    MonadComp -> comprehension ctx site es
+    ListComp -> comprehension ctx site here es
+    MonadComp -> comprehension ctx site here es
     GhciStmtCtxt -> error "Tilia: GhciStmtCtxt cannot occur in a source file"
     where
       doBlock moduleName word =
@@ -154,14 +158,18 @@
       hsExpr ctx x
         <> joinedBy "::"
         <> indent (hsSigType ctx hswc_body)
-  ArithSeq _ _ range -> arithSeq ctx (closingFor site) range
+  ArithSeq _ _ range -> arithSeq ctx here (closingFor site) range
   HsTypedBracket (bracketAnn, _) e ->
-    txt opener <> breakOrNothing <> hsExpr ctx e <> breakOrNothing <> txt "||]"
+    txt opener
+      <> breakOrNothing
+      <> insideBrackets here (hsExpr ctx e)
+      <> breakOrNothing
+      <> txt "||]"
     where
       opener = case bracketAnn of
         BracketNoE{} -> "[||"
         BracketHasE{} -> "[e||"
-  HsUntypedBracket _ q -> quotation ctx q
+  HsUntypedBracket _ q -> quotation ctx here q
   HsTypedSplice _ (HsTypedSpliceExpr _ e) -> spliceTH ctx (Is #typed) e DollarSplice
   HsUntypedSplice _ splice -> untypedSplice ctx DollarSplice splice
   HsProc _ p e ->
@@ -219,7 +227,7 @@
   case placement of
     Normal ->
       mayBraceWhenFlat (siteBracing site) headAndInit
-        <> indent (includeUnless (null initArgs) breakOrSpace <> hsExpr ctx lastArg)
+        <> indent (breakOrSpace <> hsExpr ctx lastArg)
     Hanging ->
       layoutFrom ctx initSpan (headAndInit MayBrace)
         <> attach Hanging (hsExpr ctx lastArg)
@@ -233,13 +241,12 @@
       | otherwise = Normal
     headAndInit bracing =
       hsExprIn ctx site{siteApplicand = True, siteBracing = bracing} func
-        <> breakOrSpace
-        <> nest
-          (if placement == Hanging then 0 else 1)
-          ( sepBy
-              breakOrSpace
-              (fmap (hsExprIn ctx (withBracing bracing plainSite)) initArgs)
+        <> foldMap
+          ( nest (if placement == Hanging then 0 else 1)
+              . (breakOrSpace <>)
+              . hsExprIn ctx (withBracing bracing plainSite)
           )
+          initArgs
 
 -- | The head of an application, and its arguments in the order written.
 gatherArgs ::
@@ -268,8 +275,8 @@
         Missing _ -> mempty
 
 -- | An arithmetic sequence, in whichever of its four forms.
-arithSeq :: Ctx -> ClosingIndent -> ArithSeqInfo GhcPs -> Doc
-arithSeq ctx closing = \case
+arithSeq :: Ctx -> Maybe Span -> ClosingIndent -> ArithSeqInfo GhcPs -> Doc
+arithSeq ctx here closing = \case
   From from -> wrap (hsExpr ctx from <> breakOrSpace <> txt "..")
   FromThen from next ->
     wrap (commaSep (fmap (hsExpr ctx) [from, next]) <> breakOrSpace <> txt "..")
@@ -283,7 +290,7 @@
         <> space
         <> hsExpr ctx to
   where
-    wrap = bracketsWith closing
+    wrap = bracketsWith closing . insideBrackets here
 
 -- | One field of a record construction or update.
 fieldBind ::
@@ -331,7 +338,9 @@
 
 -- | The fixity of an operator used in an expression.
 fixityOf :: Ctx -> LHsExpr GhcPs -> Maybe Fixity
-fixityOf ctx o = operatorName o >>= operatorFixity ctx InTerms
+fixityOf ctx o =
+  (spanOf o >>= (`Map.lookup` ctxCaptured ctx))
+    <|> (operatorName o >>= operatorFixity ctx InTerms)
 
 -- | Print a chain of operators once precedence has regrouped it.
 renderExprChain :: Ctx -> Site -> OpChain (LHsExpr GhcPs) (LHsExpr GhcPs) -> Doc
@@ -346,7 +355,8 @@
             (if placement == Hanging then MayBrace else NoBrace)
             laidOut
     where
-      placement = chainPlacement exprHangs firstOne (NE.last operands)
+      placement =
+        chainPlacement exprHangs (chainSpan spanOf firstOne) (NE.last operands)
       laidOut bracing =
         renderExprChain ctx (withBracing bracing site) firstOne
           <> pieces bracing firstOne operators rest
@@ -361,19 +371,28 @@
                 space
                   <> hsExpr ctx o
                   <> attach
-                    (tailPlacement isLast previous operand)
+                    (tailPlacement isLast (chainSpan spanOf previous) o operand)
                     (rendered <> rest')
-              else attach placement (hsExpr ctx o <> space <> rendered) <> rest'
+              else
+                attachOperator
+                  placement
+                  (chainSpan spanOf previous)
+                  (spanOf o)
+                  (chainSpan spanOf operand)
+                  (hsExpr ctx o)
+                  rendered
+                  <> rest'
       pieces _ _ _ _ = mempty
-      tailPlacement isLast previous operand
+      tailPlacement isLast before o operand
         | isLast,
-          not (maybe True isSingleLine (chainSpan spanOf operand)) =
-            chainPlacement exprHangs previous operand
+          not (maybe True isSingleLine (chainSpan spanOf operand)),
+          not (lineCommentWrittenBetween ctx before (spanOf o)) =
+            chainPlacement exprHangs (spanOf o) operand
         | otherwise = Normal
       commentedOperators =
         or (zipWith commentedBefore (NE.toList operands) operators)
       commentedBefore operand o =
-        commentBetween ctx (chainSpan spanOf operand) (spanOf o)
+        commentPrintedBetween ctx (chainSpan spanOf operand) (spanOf o)
       trailing =
         (length operators == 1 || endsHanging)
           && not commentedOperators
@@ -392,19 +411,21 @@
   HsDo _ (MDoExpr _) _ -> True
   _ -> False
 
--- | Whether the operands of a chain hang.
+-- | Whether an operand hangs, which it can only where it starts on the line
+-- the given span starts on.
 chainPlacement ::
   (HasLoc l) =>
   (a -> Placement) ->
-  OpChain (GenLocated l a) op ->
+  Maybe Span ->
   OpChain (GenLocated l a) op ->
   Placement
-chainPlacement placer firstOne lastOne = case lastOne of
+chainPlacement placer leader operand = case operand of
   Operand (L _ n) | startsTogether -> placer n
+  Chain (first :| _) _ -> chainPlacement placer leader first
   _ -> Normal
   where
     startsTogether =
-      case (chainSpan spanOf firstOne, chainSpan spanOf lastOne) of
+      case (leader, chainSpan spanOf operand) of
         (Just a, Just b) -> spanStartLine a == spanStartLine b
         _ -> False
 
@@ -439,9 +460,9 @@
 stmtBody ctx site mkBody = \case
   LastStmt _ body _ _ -> printBody (mkBody site body)
   BodyStmt _ body _ _ -> printBody (mkBody site body)
-  BindStmt _ p f ->
+  BindStmt arrow p f ->
     hsPat ctx p
-      <> nest 1 (space <> txt "<-")
+      <> nest 1 (space <> maybe id located (uniTokenSpan arrow) (txt "<-"))
       <> layoutFrom ctx (spanOf p <> spanOf f) (attach placement (printBody bound))
     where
       bound = mkBody plainSite f
@@ -520,13 +541,13 @@
       plainSite{siteInBlock = True, siteBracing = bracing}
 
 -- | A list comprehension.
-comprehension :: Ctx -> Site -> XRec GhcPs [ExprLStmt GhcPs] -> Doc
-comprehension ctx site es = align (variant onOneLine acrossLines)
+comprehension :: Ctx -> Site -> Maybe Span -> XRec GhcPs [ExprLStmt GhcPs] -> Doc
+comprehension ctx site here es = align (variant onOneLine acrossLines)
   where
     onOneLine = txt "[" <> body <> txt "]"
     acrossLines = txt "[" <> space <> keepInside (body <> hardBreak <> txt "]")
     keepInside = if siteInBlock site then align else id
-    body = at ctx es sections
+    body = insideBrackets here (at ctx es sections)
     sections xs = case unsnoc xs of
       Nothing -> error "Tilia: a comprehension always yields something"
       Just (stmts, yield) ->
@@ -626,26 +647,35 @@
       where
         keywordSpan = spanOfSrcSpan written
         placement
-          | commentBetween ctx keywordSpan (spanOf body) = Normal
+          | commentPrintedBetween ctx keywordSpan (spanOf body) = Normal
           | otherwise = bodyPlacement (bodyOf body)
 
--- | A @let@ expression or command.
+-- | A @let@ expression or command, with @in@ ending its line where it is
+-- one of a chain written that way, and the next on the line under it.
 letIn ::
   (Body b) =>
   Ctx ->
   (LocatedA body -> b) ->
+  -- | Whether the body is another @let@.
+  Bool ->
+  (EpToken "let", EpToken "in") ->
   HsLocalBinds GhcPs ->
   LocatedA body ->
   Doc
-letIn ctx bodyOf binds body =
+letIn ctx bodyOf nested (letToken, inToken) binds body =
   align $
     txt "let"
       <> space
-      <> align (localBinds ctx NoBrace binds)
-      <> variant space (hardBreak <> txt " ")
+      <> align
+        ( localBinds ctx NoBrace binds
+            <> foldMap (emptyAnchor . startOf) (tokenSpan inToken)
+        )
+      <> (if chained then space else variant space (hardBreak <> txt " "))
       <> txt "in"
-      <> space
+      <> (if chained then breakOrSpace else space)
       <> align (printBody (bodyOf body))
+  where
+    chained = nested && sameLine (tokenSpan letToken) (tokenSpan inToken)
 
 -- | The bindings of a @let@ or a @where@.
 localBinds :: Ctx -> Bracing -> HsLocalBinds GhcPs -> Doc
@@ -741,7 +771,12 @@
   HsCmdCase _ e mg -> caseOf ctx site (CmdBody ctx) e mg
   HsCmdIf anns _ c t e ->
     ifThenElse ctx (bodyIn (CmdBody ctx) (siteBracing site)) anns c t e
-  HsCmdLet _ binds c -> letIn ctx (bodyIn (CmdBody ctx) (siteBracing site)) binds c
+  HsCmdLet tokens binds c ->
+    letIn ctx (bodyIn (CmdBody ctx) (siteBracing site)) nested tokens binds c
+    where
+      nested = case unLoc c of
+        HsCmdLet{} -> True
+        _ -> False
   HsCmdDo anns es ->
     keywordAt ctx (doKeywordSpan anns) "do"
       <> statements ctx site (CmdBody ctx) es
@@ -778,23 +813,29 @@
         layoutFrom ctx (chainSpan spanOf chain) $
           mayBraceWhenFlat (if placement == Hanging then MayBrace else NoBrace) laidOut
         where
-          placement = chainPlacement cmdTopHangs firstOne (NE.last operands)
+          placement =
+            chainPlacement
+              cmdTopHangs
+              (chainSpan spanOf firstOne)
+              (NE.last operands)
           laidOut bracing =
-            renderIn bracing firstOne <> pieces bracing operators rest
-          pieces bracing (o : os) (operand : more) =
-            attach
+            renderIn bracing firstOne <> pieces bracing firstOne operators rest
+          pieces bracing previous (o : os) (operand : more) =
+            attachOperator
               placement
-              ( hsExpr ctx o
-                  <> space
-                  <> renderIn
-                    ( if null more
-                        then siteBracing site
-                        else bracing
-                    )
-                    operand
+              (chainSpan spanOf previous)
+              (spanOf o)
+              (chainSpan spanOf operand)
+              (hsExpr ctx o)
+              ( renderIn
+                  ( if null more
+                      then siteBracing site
+                      else bracing
+                  )
+                  operand
               )
-              <> pieces bracing os more
-          pieces _ _ _ = mempty
+              <> pieces bracing operand os more
+          pieces _ _ _ _ = mempty
           renderIn bracing = \case
             Operand c -> at ctx c (cmdTop ctx (withBracing bracing site))
             inner -> render inner
@@ -901,13 +942,12 @@
     <> multAnnGap
     <> strictness strict
     <> head'
-    <> nest
-      (if indentBody then 1 else 0)
-      ( separator
-          <> layoutFrom ctx bodySpan (attach placement body)
-          <> indent whereClause
-      )
+    <> nest bodyNest rightHandSide
+    <> whereClause
   where
+    bodyNest = if indentBody then 1 else 0
+    rightHandSide = separator <> layoutFrom ctx bodySpan (attach placement body)
+
     multAnnGap = case multAnn of
       HsUnannotated{} -> mempty
       _ -> space
@@ -983,10 +1023,7 @@
 
     alternative g =
       fenceWithin ctx (spanOf g) $
-        atSpan
-          ctx
-          (grhsSpan (unLoc g))
-          (guardedRhs ctx placement bracing mkBody groupStyle (unLoc g))
+        guardedRhs ctx placement bracing mkBody groupStyle g
 
     groupStyle
       | isCaseStyle style && hasGuards = RightArrow
@@ -995,11 +1032,12 @@
     whereClause = case grhssLocalBinds of
       EmptyLocalBinds _ -> mempty
       binds ->
-        breakOrSpace
-          <> keywordAt ctx (whereKeywordSpan binds) "where"
-          <> includeUnless
-            (isEmptyLocalBinds binds)
-            (breakOrSpace <> indent (localBinds ctx bracing binds))
+        nest bodyNest . indent $
+          breakOrSpace
+            <> keywordAt ctx (whereKeywordSpan binds) "where"
+            <> includeUnless
+              (isEmptyLocalBinds binds)
+              (breakOrSpace <> indent (localBinds ctx bracing binds))
 
 -- | Is this an alternative of a @case@ or a @\\case@?
 isCaseStyle :: MatchStyle -> Bool
@@ -1036,7 +1074,7 @@
 
 -- | One alternative of an equation: its guards, and what they guard.
 guardedRhs ::
-  (Body b) =>
+  (Body b, Anno (GRHS GhcPs (LocatedA body)) ~ EpAnnCO) =>
   Ctx ->
   -- | How the equation as a whole is placed.
   Placement ->
@@ -1044,31 +1082,37 @@
   Bracing ->
   BodyOf body b ->
   GuardStyle ->
-  GRHS GhcPs (LocatedA body) ->
+  LGRHS GhcPs (LocatedA body) ->
   Doc
-guardedRhs ctx parentPlacement bracing mkBody style (GRHS _ guards body) = case guards of
-  [] -> printBody bound
+guardedRhs ctx parentPlacement bracing mkBody style lgrhs@(L _ grhs) = case guards of
+  [] -> atSpan ctx (grhsSpan grhs) (printBody bound)
   _ ->
-    txt "|"
-      <> space
-      <> align (commaSep (fmap (align . hsStmt ctx) guards))
-      <> space
-      <> indent (txt separator)
-      <> nest
-        (if parentPlacement == Normal then 1 else 0)
-        (attach placement (printBody bound))
+    maybe id located (spanOf lgrhs) . layoutFrom ctx (grhsSpan grhs) $
+      txt "|"
+        <> space
+        <> align (commaSep (fmap (align . hsStmt ctx) guards))
+        <> space
+        <> indent (txt separator)
+        <> nest
+          (if parentPlacement == Normal then 1 else 0)
+          (attach placement (printBody bound))
   where
+    GRHS EpAnn{anns = GrhsAnn{ga_sep}} guards body = grhs
     bound = bodyIn mkBody bracing body
     separator = case style of
       EqualsSign -> "="
       RightArrow -> "->"
     placement
-      | maybe True (\g -> sameLine (Just g) (spanOf body)) endOfGuards =
+      | sameLine separatorSpan (spanOf body),
+        not (commentPrintedBetween ctx (spansOf guards) separatorSpan),
+        not (remarkBefore && remarkAfter) =
           bodyPlacement bound
       | otherwise = Normal
-    endOfGuards = case guards of
-      [] -> Nothing
-      _ -> spanOf (last guards)
+    separatorSpan = either annSpan annSpan ga_sep
+    remarkBefore = lineCommentWrittenBetween ctx (spansOf guards) separatorSpan
+    remarkAfter =
+      lineCommentWrittenBetween ctx separatorSpan (nextLine <$> separatorSpan)
+    nextLine s = mkSpan (spanEndLine s + 1, 1) (spanEndLine s + 1, 1)
 
 -- | A pattern synonym binding.
 patSynBind :: Ctx -> PatSynBind GhcPs GhcPs -> Doc
@@ -1099,7 +1143,16 @@
       layoutFrom
         ctx
         (spanOf l <> spanOf r)
-        (space <> name ctx l <> breakOrSpace <> indent (name ctx psb_id <> space <> name ctx r))
+        ( space
+            <> name ctx l
+            <> attachOperator
+              Normal
+              (spanOf l)
+              (spanOf psb_id)
+              (spanOf r)
+              (name ctx psb_id)
+              (name ctx r)
+        )
         <> indent (definition (spanOf l <> spanOf r))
   where
     argsAfterName rendered isEmpty =
@@ -1140,8 +1193,8 @@
     spliced = at ctx e (align . exprBody ctx plainSite (spanOf e))
 
 -- | A Template Haskell quotation.
-quotation :: Ctx -> HsQuote GhcPs -> Doc
-quotation ctx = \case
+quotation :: Ctx -> Maybe Span -> HsQuote GhcPs -> Doc
+quotation ctx here = \case
   ExpBr (bracketAnn, _) e -> quoted (flavour bracketAnn) (hsExpr ctx e)
     where
       flavour = \case
@@ -1159,7 +1212,7 @@
         <> txt flavour
         <> txt "|"
         <> breakOrNothing
-        <> indent (body <> breakOrNothing <> txt "|]")
+        <> indent (insideBrackets here body <> breakOrNothing <> txt "|]")
     starGuard x body
       | risky = space <> body <> space
       | otherwise = body
diff --git a/src/Tilia/Render/Haddock.hs b/src/Tilia/Render/Haddock.hs
--- a/src/Tilia/Render/Haddock.hs
+++ b/src/Tilia/Render/Haddock.hs
@@ -15,6 +15,7 @@
 where
 
 import Control.Applicative ((<|>))
+import Data.Char (isSpace)
 import Data.Data (Data)
 import Data.Generics.Schemes (listify)
 import Data.List (dropWhileEnd)
@@ -26,6 +27,7 @@
 import GHC.Hs
 import GHC.Types.SrcLoc (GenLocated (..), getLoc, unLoc)
 import Tilia.Doc.Combinators
+import Tilia.Gathered (Gathered (..))
 import Tilia.Render.Context
 import Tilia.Span
 import Tilia.Span.Ghc
@@ -82,10 +84,11 @@
         selfClosing written
       )
     Nothing
-      | null written' -> (emptyBlock, True)
-      | blockForm -> (rebuiltBlock, False)
-      | otherwise -> (rebuilt, False)
+      | null written' -> (writtenAt emptyBlock, True)
+      | blockForm -> (writtenAt rebuiltBlock, False)
+      | otherwise -> (writtenAt rebuilt, False)
   where
+    writtenAt = maybe id fence (spanOfSrcSpan l)
     emptyBlock = txt (blockOpener style) <> space <> txt "-}"
     rebuilt =
       sepBy hardBreak (zipWith line' (True : repeat False) written')
@@ -141,11 +144,17 @@
 --
 -- It may not when the Haddock is about to be printed in a style other than
 -- the one it was written in, since the text carries the style in its first
--- characters.
+-- characters, nor when it holds nothing but the spaces the end of a line
+-- loses.
 reusableText :: Ctx -> DocStyle -> LHsDoc GhcPs -> Maybe (NonEmpty Text)
 reusableText ctx style doc = do
   written <- writtenHaddock ctx (spanOfSrcSpan (getLoc doc))
-  if openedInStyle style (NE.head written) then Just written else Nothing
+  if openedInStyle style (NE.head written) && not onlySpaces
+    then Just written
+    else Nothing
+  where
+    onlySpaces = not (null text) && all isSpace text && '\n' `notElem` text
+    text = renderHsDocString (hsDocString (unLoc doc))
 
 -- | Was the Haddock written in the style it is about to come back out in?
 openedInStyle :: DocStyle -> Text -> Bool
@@ -209,18 +218,20 @@
       Just written -> not (selfClosing written)
       Nothing -> not (null (docLines (writtenAsBlock ctx doc) (unLoc doc)))
 
--- | The spans of every Haddock in a fragment.
-haddockSpans :: (Data a) => a -> [Span]
-haddockSpans x = mapMaybe (spanOfSrcSpan . getLoc) (docsIn x) <> namedSections x
+-- | The spans of every Haddock in a module.
+haddockSpans :: Gathered -> [Span]
+haddockSpans found =
+  mapMaybe (spanOfSrcSpan . getLoc) (gatheredDocs found)
+    <> namedSections (gatheredEntries found)
 
 -- | Every Haddock in a fragment.
 docsIn :: (Data a) => a -> [LHsDoc GhcPs]
 docsIn = listify (const True :: LHsDoc GhcPs -> Bool)
 
--- | The spans of the @-- $name@ anchors in an export list.
-namedSections :: (Data a) => a -> [Span]
-namedSections =
-  mapMaybe anchorSpan . listify (const True :: LIE GhcPs -> Bool)
+-- | The spans of the @-- $name@ anchors among the entries of an export
+-- list.
+namedSections :: [LIE GhcPs] -> [Span]
+namedSections = mapMaybe anchorSpan
   where
     anchorSpan l = case unLoc l of
       IEDocNamed{} -> spanOfSrcSpan (getHasLoc (getLoc l))
diff --git a/src/Tilia/Render/Header.hs b/src/Tilia/Render/Header.hs
--- a/src/Tilia/Render/Header.hs
+++ b/src/Tilia/Render/Header.hs
@@ -11,6 +11,7 @@
   )
 where
 
+import Control.Applicative ((<|>))
 import Data.Function (on)
 import Data.List (sortOn)
 import Data.List.NonEmpty qualified as NE
@@ -147,10 +148,13 @@
     reproduce c =
       sepBy (verbatimBreak AtMargin TrimWhitespace) (fmap txt (NE.toList (commentBody c)))
 
--- | The pragmas of a header, one per line, sorted.
+-- | The pragmas of a header, one per line, sorted, with the options in the
+-- order they were written, which is the order GHC reads their flags in.
 pragmaBlock :: [HeaderPragma] -> Doc
-pragmaBlock = foldMap render . dedupe . sortOn key . concatMap split
+pragmaBlock = foldMap render . dedupe . sortOn order . concatMap split
   where
+    order p = (hpRun p, hpOrder p, extension p)
+    extension p = if hpName p == "LANGUAGE" then hpBody p else ""
     key p = (hpRun p, hpOrder p, hpBody p)
     dedupe = fmap NE.head . NE.groupBy ((==) `on` key)
     split p
@@ -186,33 +190,56 @@
     spelledTheSame edition = t == T.pack (show (edition :: Language))
 
 -- | A whole module.
-hsModule :: Ctx -> [HeaderPragma] -> HsModule GhcPs -> Doc
-hsModule ctx pragmas HsModule{hsmodExt = XModulePs{..}, ..} =
-  headerLayout $
-    pragmaBlock pragmas
-      <> hardBreak
-      <> moduleLine
-      <> hardBreak
-      <> foldMap (\i -> at_ ctx (importDecl ctx) i <> hardBreak) hsmodImports
-      <> hardBreak
-      <> layoutFrom ctx (spansOf hsmodDecls) (decls ctx Free hsmodDecls)
+hsModule ::
+  -- | The context.
+  Ctx ->
+  -- | The pragmas the header hoists.
+  [HeaderPragma] ->
+  -- | The empty line that opens the imports, where the comments written
+  -- above it stay.
+  Maybe Int ->
+  -- | The module.
+  HsModule GhcPs ->
+  Doc
+hsModule ctx pragmas opening HsModule{hsmodExt = XModulePs{..}, ..} =
+  pragmaBlock pragmas
+    <> hardBreak
+    <> moduleLine
+    <> hardBreak
+    <> foldMap (\l -> located (mkSpan (l, 1) (l, 2)) mempty) opening
+    <> foldMap (\i -> at_ ctx (importDecl ctx) i <> hardBreak) hsmodImports
+    <> includeUnless
+      (null hsmodDecls)
+      ( hardBreak
+          <> declarationsStart
+          <> declarationLayout (decls ctx Free hsmodDecls)
+      )
   where
+    declarationLayout = case (hsmodDecls, spansOf hsmodDecls) of
+      (_ : _ : _, Just s) | isSingleLine s -> flat
+      _ -> id
     exports = maybe [] unLoc hsmodExports
-    headerSpan = foldMap spanOf hsmodDeprecMessage <> foldMap spanOf hsmodExports
+    headerSpan =
+      foldMap (\w -> foldMap spanOf hsmodName <> spanOf w) hsmodDeprecMessage
+        <> foldMap spanOf hsmodExports
     headerLayout
-      | any (isDocEntry . unLoc) exports = broken
-      | otherwise = layoutFrom ctx headerSpan
+      | any (isDocEntry . unLoc) exports = id
+      | maybe True isSingleLine headerSpan = flat
+      | otherwise = id
     moduleLine = case hsmodName of
       Nothing -> mempty
       Just modName ->
         documentation
           <> at ctx modName (moduleHeadName ctx)
-          <> breakOrSpace
-          <> foldMap (\w -> at ctx w warningTxt <> breakOrSpace) hsmodDeprecMessage
-          <> foldMap exports' hsmodExports
-          <> txt "where"
+          <> headerLayout
+            ( breakOrSpace
+                <> foldMap warning hsmodDeprecMessage
+                <> foldMap exports' hsmodExports
+                <> txt "where"
+            )
           <> hardBreak
     documentation = foldMap (haddock ctx Pipe Closed) hsmodHaddockModHeader
+    warning w = at ctx w warningTxt <> breakOrSpace
     exports' l =
       at ctx l (\xs -> indent (exportList ctx (spanOf l) xs)) <> breakOrSpace
 
@@ -281,12 +308,17 @@
       <> txt "(..)"
       <> comma'
       <> itemDocumentation doc
-  IEThingWith (warning, _) n wildcard members doc ->
+  IEThingWith (warning, (open, _, _, close)) n wildcard members doc ->
     align
       ( exportWarning warning
           <> at ctx n (wrappedName ctx)
-          <> breakOrSpace
-          <> indent (parens (insideBrackets here (commaSep (align <$> withWildcard))))
+          <> layoutWithin
+            ctx
+            here
+            (tokenSpan open <> tokenSpan close <|> here)
+            ( breakOrSpace
+                <> indent (parens (insideBrackets here (commaSep (align <$> withWildcard))))
+            )
           <> comma'
       )
       <> itemDocumentation doc
@@ -328,31 +360,42 @@
   IEDocNamed{} -> True
   _ -> False
 
--- | One import declaration.
+-- | One import declaration: its keyword, then what it imports, its alias,
+-- and its import list, each a node of its own past the keyword's column.
 importDecl :: Ctx -> ImportDecl GhcPs -> Doc
 importDecl ctx ImportDecl{..} =
-  txt "import"
-    <> space
-    <> includeWhen (ideclSource == IsBoot) (txt "{-# SOURCE #-}")
-    <> space
-    <> includeWhen ideclSafe (txt "safe")
-    <> space
-    <> levelBefore
-    <> space
-    <> includeWhen (isQualified && not qualifiedLast) (txt "qualified")
-    <> space
-    <> packageQualifier
-    <> space
+  keywordAt ctx (tokenSpan (importDeclAnnImport annotation)) "import"
     <> indent
-      ( at ctx ideclName outputable
+      ( space
+          <> includeWhen (ideclSource == IsBoot) (txt "{-# SOURCE #-}")
           <> space
-          <> levelAfter
-          <> includeWhen (isQualified && qualifiedLast) (space <> txt "qualified")
-          <> foldMap (\a -> space <> txt "as" <> space <> at ctx a outputable) ideclAs
+          <> includeWhen ideclSafe (keywordAt ctx (tokenSpan =<< importDeclAnnSafe annotation) "safe")
           <> space
-          <> importList
+          <> levelBefore
+          <> space
+          <> includeWhen (isQualified && not qualifiedLast) qualified
+          <> space
+          <> packageQualifier
+          <> space
+          <> at ctx ideclName outputable
+          <> space
+          <> levelAfter
+          <> includeWhen (isQualified && qualifiedLast) (space <> qualified)
       )
+    <> foldMap
+      ( \a ->
+          indent
+            ( space
+                <> keywordAt ctx (tokenSpan =<< importDeclAnnAs annotation) "as"
+                <> space
+                <> at ctx a outputable
+            )
+      )
+      ideclAs
+    <> foldMap (indent . (space <>)) importList
   where
+    annotation = anns (ideclAnn ideclExt)
+    qualified = keywordAt ctx (tokenSpan =<< importDeclAnnQualified annotation) "qualified"
     qualifiedLast = extensionOn ctx ImportQualifiedPost
     isQualified = isImportDeclQualified ideclQualified
     packageQualifier = case ideclPkgQual of
@@ -364,20 +407,16 @@
     levelAfter = case ideclLevelSpec of
       LevelStylePost l -> declLevel l
       _ -> mempty
-    importList = case ideclImportList of
-      Nothing -> mempty
-      Just (interpretation, L listLoc xs) ->
-        hidden
-          <> breakOrSpace
-          <> parens
-            ( insideBrackets
-                (spanOfSrcSpan (locA listLoc))
-                (importExportItems ctx xs)
-            )
-        where
-          hidden = case interpretation of
+    importList = flip fmap ideclImportList $ \(interpretation, L listLoc xs) ->
+      let hidden = case interpretation of
             Exactly -> mempty
-            EverythingBut -> txt "hiding"
+            EverythingBut -> keywordAt ctx (tokenSpan (fst (al_rest (anns listLoc)))) "hiding"
+          listSpan = spanOfSrcSpan (locA listLoc)
+          parensSpan = bracketsSpan (al_brackets (anns listLoc)) <|> listSpan
+       in layoutWithin ctx listSpan parensSpan $
+            hidden
+              <> breakOrSpace
+              <> parens (insideBrackets listSpan (importExportItems ctx xs))
 
 -- | The keyword an import's level is written with.
 declLevel :: ImportDeclLevel -> Doc
diff --git a/src/Tilia/Render/Pattern.hs b/src/Tilia/Render/Pattern.hs
--- a/src/Tilia/Render/Pattern.hs
+++ b/src/Tilia/Render/Pattern.hs
@@ -124,8 +124,7 @@
   InfixCon l r ->
     layoutFrom ctx (spanOf l <> spanOf r) $
       recur l
-        <> breakOrSpace
-        <> indent (name ctx con <> space <> recur r)
+        <> attachOperator Normal (spanOf l) (spanOf con) (spanOf r) (name ctx con) (recur r)
   where
     recur = hsPatIn ctx bracing inAsPat
     field = either wildcard (at_ ctx (patFieldBind ctx))
diff --git a/src/Tilia/Render/Pragma.hs b/src/Tilia/Render/Pragma.hs
--- a/src/Tilia/Render/Pragma.hs
+++ b/src/Tilia/Render/Pragma.hs
@@ -15,11 +15,14 @@
   )
 where
 
+import Data.Char (toUpper)
+import Data.List (isInfixOf)
 import Data.Text (Text)
+import GHC.Data.FastString (unpackFS)
 import GHC.Hs
 import GHC.Types.Basic hiding (overlapMode)
 import GHC.Types.SourceText
-import GHC.Types.SrcLoc (GenLocated (..), unLoc)
+import GHC.Types.SrcLoc (unLoc)
 import GHC.Unit.Module.Warnings
 import Tilia.Doc.Combinators
 import Tilia.Render.Context
@@ -54,8 +57,11 @@
   NoUserInlinePrag -> mempty
 
 -- | The overlap pragma of an instance, and the separator after it.
-overlapMode :: Maybe (LocatedP OverlapMode) -> Maybe Doc
-overlapMode mode = txt . braced <$> (spelled . unLoc =<< mode)
+overlapMode :: Ctx -> Maybe (LocatedP OverlapMode) -> Maybe Doc
+overlapMode ctx mode = do
+  m <- mode
+  keyword <- spelled (unLoc m)
+  pure (at ctx m (const (txt (braced keyword))))
   where
     braced keyword = "{-# " <> keyword <> " #-}"
     spelled = \case
@@ -67,15 +73,16 @@
 
 -- | A @WARNING@ or @DEPRECATED@ declaration.
 warnDecls :: Ctx -> WarnDecls GhcPs -> Doc
-warnDecls ctx (Warnings _ warnings) = case warnings of
-  [] -> mempty
-  (L _ (Warning _ _ wtxt) : _) ->
-    layoutAcross ctx warnings
-      . pragma (keywordOf wtxt)
-      . indent
-      $ sepBy (txt ";" <> breakOrSpace) (fmap (at_ ctx (warned ctx)) warnings)
+warnDecls ctx (Warnings (_, opening) warnings) =
+  layoutAcross ctx warnings
+    . pragma keyword
+    . indent
+    $ sepBy (txt ";" <> breakOrSpace) (fmap (at_ ctx (warned ctx)) warnings)
   where
-    keywordOf wtxt = let (keyword, _, _) = warningParts wtxt in keyword
+    keyword = case opening of
+      SourceText s
+        | "DEPRECATED" `isInfixOf` fmap toUpper (unpackFS s) -> "DEPRECATED"
+      _ -> "WARNING"
 
 -- | One of the things a warning declaration names.
 warned :: Ctx -> WarnDecl GhcPs -> Doc
diff --git a/src/Tilia/Render/Signature.hs b/src/Tilia/Render/Signature.hs
--- a/src/Tilia/Render/Signature.hs
+++ b/src/Tilia/Render/Signature.hs
@@ -36,7 +36,7 @@
 import Tilia.Render.Pragma
 import Tilia.Render.Type
 import Tilia.Span (startOf)
-import Tilia.Span.Ghc (tokenSpan)
+import Tilia.Span.Ghc (spanOf, spansOf, tokenSpan)
 
 -- | A signature declaration.
 sigDecl :: Ctx -> Sig GhcPs -> Doc
@@ -72,19 +72,34 @@
 typeSig ctx indentTail (n : ns) sigType
   | null ns = name ctx n <> typeAscription ctx sigType
   | otherwise =
-      name ctx n
-        <> nest
-          (if isTrue indentTail then 1 else 0)
-          ( comma
-              <> breakOrSpace
-              <> commaSep (fmap (name ctx) ns)
-              <> typeAscription ctx sigType
+      layoutAcross ctx (n : ns) $
+        variant
+          (commaSep (fmap (name ctx) (n : ns)) <> ascription)
+          ( name ctx n
+              <> nest
+                (if isTrue indentTail then 1 else 0)
+                ( comma
+                    <> breakOrSpace
+                    <> commaSep (fmap (name ctx) ns)
+                    <> ascription
+                )
           )
+  where
+    ascription =
+      layoutFrom
+        ctx
+        (spansOf (n : ns) <> spanOf sigType)
+        (typeAscription ctx sigType)
 
 -- | @pattern P :: t@.
 patSynSig :: Ctx -> [LocatedN RdrName] -> LHsSigType GhcPs -> Doc
 patSynSig ctx names sigType
-  | length names > 1 = txt "pattern" <> breakOrSpace <> indent body
+  | length names > 1 =
+      txt "pattern"
+        <> layoutAcross
+          ctx
+          names
+          (variant (space <> body) (breakOrSpace <> indent body))
   | otherwise = txt "pattern" <> space <> body
   where
     body = typeSig ctx (Don't #indentTail) names sigType
diff --git a/src/Tilia/Render/Type.hs b/src/Tilia/Render/Type.hs
--- a/src/Tilia/Render/Type.hs
+++ b/src/Tilia/Render/Type.hs
@@ -160,10 +160,17 @@
   Operand t -> hsType ctx t
   chain@(Chain (firstOne :| rest) operators) ->
     layoutFrom ctx (chainSpan spanOf chain) $
-      renderChain ctx firstOne <> mconcat (zipWith piece operators rest)
+      renderChain ctx firstOne
+        <> mconcat (zipWith3 piece (firstOne : rest) operators rest)
   where
-    piece op operand =
-      attach Normal (name ctx op <> space <> renderChain ctx operand)
+    piece previous op operand =
+      attachOperator
+        Normal
+        (chainSpan spanOf previous)
+        (spanOf op)
+        (chainSpan spanOf operand)
+        (name ctx op)
+        (renderChain ctx operand)
 
 -- | Gather a nest of applications into a head and its arguments.
 gatherAppArgs ::
diff --git a/src/Tilia/Run.hs b/src/Tilia/Run.hs
--- a/src/Tilia/Run.hs
+++ b/src/Tilia/Run.hs
@@ -13,6 +13,7 @@
 
     -- * Execution
     runOver,
+    outcomeOf,
     readAsUtf8,
     formattingOutcome,
     writeBack,
@@ -22,6 +23,7 @@
     Report (..),
     inplaceReport,
     checkReport,
+    stdinReport,
     noted,
   )
 where
@@ -44,7 +46,7 @@
   )
 import Tilia.Newline (NewlineStyle (Lf), getNewlineStyle, setNewlineStyle)
 import Tilia.Palette (Color (Bad, Good, Middling, Place), Palette, marker, paint)
-import Tilia.Utils (attempted, inParallel, indent, lineWidth, wrapTo)
+import Tilia.Utils (asUtf8, attempted, inParallel, indent, lineWidth, wrapTo)
 
 ----------------------------------------------------------------------------
 -- Outcomes
@@ -103,20 +105,29 @@
       !outcome <-
         readAsUtf8 path >>= \case
           Left why -> pure (Failed (Unreadable path why))
-          Right before ->
-            formatSource session path (setNewlineStyle Lf before) >>= \case
-              Left e -> pure (if refused e then Declined e else Failed e)
-              Right formatted -> pure (formattingOutcome before formatted)
+          Right before -> outcomeOf session path before
       pure (path, outcome)
 
+-- | What formatting source that has already been read comes to.
+outcomeOf ::
+  -- | The session.
+  Session ->
+  -- | The file the source came from.
+  FilePath ->
+  -- | The source.
+  Text ->
+  IO Outcome
+outcomeOf session path before =
+  formatSource session path (setNewlineStyle Lf before) >>= \case
+    Left e -> pure (if refused e then Declined e else Failed e)
+    Right formatted -> pure (formattingOutcome before formatted)
+
 -- | Read a source file as UTF-8.
 readAsUtf8 :: FilePath -> IO (Either Text Text)
 readAsUtf8 path =
   attempted (BS.readFile path) >>= \case
     Left why -> pure (Left why)
-    Right bytes -> pure $ case T.decodeUtf8' bytes of
-      Right text -> Right text
-      Left _ -> Left "it is not valid UTF-8"
+    Right bytes -> pure (asUtf8 bytes)
 
 -- | Formatting outcome for a file.
 formattingOutcome ::
@@ -142,9 +153,9 @@
 
 -- | What to print when a run is over, and on which stream.
 data Report = Report
-  { -- | For standard output.
-    reportOut :: [Text],
-    -- | For standard error.
+  { -- | For standard output, exactly as it is to be written.
+    reportOut :: Text,
+    -- | For standard error, line by line.
     reportErr :: [Text]
   }
   deriving (Eq, Show)
@@ -153,7 +164,7 @@
 inplaceReport :: Palette -> [(FilePath, Outcome)] -> Report
 inplaceReport palette outcomes =
   Report
-    { reportOut = tally palette ("✓", Good) "Formatted" (not . skipped) outcomes,
+    { reportOut = T.unlines (tally palette ("✓", Good) "Formatted" (not . skipped) outcomes),
       reportErr = asides palette outcomes
     }
   where
@@ -164,11 +175,37 @@
 checkReport palette outcomes =
   Report
     { reportOut =
-        [ diffInFull palette path before after
-        | (path, Changed before after) <- outcomes
-        ],
+        T.unlines
+          [ diffInFull palette path before after
+          | (path, Changed before after) <- outcomes
+          ],
       reportErr = asides palette outcomes
     }
+
+-- | The module a @for-editor@ run prints, formatted or as it was read where
+-- it was declined, and why it was not formatted.
+stdinReport ::
+  Palette ->
+  -- | The module as it was read.
+  Text ->
+  [(FilePath, Outcome)] ->
+  Report
+stdinReport palette input outcomes =
+  Report
+    { reportOut = foldMap (printed . snd) outcomes,
+      reportErr = concatMap (said . snd) outcomes
+    }
+  where
+    printed = \case
+      Changed _ after -> after
+      Failed _ -> ""
+      _ -> input
+    said = \case
+      Declined e ->
+        noted palette ("=", Middling) (describeFormatError palette e)
+      Failed e ->
+        noted palette ("✗", Bad) (describeFormatError palette e)
+      _ -> []
 
 -- | Everything said about the files that were not formatted.
 asides :: Palette -> [(FilePath, Outcome)] -> [Text]
diff --git a/src/Tilia/Source.hs b/src/Tilia/Source.hs
--- a/src/Tilia/Source.hs
+++ b/src/Tilia/Source.hs
@@ -14,8 +14,6 @@
     sourceLines,
     lineAt,
     blankAt,
-    blankBelow,
-    closesABranch,
     directivePresentOnLine,
     directiveOnLine,
 
@@ -24,8 +22,6 @@
   )
 where
 
-import GHC.Hs (HsModule)
-import GHC.Hs.Extension (GhcPs)
 import GHC.Parser.Annotation (LEpaComment)
 import Tilia.Comments (Comment, commentsOf)
 import Tilia.Source.Lines
@@ -52,15 +48,13 @@
 sourceOf ::
   -- | The lines of the module, as this configuration has them.
   Lines ->
-  -- | Comments the syntax tree does not carry. See 'commentsOf'.
+  -- | Every comment of the module, in source order.
   [LEpaComment] ->
-  -- | The result of parsing.
-  HsModule GhcPs ->
   Source
-sourceOf ls loose hsModule =
+sourceOf ls cs =
   Source
     { srcLines = ls,
-      srcComments = commentsOf ls loose hsModule
+      srcComments = commentsOf ls cs
     }
 
 -- | Every comment in a module, in source order.
diff --git a/src/Tilia/Source/Lines.hs b/src/Tilia/Source/Lines.hs
--- a/src/Tilia/Source/Lines.hs
+++ b/src/Tilia/Source/Lines.hs
@@ -13,8 +13,6 @@
     blankAt,
     directivePresentOnLine,
     directiveOnLine,
-    blankBelow,
-    closesABranch,
   )
 where
 
@@ -89,35 +87,3 @@
       body = T.stripStart rest
       keyword = T.takeWhile isAsciiLower body
   _ -> Nothing
-
--- | Did the author leave an empty line below this line?
-blankBelow :: Int -> Lines -> Bool
-blankBelow start ls = go (start + 1)
-  where
-    go n
-      | n > IntMap.size (lnWritten ls) = False
-      | Nothing <- lineAt n ls = go (n + 1)
-      | leadsOut n = go (n + 1)
-      | otherwise = blankAt n ls
-    leadsOut n = case directiveOnLine =<< lineAt n ls of
-      Just (keyword, _) -> keyword `elem` leavingKeywords
-      Nothing -> False
-
--- | Does the empty line under this one stand at the end of a branch?
-closesABranch :: Int -> Lines -> Bool
-closesABranch n ls = go False (n + 1)
-  where
-    go crossed k
-      | k > IntMap.size (lnWritten ls) = False
-      | otherwise = case lineAt k ls of
-          Nothing -> go crossed (k + 1)
-          Just l
-            | T.null (T.strip l) -> go True (k + 1)
-            | Just (keyword, _) <- directiveOnLine l ->
-                crossed && keyword `elem` leavingKeywords
-            | otherwise -> False
-
--- | The directives that lead out of the region the line below them is in,
--- rather than into one it is not.
-leavingKeywords :: [Text]
-leavingKeywords = ["elif", "elifdef", "elifndef", "else", "endif"]
diff --git a/src/Tilia/Span/Ghc.hs b/src/Tilia/Span/Ghc.hs
--- a/src/Tilia/Span/Ghc.hs
+++ b/src/Tilia/Span/Ghc.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE LambdaCase #-}
+
 -- | Turning the compiler's positions into ours.
 module Tilia.Span.Ghc
   ( spanOfReal,
@@ -5,12 +7,21 @@
     spanOf,
     spansOf,
     tokenSpan,
+    uniTokenSpan,
     annSpan,
+    bracketsSpan,
   )
 where
 
 import Data.Maybe (mapMaybe)
-import GHC.Parser.Annotation (EpToken, HasLoc, getEpTokenSrcSpan, getHasLoc)
+import GHC.Parser.Annotation
+  ( AnnListBrackets (..),
+    EpToken,
+    EpUniToken (..),
+    HasLoc,
+    getEpTokenSrcSpan,
+    getHasLoc,
+  )
 import GHC.Types.SrcLoc (GenLocated)
 import GHC.Types.SrcLoc qualified as GHC
 import Tilia.Span (Span, mkSpan)
@@ -34,9 +45,25 @@
 tokenSpan :: EpToken sym -> Maybe Span
 tokenSpan = spanOfSrcSpan . getEpTokenSrcSpan
 
+-- | Where a keyword or a piece of punctuation that has a Unicode spelling
+-- was written.
+uniTokenSpan :: EpUniToken tok utok -> Maybe Span
+uniTokenSpan = \case
+  EpUniTok l _ -> annSpan l
+  NoEpUniTok -> Nothing
+
 -- | Where an annotation says something was written.
 annSpan :: (HasLoc l) => l -> Maybe Span
 annSpan = spanOfSrcSpan . getHasLoc
+
+-- | Where a list's brackets were written, from the opening one to the
+-- closing one.
+bracketsSpan :: AnnListBrackets -> Maybe Span
+bracketsSpan = \case
+  ListParens open close -> tokenSpan open <> tokenSpan close
+  ListBraces open close -> tokenSpan open <> tokenSpan close
+  ListSquare open close -> tokenSpan open <> tokenSpan close
+  _ -> Nothing
 
 -- | The span covering every located thing in the list.
 spansOf :: (HasLoc l) => [GenLocated l a] -> Maybe Span
diff --git a/src/Tilia/Utils.hs b/src/Tilia/Utils.hs
--- a/src/Tilia/Utils.hs
+++ b/src/Tilia/Utils.hs
@@ -6,10 +6,13 @@
 module Tilia.Utils
   ( quietly,
     attempted,
+    asUtf8,
     lineWidth,
     indent,
     wrapTo,
     visibleLength,
+    spellList,
+    collected,
     tshow,
     inParallel,
   )
@@ -24,11 +27,13 @@
   )
 import Control.Exception (SomeException, displayException, try)
 import Control.Monad (replicateM)
+import Data.ByteString qualified as BS
 import Data.Foldable (for_, traverse_)
 import Data.IORef (atomicModifyIORef', newIORef, readIORef)
 import Data.Map.Strict qualified as Map
 import Data.Text (Text)
 import Data.Text qualified as T
+import Data.Text.Encoding qualified as T
 
 -- | 'show' a value and take the result as 'Text'.
 tshow :: (Show a) => a -> Text
@@ -49,6 +54,12 @@
     Left (e :: SomeException) -> pure (Left (T.pack (displayException e)))
     Right a -> pure (Right a)
 
+-- | Decode source as UTF-8.
+asUtf8 :: BS.ByteString -> Either Text Text
+asUtf8 bytes = case T.decodeUtf8' bytes of
+  Right text -> Right text
+  Left _ -> Left "it is not valid UTF-8"
+
 -- | The line width for the terminal output of this program.
 lineWidth :: Int
 lineWidth = 76
@@ -78,6 +89,23 @@
         | Just after <- T.stripPrefix "[" rest ->
             go n (T.drop 1 (T.dropWhile (/= 'm') after))
       Just (_, rest) -> go (n + 1) rest
+
+-- | Join items the way a sentence lists them: @a and b@, @a, b, and c@.
+spellList :: [Text] -> Text
+spellList items = case reverse items of
+  [] -> ""
+  [one] -> one
+  [second, first'] -> first' <> " and " <> second
+  (final : rest) -> T.intercalate ", " (reverse rest) <> ", and " <> final
+
+-- | Collect the values filed under equal keys, keys in the order they first
+-- appear.
+collected :: (Eq k) => [(k, v)] -> [(k, [v])]
+collected = foldl put []
+  where
+    put seen (k, v) = case break ((== k) . fst) seen of
+      (before, (_, vs) : after) -> before <> [(k, vs <> [v])] <> after
+      _ -> seen <> [(k, [v])]
 
 -- | Run an action over every element at once, as far as the machine allows.
 inParallel :: (a -> IO b) -> [a] -> IO [b]
diff --git a/tests/Tilia/BootFixities.hs b/tests/Tilia/BootFixities.hs
new file mode 100644
--- /dev/null
+++ b/tests/Tilia/BootFixities.hs
@@ -0,0 +1,1183 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+-- | Fixities of the operators the boot packages export, the world the tests
+-- format the corpus in.
+--
+-- Generated by @generate-boot-fixities.py@ in the root of the repository,
+-- from GHC 9.14.1. Run that script again to update this table.
+module Tilia.BootFixities
+  ( bootFixities,
+  )
+where
+
+import Data.Map.Strict (Map)
+import Data.Map.Strict qualified as Map
+import Data.Text (Text)
+import Tilia.Fixity
+
+-- | Every module the boot packages expose, with the operators it exports.
+bootFixities :: Map Text Fixities
+bootFixities =
+  Map.fromList
+    [ entry
+        "Control.Applicative"
+        [("*>", [InTerms], LeftAssoc, 4), ("<$", [InTerms], LeftAssoc, 4), ("<$>", [InTerms], LeftAssoc, 4), ("<*", [InTerms], LeftAssoc, 4), ("<**>", [InTerms], LeftAssoc, 4), ("<*>", [InTerms], LeftAssoc, 4), ("<|>", [InTerms], LeftAssoc, 3)],
+      entry "Control.Applicative.Backwards" [],
+      entry "Control.Applicative.Lift" [],
+      entry
+        "Control.Arrow"
+        [("&&&", [InTerms], RightAssoc, 3), ("***", [InTerms], RightAssoc, 3), ("+++", [InTerms], RightAssoc, 2), ("<+>", [InTerms], RightAssoc, 5), ("<<<", [InTerms], RightAssoc, 1), ("<<^", [InTerms], RightAssoc, 1), (">>>", [InTerms], RightAssoc, 1), (">>^", [InTerms], RightAssoc, 1), ("^<<", [InTerms], RightAssoc, 1), ("^>>", [InTerms], RightAssoc, 1), ("|||", [InTerms], RightAssoc, 2)],
+      entry
+        "Control.Category"
+        [(".", [InTerms], RightAssoc, 9), ("<<<", [InTerms], RightAssoc, 1), (">>>", [InTerms], RightAssoc, 1)],
+      entry "Control.Concurrent" [],
+      entry "Control.Concurrent.Chan" [],
+      entry "Control.Concurrent.MVar" [],
+      entry "Control.Concurrent.QSem" [],
+      entry "Control.Concurrent.QSemN" [],
+      entry "Control.Concurrent.STM" [],
+      entry "Control.Concurrent.STM.TArray" [],
+      entry "Control.Concurrent.STM.TBQueue" [],
+      entry "Control.Concurrent.STM.TChan" [],
+      entry "Control.Concurrent.STM.TMVar" [],
+      entry "Control.Concurrent.STM.TQueue" [],
+      entry "Control.Concurrent.STM.TSem" [],
+      entry "Control.Concurrent.STM.TVar" [],
+      entry
+        "Control.DeepSeq"
+        [("$!!", [InTerms], RightAssoc, 0), ("<$!!>", [InTerms], LeftAssoc, 4), ("deepseq", [InTerms], RightAssoc, 0)],
+      entry "Control.Exception" [],
+      entry "Control.Exception.Annotation" [],
+      entry "Control.Exception.Backtrace" [],
+      entry "Control.Exception.Base" [],
+      entry "Control.Exception.Context" [],
+      entry
+        "Control.Monad"
+        [("<$", [InTerms], LeftAssoc, 4), ("<$!>", [InTerms], LeftAssoc, 4), ("<=<", [InTerms], RightAssoc, 1), ("=<<", [InTerms], RightAssoc, 1), (">=>", [InTerms], RightAssoc, 1), (">>", [InTerms], LeftAssoc, 1), (">>=", [InTerms], LeftAssoc, 1)],
+      entry "Control.Monad.Accum" [],
+      entry "Control.Monad.Catch" [],
+      entry "Control.Monad.Catch.Pure" [],
+      entry "Control.Monad.Cont" [],
+      entry "Control.Monad.Cont.Class" [],
+      entry "Control.Monad.Error.Class" [],
+      entry "Control.Monad.Except" [],
+      entry "Control.Monad.Fail" [],
+      entry "Control.Monad.Fix" [],
+      entry "Control.Monad.IO.Class" [],
+      entry "Control.Monad.Identity" [],
+      entry
+        "Control.Monad.Instances"
+        [("<$", [InTerms], LeftAssoc, 4), (">>", [InTerms], LeftAssoc, 1), (">>=", [InTerms], LeftAssoc, 1)],
+      entry "Control.Monad.RWS" [],
+      entry "Control.Monad.RWS.CPS" [],
+      entry "Control.Monad.RWS.Class" [],
+      entry "Control.Monad.RWS.Lazy" [],
+      entry "Control.Monad.RWS.Strict" [],
+      entry "Control.Monad.Reader" [],
+      entry "Control.Monad.Reader.Class" [],
+      entry "Control.Monad.ST" [],
+      entry "Control.Monad.ST.Lazy" [],
+      entry "Control.Monad.ST.Lazy.Safe" [],
+      entry "Control.Monad.ST.Lazy.Unsafe" [],
+      entry "Control.Monad.ST.Safe" [],
+      entry "Control.Monad.ST.Strict" [],
+      entry "Control.Monad.ST.Unsafe" [],
+      entry "Control.Monad.STM" [],
+      entry "Control.Monad.Select" [],
+      entry "Control.Monad.Signatures" [],
+      entry "Control.Monad.State" [],
+      entry "Control.Monad.State.Class" [],
+      entry "Control.Monad.State.Lazy" [],
+      entry "Control.Monad.State.Strict" [],
+      entry "Control.Monad.Trans" [],
+      entry "Control.Monad.Trans.Accum" [],
+      entry "Control.Monad.Trans.Class" [],
+      entry "Control.Monad.Trans.Cont" [],
+      entry "Control.Monad.Trans.Except" [],
+      entry "Control.Monad.Trans.Identity" [],
+      entry "Control.Monad.Trans.Maybe" [],
+      entry "Control.Monad.Trans.RWS" [],
+      entry "Control.Monad.Trans.RWS.CPS" [],
+      entry "Control.Monad.Trans.RWS.Lazy" [],
+      entry "Control.Monad.Trans.RWS.Strict" [],
+      entry "Control.Monad.Trans.Reader" [],
+      entry "Control.Monad.Trans.Select" [],
+      entry "Control.Monad.Trans.State" [],
+      entry "Control.Monad.Trans.State.Lazy" [],
+      entry "Control.Monad.Trans.State.Strict" [],
+      entry "Control.Monad.Trans.Writer" [],
+      entry "Control.Monad.Trans.Writer.CPS" [],
+      entry "Control.Monad.Trans.Writer.Lazy" [],
+      entry "Control.Monad.Trans.Writer.Strict" [],
+      entry "Control.Monad.Writer" [],
+      entry "Control.Monad.Writer.CPS" [],
+      entry "Control.Monad.Writer.Class" [],
+      entry "Control.Monad.Writer.Lazy" [],
+      entry "Control.Monad.Writer.Strict" [],
+      entry "Control.Monad.Zip" [],
+      entry
+        "Data.Array"
+        [("!", [InTerms], LeftAssoc, 9), ("//", [InTerms], LeftAssoc, 9)],
+      entry
+        "Data.Array.Base"
+        [("!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("//", [InTerms], LeftAssoc, 9)],
+      entry "Data.Array.Byte" [],
+      entry
+        "Data.Array.IArray"
+        [("!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("//", [InTerms], LeftAssoc, 9)],
+      entry "Data.Array.IO" [],
+      entry "Data.Array.IO.Internals" [],
+      entry "Data.Array.IO.Safe" [],
+      entry "Data.Array.MArray" [],
+      entry "Data.Array.MArray.Safe" [],
+      entry "Data.Array.ST" [],
+      entry "Data.Array.ST.Safe" [],
+      entry "Data.Array.Storable" [],
+      entry "Data.Array.Storable.Internals" [],
+      entry "Data.Array.Storable.Safe" [],
+      entry
+        "Data.Array.Unboxed"
+        [("!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("//", [InTerms], LeftAssoc, 9)],
+      entry "Data.Array.Unsafe" [],
+      entry "Data.Bifoldable" [],
+      entry "Data.Bifoldable1" [],
+      entry "Data.Bifunctor" [],
+      entry "Data.Binary" [],
+      entry "Data.Binary.Builder" [],
+      entry "Data.Binary.Get" [],
+      entry "Data.Binary.Get.Internal" [],
+      entry "Data.Binary.Put" [],
+      entry "Data.Bitraversable" [],
+      entry
+        "Data.Bits"
+        [("!<<.", [InTerms], LeftAssoc, 8), ("!>>.", [InTerms], LeftAssoc, 8), (".&.", [InTerms], LeftAssoc, 7), (".<<.", [InTerms], LeftAssoc, 8), (".>>.", [InTerms], LeftAssoc, 8), (".^.", [InTerms], LeftAssoc, 6), (".|.", [InTerms], LeftAssoc, 5), ("rotate", [InTerms], LeftAssoc, 8), ("rotateL", [InTerms], LeftAssoc, 8), ("rotateR", [InTerms], LeftAssoc, 8), ("shift", [InTerms], LeftAssoc, 8), ("shiftL", [InTerms], LeftAssoc, 8), ("shiftR", [InTerms], LeftAssoc, 8), ("xor", [InTerms], LeftAssoc, 6)],
+      entry
+        "Data.Bool"
+        [("&&", [InTerms], RightAssoc, 3), ("||", [InTerms], RightAssoc, 2)],
+      entry "Data.Bounded" [],
+      entry
+        "Data.ByteString"
+        [("!?", [InTerms], LeftAssoc, 9), ("cons", [InTerms], RightAssoc, 5), ("snoc", [InTerms], LeftAssoc, 5)],
+      entry "Data.ByteString.Builder" [],
+      entry "Data.ByteString.Builder.Extra" [],
+      entry "Data.ByteString.Builder.Internal" [],
+      entry
+        "Data.ByteString.Builder.Prim"
+        [(">$<", [InTerms], LeftAssoc, 4), (">*<", [InTerms], RightAssoc, 5)],
+      entry
+        "Data.ByteString.Builder.Prim.Internal"
+        [(">$<", [InTerms], LeftAssoc, 4), (">*<", [InTerms], RightAssoc, 5)],
+      entry "Data.ByteString.Builder.RealFloat" [],
+      entry
+        "Data.ByteString.Char8"
+        [("!?", [InTerms], LeftAssoc, 9), ("cons", [InTerms], RightAssoc, 5), ("snoc", [InTerms], LeftAssoc, 5)],
+      entry "Data.ByteString.Internal" [],
+      entry
+        "Data.ByteString.Lazy"
+        [("!?", [InTerms], LeftAssoc, 9), ("cons", [InTerms], RightAssoc, 5), ("cons'", [InTerms], RightAssoc, 5), ("snoc", [InTerms], LeftAssoc, 5)],
+      entry
+        "Data.ByteString.Lazy.Char8"
+        [("!?", [InTerms], LeftAssoc, 9), ("cons", [InTerms], RightAssoc, 5), ("cons'", [InTerms], RightAssoc, 5), ("snoc", [InTerms], LeftAssoc, 5)],
+      entry "Data.ByteString.Lazy.Internal" [],
+      entry
+        "Data.ByteString.Short"
+        [("!?", [InTerms], LeftAssoc, 9), ("cons", [InTerms], RightAssoc, 5), ("snoc", [InTerms], LeftAssoc, 5)],
+      entry
+        "Data.ByteString.Short.Internal"
+        [("!?", [InTerms], LeftAssoc, 9), ("cons", [InTerms], RightAssoc, 5), ("snoc", [InTerms], LeftAssoc, 5)],
+      entry "Data.ByteString.Unsafe" [],
+      entry "Data.Char" [],
+      entry "Data.Coerce" [],
+      entry
+        "Data.Complex"
+        [(":+", [InTerms], NoAssoc, 6)],
+      entry "Data.Containers.ListUtils" [],
+      entry
+        "Data.Data"
+        [(":~:", [InTypes], NoAssoc, 4), (":~~:", [InTypes], NoAssoc, 4)],
+      entry "Data.Dynamic" [],
+      entry "Data.Either" [],
+      entry "Data.Enum" [],
+      entry
+        "Data.Eq"
+        [("/=", [InTerms], NoAssoc, 4), ("==", [InTerms], NoAssoc, 4)],
+      entry "Data.Fixed" [],
+      entry
+        "Data.Foldable"
+        [("elem", [InTerms], NoAssoc, 4), ("notElem", [InTerms], NoAssoc, 4)],
+      entry "Data.Foldable1" [],
+      entry
+        "Data.Function"
+        [("$", [InTerms], RightAssoc, 0), ("&", [InTerms], LeftAssoc, 1), (".", [InTerms], RightAssoc, 9), ("on", [InTerms], LeftAssoc, 0)],
+      entry
+        "Data.Functor"
+        [("$>", [InTerms], LeftAssoc, 4), ("<$", [InTerms], LeftAssoc, 4), ("<$>", [InTerms], LeftAssoc, 4), ("<&>", [InTerms], LeftAssoc, 1)],
+      entry "Data.Functor.Classes" [],
+      entry
+        "Data.Functor.Compose"
+        [("Compose", [InTypes, InTerms], RightAssoc, 9)],
+      entry "Data.Functor.Const" [],
+      entry "Data.Functor.Constant" [],
+      entry
+        "Data.Functor.Contravariant"
+        [("$<", [InTerms], LeftAssoc, 4), (">$", [InTerms], LeftAssoc, 4), (">$$<", [InTerms], LeftAssoc, 4), (">$<", [InTerms], LeftAssoc, 4)],
+      entry "Data.Functor.Identity" [],
+      entry "Data.Functor.Product" [],
+      entry "Data.Functor.Reverse" [],
+      entry "Data.Functor.Sum" [],
+      entry "Data.Graph" [],
+      entry "Data.IORef" [],
+      entry "Data.Int" [],
+      entry
+        "Data.IntMap"
+        [("!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("\\\\", [InTerms], LeftAssoc, 9)],
+      entry
+        "Data.IntMap.Internal"
+        [("!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("\\\\", [InTerms], LeftAssoc, 9)],
+      entry "Data.IntMap.Internal.Debug" [],
+      entry
+        "Data.IntMap.Lazy"
+        [("!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("\\\\", [InTerms], LeftAssoc, 9)],
+      entry "Data.IntMap.Merge.Lazy" [],
+      entry "Data.IntMap.Merge.Strict" [],
+      entry
+        "Data.IntMap.Strict"
+        [("!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("\\\\", [InTerms], LeftAssoc, 9)],
+      entry
+        "Data.IntMap.Strict.Internal"
+        [("!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("\\\\", [InTerms], LeftAssoc, 9)],
+      entry
+        "Data.IntSet"
+        [("\\\\", [InTerms], LeftAssoc, 9)],
+      entry
+        "Data.IntSet.Internal"
+        [("\\\\", [InTerms], LeftAssoc, 9)],
+      entry "Data.IntSet.Internal.IntTreeCommons" [],
+      entry "Data.Ix" [],
+      entry "Data.Kind" [],
+      entry
+        "Data.List"
+        [("!!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("++", [InTerms], RightAssoc, 5), ("\\\\", [InTerms], NoAssoc, 5), ("elem", [InTerms], NoAssoc, 4), ("notElem", [InTerms], NoAssoc, 4)],
+      entry
+        "Data.List.NonEmpty"
+        [("!!", [InTerms], LeftAssoc, 9), (":|", [InTypes, InTerms], RightAssoc, 5), ("<|", [InTerms], RightAssoc, 5)],
+      entry
+        "Data.Map"
+        [("!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("\\\\", [InTerms], LeftAssoc, 9)],
+      entry
+        "Data.Map.Internal"
+        [("!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("\\\\", [InTerms], LeftAssoc, 9)],
+      entry "Data.Map.Internal.Debug" [],
+      entry
+        "Data.Map.Lazy"
+        [("!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("\\\\", [InTerms], LeftAssoc, 9)],
+      entry "Data.Map.Merge.Lazy" [],
+      entry "Data.Map.Merge.Strict" [],
+      entry
+        "Data.Map.Strict"
+        [("!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("\\\\", [InTerms], LeftAssoc, 9)],
+      entry
+        "Data.Map.Strict.Internal"
+        [("!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("\\\\", [InTerms], LeftAssoc, 9)],
+      entry "Data.Maybe" [],
+      entry
+        "Data.Monoid"
+        [("<>", [InTerms], RightAssoc, 6)],
+      entry
+        "Data.Ord"
+        [("<", [InTerms], NoAssoc, 4), ("<=", [InTerms], NoAssoc, 4), (">", [InTerms], NoAssoc, 4), (">=", [InTerms], NoAssoc, 4)],
+      entry "Data.Proxy" [],
+      entry
+        "Data.Ratio"
+        [("%", [InTerms], LeftAssoc, 7)],
+      entry "Data.STRef" [],
+      entry "Data.STRef.Lazy" [],
+      entry "Data.STRef.Strict" [],
+      entry
+        "Data.Semigroup"
+        [("<>", [InTerms], RightAssoc, 6)],
+      entry
+        "Data.Sequence"
+        [("!?", [InTerms], LeftAssoc, 9), (":<", [InTerms], RightAssoc, 5), (":<|", [InTerms], RightAssoc, 5), (":>", [InTerms], LeftAssoc, 5), (":|>", [InTerms], LeftAssoc, 5), ("<|", [InTerms], RightAssoc, 5), ("><", [InTerms], RightAssoc, 5), ("|>", [InTerms], LeftAssoc, 5)],
+      entry
+        "Data.Sequence.Internal"
+        [("!?", [InTerms], LeftAssoc, 9), (":<", [InTerms], RightAssoc, 5), (":<|", [InTerms], RightAssoc, 5), (":>", [InTerms], LeftAssoc, 5), (":|>", [InTerms], LeftAssoc, 5), ("<|", [InTerms], RightAssoc, 5), ("><", [InTerms], RightAssoc, 5), ("|>", [InTerms], LeftAssoc, 5)],
+      entry
+        "Data.Sequence.Internal.Sorting"
+        [("IQCons", [InTypes, InTerms], RightAssoc, 8), ("ITQCons", [InTypes, InTerms], RightAssoc, 8), ("QCons", [InTerms], RightAssoc, 8), ("TQCons", [InTypes, InTerms], RightAssoc, 8)],
+      entry
+        "Data.Set"
+        [("\\\\", [InTerms], LeftAssoc, 9)],
+      entry
+        "Data.Set.Internal"
+        [("\\\\", [InTerms], LeftAssoc, 9)],
+      entry "Data.String" [],
+      entry
+        "Data.Text"
+        [(":<", [InTerms], RightAssoc, 5), (":>", [InTerms], LeftAssoc, 5), ("cons", [InTerms], RightAssoc, 5)],
+      entry "Data.Text.Array" [],
+      entry "Data.Text.Encoding" [],
+      entry "Data.Text.Encoding.Error" [],
+      entry "Data.Text.Foreign" [],
+      entry "Data.Text.IO" [],
+      entry "Data.Text.IO.Utf8" [],
+      entry
+        "Data.Text.Internal"
+        [("mul", [InTerms], LeftAssoc, 7), ("mul32", [InTerms], LeftAssoc, 7), ("mul64", [InTerms], LeftAssoc, 7)],
+      entry "Data.Text.Internal.ArrayUtils" [],
+      entry "Data.Text.Internal.Builder" [],
+      entry
+        "Data.Text.Internal.Builder.Functions"
+        [("<>", [InTerms], RightAssoc, 4)],
+      entry "Data.Text.Internal.Builder.Int.Digits" [],
+      entry "Data.Text.Internal.Builder.RealFloat.Functions" [],
+      entry "Data.Text.Internal.ByteStringCompat" [],
+      entry "Data.Text.Internal.Encoding" [],
+      entry "Data.Text.Internal.Encoding.Fusion" [],
+      entry "Data.Text.Internal.Encoding.Fusion.Common" [],
+      entry "Data.Text.Internal.Encoding.Utf16" [],
+      entry "Data.Text.Internal.Encoding.Utf32" [],
+      entry "Data.Text.Internal.Encoding.Utf8" [],
+      entry "Data.Text.Internal.Fusion" [],
+      entry "Data.Text.Internal.Fusion.CaseMapping" [],
+      entry "Data.Text.Internal.Fusion.Common" [],
+      entry "Data.Text.Internal.Fusion.Size" [],
+      entry
+        "Data.Text.Internal.Fusion.Types"
+        [(":*:", [InTerms], LeftAssoc, 2)],
+      entry "Data.Text.Internal.IO" [],
+      entry "Data.Text.Internal.Lazy" [],
+      entry "Data.Text.Internal.Lazy.Encoding.Fusion" [],
+      entry "Data.Text.Internal.Lazy.Fusion" [],
+      entry "Data.Text.Internal.Lazy.Search" [],
+      entry "Data.Text.Internal.PrimCompat" [],
+      entry "Data.Text.Internal.Private" [],
+      entry "Data.Text.Internal.Read" [],
+      entry "Data.Text.Internal.Search" [],
+      entry "Data.Text.Internal.StrictBuilder" [],
+      entry "Data.Text.Internal.Unsafe" [],
+      entry "Data.Text.Internal.Unsafe.Char" [],
+      entry "Data.Text.Internal.Validate" [],
+      entry "Data.Text.Internal.Validate.Native" [],
+      entry
+        "Data.Text.Lazy"
+        [(":<", [InTerms], RightAssoc, 5), (":>", [InTerms], LeftAssoc, 5), ("cons", [InTerms], RightAssoc, 5)],
+      entry "Data.Text.Lazy.Builder" [],
+      entry "Data.Text.Lazy.Builder.Int" [],
+      entry "Data.Text.Lazy.Builder.RealFloat" [],
+      entry "Data.Text.Lazy.Encoding" [],
+      entry "Data.Text.Lazy.IO" [],
+      entry "Data.Text.Lazy.Internal" [],
+      entry "Data.Text.Lazy.Read" [],
+      entry "Data.Text.Read" [],
+      entry "Data.Text.Unsafe" [],
+      entry "Data.Time" [],
+      entry "Data.Time.Calendar" [],
+      entry "Data.Time.Calendar.Easter" [],
+      entry "Data.Time.Calendar.Julian" [],
+      entry "Data.Time.Calendar.Month" [],
+      entry "Data.Time.Calendar.MonthDay" [],
+      entry "Data.Time.Calendar.OrdinalDate" [],
+      entry "Data.Time.Calendar.Quarter" [],
+      entry "Data.Time.Calendar.WeekDate" [],
+      entry "Data.Time.Clock" [],
+      entry "Data.Time.Clock.POSIX" [],
+      entry "Data.Time.Clock.System" [],
+      entry "Data.Time.Clock.TAI" [],
+      entry "Data.Time.Format" [],
+      entry "Data.Time.Format.ISO8601" [],
+      entry "Data.Time.LocalTime" [],
+      entry "Data.Traversable" [],
+      entry "Data.Tree" [],
+      entry "Data.Tuple" [],
+      entry
+        "Data.Type.Bool"
+        [("&&", [InTypes], RightAssoc, 3), ("||", [InTypes], RightAssoc, 2)],
+      entry "Data.Type.Coercion" [],
+      entry
+        "Data.Type.Equality"
+        [(":~:", [InTypes], NoAssoc, 4), (":~~:", [InTypes], NoAssoc, 4), ("==", [InTypes], NoAssoc, 4), ("~~", [InTypes], NoAssoc, 4)],
+      entry
+        "Data.Type.Ord"
+        [("<", [InTypes], NoAssoc, 4), ("<=", [InTypes], NoAssoc, 4), ("<=?", [InTypes], NoAssoc, 4), ("<?", [InTypes], NoAssoc, 4), (">", [InTypes], NoAssoc, 4), (">=", [InTypes], NoAssoc, 4), (">=?", [InTypes], NoAssoc, 4), (">?", [InTypes], NoAssoc, 4)],
+      entry
+        "Data.Typeable"
+        [(":~:", [InTypes], NoAssoc, 4), (":~~:", [InTypes], NoAssoc, 4)],
+      entry "Data.Unique" [],
+      entry "Data.Version" [],
+      entry "Data.Void" [],
+      entry "Data.Word" [],
+      entry "Debug.Trace" [],
+      entry
+        "Foreign"
+        [("!<<.", [InTerms], LeftAssoc, 8), ("!>>.", [InTerms], LeftAssoc, 8), (".&.", [InTerms], LeftAssoc, 7), (".<<.", [InTerms], LeftAssoc, 8), (".>>.", [InTerms], LeftAssoc, 8), (".^.", [InTerms], LeftAssoc, 6), (".|.", [InTerms], LeftAssoc, 5), ("rotate", [InTerms], LeftAssoc, 8), ("rotateL", [InTerms], LeftAssoc, 8), ("rotateR", [InTerms], LeftAssoc, 8), ("shift", [InTerms], LeftAssoc, 8), ("shiftL", [InTerms], LeftAssoc, 8), ("shiftR", [InTerms], LeftAssoc, 8), ("xor", [InTerms], LeftAssoc, 6)],
+      entry "Foreign.C" [],
+      entry "Foreign.C.ConstPtr" [],
+      entry "Foreign.C.Error" [],
+      entry "Foreign.C.String" [],
+      entry "Foreign.C.Types" [],
+      entry "Foreign.Concurrent" [],
+      entry "Foreign.ForeignPtr" [],
+      entry "Foreign.ForeignPtr.Safe" [],
+      entry "Foreign.ForeignPtr.Unsafe" [],
+      entry "Foreign.Marshal" [],
+      entry "Foreign.Marshal.Alloc" [],
+      entry "Foreign.Marshal.Array" [],
+      entry "Foreign.Marshal.Error" [],
+      entry "Foreign.Marshal.Pool" [],
+      entry "Foreign.Marshal.Safe" [],
+      entry "Foreign.Marshal.Unsafe" [],
+      entry "Foreign.Marshal.Utils" [],
+      entry "Foreign.Ptr" [],
+      entry
+        "Foreign.Safe"
+        [("!<<.", [InTerms], LeftAssoc, 8), ("!>>.", [InTerms], LeftAssoc, 8), (".&.", [InTerms], LeftAssoc, 7), (".<<.", [InTerms], LeftAssoc, 8), (".>>.", [InTerms], LeftAssoc, 8), (".^.", [InTerms], LeftAssoc, 6), (".|.", [InTerms], LeftAssoc, 5), ("rotate", [InTerms], LeftAssoc, 8), ("rotateL", [InTerms], LeftAssoc, 8), ("rotateR", [InTerms], LeftAssoc, 8), ("shift", [InTerms], LeftAssoc, 8), ("shiftL", [InTerms], LeftAssoc, 8), ("shiftR", [InTerms], LeftAssoc, 8), ("xor", [InTerms], LeftAssoc, 6)],
+      entry "Foreign.StablePtr" [],
+      entry "Foreign.Storable" [],
+      entry
+        "GHC.Arr"
+        [("!", [InTerms], LeftAssoc, 9), ("//", [InTerms], LeftAssoc, 9)],
+      entry "GHC.ArrayArray" [],
+      entry
+        "GHC.Base"
+        [("$", [InTerms], RightAssoc, 0), ("$!", [InTerms], RightAssoc, 0), ("&&", [InTerms], RightAssoc, 3), ("*#", [InTerms], LeftAssoc, 7), ("*##", [InTerms], LeftAssoc, 7), ("**##", [InTerms], LeftAssoc, 9), ("*>", [InTerms], LeftAssoc, 4), ("+#", [InTerms], LeftAssoc, 6), ("+##", [InTerms], LeftAssoc, 6), ("++", [InTerms], RightAssoc, 5), ("-#", [InTerms], LeftAssoc, 6), ("-##", [InTerms], LeftAssoc, 6), (".", [InTerms], RightAssoc, 9), ("/##", [InTerms], LeftAssoc, 7), ("/=", [InTerms], NoAssoc, 4), ("/=#", [InTerms], NoAssoc, 4), ("/=##", [InTerms], NoAssoc, 4), (":|", [InTypes, InTerms], RightAssoc, 5), ("<", [InTerms], NoAssoc, 4), ("<#", [InTerms], NoAssoc, 4), ("<##", [InTerms], NoAssoc, 4), ("<$", [InTerms], LeftAssoc, 4), ("<*", [InTerms], LeftAssoc, 4), ("<**>", [InTerms], LeftAssoc, 4), ("<*>", [InTerms], LeftAssoc, 4), ("<=", [InTerms], NoAssoc, 4), ("<=#", [InTerms], NoAssoc, 4), ("<=##", [InTerms], NoAssoc, 4), ("<>", [InTerms], RightAssoc, 6), ("<|>", [InTerms], LeftAssoc, 3), ("=<<", [InTerms], RightAssoc, 1), ("==", [InTerms], NoAssoc, 4), ("==#", [InTerms], NoAssoc, 4), ("==##", [InTerms], NoAssoc, 4), (">", [InTerms], NoAssoc, 4), (">#", [InTerms], NoAssoc, 4), (">##", [InTerms], NoAssoc, 4), (">=", [InTerms], NoAssoc, 4), (">=#", [InTerms], NoAssoc, 4), (">=##", [InTerms], NoAssoc, 4), (">>", [InTerms], LeftAssoc, 1), (">>=", [InTerms], LeftAssoc, 1), ("seq", [InTerms], RightAssoc, 0), ("||", [InTerms], RightAssoc, 2), ("~~", [InTypes], NoAssoc, 4)],
+      entry
+        "GHC.Bits"
+        [(".&.", [InTerms], LeftAssoc, 7), (".|.", [InTerms], LeftAssoc, 5), ("rotate", [InTerms], LeftAssoc, 8), ("rotateL", [InTerms], LeftAssoc, 8), ("rotateR", [InTerms], LeftAssoc, 8), ("shift", [InTerms], LeftAssoc, 8), ("shiftL", [InTerms], LeftAssoc, 8), ("shiftR", [InTerms], LeftAssoc, 8), ("xor", [InTerms], LeftAssoc, 6)],
+      entry "GHC.Boot.TH.Lib" [],
+      entry "GHC.Boot.TH.Lib.Map" [],
+      entry "GHC.Boot.TH.Lift" [],
+      entry "GHC.Boot.TH.Ppr" [],
+      entry
+        "GHC.Boot.TH.PprLib"
+        [("$$", [InTerms], LeftAssoc, 5), ("$+$", [InTerms], LeftAssoc, 5), ("<+>", [InTerms], LeftAssoc, 6), ("<>", [InTerms], LeftAssoc, 6)],
+      entry "GHC.Boot.TH.Quote" [],
+      entry "GHC.Boot.TH.Syntax" [],
+      entry "GHC.ByteOrder" [],
+      entry "GHC.CString" [],
+      entry "GHC.Char" [],
+      entry
+        "GHC.Classes"
+        [("&&", [InTerms], RightAssoc, 3), ("/=", [InTerms], NoAssoc, 4), ("<", [InTerms], NoAssoc, 4), ("<=", [InTerms], NoAssoc, 4), ("==", [InTerms], NoAssoc, 4), (">", [InTerms], NoAssoc, 4), (">=", [InTerms], NoAssoc, 4), ("||", [InTerms], RightAssoc, 2)],
+      entry "GHC.Clock" [],
+      entry
+        "GHC.Conc"
+        [("par", [InTerms], RightAssoc, 0), ("pseq", [InTerms], RightAssoc, 0)],
+      entry "GHC.Conc.IO" [],
+      entry "GHC.Conc.Signal" [],
+      entry
+        "GHC.Conc.Sync"
+        [("par", [InTerms], RightAssoc, 0), ("pseq", [InTerms], RightAssoc, 0)],
+      entry "GHC.ConsoleHandler" [],
+      entry "GHC.Constants" [],
+      entry "GHC.Debug" [],
+      entry
+        "GHC.Desugar"
+        [(">>>", [InTerms], LeftAssoc, 9)],
+      entry "GHC.Encoding.UTF8" [],
+      entry "GHC.Enum" [],
+      entry "GHC.Environment" [],
+      entry "GHC.Err" [],
+      entry "GHC.Event" [],
+      entry "GHC.Event.TimeOut" [],
+      entry "GHC.Exception" [],
+      entry "GHC.Exception.Type" [],
+      entry "GHC.ExecutionStack" [],
+      entry
+        "GHC.Exts"
+        [("*#", [InTerms], LeftAssoc, 7), ("*##", [InTerms], LeftAssoc, 7), ("**##", [InTerms], LeftAssoc, 9), ("+#", [InTerms], LeftAssoc, 6), ("+##", [InTerms], LeftAssoc, 6), ("-#", [InTerms], LeftAssoc, 6), ("-##", [InTerms], LeftAssoc, 6), ("/##", [InTerms], LeftAssoc, 7), ("/=#", [InTerms], NoAssoc, 4), ("/=##", [InTerms], NoAssoc, 4), ("<#", [InTerms], NoAssoc, 4), ("<##", [InTerms], NoAssoc, 4), ("<=#", [InTerms], NoAssoc, 4), ("<=##", [InTerms], NoAssoc, 4), ("==#", [InTerms], NoAssoc, 4), ("==##", [InTerms], NoAssoc, 4), (">#", [InTerms], NoAssoc, 4), (">##", [InTerms], NoAssoc, 4), (">=#", [InTerms], NoAssoc, 4), (">=##", [InTerms], NoAssoc, 4), ("seq", [InTerms], RightAssoc, 0), ("~~", [InTypes], NoAssoc, 4)],
+      entry "GHC.Fingerprint" [],
+      entry "GHC.Fingerprint.Type" [],
+      entry
+        "GHC.Float"
+        [("**", [InTerms], RightAssoc, 8)],
+      entry "GHC.Float.ConversionUtils" [],
+      entry "GHC.Float.RealFracMethods" [],
+      entry "GHC.Foreign" [],
+      entry "GHC.ForeignPtr" [],
+      entry "GHC.ForeignSrcLang.Type" [],
+      entry "GHC.GHCi" [],
+      entry "GHC.GHCi.Helpers" [],
+      entry
+        "GHC.Generics"
+        [(":*:", [InTypes, InTerms], RightAssoc, 6), (":+:", [InTypes], RightAssoc, 5), (":.:", [InTypes], RightAssoc, 7)],
+      entry "GHC.IO" [],
+      entry "GHC.IO.Buffer" [],
+      entry "GHC.IO.BufferedIO" [],
+      entry "GHC.IO.Device" [],
+      entry "GHC.IO.Encoding" [],
+      entry "GHC.IO.Encoding.CodePage" [],
+      entry "GHC.IO.Encoding.Failure" [],
+      entry "GHC.IO.Encoding.Iconv" [],
+      entry "GHC.IO.Encoding.Latin1" [],
+      entry "GHC.IO.Encoding.Types" [],
+      entry "GHC.IO.Encoding.UTF16" [],
+      entry "GHC.IO.Encoding.UTF32" [],
+      entry "GHC.IO.Encoding.UTF8" [],
+      entry "GHC.IO.Exception" [],
+      entry "GHC.IO.FD" [],
+      entry "GHC.IO.Handle" [],
+      entry "GHC.IO.Handle.FD" [],
+      entry "GHC.IO.Handle.Internals" [],
+      entry "GHC.IO.Handle.Lock" [],
+      entry "GHC.IO.Handle.Text" [],
+      entry "GHC.IO.Handle.Types" [],
+      entry "GHC.IO.IOMode" [],
+      entry "GHC.IO.StdHandles" [],
+      entry
+        "GHC.IO.SubSystem"
+        [("<!>", [InTerms], LeftAssoc, 7)],
+      entry "GHC.IO.Unsafe" [],
+      entry "GHC.IOArray" [],
+      entry "GHC.IORef" [],
+      entry "GHC.InfoProv" [],
+      entry "GHC.Int" [],
+      entry "GHC.Integer" [],
+      entry "GHC.Integer.Logarithms" [],
+      entry "GHC.Internal.AllocationLimitHandler" [],
+      entry
+        "GHC.Internal.Arr"
+        [("!", [InTerms], LeftAssoc, 9), ("//", [InTerms], LeftAssoc, 9)],
+      entry "GHC.Internal.ArrayArray" [],
+      entry
+        "GHC.Internal.Base"
+        [("$", [InTerms], RightAssoc, 0), ("$!", [InTerms], RightAssoc, 0), ("&&", [InTerms], RightAssoc, 3), ("*#", [InTerms], LeftAssoc, 7), ("*##", [InTerms], LeftAssoc, 7), ("**##", [InTerms], LeftAssoc, 9), ("*>", [InTerms], LeftAssoc, 4), ("+#", [InTerms], LeftAssoc, 6), ("+##", [InTerms], LeftAssoc, 6), ("++", [InTerms], RightAssoc, 5), ("-#", [InTerms], LeftAssoc, 6), ("-##", [InTerms], LeftAssoc, 6), (".", [InTerms], RightAssoc, 9), ("/##", [InTerms], LeftAssoc, 7), ("/=", [InTerms], NoAssoc, 4), ("/=#", [InTerms], NoAssoc, 4), ("/=##", [InTerms], NoAssoc, 4), (":|", [InTypes, InTerms], RightAssoc, 5), ("<", [InTerms], NoAssoc, 4), ("<#", [InTerms], NoAssoc, 4), ("<##", [InTerms], NoAssoc, 4), ("<$", [InTerms], LeftAssoc, 4), ("<*", [InTerms], LeftAssoc, 4), ("<**>", [InTerms], LeftAssoc, 4), ("<*>", [InTerms], LeftAssoc, 4), ("<=", [InTerms], NoAssoc, 4), ("<=#", [InTerms], NoAssoc, 4), ("<=##", [InTerms], NoAssoc, 4), ("<>", [InTerms], RightAssoc, 6), ("<|>", [InTerms], LeftAssoc, 3), ("=<<", [InTerms], RightAssoc, 1), ("==", [InTerms], NoAssoc, 4), ("==#", [InTerms], NoAssoc, 4), ("==##", [InTerms], NoAssoc, 4), (">", [InTerms], NoAssoc, 4), (">#", [InTerms], NoAssoc, 4), (">##", [InTerms], NoAssoc, 4), (">=", [InTerms], NoAssoc, 4), (">=#", [InTerms], NoAssoc, 4), (">=##", [InTerms], NoAssoc, 4), (">>", [InTerms], LeftAssoc, 1), (">>=", [InTerms], LeftAssoc, 1), ("seq", [InTerms], RightAssoc, 0), ("||", [InTerms], RightAssoc, 2), ("~~", [InTypes], NoAssoc, 4)],
+      entry "GHC.Internal.Bignum.Backend" [],
+      entry "GHC.Internal.Bignum.Backend.Native" [],
+      entry "GHC.Internal.Bignum.Backend.Selected" [],
+      entry "GHC.Internal.Bignum.BigNat" [],
+      entry "GHC.Internal.Bignum.Integer" [],
+      entry "GHC.Internal.Bignum.Natural" [],
+      entry
+        "GHC.Internal.Bignum.Primitives"
+        [("&&#", [InTerms], RightAssoc, 3), ("||#", [InTerms], RightAssoc, 2)],
+      entry "GHC.Internal.Bignum.WordArray" [],
+      entry
+        "GHC.Internal.Bits"
+        [(".&.", [InTerms], LeftAssoc, 7), (".|.", [InTerms], LeftAssoc, 5), ("rotate", [InTerms], LeftAssoc, 8), ("rotateL", [InTerms], LeftAssoc, 8), ("rotateR", [InTerms], LeftAssoc, 8), ("shift", [InTerms], LeftAssoc, 8), ("shiftL", [InTerms], LeftAssoc, 8), ("shiftR", [InTerms], LeftAssoc, 8), ("xor", [InTerms], LeftAssoc, 6)],
+      entry "GHC.Internal.ByteOrder" [],
+      entry "GHC.Internal.CString" [],
+      entry "GHC.Internal.Char" [],
+      entry
+        "GHC.Internal.Classes"
+        [("&&", [InTerms], RightAssoc, 3), ("/=", [InTerms], NoAssoc, 4), ("<", [InTerms], NoAssoc, 4), ("<=", [InTerms], NoAssoc, 4), ("==", [InTerms], NoAssoc, 4), (">", [InTerms], NoAssoc, 4), (">=", [InTerms], NoAssoc, 4), ("||", [InTerms], RightAssoc, 2)],
+      entry "GHC.Internal.Clock" [],
+      entry "GHC.Internal.ClosureTypes" [],
+      entry "GHC.Internal.Conc.Bound" [],
+      entry "GHC.Internal.Conc.IO" [],
+      entry "GHC.Internal.Conc.Signal" [],
+      entry
+        "GHC.Internal.Conc.Sync"
+        [("par", [InTerms], RightAssoc, 0), ("pseq", [InTerms], RightAssoc, 0)],
+      entry "GHC.Internal.ConsoleHandler" [],
+      entry
+        "GHC.Internal.Control.Arrow"
+        [("&&&", [InTerms], RightAssoc, 3), ("***", [InTerms], RightAssoc, 3), ("+++", [InTerms], RightAssoc, 2), ("<+>", [InTerms], RightAssoc, 5), ("<<<", [InTerms], RightAssoc, 1), ("<<^", [InTerms], RightAssoc, 1), (">>>", [InTerms], RightAssoc, 1), (">>^", [InTerms], RightAssoc, 1), ("^<<", [InTerms], RightAssoc, 1), ("^>>", [InTerms], RightAssoc, 1), ("|||", [InTerms], RightAssoc, 2)],
+      entry
+        "GHC.Internal.Control.Category"
+        [(".", [InTerms], RightAssoc, 9), ("<<<", [InTerms], RightAssoc, 1), (">>>", [InTerms], RightAssoc, 1)],
+      entry "GHC.Internal.Control.Concurrent.MVar" [],
+      entry "GHC.Internal.Control.Exception" [],
+      entry "GHC.Internal.Control.Exception.Base" [],
+      entry
+        "GHC.Internal.Control.Monad"
+        [("<$", [InTerms], LeftAssoc, 4), ("<$!>", [InTerms], LeftAssoc, 4), ("<=<", [InTerms], RightAssoc, 1), ("=<<", [InTerms], RightAssoc, 1), (">=>", [InTerms], RightAssoc, 1), (">>", [InTerms], LeftAssoc, 1), (">>=", [InTerms], LeftAssoc, 1)],
+      entry "GHC.Internal.Control.Monad.Fail" [],
+      entry "GHC.Internal.Control.Monad.Fix" [],
+      entry "GHC.Internal.Control.Monad.IO.Class" [],
+      entry "GHC.Internal.Control.Monad.ST" [],
+      entry "GHC.Internal.Control.Monad.ST.Imp" [],
+      entry "GHC.Internal.Control.Monad.ST.Lazy" [],
+      entry "GHC.Internal.Control.Monad.ST.Lazy.Imp" [],
+      entry "GHC.Internal.Control.Monad.Zip" [],
+      entry
+        "GHC.Internal.Data.Bits"
+        [("!<<.", [InTerms], LeftAssoc, 8), ("!>>.", [InTerms], LeftAssoc, 8), (".&.", [InTerms], LeftAssoc, 7), (".<<.", [InTerms], LeftAssoc, 8), (".>>.", [InTerms], LeftAssoc, 8), (".^.", [InTerms], LeftAssoc, 6), (".|.", [InTerms], LeftAssoc, 5), ("rotate", [InTerms], LeftAssoc, 8), ("rotateL", [InTerms], LeftAssoc, 8), ("rotateR", [InTerms], LeftAssoc, 8), ("shift", [InTerms], LeftAssoc, 8), ("shiftL", [InTerms], LeftAssoc, 8), ("shiftR", [InTerms], LeftAssoc, 8), ("xor", [InTerms], LeftAssoc, 6)],
+      entry
+        "GHC.Internal.Data.Bool"
+        [("&&", [InTerms], RightAssoc, 3), ("||", [InTerms], RightAssoc, 2)],
+      entry "GHC.Internal.Data.Coerce" [],
+      entry "GHC.Internal.Data.Data" [],
+      entry "GHC.Internal.Data.Dynamic" [],
+      entry "GHC.Internal.Data.Either" [],
+      entry
+        "GHC.Internal.Data.Eq"
+        [("/=", [InTerms], NoAssoc, 4), ("==", [InTerms], NoAssoc, 4)],
+      entry
+        "GHC.Internal.Data.Foldable"
+        [("elem", [InTerms], NoAssoc, 4), ("notElem", [InTerms], NoAssoc, 4)],
+      entry
+        "GHC.Internal.Data.Function"
+        [("$", [InTerms], RightAssoc, 0), ("&", [InTerms], LeftAssoc, 1), (".", [InTerms], RightAssoc, 9), ("on", [InTerms], LeftAssoc, 0)],
+      entry
+        "GHC.Internal.Data.Functor"
+        [("$>", [InTerms], LeftAssoc, 4), ("<$", [InTerms], LeftAssoc, 4), ("<$>", [InTerms], LeftAssoc, 4), ("<&>", [InTerms], LeftAssoc, 1)],
+      entry "GHC.Internal.Data.Functor.Const" [],
+      entry "GHC.Internal.Data.Functor.Identity" [],
+      entry
+        "GHC.Internal.Data.Functor.Utils"
+        [("#.", [InTypes, InTerms], LeftAssoc, 9)],
+      entry "GHC.Internal.Data.IORef" [],
+      entry "GHC.Internal.Data.Ix" [],
+      entry
+        "GHC.Internal.Data.List"
+        [("!!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("++", [InTerms], RightAssoc, 5), ("\\\\", [InTerms], NoAssoc, 5), ("elem", [InTerms], NoAssoc, 4), ("notElem", [InTerms], NoAssoc, 4)],
+      entry
+        "GHC.Internal.Data.List.NonEmpty"
+        [(":|", [InTypes, InTerms], RightAssoc, 5)],
+      entry "GHC.Internal.Data.Maybe" [],
+      entry
+        "GHC.Internal.Data.Monoid"
+        [("<>", [InTerms], RightAssoc, 6)],
+      entry
+        "GHC.Internal.Data.NonEmpty"
+        [(":|", [InTypes, InTerms], RightAssoc, 5)],
+      entry
+        "GHC.Internal.Data.OldList"
+        [("!!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("++", [InTerms], RightAssoc, 5), ("\\\\", [InTerms], NoAssoc, 5), ("elem", [InTerms], NoAssoc, 4), ("notElem", [InTerms], NoAssoc, 4)],
+      entry
+        "GHC.Internal.Data.Ord"
+        [("<", [InTerms], NoAssoc, 4), ("<=", [InTerms], NoAssoc, 4), (">", [InTerms], NoAssoc, 4), (">=", [InTerms], NoAssoc, 4)],
+      entry "GHC.Internal.Data.Proxy" [],
+      entry "GHC.Internal.Data.STRef" [],
+      entry "GHC.Internal.Data.STRef.Strict" [],
+      entry "GHC.Internal.Data.Semigroup.Internal" [],
+      entry "GHC.Internal.Data.String" [],
+      entry "GHC.Internal.Data.Traversable" [],
+      entry "GHC.Internal.Data.Tuple" [],
+      entry
+        "GHC.Internal.Data.Type.Bool"
+        [("&&", [InTypes], RightAssoc, 3), ("||", [InTypes], RightAssoc, 2)],
+      entry "GHC.Internal.Data.Type.Coercion" [],
+      entry
+        "GHC.Internal.Data.Type.Equality"
+        [(":~:", [InTypes], NoAssoc, 4), (":~~:", [InTypes], NoAssoc, 4), ("==", [InTypes], NoAssoc, 4), ("~~", [InTypes], NoAssoc, 4)],
+      entry
+        "GHC.Internal.Data.Type.Ord"
+        [("<", [InTypes], NoAssoc, 4), ("<=", [InTypes], NoAssoc, 4), ("<=?", [InTypes], NoAssoc, 4), ("<?", [InTypes], NoAssoc, 4), (">", [InTypes], NoAssoc, 4), (">=", [InTypes], NoAssoc, 4), (">=?", [InTypes], NoAssoc, 4), (">?", [InTypes], NoAssoc, 4)],
+      entry
+        "GHC.Internal.Data.Typeable"
+        [(":~:", [InTypes], NoAssoc, 4), (":~~:", [InTypes], NoAssoc, 4)],
+      entry "GHC.Internal.Data.Unique" [],
+      entry "GHC.Internal.Data.Version" [],
+      entry "GHC.Internal.Data.Void" [],
+      entry "GHC.Internal.Debug" [],
+      entry "GHC.Internal.Debug.Trace" [],
+      entry
+        "GHC.Internal.Desugar"
+        [(">>>", [InTerms], LeftAssoc, 9)],
+      entry "GHC.Internal.Encoding.UTF8" [],
+      entry "GHC.Internal.Enum" [],
+      entry "GHC.Internal.Environment" [],
+      entry "GHC.Internal.Err" [],
+      entry "GHC.Internal.Event" [],
+      entry "GHC.Internal.Event.TimeOut" [],
+      entry "GHC.Internal.Exception" [],
+      entry "GHC.Internal.Exception.Backtrace" [],
+      entry "GHC.Internal.Exception.Context" [],
+      entry "GHC.Internal.Exception.Type" [],
+      entry "GHC.Internal.ExecutionStack" [],
+      entry "GHC.Internal.ExecutionStack.Internal" [],
+      entry
+        "GHC.Internal.Exts"
+        [("*#", [InTerms], LeftAssoc, 7), ("*##", [InTerms], LeftAssoc, 7), ("**##", [InTerms], LeftAssoc, 9), ("+#", [InTerms], LeftAssoc, 6), ("+##", [InTerms], LeftAssoc, 6), ("-#", [InTerms], LeftAssoc, 6), ("-##", [InTerms], LeftAssoc, 6), ("/##", [InTerms], LeftAssoc, 7), ("/=#", [InTerms], NoAssoc, 4), ("/=##", [InTerms], NoAssoc, 4), ("<#", [InTerms], NoAssoc, 4), ("<##", [InTerms], NoAssoc, 4), ("<=#", [InTerms], NoAssoc, 4), ("<=##", [InTerms], NoAssoc, 4), ("==#", [InTerms], NoAssoc, 4), ("==##", [InTerms], NoAssoc, 4), (">#", [InTerms], NoAssoc, 4), (">##", [InTerms], NoAssoc, 4), (">=#", [InTerms], NoAssoc, 4), (">=##", [InTerms], NoAssoc, 4), ("seq", [InTerms], RightAssoc, 0), ("~~", [InTypes], NoAssoc, 4)],
+      entry "GHC.Internal.Fingerprint" [],
+      entry "GHC.Internal.Fingerprint.Type" [],
+      entry
+        "GHC.Internal.Float"
+        [("**", [InTerms], RightAssoc, 8)],
+      entry "GHC.Internal.Float.ConversionUtils" [],
+      entry "GHC.Internal.Float.RealFracMethods" [],
+      entry "GHC.Internal.Foreign.C.ConstPtr" [],
+      entry "GHC.Internal.Foreign.C.Error" [],
+      entry "GHC.Internal.Foreign.C.String" [],
+      entry "GHC.Internal.Foreign.C.String.Encoding" [],
+      entry "GHC.Internal.Foreign.C.Types" [],
+      entry "GHC.Internal.Foreign.Concurrent" [],
+      entry "GHC.Internal.Foreign.ForeignPtr" [],
+      entry "GHC.Internal.Foreign.ForeignPtr.Imp" [],
+      entry "GHC.Internal.Foreign.ForeignPtr.Unsafe" [],
+      entry "GHC.Internal.Foreign.Marshal.Alloc" [],
+      entry "GHC.Internal.Foreign.Marshal.Array" [],
+      entry "GHC.Internal.Foreign.Marshal.Error" [],
+      entry "GHC.Internal.Foreign.Marshal.Pool" [],
+      entry "GHC.Internal.Foreign.Marshal.Safe" [],
+      entry "GHC.Internal.Foreign.Marshal.Unsafe" [],
+      entry "GHC.Internal.Foreign.Marshal.Utils" [],
+      entry "GHC.Internal.Foreign.Ptr" [],
+      entry "GHC.Internal.Foreign.StablePtr" [],
+      entry "GHC.Internal.Foreign.Storable" [],
+      entry "GHC.Internal.ForeignPtr" [],
+      entry "GHC.Internal.ForeignSrcLang" [],
+      entry "GHC.Internal.Functor.ZipList" [],
+      entry "GHC.Internal.GHCi" [],
+      entry "GHC.Internal.GHCi.Helpers" [],
+      entry
+        "GHC.Internal.Generics"
+        [(":*:", [InTypes, InTerms], RightAssoc, 6), (":+:", [InTypes], RightAssoc, 5), (":.:", [InTypes], RightAssoc, 7)],
+      entry "GHC.Internal.Heap.Closures" [],
+      entry "GHC.Internal.Heap.Constants" [],
+      entry "GHC.Internal.Heap.InfoTable" [],
+      entry "GHC.Internal.Heap.InfoTable.Types" [],
+      entry "GHC.Internal.Heap.InfoTableProf" [],
+      entry "GHC.Internal.Heap.ProfInfo.Types" [],
+      entry "GHC.Internal.IO" [],
+      entry "GHC.Internal.IO.Buffer" [],
+      entry "GHC.Internal.IO.BufferedIO" [],
+      entry "GHC.Internal.IO.Device" [],
+      entry "GHC.Internal.IO.Encoding" [],
+      entry "GHC.Internal.IO.Encoding.CodePage" [],
+      entry "GHC.Internal.IO.Encoding.Failure" [],
+      entry "GHC.Internal.IO.Encoding.Iconv" [],
+      entry "GHC.Internal.IO.Encoding.Latin1" [],
+      entry "GHC.Internal.IO.Encoding.Types" [],
+      entry "GHC.Internal.IO.Encoding.UTF16" [],
+      entry "GHC.Internal.IO.Encoding.UTF32" [],
+      entry "GHC.Internal.IO.Encoding.UTF8" [],
+      entry "GHC.Internal.IO.Exception" [],
+      entry "GHC.Internal.IO.FD" [],
+      entry "GHC.Internal.IO.Handle" [],
+      entry "GHC.Internal.IO.Handle.FD" [],
+      entry "GHC.Internal.IO.Handle.Internals" [],
+      entry "GHC.Internal.IO.Handle.Lock" [],
+      entry "GHC.Internal.IO.Handle.Text" [],
+      entry "GHC.Internal.IO.Handle.Types" [],
+      entry "GHC.Internal.IO.IOMode" [],
+      entry "GHC.Internal.IO.StdHandles" [],
+      entry
+        "GHC.Internal.IO.SubSystem"
+        [("<!>", [InTerms], LeftAssoc, 7)],
+      entry "GHC.Internal.IO.Unsafe" [],
+      entry "GHC.Internal.IOArray" [],
+      entry "GHC.Internal.IORef" [],
+      entry "GHC.Internal.InfoProv" [],
+      entry "GHC.Internal.InfoProv.Types" [],
+      entry "GHC.Internal.Int" [],
+      entry "GHC.Internal.Integer" [],
+      entry "GHC.Internal.Integer.Logarithms" [],
+      entry "GHC.Internal.IsList" [],
+      entry "GHC.Internal.Ix" [],
+      entry "GHC.Internal.LanguageExtensions" [],
+      entry "GHC.Internal.Lexeme" [],
+      entry
+        "GHC.Internal.List"
+        [("!!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("++", [InTerms], RightAssoc, 5), ("elem", [InTerms], NoAssoc, 4), ("notElem", [InTerms], NoAssoc, 4)],
+      entry "GHC.Internal.MVar" [],
+      entry "GHC.Internal.Magic" [],
+      entry "GHC.Internal.Magic.Dict" [],
+      entry "GHC.Internal.Maybe" [],
+      entry "GHC.Internal.Natural" [],
+      entry
+        "GHC.Internal.Num"
+        [("*", [InTerms], LeftAssoc, 7), ("+", [InTerms], LeftAssoc, 6), ("-", [InTerms], LeftAssoc, 6)],
+      entry
+        "GHC.Internal.Numeric"
+        [("**", [InTerms], RightAssoc, 8)],
+      entry "GHC.Internal.Numeric.Natural" [],
+      entry "GHC.Internal.OverloadedLabels" [],
+      entry "GHC.Internal.Pack" [],
+      entry
+        "GHC.Internal.Prim"
+        [("*#", [InTerms], LeftAssoc, 7), ("*##", [InTerms], LeftAssoc, 7), ("**##", [InTerms], LeftAssoc, 9), ("+#", [InTerms], LeftAssoc, 6), ("+##", [InTerms], LeftAssoc, 6), ("-#", [InTerms], LeftAssoc, 6), ("-##", [InTerms], LeftAssoc, 6), ("/##", [InTerms], LeftAssoc, 7), ("/=#", [InTerms], NoAssoc, 4), ("/=##", [InTerms], NoAssoc, 4), ("<#", [InTerms], NoAssoc, 4), ("<##", [InTerms], NoAssoc, 4), ("<=#", [InTerms], NoAssoc, 4), ("<=##", [InTerms], NoAssoc, 4), ("==#", [InTerms], NoAssoc, 4), ("==##", [InTerms], NoAssoc, 4), (">#", [InTerms], NoAssoc, 4), (">##", [InTerms], NoAssoc, 4), (">=#", [InTerms], NoAssoc, 4), (">=##", [InTerms], NoAssoc, 4), ("seq", [InTerms], RightAssoc, 0)],
+      entry "GHC.Internal.Prim.Exception" [],
+      entry "GHC.Internal.Prim.Ext" [],
+      entry "GHC.Internal.Prim.Panic" [],
+      entry "GHC.Internal.Prim.PtrEq" [],
+      entry
+        "GHC.Internal.PrimopWrappers"
+        [("*#", [InTerms], LeftAssoc, 9), ("*##", [InTerms], LeftAssoc, 9), ("**##", [InTerms], LeftAssoc, 9), ("+#", [InTerms], LeftAssoc, 9), ("+##", [InTerms], LeftAssoc, 9), ("-#", [InTerms], LeftAssoc, 9), ("-##", [InTerms], LeftAssoc, 9), ("/##", [InTerms], LeftAssoc, 9), ("/=#", [InTerms], LeftAssoc, 9), ("/=##", [InTerms], LeftAssoc, 9), ("<#", [InTerms], LeftAssoc, 9), ("<##", [InTerms], LeftAssoc, 9), ("<=#", [InTerms], LeftAssoc, 9), ("<=##", [InTerms], LeftAssoc, 9), ("==#", [InTerms], LeftAssoc, 9), ("==##", [InTerms], LeftAssoc, 9), (">#", [InTerms], LeftAssoc, 9), (">##", [InTerms], LeftAssoc, 9), (">=#", [InTerms], LeftAssoc, 9), (">=##", [InTerms], LeftAssoc, 9)],
+      entry "GHC.Internal.Profiling" [],
+      entry "GHC.Internal.Ptr" [],
+      entry "GHC.Internal.RTS.Flags" [],
+      entry "GHC.Internal.RTS.Flags.Test" [],
+      entry "GHC.Internal.Read" [],
+      entry
+        "GHC.Internal.Real"
+        [("%", [InTerms], LeftAssoc, 7), ("/", [InTerms], LeftAssoc, 7), (":%", [InTerms], LeftAssoc, 9), ("^", [InTerms], RightAssoc, 8), ("^%^", [InTerms], LeftAssoc, 9), ("^^", [InTerms], RightAssoc, 8), ("^^%^^", [InTerms], LeftAssoc, 9), ("div", [InTerms], LeftAssoc, 7), ("mod", [InTerms], LeftAssoc, 7), ("quot", [InTerms], LeftAssoc, 7), ("rem", [InTerms], LeftAssoc, 7)],
+      entry "GHC.Internal.Records" [],
+      entry "GHC.Internal.ResponseFile" [],
+      entry "GHC.Internal.ST" [],
+      entry "GHC.Internal.STRef" [],
+      entry "GHC.Internal.Show" [],
+      entry "GHC.Internal.Stable" [],
+      entry "GHC.Internal.StableName" [],
+      entry "GHC.Internal.Stack" [],
+      entry "GHC.Internal.Stack.Annotation" [],
+      entry "GHC.Internal.Stack.CCS" [],
+      entry "GHC.Internal.Stack.CloneStack" [],
+      entry "GHC.Internal.Stack.Constants" [],
+      entry "GHC.Internal.Stack.ConstantsProf" [],
+      entry "GHC.Internal.Stack.Decode" [],
+      entry "GHC.Internal.Stack.Types" [],
+      entry "GHC.Internal.StaticPtr" [],
+      entry "GHC.Internal.Stats" [],
+      entry "GHC.Internal.Storable" [],
+      entry "GHC.Internal.System.Environment" [],
+      entry "GHC.Internal.System.Environment.Blank" [],
+      entry "GHC.Internal.System.Exit" [],
+      entry "GHC.Internal.System.IO" [],
+      entry "GHC.Internal.System.IO.Error" [],
+      entry "GHC.Internal.System.Mem" [],
+      entry "GHC.Internal.System.Mem.StableName" [],
+      entry "GHC.Internal.System.Posix.Internals" [],
+      entry "GHC.Internal.System.Posix.Types" [],
+      entry "GHC.Internal.TH.Lib" [],
+      entry "GHC.Internal.TH.Lift" [],
+      entry "GHC.Internal.TH.Quote" [],
+      entry "GHC.Internal.TH.Syntax" [],
+      entry
+        "GHC.Internal.Text.ParserCombinators.ReadP"
+        [("+++", [InTerms], RightAssoc, 5), ("<++", [InTerms], RightAssoc, 5)],
+      entry
+        "GHC.Internal.Text.ParserCombinators.ReadPrec"
+        [("+++", [InTerms], LeftAssoc, 9), ("<++", [InTerms], LeftAssoc, 9)],
+      entry
+        "GHC.Internal.Text.Read"
+        [("+++", [InTerms], LeftAssoc, 9), ("<++", [InTerms], LeftAssoc, 9)],
+      entry "GHC.Internal.Text.Read.Lex" [],
+      entry "GHC.Internal.Text.Show" [],
+      entry "GHC.Internal.TopHandler" [],
+      entry
+        "GHC.Internal.Tuple"
+        [("()", [InTypes, InTerms], LeftAssoc, 9), ("(,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9)],
+      entry
+        "GHC.Internal.Type.Reflection"
+        [(":~:", [InTypes], NoAssoc, 4), (":~~:", [InTypes], NoAssoc, 4)],
+      entry "GHC.Internal.Type.Reflection.Unsafe" [],
+      entry
+        "GHC.Internal.TypeError"
+        [(":$$:", [InTerms], LeftAssoc, 5), (":<>:", [InTerms], LeftAssoc, 6)],
+      entry
+        "GHC.Internal.TypeLits"
+        [("*", [InTypes], LeftAssoc, 7), ("+", [InTypes], LeftAssoc, 6), ("-", [InTypes], LeftAssoc, 6), (":$$:", [InTerms], LeftAssoc, 5), (":<>:", [InTerms], LeftAssoc, 6), ("<=", [InTypes], NoAssoc, 4), ("<=?", [InTypes], NoAssoc, 4), ("Div", [InTypes], LeftAssoc, 7), ("Mod", [InTypes], LeftAssoc, 7), ("^", [InTypes], RightAssoc, 8)],
+      entry "GHC.Internal.TypeLits.Internal" [],
+      entry
+        "GHC.Internal.TypeNats"
+        [("*", [InTypes], LeftAssoc, 7), ("+", [InTypes], LeftAssoc, 6), ("-", [InTypes], LeftAssoc, 6), ("<=", [InTypes], NoAssoc, 4), ("<=?", [InTypes], NoAssoc, 4), ("Div", [InTypes], LeftAssoc, 7), ("Mod", [InTypes], LeftAssoc, 7), ("^", [InTypes], RightAssoc, 8)],
+      entry "GHC.Internal.TypeNats.Internal" [],
+      entry
+        "GHC.Internal.Types"
+        [("~~", [InTypes], NoAssoc, 4)],
+      entry "GHC.Internal.Unicode" [],
+      entry "GHC.Internal.Unsafe.Coerce" [],
+      entry "GHC.Internal.Weak" [],
+      entry "GHC.Internal.Weak.Finalize" [],
+      entry "GHC.Internal.Word" [],
+      entry "GHC.IsList" [],
+      entry "GHC.Ix" [],
+      entry "GHC.LanguageExtensions.Type" [],
+      entry "GHC.Lexeme" [],
+      entry
+        "GHC.List"
+        [("!!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("++", [InTerms], RightAssoc, 5), ("elem", [InTerms], NoAssoc, 4), ("notElem", [InTerms], NoAssoc, 4)],
+      entry "GHC.MVar" [],
+      entry "GHC.Magic" [],
+      entry "GHC.Magic.Dict" [],
+      entry "GHC.Maybe" [],
+      entry "GHC.Natural" [],
+      entry
+        "GHC.Num"
+        [("*", [InTerms], LeftAssoc, 7), ("+", [InTerms], LeftAssoc, 6), ("-", [InTerms], LeftAssoc, 6)],
+      entry "GHC.Num.Backend" [],
+      entry "GHC.Num.Backend.Native" [],
+      entry "GHC.Num.Backend.Selected" [],
+      entry "GHC.Num.BigNat" [],
+      entry "GHC.Num.Integer" [],
+      entry "GHC.Num.Natural" [],
+      entry
+        "GHC.Num.Primitives"
+        [("&&#", [InTerms], RightAssoc, 3), ("||#", [InTerms], RightAssoc, 2)],
+      entry "GHC.Num.WordArray" [],
+      entry
+        "GHC.OldList"
+        [("!!", [InTerms], LeftAssoc, 9), ("!?", [InTerms], LeftAssoc, 9), ("++", [InTerms], RightAssoc, 5), ("\\\\", [InTerms], NoAssoc, 5), ("elem", [InTerms], NoAssoc, 4), ("notElem", [InTerms], NoAssoc, 4)],
+      entry "GHC.OverloadedLabels" [],
+      entry
+        "GHC.Prim"
+        [("*#", [InTerms], LeftAssoc, 7), ("*##", [InTerms], LeftAssoc, 7), ("**##", [InTerms], LeftAssoc, 9), ("+#", [InTerms], LeftAssoc, 6), ("+##", [InTerms], LeftAssoc, 6), ("-#", [InTerms], LeftAssoc, 6), ("-##", [InTerms], LeftAssoc, 6), ("/##", [InTerms], LeftAssoc, 7), ("/=#", [InTerms], NoAssoc, 4), ("/=##", [InTerms], NoAssoc, 4), ("<#", [InTerms], NoAssoc, 4), ("<##", [InTerms], NoAssoc, 4), ("<=#", [InTerms], NoAssoc, 4), ("<=##", [InTerms], NoAssoc, 4), ("==#", [InTerms], NoAssoc, 4), ("==##", [InTerms], NoAssoc, 4), (">#", [InTerms], NoAssoc, 4), (">##", [InTerms], NoAssoc, 4), (">=#", [InTerms], NoAssoc, 4), (">=##", [InTerms], NoAssoc, 4), ("seq", [InTerms], RightAssoc, 0)],
+      entry "GHC.Prim.Exception" [],
+      entry "GHC.Prim.Ext" [],
+      entry "GHC.Prim.Panic" [],
+      entry "GHC.Prim.PtrEq" [],
+      entry
+        "GHC.PrimopWrappers"
+        [("*#", [InTerms], LeftAssoc, 9), ("*##", [InTerms], LeftAssoc, 9), ("**##", [InTerms], LeftAssoc, 9), ("+#", [InTerms], LeftAssoc, 9), ("+##", [InTerms], LeftAssoc, 9), ("-#", [InTerms], LeftAssoc, 9), ("-##", [InTerms], LeftAssoc, 9), ("/##", [InTerms], LeftAssoc, 9), ("/=#", [InTerms], LeftAssoc, 9), ("/=##", [InTerms], LeftAssoc, 9), ("<#", [InTerms], LeftAssoc, 9), ("<##", [InTerms], LeftAssoc, 9), ("<=#", [InTerms], LeftAssoc, 9), ("<=##", [InTerms], LeftAssoc, 9), ("==#", [InTerms], LeftAssoc, 9), ("==##", [InTerms], LeftAssoc, 9), (">#", [InTerms], LeftAssoc, 9), (">##", [InTerms], LeftAssoc, 9), (">=#", [InTerms], LeftAssoc, 9), (">=##", [InTerms], LeftAssoc, 9)],
+      entry "GHC.Profiling" [],
+      entry "GHC.Ptr" [],
+      entry "GHC.RTS.Flags" [],
+      entry "GHC.Read" [],
+      entry
+        "GHC.Real"
+        [("%", [InTerms], LeftAssoc, 7), ("/", [InTerms], LeftAssoc, 7), (":%", [InTerms], LeftAssoc, 9), ("^", [InTerms], RightAssoc, 8), ("^%^", [InTerms], LeftAssoc, 9), ("^^", [InTerms], RightAssoc, 8), ("^^%^^", [InTerms], LeftAssoc, 9), ("div", [InTerms], LeftAssoc, 7), ("mod", [InTerms], LeftAssoc, 7), ("quot", [InTerms], LeftAssoc, 7), ("rem", [InTerms], LeftAssoc, 7)],
+      entry "GHC.Records" [],
+      entry "GHC.ResponseFile" [],
+      entry "GHC.ST" [],
+      entry "GHC.STRef" [],
+      entry "GHC.Show" [],
+      entry "GHC.Stable" [],
+      entry "GHC.StableName" [],
+      entry "GHC.Stack" [],
+      entry "GHC.Stack.CCS" [],
+      entry "GHC.Stack.CloneStack" [],
+      entry "GHC.Stack.Types" [],
+      entry "GHC.StaticPtr" [],
+      entry "GHC.Stats" [],
+      entry "GHC.Storable" [],
+      entry "GHC.TopHandler" [],
+      entry
+        "GHC.Tuple"
+        [("()", [InTypes, InTerms], LeftAssoc, 9), ("(,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9), ("(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", [InTypes, InTerms], LeftAssoc, 9)],
+      entry
+        "GHC.TypeError"
+        [(":$$:", [InTerms], LeftAssoc, 5), (":<>:", [InTerms], LeftAssoc, 6)],
+      entry
+        "GHC.TypeLits"
+        [("*", [InTypes], LeftAssoc, 7), ("+", [InTypes], LeftAssoc, 6), ("-", [InTypes], LeftAssoc, 6), (":$$:", [InTerms], LeftAssoc, 5), (":<>:", [InTerms], LeftAssoc, 6), ("<=", [InTypes], NoAssoc, 4), ("<=?", [InTypes], NoAssoc, 4), ("Div", [InTypes], LeftAssoc, 7), ("Mod", [InTypes], LeftAssoc, 7), ("^", [InTypes], RightAssoc, 8)],
+      entry
+        "GHC.TypeNats"
+        [("*", [InTypes], LeftAssoc, 7), ("+", [InTypes], LeftAssoc, 6), ("-", [InTypes], LeftAssoc, 6), ("<=", [InTypes], NoAssoc, 4), ("<=?", [InTypes], NoAssoc, 4), ("Div", [InTypes], LeftAssoc, 7), ("Mod", [InTypes], LeftAssoc, 7), ("^", [InTypes], RightAssoc, 8)],
+      entry
+        "GHC.Types"
+        [("~~", [InTypes], NoAssoc, 4)],
+      entry "GHC.Unicode" [],
+      entry "GHC.Weak" [],
+      entry "GHC.Weak.Finalize" [],
+      entry "GHC.Word" [],
+      entry "Language.Haskell.TH" [],
+      entry
+        "Language.Haskell.TH.CodeDo"
+        [(">>", [InTerms], LeftAssoc, 9), (">>=", [InTerms], LeftAssoc, 9)],
+      entry "Language.Haskell.TH.LanguageExtensions" [],
+      entry "Language.Haskell.TH.Lib" [],
+      entry "Language.Haskell.TH.Ppr" [],
+      entry
+        "Language.Haskell.TH.PprLib"
+        [("$$", [InTerms], LeftAssoc, 5), ("$+$", [InTerms], LeftAssoc, 5), ("<+>", [InTerms], LeftAssoc, 6), ("<>", [InTerms], LeftAssoc, 6)],
+      entry "Language.Haskell.TH.Quote" [],
+      entry "Language.Haskell.TH.Syntax" [],
+      entry
+        "Numeric"
+        [("**", [InTerms], RightAssoc, 8)],
+      entry "Numeric.Natural" [],
+      entry
+        "Prelude"
+        [("!!", [InTerms], LeftAssoc, 9), ("$", [InTerms], RightAssoc, 0), ("$!", [InTerms], RightAssoc, 0), ("&&", [InTerms], RightAssoc, 3), ("*", [InTerms], LeftAssoc, 7), ("**", [InTerms], RightAssoc, 8), ("*>", [InTerms], LeftAssoc, 4), ("+", [InTerms], LeftAssoc, 6), ("++", [InTerms], RightAssoc, 5), ("-", [InTerms], LeftAssoc, 6), (".", [InTerms], RightAssoc, 9), ("/", [InTerms], LeftAssoc, 7), ("/=", [InTerms], NoAssoc, 4), ("<", [InTerms], NoAssoc, 4), ("<$", [InTerms], LeftAssoc, 4), ("<$>", [InTerms], LeftAssoc, 4), ("<*", [InTerms], LeftAssoc, 4), ("<*>", [InTerms], LeftAssoc, 4), ("<=", [InTerms], NoAssoc, 4), ("<>", [InTerms], RightAssoc, 6), ("=<<", [InTerms], RightAssoc, 1), ("==", [InTerms], NoAssoc, 4), (">", [InTerms], NoAssoc, 4), (">=", [InTerms], NoAssoc, 4), (">>", [InTerms], LeftAssoc, 1), (">>=", [InTerms], LeftAssoc, 1), ("^", [InTerms], RightAssoc, 8), ("^^", [InTerms], RightAssoc, 8), ("div", [InTerms], LeftAssoc, 7), ("elem", [InTerms], NoAssoc, 4), ("mod", [InTerms], LeftAssoc, 7), ("notElem", [InTerms], NoAssoc, 4), ("quot", [InTerms], LeftAssoc, 7), ("rem", [InTerms], LeftAssoc, 7), ("seq", [InTerms], RightAssoc, 0), ("||", [InTerms], RightAssoc, 2)],
+      entry "System.CPUTime" [],
+      entry "System.Cmd" [],
+      entry "System.Console.GetOpt" [],
+      entry "System.Directory" [],
+      entry "System.Directory.Internal" [],
+      entry
+        "System.Directory.Internal.Prelude"
+        [("!!", [InTerms], LeftAssoc, 9), ("$", [InTerms], RightAssoc, 0), ("$!", [InTerms], RightAssoc, 0), ("&&", [InTerms], RightAssoc, 3), ("*", [InTerms], LeftAssoc, 7), ("**", [InTerms], RightAssoc, 8), ("*>", [InTerms], LeftAssoc, 4), ("+", [InTerms], LeftAssoc, 6), ("++", [InTerms], RightAssoc, 5), ("-", [InTerms], LeftAssoc, 6), (".", [InTerms], RightAssoc, 9), (".&.", [InTerms], LeftAssoc, 7), (".|.", [InTerms], LeftAssoc, 5), ("/", [InTerms], LeftAssoc, 7), ("/=", [InTerms], NoAssoc, 4), ("<", [InTerms], NoAssoc, 4), ("<$", [InTerms], LeftAssoc, 4), ("<$>", [InTerms], LeftAssoc, 4), ("<*", [InTerms], LeftAssoc, 4), ("<*>", [InTerms], LeftAssoc, 4), ("<=", [InTerms], NoAssoc, 4), ("<=<", [InTerms], RightAssoc, 1), ("<>", [InTerms], RightAssoc, 6), ("=<<", [InTerms], RightAssoc, 1), ("==", [InTerms], NoAssoc, 4), (">", [InTerms], NoAssoc, 4), (">=", [InTerms], NoAssoc, 4), (">=>", [InTerms], RightAssoc, 1), (">>", [InTerms], LeftAssoc, 1), (">>=", [InTerms], LeftAssoc, 1), ("^", [InTerms], RightAssoc, 8), ("^^", [InTerms], RightAssoc, 8), ("div", [InTerms], LeftAssoc, 7), ("elem", [InTerms], NoAssoc, 4), ("mod", [InTerms], LeftAssoc, 7), ("notElem", [InTerms], NoAssoc, 4), ("on", [InTerms], LeftAssoc, 0), ("quot", [InTerms], LeftAssoc, 7), ("rem", [InTerms], LeftAssoc, 7), ("seq", [InTerms], RightAssoc, 0), ("||", [InTerms], RightAssoc, 2)],
+      entry "System.Directory.OsPath" [],
+      entry "System.Environment" [],
+      entry "System.Environment.Blank" [],
+      entry "System.Exit" [],
+      entry
+        "System.FilePath"
+        [("-<.>", [InTerms], RightAssoc, 7), ("<.>", [InTerms], RightAssoc, 7), ("</>", [InTerms], RightAssoc, 5)],
+      entry
+        "System.FilePath.Posix"
+        [("-<.>", [InTerms], RightAssoc, 7), ("<.>", [InTerms], RightAssoc, 7), ("</>", [InTerms], RightAssoc, 5)],
+      entry
+        "System.FilePath.Windows"
+        [("-<.>", [InTerms], RightAssoc, 7), ("<.>", [InTerms], RightAssoc, 7), ("</>", [InTerms], RightAssoc, 5)],
+      entry "System.IO" [],
+      entry "System.IO.Error" [],
+      entry "System.IO.Unsafe" [],
+      entry "System.Info" [],
+      entry "System.Mem" [],
+      entry "System.Mem.StableName" [],
+      entry "System.Mem.Weak" [],
+      entry
+        "System.OsPath"
+        [("-<.>", [InTerms], LeftAssoc, 9), ("<.>", [InTerms], LeftAssoc, 9), ("</>", [InTerms], LeftAssoc, 9)],
+      entry "System.OsPath.Encoding" [],
+      entry "System.OsPath.Internal" [],
+      entry
+        "System.OsPath.Posix"
+        [("-<.>", [InTerms], LeftAssoc, 9), ("<.>", [InTerms], LeftAssoc, 9), ("</>", [InTerms], LeftAssoc, 9)],
+      entry
+        "System.OsPath.Posix.Internal"
+        [("-<.>", [InTerms], RightAssoc, 7), ("<.>", [InTerms], RightAssoc, 7), ("</>", [InTerms], RightAssoc, 5)],
+      entry "System.OsPath.Types" [],
+      entry
+        "System.OsPath.Windows"
+        [("-<.>", [InTerms], LeftAssoc, 9), ("<.>", [InTerms], LeftAssoc, 9), ("</>", [InTerms], LeftAssoc, 9)],
+      entry
+        "System.OsPath.Windows.Internal"
+        [("-<.>", [InTerms], RightAssoc, 7), ("<.>", [InTerms], RightAssoc, 7), ("</>", [InTerms], RightAssoc, 5)],
+      entry
+        "System.OsString"
+        [("!?", [InTerms], LeftAssoc, 9)],
+      entry
+        "System.OsString.Data.ByteString.Short"
+        [("!?", [InTerms], LeftAssoc, 9), ("cons", [InTerms], RightAssoc, 5), ("snoc", [InTerms], LeftAssoc, 5)],
+      entry "System.OsString.Data.ByteString.Short.Internal" [],
+      entry
+        "System.OsString.Data.ByteString.Short.Word16"
+        [("!?", [InTerms], LeftAssoc, 9), ("cons", [InTerms], RightAssoc, 5), ("snoc", [InTerms], LeftAssoc, 5)],
+      entry "System.OsString.Encoding" [],
+      entry "System.OsString.Encoding.Internal" [],
+      entry
+        "System.OsString.Internal"
+        [("!?", [InTerms], LeftAssoc, 9)],
+      entry "System.OsString.Internal.Exception" [],
+      entry "System.OsString.Internal.Types" [],
+      entry
+        "System.OsString.Posix"
+        [("!?", [InTerms], LeftAssoc, 9)],
+      entry
+        "System.OsString.Windows"
+        [("!?", [InTerms], LeftAssoc, 9)],
+      entry
+        "System.Posix"
+        [("addSignal", [InTerms], RightAssoc, 9), ("deleteSignal", [InTerms], RightAssoc, 9)],
+      entry
+        "System.Posix.ByteString"
+        [("addSignal", [InTerms], RightAssoc, 9), ("deleteSignal", [InTerms], RightAssoc, 9)],
+      entry "System.Posix.ByteString.FilePath" [],
+      entry "System.Posix.Directory" [],
+      entry "System.Posix.Directory.ByteString" [],
+      entry "System.Posix.Directory.Fd" [],
+      entry "System.Posix.Directory.Internals" [],
+      entry "System.Posix.Directory.PosixPath" [],
+      entry "System.Posix.DynamicLinker" [],
+      entry "System.Posix.DynamicLinker.ByteString" [],
+      entry "System.Posix.DynamicLinker.Module" [],
+      entry "System.Posix.DynamicLinker.Module.ByteString" [],
+      entry "System.Posix.DynamicLinker.Prim" [],
+      entry "System.Posix.Env" [],
+      entry "System.Posix.Env.ByteString" [],
+      entry "System.Posix.Env.PosixString" [],
+      entry "System.Posix.Error" [],
+      entry "System.Posix.Fcntl" [],
+      entry "System.Posix.Files" [],
+      entry "System.Posix.Files.ByteString" [],
+      entry "System.Posix.Files.PosixString" [],
+      entry "System.Posix.IO" [],
+      entry "System.Posix.IO.ByteString" [],
+      entry "System.Posix.IO.PosixString" [],
+      entry "System.Posix.Internals" [],
+      entry "System.Posix.PosixPath.FilePath" [],
+      entry
+        "System.Posix.PosixString"
+        [("addSignal", [InTerms], RightAssoc, 9), ("deleteSignal", [InTerms], RightAssoc, 9)],
+      entry "System.Posix.Process" [],
+      entry "System.Posix.Process.ByteString" [],
+      entry "System.Posix.Process.Internals" [],
+      entry "System.Posix.Process.PosixString" [],
+      entry "System.Posix.Resource" [],
+      entry "System.Posix.Semaphore" [],
+      entry "System.Posix.SharedMem" [],
+      entry
+        "System.Posix.Signals"
+        [("addSignal", [InTerms], RightAssoc, 9), ("deleteSignal", [InTerms], RightAssoc, 9)],
+      entry
+        "System.Posix.Signals.Exts"
+        [("addSignal", [InTerms], RightAssoc, 9), ("deleteSignal", [InTerms], RightAssoc, 9)],
+      entry "System.Posix.Temp" [],
+      entry "System.Posix.Temp.ByteString" [],
+      entry "System.Posix.Temp.PosixString" [],
+      entry "System.Posix.Terminal" [],
+      entry "System.Posix.Terminal.ByteString" [],
+      entry "System.Posix.Terminal.PosixString" [],
+      entry "System.Posix.Time" [],
+      entry "System.Posix.Types" [],
+      entry "System.Posix.Unistd" [],
+      entry "System.Posix.User" [],
+      entry "System.Posix.User.ByteString" [],
+      entry "System.Process" [],
+      entry "System.Process.CommunicationHandle" [],
+      entry "System.Process.CommunicationHandle.Internal" [],
+      entry "System.Process.Environment.OsString" [],
+      entry "System.Process.Internals" [],
+      entry "System.Timeout" [],
+      entry
+        "Text.Parsec"
+        [("<?>", [InTerms], NoAssoc, 0), ("<|>", [InTerms], RightAssoc, 1)],
+      entry "Text.Parsec.ByteString" [],
+      entry "Text.Parsec.ByteString.Lazy" [],
+      entry "Text.Parsec.Char" [],
+      entry "Text.Parsec.Combinator" [],
+      entry "Text.Parsec.Error" [],
+      entry "Text.Parsec.Expr" [],
+      entry "Text.Parsec.Language" [],
+      entry
+        "Text.Parsec.Perm"
+        [("<$$>", [InTerms], LeftAssoc, 2), ("<$?>", [InTerms], LeftAssoc, 2), ("<|?>", [InTerms], LeftAssoc, 1), ("<||>", [InTerms], LeftAssoc, 1)],
+      entry "Text.Parsec.Pos" [],
+      entry
+        "Text.Parsec.Prim"
+        [("<?>", [InTerms], NoAssoc, 0), ("<|>", [InTerms], RightAssoc, 1)],
+      entry "Text.Parsec.String" [],
+      entry "Text.Parsec.Text" [],
+      entry "Text.Parsec.Text.Lazy" [],
+      entry "Text.Parsec.Token" [],
+      entry
+        "Text.ParserCombinators.Parsec"
+        [("<?>", [InTerms], NoAssoc, 0), ("<|>", [InTerms], RightAssoc, 1)],
+      entry "Text.ParserCombinators.Parsec.Char" [],
+      entry "Text.ParserCombinators.Parsec.Combinator" [],
+      entry "Text.ParserCombinators.Parsec.Error" [],
+      entry "Text.ParserCombinators.Parsec.Expr" [],
+      entry "Text.ParserCombinators.Parsec.Language" [],
+      entry
+        "Text.ParserCombinators.Parsec.Perm"
+        [("<$$>", [InTerms], LeftAssoc, 2), ("<$?>", [InTerms], LeftAssoc, 2), ("<|?>", [InTerms], LeftAssoc, 1), ("<||>", [InTerms], LeftAssoc, 1)],
+      entry "Text.ParserCombinators.Parsec.Pos" [],
+      entry
+        "Text.ParserCombinators.Parsec.Prim"
+        [("<?>", [InTerms], NoAssoc, 0), ("<|>", [InTerms], RightAssoc, 1)],
+      entry "Text.ParserCombinators.Parsec.Token" [],
+      entry
+        "Text.ParserCombinators.ReadP"
+        [("+++", [InTerms], RightAssoc, 5), ("<++", [InTerms], RightAssoc, 5)],
+      entry
+        "Text.ParserCombinators.ReadPrec"
+        [("+++", [InTerms], LeftAssoc, 9), ("<++", [InTerms], LeftAssoc, 9)],
+      entry
+        "Text.PrettyPrint"
+        [("$$", [InTerms], LeftAssoc, 5), ("$+$", [InTerms], LeftAssoc, 5), ("<+>", [InTerms], LeftAssoc, 6), ("<>", [InTerms], LeftAssoc, 6)],
+      entry
+        "Text.PrettyPrint.Annotated"
+        [("$$", [InTerms], LeftAssoc, 5), ("$+$", [InTerms], LeftAssoc, 5), ("<+>", [InTerms], LeftAssoc, 6), ("<>", [InTerms], LeftAssoc, 6)],
+      entry
+        "Text.PrettyPrint.Annotated.HughesPJ"
+        [("$$", [InTerms], LeftAssoc, 5), ("$+$", [InTerms], LeftAssoc, 5), ("<+>", [InTerms], LeftAssoc, 6), ("<>", [InTerms], LeftAssoc, 6)],
+      entry
+        "Text.PrettyPrint.Annotated.HughesPJClass"
+        [("$$", [InTerms], LeftAssoc, 5), ("$+$", [InTerms], LeftAssoc, 5), ("<+>", [InTerms], LeftAssoc, 6), ("<>", [InTerms], LeftAssoc, 6)],
+      entry
+        "Text.PrettyPrint.HughesPJ"
+        [("$$", [InTerms], LeftAssoc, 5), ("$+$", [InTerms], LeftAssoc, 5), ("<+>", [InTerms], LeftAssoc, 6), ("<>", [InTerms], LeftAssoc, 6)],
+      entry
+        "Text.PrettyPrint.HughesPJClass"
+        [("$$", [InTerms], LeftAssoc, 5), ("$+$", [InTerms], LeftAssoc, 5), ("<+>", [InTerms], LeftAssoc, 6), ("<>", [InTerms], LeftAssoc, 6)],
+      entry "Text.Printf" [],
+      entry
+        "Text.Read"
+        [("+++", [InTerms], LeftAssoc, 9), ("<++", [InTerms], LeftAssoc, 9)],
+      entry "Text.Read.Lex" [],
+      entry "Text.Show" [],
+      entry "Text.Show.Functions" [],
+      entry "Trace.Hpc.Mix" [],
+      entry "Trace.Hpc.Reflect" [],
+      entry "Trace.Hpc.Tix" [],
+      entry "Trace.Hpc.Util" [],
+      entry
+        "Type.Reflection"
+        [(":~:", [InTypes], NoAssoc, 4), (":~~:", [InTypes], NoAssoc, 4)],
+      entry "Type.Reflection.Unsafe" [],
+      entry "Unsafe.Coerce" []
+    ]
+  where
+    entry name ops =
+      ( name,
+        Map.fromList
+          [ ((namespace, OpName o), Fixity d p)
+          | (o, governs, d, p) <- ops,
+            namespace <- governs
+          ]
+      )
diff --git a/tests/Tilia/Cabal/PackageSpec.hs b/tests/Tilia/Cabal/PackageSpec.hs
--- a/tests/Tilia/Cabal/PackageSpec.hs
+++ b/tests/Tilia/Cabal/PackageSpec.hs
@@ -84,11 +84,39 @@
         library <- asked (root </> "src" </> "M.hs")
         (length <$> library) `shouldSatisfy` either (const False) (> 40)
 
+    it "are Haskell98's where it names no edition, as cabal builds it" $
+      inPackage namesNoEdition ["src"] $ \root -> do
+        library <- asked (root </> "src" </> "M.hs")
+        (has NondecreasingIndentation library, has ImportQualifiedPost library)
+          `shouldBe` (True, False)
+
     it "can be turned off again by default-extensions" $
       inPackage refusesAnEdition ["src"] $ \root ->
         (has ImportQualifiedPost <$> asked (root </> "src" </> "M.hs"))
           `shouldReturn` False
 
+    it "take in the extensions field older packages use, as cabal does" $
+      inPackage usesTheOldField ["src"] $ \root ->
+        (has Cpp <$> asked (root </> "src" </> "M.hs"))
+          `shouldReturn` True
+
+    it "take in those of every branch the build takes" $
+      inPackage conditionalExtensions ["src"] $ \root -> do
+        library <- asked (root </> "src" </> "M.hs")
+        (has StarIsType library, has MagicHash library)
+          `shouldBe` (False, True)
+
+    it "leave out those of a branch the build does not take" $
+      inPackage conditionalExtensions ["src"] $ \root -> do
+        library <- asked (root </> "src" </> "M.hs")
+        (has BangPatterns library, has Strict library)
+          `shouldBe` (False, False)
+
+    it "take in their own branch's too, for a module only it declares" $
+      inPackage conditionalExtensions ["src", "old"] $ \root -> do
+        old <- asked (root </> "old" </> "Old.hs")
+        (has BangPatterns old, has StarIsType old) `shouldBe` (True, False)
+
   describe "a file nothing can be settled for" $ do
     it "says so when there is no package above it" $
       withSystemTempDirectory "tilia-nopackage" $ \root ->
@@ -208,6 +236,19 @@
       "  default-language: GHC2021"
     ]
 
+-- | A library that names no language edition.
+namesNoEdition :: Text
+namesNoEdition =
+  T.unlines
+    [ "cabal-version: 2.4",
+      "name: demo",
+      "version: 0",
+      "",
+      "library",
+      "  exposed-modules: M",
+      "  hs-source-dirs: src"
+    ]
+
 -- | An edition, and then one of the things it brings taken back out.
 refusesAnEdition :: Text
 refusesAnEdition =
@@ -221,6 +262,54 @@
       "  hs-source-dirs: src",
       "  default-language: GHC2021",
       "  default-extensions: NoImportQualifiedPost"
+    ]
+
+-- | An extension turned on in the field that came before
+-- @default-extensions@.
+usesTheOldField :: Text
+usesTheOldField =
+  T.unlines
+    [ "cabal-version: >= 1.10",
+      "name: demo",
+      "version: 0",
+      "build-type: Simple",
+      "",
+      "library",
+      "  exposed-modules: M",
+      "  hs-source-dirs: src",
+      "  default-language: Haskell2010",
+      "  extensions: CPP"
+    ]
+
+-- | Extensions behind conditions on the compiler, one met and one not, and
+-- behind a flag on by default and one off.
+conditionalExtensions :: Text
+conditionalExtensions =
+  T.unlines
+    [ "cabal-version: 2.4",
+      "name: demo",
+      "version: 0",
+      "",
+      "flag fast",
+      "  default: True",
+      "",
+      "flag strict",
+      "  default: False",
+      "",
+      "library",
+      "  exposed-modules: M",
+      "  hs-source-dirs: src",
+      "  default-language: Haskell2010",
+      "  if impl(ghc >= 8.6)",
+      "    default-extensions: NoStarIsType",
+      "  if impl(ghc < 8.6)",
+      "    other-modules: Old",
+      "    hs-source-dirs: old",
+      "    default-extensions: BangPatterns",
+      "  if flag(fast)",
+      "    default-extensions: MagicHash",
+      "  if flag(strict)",
+      "    default-extensions: Strict"
     ]
 
 ----------------------------------------------------------------------------
diff --git a/tests/Tilia/Cabal/TargetSpec.hs b/tests/Tilia/Cabal/TargetSpec.hs
--- a/tests/Tilia/Cabal/TargetSpec.hs
+++ b/tests/Tilia/Cabal/TargetSpec.hs
@@ -56,17 +56,22 @@
   describe "against this very project" $ do
     root <- runIO (findProjectRoot ".")
     case root of
-      Nothing -> it "needs a project" $ pendingWith "no project above the working directory"
+      Nothing -> it "needs a project" $ expectationFailure "no project above the working directory"
       Just here -> do
         it "is rooted at the cabal.project, not the .cabal file" $
           prMarker here `shouldBe` ProjectFile
 
-        it "finds the three components this package declares" $
+        it "finds the four components this package declares" $
           componentsOfTarget here Everything >>= \case
             Left problem -> expectationFailure (T.unpack (describeTargetProblem problem))
             Right cs ->
               sort (fmap (\c -> (componentKind c, componentName c)) cs)
-                `shouldBe` sort [(Lib, "tilia"), (Exe, "tilia"), (Test, "tests")]
+                `shouldBe` sort
+                  [ (Lib, "tilia"),
+                    (Exe, "tilia"),
+                    (Test, "tests"),
+                    (Bench, "bench")
+                  ]
 
         it "narrows to one component when asked for one" $
           componentsOfTarget here (Qualified Nothing Lib "tilia") >>= \case
@@ -78,7 +83,7 @@
         it "takes the package name as all of its components" $
           componentsOfTarget here (Called "tilia") >>= \case
             Left problem -> expectationFailure (T.unpack (describeTargetProblem problem))
-            Right cs -> length cs `shouldBe` 3
+            Right cs -> length cs `shouldBe` 4
 
         it "refuses a target the project does not hold, and says what it does" $
           componentsOfTarget here (Called "nothing-like-this") >>= \case
@@ -300,7 +305,7 @@
             files <- filesOfComponents root cs
             fmap takeFileName files `shouldBe` ["A.hs"]
 
-    it "excludes literal files and directory trees from .tiliaignore"
+    it "excludes files and directory trees .tiliaignore names"
       $ withProject
         [ ( "only.cabal",
             packageWith
@@ -308,7 +313,7 @@
               ["src"]
               ["Runner", "Generated", "Fixtures.Input", "Fixtures.Nested.Other", "FixturesOther.Keep"]
           ),
-          (".tiliaignore", "  # Generated sources and runtime fixtures\r\n\r\n ./src/Fixtures/ \r\nsrc/Generated.hs\r\n"),
+          (".tiliaignore", "# Generated sources and runtime fixtures\r\n\r\n/src/Fixtures/ \r\nsrc/Generated.hs\r\n"),
           ("src/Runner.hs", "module Runner where\n"),
           ("src/Generated.hs", "module Generated where\n"),
           ("src/Fixtures/Input.hs", "module Fixtures.Input where\n"),
@@ -338,6 +343,24 @@
           Right cs -> do
             files <- filesOfComponents root cs
             sort (map takeFileName files) `shouldBe` ["A.hs", "B.hs"]
+
+    it "reads .tiliaignore the way Git reads .gitignore"
+      $ withProject
+        [ ("cabal.project", "packages: one\n"),
+          (".tiliaignore", "*Spec.hs\n!/one/test/KeepSpec.hs\n"),
+          ("one/.tiliaignore", "Gen*/\n"),
+          ("one/one.cabal", packageWith "one" ["src", "test"] ["A", "Generated.B", "KeepSpec", "DropSpec"]),
+          ("one/src/A.hs", "module A where\n"),
+          ("one/src/Generated/B.hs", "module Generated.B where\n"),
+          ("one/test/KeepSpec.hs", "module KeepSpec where\n"),
+          ("one/test/DropSpec.hs", "module DropSpec where\n")
+        ]
+      $ \root ->
+        componentsOfTarget root Everything >>= \case
+          Left problem -> expectationFailure (T.unpack (describeTargetProblem problem))
+          Right cs -> do
+            files <- filesOfComponents root cs
+            sort (map takeFileName files) `shouldBe` ["A.hs", "KeepSpec.hs"]
 
     it "can exclude every file of an explicitly selected component"
       $ withProject
diff --git a/tests/Tilia/Comments/PlaceSpec.hs b/tests/Tilia/Comments/PlaceSpec.hs
--- a/tests/Tilia/Comments/PlaceSpec.hs
+++ b/tests/Tilia/Comments/PlaceSpec.hs
@@ -7,6 +7,7 @@
 import Test.Hspec
 import Tilia.Comments (Comment (..), renderComment)
 import Tilia.Comments.Place
+import Tilia.Doc.Internal (Spill (..))
 import Tilia.Parser
 import Tilia.Source (comments)
 import Tilia.Span
@@ -16,11 +17,11 @@
   describe "a comment written after code" $ do
     it "goes to the region that ends where that code stops" $
       placedIn [foo, theOne] [] "foo = 1 -- note\n"
-        `shouldBe` [("-- note", Just (After, theOne))]
+        `shouldBe` [("-- note", Just (After SpillAtIndentation, theOne))]
 
     it "goes to the nearest region before it when it ends its line" $
       placedIn [foo] [] "foo = 1 -- note\n"
-        `shouldBe` [("-- note", Just (After, foo))]
+        `shouldBe` [("-- note", Just (After SpillAtIndentation, foo))]
 
     it "is left to what follows when code follows it too" $
       placedIn [foo, lastOfLineOne] [] "foo = {- note -} 1\n"
@@ -28,20 +29,26 @@
 
     it "is taken back even so when it was written against a region" $
       placedIn [foo, upToTheEquals, lastOfLineOne] [] "foo = {- note -} 1\n"
-        `shouldBe` [("{- note -}", Just (After, upToTheEquals))]
+        `shouldBe` [ ( "{- note -}",
+                       Just (After SpillAtIndentation, upToTheEquals)
+                     )
+                   ]
 
   describe "choosing between the regions on a line" $ do
     it "takes the one ending latest" $
       placedIn [foo, theOne] [] "foo = 1 -- note\n"
-        `shouldBe` [("-- note", Just (After, theOne))]
+        `shouldBe` [("-- note", Just (After SpillAtIndentation, theOne))]
 
     it "takes the outermost of those ending together" $
       placedIn [theOne, wholeOfLineOne] [] "foo = 1 -- note\n"
-        `shouldBe` [("-- note", Just (After, wholeOfLineOne))]
+        `shouldBe` [ ( "-- note",
+                       Just (After SpillAtIndentation, wholeOfLineOne)
+                     )
+                   ]
 
     it "passes over one that has not ended when the comment begins" $
       placedIn [foo, pastTheComment] [] "foo = 1 -- note\n"
-        `shouldBe` [("-- note", Just (After, foo))]
+        `shouldBe` [("-- note", Just (After SpillAtIndentation, foo))]
 
   describe "a region the comment was not written inside" $ do
     it "may not have it" $
@@ -50,7 +57,7 @@
 
     it "may when the comment is inside it too" $
       placedIn [foo, bar] [] "foo = 1 -- note\nbar = 2\n"
-        `shouldBe` [("-- note", Just (After, foo))]
+        `shouldBe` [("-- note", Just (After SpillAtIndentation, foo))]
 
   describe "a fence" $ do
     it "keeps a comment printed in place from crossing it" $
@@ -59,35 +66,81 @@
 
     it "leaves the same comment alone when there is no fence" $
       placedIn [foo, bar] [] "foo = 1 {- note -}\nbar = 2\n"
-        `shouldBe` [("{- note -}", Just (After, foo))]
+        `shouldBe` [("{- note -}", Just (After SpillAtIndentation, foo))]
 
     it "says nothing about a comment held back to the end of a line" $
       placedIn [foo, bar] [rhsOfLineOne] "foo = 1 -- note\nbar = 2\n"
-        `shouldBe` [("-- note", Just (After, foo))]
+        `shouldBe` [("-- note", Just (After SpillAtIndentation, foo))]
 
   describe "a comment carrying on a remark from the line above" $ do
     it "goes where that remark went" $
       placedIn [operand, bar'] [] carriedOn
-        `shouldBe` [ ("-- said once", Just (After, operand)),
-                     ("-- and again", Just (After, operand))
+        `shouldBe` [ ("-- said once", Just (After SpillAtIndentation, operand)),
+                     ("-- and again", Just (After SpillAtIndentation, operand))
                    ]
 
     it "does not when it is not lined up with that line" $
       placedIn [operand, bar'] [] indentedFurther
-        `shouldBe` [ ("-- said once", Just (After, operand)),
+        `shouldBe` [ ("-- said once", Just (After SpillAtIndentation, operand)),
                      ("-- and again", Just (Before, bar'))
                    ]
 
-    it "does not when that line ended in code" $
-      placedIn [operand, bar'] [] nothingAbove
-        `shouldBe` [("-- and again", Just (Before, bar'))]
-
     it "does not when what follows lines up with it as well" $
       placedIn [operand, continuation] [] carriedOnThenMore
-        `shouldBe` [ ("-- said once", Just (After, operand)),
+        `shouldBe` [ ("-- said once", Just (After SpillAtIndentation, operand)),
                      ("-- and again", Just (Before, continuation))
                    ]
 
+  describe "a comment lined up under a line of code" $ do
+    it "goes under that line when what follows begins further left" $
+      placedIn [fooDecl, operand, bar'] [] nothingAbove
+        `shouldBe` [("-- and again", Just (Under ByTheRegion, operand))]
+
+    it "takes the comments lined up under it along" $
+      placedIn [fooDecl, operand, barAfterARun] [] aRunUnder
+        `shouldBe` [ ("-- and again", Just (Under ByTheRegion, operand)),
+                     ("-- and once more", Just (Under ByTheRegion, operand))
+                   ]
+
+    it "does not when what follows lines up with it as well" $
+      placedIn [operand, continuation] [] linedUpWithWhatFollows
+        `shouldBe` [("-- and again", Just (Before, continuation))]
+
+    it "does not when it is not lined up with that line" $
+      placedIn [fooDecl, operand, bar'] [] indentedPastTheLine
+        `shouldBe` [("-- and again", Just (Before, bar'))]
+
+    it "does not when it is lined up with what follows instead" $
+      placedIn
+        [letStatement, valueBody, printValue]
+        []
+        linedUpWithTheNextStatement
+        `shouldBe` [("-- something", Just (Before, printValue))]
+
+    it "does not when that line does not end what it belongs to" $
+      placedIn [operand, bar'] [] nothingAbove
+        `shouldBe` [("-- and again", Just (Before, bar'))]
+
+  describe "a comment written right after another one" $ do
+    it "goes where that comment goes" $
+      placedIn [fName, fBody] [] "f {- a -} {- b -} = 1\n"
+        `shouldBe` [ ("{- a -}", Just (After SpillAtIndentation, fName)),
+                     ("{- b -}", Just (After SpillAtIndentation, fName))
+                   ]
+
+    it "does so through several of them" $
+      placedIn [fName, fBodyPastThree] [] "f {- a -} {- b -} {- c -} = 1\n"
+        `shouldBe` [ ("{- a -}", Just (After SpillAtIndentation, fName)),
+                     ("{- b -}", Just (After SpillAtIndentation, fName)),
+                     ("{- c -}", Just (After SpillAtIndentation, fName))
+                   ]
+
+    it "goes its own way where that comment goes before what follows" $
+      placedIn [xOnLineTwo] [] "{- a -} -- b\nx = 1\n"
+        `shouldBe` [ ("{- a -}", Just (Before, xOnLineTwo)),
+                     ("-- b", Just (Before, xOnLineTwo))
+                   ]
+
   describe "a comment with nothing written against it" $ do
     it "goes above the region that starts first after it" $
       placedIn [bar, laterStill] [] "-- note\nbar = 2\n"
@@ -112,13 +165,18 @@
       shapeOf Before (firstComment "-- note\nfoo = 1\n") `shouldBe` OnItsOwnLines
 
     it "sits in the line after a region when it closes itself" $
-      shapeOf After (firstComment "foo = 1 {- note -}\n") `shouldBe` InPlace
+      shapeOf (After SpillAtIndentation) (firstComment "foo = 1 {- note -}\n")
+        `shouldBe` InPlace
 
     it "is held back after a region when it is one line of dashes" $
-      shapeOf After (firstComment "foo = 1 -- note\n") `shouldBe` HeldBack
+      shapeOf (After SpillAtIndentation) (firstComment "foo = 1 -- note\n")
+        `shouldBe` HeldBack SpillAtIndentation
 
     it "ends the line after a region when it runs over several" $
-      shapeOf After (firstComment "foo = 1 {- one\ntwo -}\n") `shouldBe` EndsTheLine
+      shapeOf
+        (After SpillAtIndentation)
+        (firstComment "foo = 1 {- one\ntwo -}\n")
+        `shouldBe` EndsTheLine
 
 ----------------------------------------------------------------------------
 -- The regions the snippets are placed against
@@ -161,19 +219,42 @@
 laterStill :: Span
 laterStill = mkSpan (9, 1) (9, 4)
 
--- | The @a + b@ of the snippets below, and the @bar@ under them.
-operand, bar' :: Span
+-- | The declaration of @foo@ in the snippets below, its @a + b@, and the
+-- @bar@ under them, with one comment or two between.
+fooDecl, operand, bar', barAfterARun :: Span
+fooDecl = mkSpan (1, 1) (2, 8)
 operand = mkSpan (2, 3) (2, 8)
 bar' = mkSpan (4, 1) (4, 4)
+barAfterARun = mkSpan (5, 1) (5, 4)
 
+-- | The @let@ statement of 'linedUpWithTheNextStatement', the right-hand
+-- side of its binding, and the statement after it.
+letStatement, valueBody, printValue :: Span
+letStatement = mkSpan (2, 3) (3, 20)
+valueBody = mkSpan (3, 9) (3, 20)
+printValue = mkSpan (5, 3) (5, 14)
+
 -- | The @+ c@ that carries the expression on, lined up with the comment.
 continuation :: Span
 continuation = mkSpan (4, 3) (4, 6)
 
+-- | The @f@ of @f {- a -} {- b -} = 1@, its @1@, and the @1@ of the same
+-- with a third comment.
+fName, fBody, fBodyPastThree :: Span
+fName = mkSpan (1, 1) (1, 2)
+fBody = mkSpan (1, 21) (1, 22)
+fBodyPastThree = mkSpan (1, 29) (1, 30)
+
+-- | The @x@ on the second line.
+xOnLineTwo :: Span
+xOnLineTwo = mkSpan (2, 1) (2, 2)
+
 ----------------------------------------------------------------------------
 -- The snippets that take more than one line
 
 carriedOn, indentedFurther, nothingAbove, carriedOnThenMore :: Text
+aRunUnder, linedUpWithWhatFollows, indentedPastTheLine :: Text
+linedUpWithTheNextStatement :: Text
 carriedOn =
   "foo =\n\
   \  a + b -- said once\n\
@@ -195,6 +276,32 @@
   \  -- and again\n\
   \  + c\n"
 
+aRunUnder =
+  "foo =\n\
+  \  a + b\n\
+  \  -- and again\n\
+  \  -- and once more\n\
+  \bar = 2\n"
+
+linedUpWithWhatFollows =
+  "foo =\n\
+  \  a + b\n\
+  \  -- and again\n\
+  \  + c\n"
+
+indentedPastTheLine =
+  "foo =\n\
+  \  a + b\n\
+  \    -- and again\n\
+  \bar = 2\n"
+
+linedUpWithTheNextStatement =
+  "main = do\n\
+  \  let value =\n\
+  \        one <|> two\n\
+  \  -- something\n\
+  \  print value\n"
+
 ----------------------------------------------------------------------------
 -- Running the rules
 
@@ -215,7 +322,7 @@
   [(renderComment c, lookup (commentSpan c) gathered) | c <- cs]
   where
     cs = commentsIn src
-    gathered = fst (foldl collect ([], placeComments regions fences cs) regions)
+    gathered = fst (foldl collect ([], placeComments regions mempty fences cs) regions)
     collect (found, placements) r = case claimPlaced r placements of
       (mine, rest) -> (found <> [(commentSpan c, (p, r)) | (p, c) <- mine], rest)
 
diff --git a/tests/Tilia/Corpus.hs b/tests/Tilia/Corpus.hs
--- a/tests/Tilia/Corpus.hs
+++ b/tests/Tilia/Corpus.hs
@@ -19,6 +19,7 @@
     -- * Obtaining one
     Example (..),
     obtain,
+    corpusCache,
   )
 where
 
@@ -122,7 +123,9 @@
               expectDeclined =
                 [ "other" </> "position-pragmas.hs",
                   "other" </> "cpp" </> "unbalanced.hs",
-                  "other" </> "cpp" </> "define-in-a-quasiquote.hs"
+                  "other" </> "cpp" </> "define-in-a-quasiquote.hs",
+                  "other" </> "cpp" </> "macro-standing-for-a-bracket.hs",
+                  "other" </> "cpp" </> "branch-opening-a-bracket-it-does-not-close.hs"
                 ]
             },
       corpusInPackages = False
@@ -170,7 +173,10 @@
         Listed
           Lists
             { expectSkip =
-                ["perf" </> "compiler" </> "parsing001.hs"] <> ghcUnreadable,
+                [ "numeric" </> "should_run" </> "quotRem2Large.hs",
+                  "perf" </> "compiler" </> "parsing001.hs"
+                ]
+                  <> ghcUnreadable,
               expectDeclined = ghcDeclined
             },
       corpusInPackages = False
@@ -231,6 +237,7 @@
     "exceptions-0.10.12",
     "fay-0.24.2.0",
     "free-5.2",
+    "fsnotify-0.4.4.0",
     "hakyll-4.17.0.0",
     "hashable-1.5.1.0",
     "haxl-2.5.1.1",
@@ -244,6 +251,7 @@
     "intero-0.1.40",
     "leksah-0.16.2.2",
     "lens-5.3.6",
+    "lifted-base-0.2.3.12",
     "megaparsec-9.8.1",
     "microlens-0.5.0.0",
     "mtl-2.3.2",
@@ -270,6 +278,7 @@
     "servant-0.20.3.0",
     "servant-server-0.20.3.0",
     "shake-0.19.9",
+    "singletons-3.0.4",
     "split-0.2.5",
     "stack-9.9.9",
     "statistics-0.16.5.0",
@@ -309,6 +318,14 @@
     "declaration" </> "value" </> "function" </> "parens-comments.hs",
     "import" </> "comments-inside-imports.hs",
     "import" </> "comment-between-merged-imports.hs",
+    "import" </> "comment-before-merged-imports.hs",
+    "import" </> "data.hs",
+    "import" </> "explicit-imports.hs",
+    "import" </> "explicit-level-imports.hs",
+    "import" </> "merging-0.hs",
+    "import" </> "merging-1.hs",
+    "import" </> "merging-2.hs",
+    "import" </> "simple.hs",
     "declaration" </> "data" </> "with-comment.hs",
     "declaration" </> "data" </> "record-empty-haddock.hs",
     "other" </> "empty-haddock.hs",
@@ -319,6 +336,7 @@
     "declaration" </> "value" </> "function" </> "record" </> "wildcard-comments-0.hs",
     "declaration" </> "value" </> "function" </> "record" </> "wildcard-comments-1.hs",
     "other" </> "pragma-comments-after.hs",
+    "other" </> "pragma.hs",
     "declaration" </> "value" </> "function" </> "infix" </> "esqueleto-0.hs",
     "declaration" </> "value" </> "function" </> "infix" </> "esqueleto-1.hs",
     "declaration" </> "class" </> "default-signatures.hs",
@@ -326,7 +344,20 @@
     "declaration" </> "deriving" </> "singleline.hs",
     "declaration" </> "deriving" </> "multiline.hs",
     "declaration" </> "deriving" </> "overlapping.hs",
-    "declaration" </> "warning" </> "warning-single-line.hs"
+    "declaration" </> "warning" </> "warning-single-line.hs",
+    "declaration" </> "value" </> "function" </> "parallel-comprehensions-complex.hs",
+    "other" </> "comment-opening-a-list.hs",
+    "declaration" </> "class" </> "newlines-between-methods.hs",
+    "declaration" </> "instance" </> "newlines-between-methods.hs",
+    "other" </> "comment-in-empty-list.hs",
+    "declaration" </> "class" </> "associated-type-defaults.hs",
+    "declaration" </> "class" </> "default-implementations-comments.hs",
+    "other" </> "invalid-haddock-1.hs",
+    "declaration" </> "value" </> "function" </> "infix" </> "do.hs",
+    "declaration" </> "data" </> "multiline-arg-parens.hs",
+    "module-header" </> "multiline-with-comments.hs",
+    "declaration" </> "value" </> "function" </> "awkward-comment-1.hs",
+    "declaration" </> "signature" </> "pattern" </> "multiline.hs"
   ]
     <> ormoluRecordBraces
     <> ormoluUnreadable
diff --git a/tests/Tilia/Corpus/Manifest.hs b/tests/Tilia/Corpus/Manifest.hs
--- a/tests/Tilia/Corpus/Manifest.hs
+++ b/tests/Tilia/Corpus/Manifest.hs
@@ -15,7 +15,10 @@
     Manifest,
     readManifest,
     writeManifest,
+    Report,
+    readReport,
     writeReport,
+    reasonLines,
     accepting,
   )
 where
@@ -138,6 +141,34 @@
     width =
       2 + maximum (1 : fmap (T.length . outcomeName . entryOutcome) (Map.elems manifest))
 
+-- | The reasons a report gives, by example: the outcome it is filed under,
+-- and the lines that say why.
+type Report = Map FilePath (Outcome, [Text])
+
+-- | Read a report back. A missing one is an empty one, as with
+-- 'readManifest'.
+readReport :: FilePath -> IO Report
+readReport path =
+  try (T.readFile path) >>= \case
+    Left (_ :: SomeException) -> pure Map.empty
+    Right text -> pure (go Nothing Map.empty (T.lines text))
+  where
+    go section report = \case
+      [] -> report
+      rule : heading : rule' : rest
+        | ruled rule,
+          ruled rule',
+          Just outcome <- outcomeNamed (fst (T.breakOn " (" heading)) ->
+            go (Just outcome) report rest
+      name : rest
+        | Just outcome <- section,
+          not (T.null name),
+          not (" " `T.isPrefixOf` name) ->
+            let (reason, rest') = span ("    " `T.isPrefixOf`) rest
+             in go section (Map.insert (T.unpack name) (outcome, reason) report) rest'
+      _ : rest -> go section report rest
+    ruled line = not (T.null line) && T.all (== '=') line
+
 -- | Write the reasons beside the record.
 writeReport :: FilePath -> [(FilePath, Outcome, Text)] -> IO ()
 writeReport path entries = do
@@ -152,10 +183,7 @@
     first (name, _, _) = name
     sections = [Broken, DoesNotParse, PartlyChecked, Declined, NotUtf8]
     header =
-      [ "Why every example of this corpus that is not `formatted` is not.",
-        "",
-        "Generated beside the manifest, and compared against nothing: this",
-        "file is the work list, and it is free to say as much as it likes.",
+      [ "Hackage modules that currently do not format cleanly.",
         "",
         T.pack (show (length entries))
           <> " examples, "
@@ -171,8 +199,11 @@
         ""
       ]
         <> concatMap entry es
-    entry (name, why) =
-      [T.pack name] <> fmap ("    " <>) (T.lines (T.strip why)) <> [""]
+    entry (name, why) = [T.pack name] <> reasonLines why <> [""]
+
+-- | The lines a report gives an example's reason.
+reasonLines :: Text -> [Text]
+reasonLines = fmap ("    " <>) . T.lines . T.strip
 
 -- | Is this run supposed to write the records rather than check against
 -- them?
diff --git a/tests/Tilia/CorpusSpec.hs b/tests/Tilia/CorpusSpec.hs
--- a/tests/Tilia/CorpusSpec.hs
+++ b/tests/Tilia/CorpusSpec.hs
@@ -23,16 +23,16 @@
 import Tilia.Cpp
   ( answeredLeaves,
     answeredLinearLeaves,
-    blankCpp,
     countLeaves,
     describeCppError,
+    everyBranch,
     formatWithCpp,
     usesCpp,
   )
 import Tilia.Diff (diff)
 import Tilia.Doc (defaultRenderOptions, printDoc)
 import Tilia.Equivalence (commentDifference, syntaxDifference)
-import Tilia.Palette (Palette, paletteFor)
+import Tilia.Palette (Palette (Plain), paletteFor)
 import Tilia.Parser
   ( ParseError (..),
     ParsedModule (..),
@@ -42,7 +42,6 @@
   )
 import Tilia.Pragma (effectiveExtensions, movesPositions)
 import Tilia.Render (RenderConfig, defaultRenderConfig, renderModule)
-import Tilia.Source (comments)
 import Tilia.Span (spanStartColumn, spanStartLine)
 import Tilia.Span.Ghc (spanOfSrcSpan)
 import Tilia.TestConfig (exampleRenderConfig)
@@ -60,14 +59,15 @@
   describe (corpusName corpus) $
     runIO (obtain corpus) >>= \case
       Left problem ->
-        it "is available" . pendingWith $
+        it "is available" . expectationFailure $
           "corpus not on this machine and could not be fetched: " <> T.unpack problem
       Right examples -> do
         palette <- runIO paletteFor
-        let run = check palette
         case corpusExpectations corpus of
-          Listed lists -> againstLists lists run examples
-          Recorded path -> againstRecord path run examples
+          Listed lists -> againstLists lists (check palette) examples
+          -- Plain, so that what a record says does not depend on whether the
+          -- run that wrote it printed to a terminal.
+          Recorded path -> againstRecord path (check Plain) examples
 
 -- | A corpus small enough to name its exceptions in "Tilia.Corpus".
 againstLists :: Lists -> (Example -> IO Result) -> [Example] -> Spec
@@ -121,6 +121,7 @@
 
     checked = do
       manifest <- runIO (readManifest path)
+      report <- runIO (readReport reportPath)
       parallel $ for_ examples $ \example ->
         it (exampleName example) $ do
           Result outcome why digest <- run example
@@ -131,6 +132,12 @@
                   expectationFailure (T.unpack (moved (entryOutcome expected) outcome why))
               | entryDigest expected /= digest ->
                   expectationFailure (T.unpack (rewritten (entryDigest expected) digest))
+              | Just problem <-
+                  misreported
+                    (Map.lookup (exampleName example) report)
+                    outcome
+                    (reasonLines (T.take reasonLength why)) ->
+                  expectationFailure (T.unpack problem)
               | otherwise -> case outcome of
                   Formatted -> pure ()
                   Declined -> pure ()
@@ -139,14 +146,39 @@
                   PartlyChecked -> pendingWith (T.unpack why)
                   Broken -> pendingWith (T.unpack (T.take reasonLength why))
       it "records nothing it does not have" $ do
-        let had = Set.fromList (fmap exampleName examples)
-            gone = [n | n <- Map.keys manifest, not (Set.member n had)]
+        let gone = [n | n <- Map.keys manifest, not (Set.member n had)]
         unless (null gone) . expectationFailure $
           show (length gone)
             <> " entries name examples this corpus does not have, starting with "
             <> unwords (take 5 gone)
             <> regenerate
+      it "reports nothing it does not have" $ do
+        let gone = [n | n <- Map.keys report, not (Set.member n had)]
+        unless (null gone) . expectationFailure $
+          reportPath
+            <> " gives reasons for "
+            <> show (length gone)
+            <> " examples this corpus does not have, starting with "
+            <> unwords (take 5 gone)
+            <> regenerate
 
+    had = Set.fromList (fmap exampleName examples)
+
+    misreported filed outcome reason = case (outcome, filed) of
+      (Formatted, Nothing) -> Nothing
+      (Formatted, Just _) ->
+        Just (T.pack reportPath <> " gives a reason why this is not formatted, and it is" <> T.pack regenerate)
+      (_, Just (filedUnder, given))
+        | filedUnder == outcome && given == reason -> Nothing
+      _ ->
+        Just $
+          T.pack reportPath
+            <> " says otherwise why this "
+            <> outcomeName outcome
+            <> ", which is now:\n"
+            <> T.unlines reason
+            <> T.pack regenerate
+
     unrecorded outcome =
       "this is not in "
         <> T.pack path
@@ -288,11 +320,7 @@
                           <> "\n"
                           <> against "output"
                       )
-                | Just difference <-
-                    commentDifference
-                      (pmModule before, pmModule after)
-                      (comments (pmSource before))
-                      (comments (pmSource after)) ->
+                | Just difference <- commentDifference before after ->
                     told
                       formatted
                       Broken
@@ -326,7 +354,7 @@
     render parsed =
       printDoc
         defaultRenderOptions
-        (renderModule (exampleRenderConfig package source (pmModule parsed)) parsed)
+        (renderModule (exampleRenderConfig package source (pure parsed)) parsed)
 
 ----------------------------------------------------------------------------
 -- Checking an example that involved the preprocessor
@@ -380,7 +408,7 @@
         (Right went, Right came)
           | (why : _) <- alongside went came ->
               told formatted Broken (why <> "\n" <> against formatted)
-          | otherwise -> case formatWithCpp parser render path formatted of
+          | otherwise -> case formatWithCpp parser (renderConfigFor parser path package formatted) path formatted of
               Left why ->
                 told formatted Broken ("the output cannot be formatted again: " <> describeCppError why)
               Right settled
@@ -428,11 +456,7 @@
       (Right before, Right after)
         | Just difference <- syntaxDifference (pmModule before) (pmModule after) ->
             Just ("a different program, in one configuration: " <> difference)
-        | Just difference <-
-            commentDifference
-              (pmModule before, pmModule after)
-              (comments (pmSource before))
-              (comments (pmSource after)) ->
+        | Just difference <- commentDifference before after ->
             Just ("comments, in one configuration: " <> difference)
         | otherwise -> Nothing
 
@@ -474,6 +498,4 @@
 -- | What to print an example's configurations with.
 renderConfigFor :: ParserConfig -> FilePath -> [Extension] -> Text -> RenderConfig
 renderConfigFor parser path package source =
-  case parseModule parser path (blankCpp source) of
-    Right whole -> exampleRenderConfig package source (pmModule whole)
-    Left _ -> defaultRenderConfig
+  maybe defaultRenderConfig (exampleRenderConfig package source) (everyBranch parser path source)
diff --git a/tests/Tilia/Cpp/MacrosSpec.hs b/tests/Tilia/Cpp/MacrosSpec.hs
--- a/tests/Tilia/Cpp/MacrosSpec.hs
+++ b/tests/Tilia/Cpp/MacrosSpec.hs
@@ -4,16 +4,17 @@
 module Tilia.Cpp.MacrosSpec (spec) where
 
 import Data.Map.Strict qualified as Map
+import Data.Set qualified as Set
 import Data.Text (Text)
 import Data.Text qualified as T
 import Test.Hspec
 import Tilia.Cpp.Directives (withoutRuledOut)
 import Tilia.Cpp.Macros
 
--- | A plan with one dependency at 1.2.3 and a compiler at 9.10.3.
+-- | A plan with one dependency at 1.2.3 and GHC at 9.10.3.
 macros :: Macros
 macros =
-  Macros
+  mempty
     { macroVersions =
         Map.fromList
           [ ("MIN_VERSION_thing", [1, 2, 3]),
@@ -24,7 +25,8 @@
           [ ("__GLASGOW_HASKELL__", 910),
             ("__GLASGOW_HASKELL_PATCHLEVEL1__", 3),
             ("__GLASGOW_HASKELL_PATCHLEVEL2__", 0)
-          ]
+          ],
+      macroUndefined = Set.fromList ["__MHS__", "__HUGS__"]
     }
 
 -- | What this guard comes to, given the plan above.
@@ -66,6 +68,34 @@
         ]
         `shouldBe` [Just True, Just True, Just False]
 
+  describe "a guard about another compiler" $ do
+    it "says its macros are not defined" $
+      fmap
+        answer
+        [ "if defined(__MHS__)",
+          "if defined __HUGS__",
+          "ifdef __MHS__",
+          "ifndef __HUGS__",
+          "if !defined(__MHS__)"
+        ]
+        `shouldBe` [Just False, Just False, Just False, Just True, Just True]
+
+    it "reads them as zero where a number is asked for" $
+      fmap answer ["if __MHS__", "if __HUGS__ >= 200", "if __HUGS__ == 0"]
+        `shouldBe` [Just False, Just False, Just True]
+
+    it "answers a guard that names this compiler alongside" $
+      fmap
+        answer
+        [ "if defined(__GLASGOW_HASKELL__) && !defined(__MHS__)",
+          "if defined(__MHS__) || __GLASGOW_HASKELL__ >= 902"
+        ]
+        `shouldBe` [Just True, Just True]
+
+    it "says nothing where a flag it does not know decides" $
+      fmap answer ["if defined(__MHS__) || defined(FOO)", "if !defined(__MHS__) && defined(FOO)"]
+        `shouldBe` [Nothing, Nothing]
+
   describe "an answer that needs more than one question settled" $ do
     it "carries a false through a conjunction whatever else is in it" $
       answer "if defined(SOMETHING) && MIN_VERSION_thing(2,0,0)"
@@ -114,6 +144,100 @@
       fmap answer ["else", "endif", "define FOO 1"]
         `shouldBe` [Nothing, Nothing, Nothing]
 
+  describe "a guard about a macro known to be defined or not" $ do
+    let known = mempty{macroDefined = Set.fromList ["ON"], macroUndefined = Set.fromList ["OFF"]}
+        knownAnswer = guardHolds known
+
+    it "takes one that is not defined for 0" $
+      fmap knownAnswer ["if OFF", "if !OFF", "if OFF > 1"]
+        `shouldBe` [Just False, Just True, Just False]
+
+    it "says whether each is defined" $
+      fmap knownAnswer ["ifdef ON", "ifndef ON", "ifdef OFF", "if defined(OFF)"]
+        `shouldBe` [Just True, Just False, Just False, Just False]
+
+    it "says nothing about the value of one that is defined" $
+      knownAnswer "if ON" `shouldBe` Nothing
+
+  describe "what a guard implies about which macros are defined" $ do
+    let defined n = mempty{macroDefined = Set.singleton n}
+        notDefined n = mempty{macroUndefined = Set.singleton n}
+
+    it "reads it off a guard asking whether one is" $
+      fmap
+        (impliedBy True)
+        ["ifdef A", "ifndef A", "if defined(A)", "if defined A", "if !defined(A)"]
+        `shouldBe` [ defined "A",
+                     notDefined "A",
+                     defined "A",
+                     defined "A",
+                     notDefined "A"
+                   ]
+
+    it "takes a failing guard to say the opposite" $
+      fmap (impliedBy False) ["ifdef A", "if !defined(A)"]
+        `shouldBe` [notDefined "A", defined "A"]
+
+    it "takes a macro that is not 0 for one that is defined" $
+      fmap (impliedBy True) ["if A", "elif A"] `shouldBe` [defined "A", defined "A"]
+
+    it "learns nothing from a macro that is 0, which it may be by not being defined" $
+      (impliedBy False "if A", impliedBy True "if !A") `shouldBe` (mempty, mempty)
+
+    it "reads both sides of a conjunction that holds and of a disjunction that fails" $
+      ( impliedBy True "if defined(A) && !defined(B)",
+        impliedBy False "if defined(A) || defined(B)"
+      )
+        `shouldBe` (defined "A" <> notDefined "B", notDefined "A" <> notDefined "B")
+
+    it "learns nothing from a conjunction that fails or a disjunction that holds" $
+      (impliedBy False "if defined(A) && defined(B)", impliedBy True "if defined(A) || defined(B)")
+        `shouldBe` (mempty, mempty)
+
+    it "learns nothing from a call of a macro other than a version test" $
+      fmap (impliedBy True) ["if CHECK(1,2)", "if MIN_VERSION_base(x)", "if 1"]
+        `shouldBe` [mempty, mempty, mempty]
+
+  describe "a guard under what other guards imply about versions" $ do
+    let knownAnswer =
+          guardHolds
+            ( impliedBy True "if MIN_VERSION_base(4,10,0) && !(MIN_VERSION_base(4,12,0))"
+                <> impliedBy True "if MIN_VERSION_base(4,9)"
+            )
+
+    it "is settled where the bounds they put on the version decide it" $
+      fmap
+        knownAnswer
+        [ "if MIN_VERSION_base(4,9,0)",
+          "if MIN_VERSION_base(4,10)",
+          "if MIN_VERSION_base(4,12)",
+          "if MIN_VERSION_base(5,0,0)",
+          "if MIN_VERSION_base(4,11,0)"
+        ]
+        `shouldBe` [Just True, Just True, Just False, Just False, Nothing]
+
+    it "reads each comparison of a macro with a number as bounds on it" $
+      fmap
+        ( \op ->
+            fmap
+              (guardHolds (impliedBy True ("if __GLASGOW_HASKELL__ " <> op <> " 908")))
+              ["if __GLASGOW_HASKELL__ >= 908", "if __GLASGOW_HASKELL__ >= 909"]
+        )
+        [">=", ">", "<", "<=", "==", "!="]
+        `shouldBe` [ [Just True, Nothing],
+                     [Just True, Just True],
+                     [Just False, Just False],
+                     [Nothing, Just False],
+                     [Just True, Just False],
+                     [Nothing, Nothing]
+                   ]
+
+    it "is settled by a failing guard as well" $
+      fmap
+        (guardHolds (impliedBy False "if __GLASGOW_HASKELL__ >= 908"))
+        ["if __GLASGOW_HASKELL__ < 908", "if __GLASGOW_HASKELL__ > 910"]
+        `shouldBe` [Just True, Just False]
+
   describe "blanking the branches a plan rules out" $ do
     it "leaves the taken branch and blanks the rest" $
       ruledOut
@@ -189,6 +313,14 @@
                      "import Two",
                      "#endif"
                    ]
+
+    it "blanks what only another compiler would see" $
+      ruledOut
+        [ "#if defined(__MHS__)",
+          "import Data.ZipList",
+          "#endif"
+        ]
+        `shouldBe` ["", "", ""]
 
     it "rules out a shim defining a macro the plan already has" $
       ruledOut
diff --git a/tests/Tilia/Cpp/PropertiesSpec.hs b/tests/Tilia/Cpp/PropertiesSpec.hs
--- a/tests/Tilia/Cpp/PropertiesSpec.hs
+++ b/tests/Tilia/Cpp/PropertiesSpec.hs
@@ -22,7 +22,7 @@
 spec :: Spec
 spec = modifyMaxSuccess (const 5000) $
   describe "a module the preprocessor runs over" $ do
-    xit "reaches its answer in one pass" $
+    it "reaches its answer in one pass" $
       property $ \m -> formatted m $ \out ->
         case format out of
           Left why -> counterexample (T.unpack ("re-formatting refused: " <> why)) False
@@ -39,6 +39,12 @@
               | (_, t) <- configurations
               ]
 
+    it "keeps what its directives say after their keyword" $
+      property $ \m -> formatted m $ \out ->
+        let remarked = Set.fromList . filter ("/*" `T.isInfixOf`) . T.lines
+            lost = Set.difference (remarked (sourceOf m)) (remarked out)
+         in counterexample (T.unpack (T.unlines ("lost:" : Set.toList lost))) (Set.null lost)
+
     it "is read as configurations it already had, once a plan rules some out" $
       property $ \m ->
         let source = sourceOf m
@@ -58,7 +64,7 @@
                           ]
               _ -> property Discard
 
-    xit "is the same program in every configuration it went in as" $
+    it "is the same program in every configuration it went in as" $
       property $ \m -> formatted m $ \out ->
         case (answeredLeaves (sourceOf m), answeredLeaves out) of
           (Right went, Right came) ->
@@ -77,11 +83,7 @@
 -- else, so that a module comes out with some of its conditionals answered
 -- and some of them left open.
 macros :: Macros
-macros =
-  Macros
-    { macroVersions = Map.fromList [("MIN_VERSION_thing", [1, 2, 3])],
-      macroNumbers = Map.empty
-    }
+macros = mempty{macroVersions = Map.fromList [("MIN_VERSION_thing", [1, 2, 3])]}
 
 format :: Text -> Either Text Text
 format source = case formatWithCpp defaultParserConfig defaultRenderConfig "M.hs" source of
@@ -206,5 +208,12 @@
   Cond g yes no ->
     ["#" <> g]
       <> concatMap written yes
-      <> (if null no then [] else "#else" : concatMap written no)
-      <> ["#endif"]
+      <> (if null no && T.null (remark g) then [] else ("#else" <> remark g) : concatMap written no)
+      <> ["#endif" <> remark g]
+
+-- | What a conditional asking this writes after its @#else@ and @#endif@,
+-- the same for every one of them, since the merge can print several as one.
+remark :: Text -> Text
+remark = \case
+  "ifdef OTHER" -> " /* OTHER */"
+  _ -> ""
diff --git a/tests/Tilia/CppSpec.hs b/tests/Tilia/CppSpec.hs
--- a/tests/Tilia/CppSpec.hs
+++ b/tests/Tilia/CppSpec.hs
@@ -4,10 +4,12 @@
 module Tilia.CppSpec (spec) where
 
 import Data.Map.Strict qualified as Map
+import Data.Maybe (isJust, maybeToList)
 import Data.Text (Text)
 import Data.Text qualified as T
 import Test.Hspec
 import Tilia.Cpp
+import Tilia.Cpp.Directives (implied)
 import Tilia.Doc.Internal (Doc)
 import Tilia.Equivalence (syntaxDifference)
 import Tilia.Parser (defaultParserConfig, parseModule, pmModule)
@@ -33,14 +35,6 @@
       let input = "module M where\n#if FLAG\n#error no\n#else\nf = 1\n#endif\n"
           output = "module M where\n#if FLAG\nf = 1\n#else\n#error no\n#endif\n"
       (said (correspondingBranches input output) >>= mapM_ sameBranch) `shouldSatisfy` isLeft
-  describe "branches which deliberately abort preprocessing" $ do
-    it "formats the valid branches and preserves the error directive" $
-      case formatCpp errorAlternative of
-        Left why -> expectationFailure (T.unpack why)
-        Right formatted -> formatted `shouldSatisfy` T.isInfixOf "#error Unsupported word size"
-    it "checks only valid configurations and is idempotent" $ do
-      roundTrip errorAlternative `shouldBe` Right ()
-      settles errorAlternative `shouldBe` Right ()
   describe "splitting a module on its conditional" $ do
     it "keeps the directive as written, keyword and all" $
       cfgGuards <$> configurations atDeclarations
@@ -95,106 +89,22 @@
     it "print identically across all three branches of an #elif" $
       disagreements withElif `shouldBe` Right []
 
-  describe "every configuration of the output"
-    $ it "is the same program as that configuration of the input"
-    $ mapM_ (`shouldBe` Right ()) (fmap roundTrip everyFixture)
-
-  describe "formatting an already formatted module"
-    $ it "changes nothing, for every module the prototype handles"
-    $ mapM_ (`shouldBe` Right ()) (fmap settles everyFixture)
-
-  describe "an #elif chain" $ do
-    it "is printed back as one conditional rather than as nested ones" $
-      formatCpp withElif
-        `shouldBe` Right
-          ( T.unlines
-              [ "module M where",
-                "",
-                "before = 1",
-                "",
-                "#if A",
-                "mid = 1",
-                "#elif B",
-                "mid = 2",
-                "#else",
-                "mid = 3",
-                "#endif",
-                "",
-                "after = 4"
-              ]
-          )
-
-    it "keeps its shape when the chain has no #else" $
-      formatCpp elifWithoutElse
-        `shouldBe` Right
-          ( T.unlines
-              [ "module M where",
-                "",
-                "#if A",
-                "mid = 1",
-                "#elif B",
-                "mid = 2",
-                "#endif",
-                "",
-                "after = 4"
-              ]
-          )
-
-  describe "conditionals nested inside one another" $ do
-    it "are printed back nested, not flattened into compound conditions" $
-      formatCpp nested
-        `shouldBe` Right
-          ( T.unlines
-              [ "module M where",
-                "",
-                "#if OUTER",
-                "a = 1",
-                "",
-                "#if INNER",
-                "b = 2",
-                "#endif",
-                "#else",
-                "a = 3",
-                "#endif",
-                "",
-                "after = 4"
-              ]
-          )
-
-    it "reach three leaf configurations rather than four" $
-      said (length <$> leaves nested) `shouldBe` Right 3
+  describe "conditionals nested inside one another"
+    $ it "reach three leaf configurations rather than four"
+    $ said (length <$> leaves nested) `shouldBe` Right 3
 
   describe "several conditionals side by side" $ do
-    it "each end up around what they were written around" $
-      formatCpp twoConditionals
-        `shouldBe` Right
-          ( T.unlines
-              [ "module M where",
-                "",
-                "#if FIRST",
-                "a = 1",
-                "#else",
-                "a = 2",
-                "#endif",
-                "",
-                "between = 0",
-                "",
-                "#if SECOND",
-                "b = 1",
-                "#endif",
-                "",
-                "after = 4"
-              ]
-          )
-
     it "multiply, as configurations" $
       said (length <$> leaves twoConditionals) `shouldBe` Right 4
 
     it "add, as formattings: twenty of them are twenty-one, not a million" $
       formatCpp (sideBySide 20) `shouldSatisfy` isRight
 
+    it "cost only the declarations each of them reaches" $
+      formatCpp (apart 400) `shouldSatisfy` isRight
+
     it "are refused once even the sum is more than the budget allows" $
-      formatCpp (sideBySide 100) `shouldSatisfy` isLeft
+      formatCpp (oneDeclaration 100 1000) `shouldSatisfy` isLeft
 
   describe "counting the configurations" $ do
     it "agrees with enumerating them, where enumerating them is possible" $
@@ -231,6 +141,65 @@
           (const False)
           (all (\l -> not ("inner" `T.isInfixOf` l) || "outer" `T.isInfixOf` l))
 
+  describe "what answers imply about the macros" $ do
+    it "rules out an #if X holding where #ifdef X fails" $
+      implied [([Guard "ifdef X"], 1), ([Guard "if X"], 0)] `shouldBe` Nothing
+
+    it "allows an #if X failing where #ifdef X holds, as X defined as 0" $
+      implied [([Guard "ifdef X"], 0), ([Guard "if X"], 1)] `shouldSatisfy` isJust
+
+    it "rules out #ifdef X and #ifndef X both holding" $
+      implied [([Guard "ifdef X"], 0), ([Guard "ifndef X"], 0)] `shouldBe` Nothing
+
+    it "takes an #if 0 to ask something, as code is put aside with it" $
+      implied [([Guard "if 0"], 0)] `shouldSatisfy` isJust
+
+    it "rules out a version below one and at least a later one" $
+      implied
+        [ ([Guard "if MIN_VERSION_base(4,10,0)"], 1),
+          ([Guard "if MIN_VERSION_base(4,11,0)"], 0)
+        ]
+        `shouldBe` Nothing
+
+    it "allows a version at least one and below a later one" $
+      implied
+        [ ([Guard "if MIN_VERSION_base(4,10,0)"], 0),
+          ([Guard "if MIN_VERSION_base(4,11,0)"], 1)
+        ]
+        `shouldSatisfy` isJust
+
+    it "takes a version with zeros at its end for the same version" $
+      implied
+        [ ([Guard "if MIN_VERSION_base(4,10)"], 0),
+          ([Guard "if MIN_VERSION_base(4,10,0)"], 1)
+        ]
+        `shouldBe` Nothing
+
+    it "rules out a range whose bound another answer contradicts" $
+      implied
+        [ ([Guard "if MIN_VERSION_base(4,10,0)"], 1),
+          ([Guard "if MIN_VERSION_base(4,10,0) && !(MIN_VERSION_base(4,12,0))"], 0)
+        ]
+        `shouldBe` Nothing
+
+    it "rules out a compiler below one version and at least a later one" $
+      implied
+        [ ([Guard "if __GLASGOW_HASKELL__ >= 908", Guard "elif __GLASGOW_HASKELL__ >= 906"], 2),
+          ([Guard "if __GLASGOW_HASKELL__ > 906"], 0)
+        ]
+        `shouldBe` Nothing
+
+  describe "configurations no definition of the macros gives" $ do
+    it "are left out of every configuration of a module" $
+      said (length <$> leaves askedTwoWays) `shouldBe` Right 3
+
+    it "are left out of what is compared before and after formatting" $
+      (all parses . concatMap (maybeToList . fst) <$> said (correspondingBranches askedTwoWays askedTwoWays))
+        `shouldBe` Right True
+
+    it "are not taken to cover a branch" $
+      (all parses <$> said (branchLeaves askedTwoWays)) `shouldBe` Right True
+
   describe "covering every branch" $ do
     it "gives a module with no conditionals one configuration, its own" $
       said (length <$> branchLeaves "module M where\nx = 1\n") `shouldBe` Right 1
@@ -252,6 +221,19 @@
       (said (length <$> branchLeaves (sideBySide 20)), said (countLeaves (sideBySide 20)))
         `shouldBe` (Right 21, Right (2 ^ (20 :: Int)))
 
+  describe "parsing every branch" $ do
+    it "parses branches that parse together as one module" $
+      branchesParsed atDeclarations `shouldBe` Just 1
+
+    it "parses alternatives that do not parse together a branch leaf at a time" $
+      branchesParsed alternatives `shouldBe` Just 2
+
+    it "leaves out a branch leaf that does not parse" $
+      branchesParsed oneAlternativeParses `shouldBe` Just 1
+
+    it "has nothing where no branch leaf parses" $
+      branchesParsed noAlternativeParses `shouldBe` Nothing
+
   describe "varying one conditional at a time" $ do
     it "is the baseline and one configuration per further branch" $
       said (length <$> linearLeaves (sideBySide 63)) `shouldBe` Right 64
@@ -260,141 +242,31 @@
       (said (linearLeaves atDeclarations), said (leaves atDeclarations))
         `shouldSatisfy` uncurry (==)
 
-  describe "conditionals that reach into the same construct" $ do
-    it "are still formatted, by varying them together" $
-      roundTrip twoInOneExpression `shouldBe` Right ()
-
-    it "come back nested, still covering all four configurations" $
-      (formatCpp twoInOneExpression >>= said . leaves) `shouldSatisfy` either (const False) ((== 4) . length)
-
-    it "still settle" $
-      settles twoInOneExpression `shouldBe` Right ()
-
-  describe "a conditional the construct around it straddles" $ do
-    it "comes to rest on the context, with nothing written out twice" $
-      formatCpp conditionalContext
-        `shouldBe` Right
-          ( T.unlines
-              [ "module M where",
-                "",
-                "f ::",
-                "#ifdef A",
-                "  (Ord a) =>",
-                "#endif",
-                "  a -> [(String, Int)] -> Maybe String -> Either String Int -> IO ()",
-                "f x pairs fallback outcome = print (x, pairs, fallback, outcome)"
-              ]
-          )
-
-    it "gives back what was written" $
-      formatCpp conditionalContext `shouldBe` Right conditionalContext
-
-    it "settles on the first pass" $
-      settles conditionalContext `shouldBe` Right ()
-
-    it "reads back as the same program in every configuration" $
-      roundTrip conditionalContext `shouldBe` Right ()
-
-  describe "a conditional inside an expression" $ do
-    it "is left exactly where it was written" $
-      formatCpp splitExpression
-        `shouldBe` Right "module M where\n\nf x =\n  g x\n#ifdef FOO\n    + 1\n#endif\n"
-
-    it "still reads back as the same program in every configuration" $
-      roundTrip splitExpression `shouldBe` Right ()
-
-  describe "a conditional whose branches say the same thing"
-    $ it "is kept, because the branches are not at the same spans"
-    $ formatCpp sameEitherWay
-      `shouldBe` Right "module M where\n\n#ifdef FOO\nmid = 2\n#else\nmid = 2\n#endif\n"
-
-  describe "a directive that asks nothing" $ do
-    it "comes back at the line it was written on" $
-      formatCpp withDefine
-        `shouldBe` Right "module M where\n\n#define N 1\nf = N\n"
-
-    it "settles" $
-      settles withDefine `shouldBe` Right ()
-
-    it "still reads back as the same program" $
-      roundTrip withDefine `shouldBe` Right ()
-
-    it "is refused when the module is not Haskell without expanding it" $
-      formatCpp macroDeclaration `shouldSatisfy` isLeft
-
-    xit "does not run a Haddock into the comment under it" $
-      roundTrip defineBetweenConditionals `shouldBe` Right ()
-
   describe "directives the prototype cannot read" $ do
     it "refuses a module whose conditionals do not balance" $
-      formatCpp unbalanced `shouldSatisfy` isLeft
+      formatCpp unbalanced `shouldBe` Left "the #ifdef at line 3 is never closed"
 
-    it "refuses an #else that comes before an #elif" $
-      formatCpp elseBeforeElif `shouldSatisfy` isLeft
+    it "refuses an #endif with no conditional to close" $
+      formatCpp strayEndif `shouldBe` Left "the #endif at line 4 has no conditional to belong to"
 
-    it "refuses a conditional no configuration can be parsed out of" $
-      formatCpp unparseableAlone `shouldSatisfy` isLeft
+    it "refuses an #else that comes before an #elif" $
+      formatCpp elseBeforeElif
+        `shouldBe` Left "the #elif at line 7 comes after the #else of its conditional"
 
-----------------------------------------------------------------------------
--- The modules the question is asked of
+    it "refuses a directive inside a quasiquote" $
+      formatCpp includeInQuasiquote
+        `shouldBe` Left "the #include at line 7 is inside a quasi-quote or a multi-line string"
 
-errorAlternative :: Text
-errorAlternative =
-  T.unlines
-    [ "{-# LANGUAGE CPP #-}",
-      "module M where",
-      "value :: Int",
-      "value = if True then",
-      "#if WORD_SIZE_IN_BITS == 64",
-      "  64",
-      "#elif WORD_SIZE_IN_BITS == 32",
-      "  32",
-      "#else",
-      "#error Unsupported word size",
-      "#endif",
-      "  else 0"
-    ]
+    it "refuses an alternative aborting with #error that it cannot format" $
+      formatCpp abortingAlternative
+        `shouldBe` Left "the alternative that the #error at line 7 aborts cannot be formatted without parsing it"
 
--- | Everything that is meant to come out the other side, for the properties
--- that should hold of all of it.
-everyFixture :: [Text]
-everyFixture =
-  [ atDeclarations,
-    unevenBranches,
-    withComments,
-    commentInsideBranch,
-    packedTogether,
-    differingImports,
-    withoutElse,
-    withElif,
-    elifWithoutElse,
-    nested,
-    twoConditionals,
-    twoInOneExpression,
-    splitExpression
-  ]
+    it "refuses a branch that a conditional around it asking the same question rules out" $
+      formatCpp ruledOut
+        `shouldBe` Left "the branch at line 6 is ruled out by a conditional around it that asks the same question"
 
--- | A directive that asks nothing, between two conditionals that ask the
--- same question.
---
--- The merge has no answer for this and wraps the module in a conditional
--- rather than the conditionals in the module. See the held-back example that
--- names it.
-defineBetweenConditionals :: Text
-defineBetweenConditionals =
-  T.unlines
-    [ "module M where",
-      "",
-      "-- | documentation",
-      "#if FLAG",
-      "-- a remark",
-      "f9 = 9",
-      "#endif",
-      "#define WIDE 1",
-      "#if FLAG",
-      "-- a remark",
-      "#endif"
-    ]
+----------------------------------------------------------------------------
+-- The modules the question is asked of
 
 -- | A conditional between two whole declarations, which is the case the
 -- design is meant to handle.
@@ -493,22 +365,6 @@
       "after = 4"
     ]
 
--- | Branches that import different modules, which is the commonest thing a
--- real conditional does.
-differingImports :: Text
-differingImports =
-  T.unlines
-    [ "module M where",
-      "",
-      "#ifdef FOO",
-      "import Data.Map",
-      "#else",
-      "import Data.Set",
-      "#endif",
-      "",
-      "f = 1"
-    ]
-
 -- | A conditional with no alternative, which is what most conditionals in
 -- real Haskell source are: a @MIN_VERSION@ test around a definition that
 -- newer or older compilers do not want.
@@ -619,6 +475,38 @@
         | i <- [1 .. n]
         ]
 
+-- | A module with @n@ conditionals, each around a declaration of its own
+-- and kept apart from the next by one that is not.
+apart :: Int -> Text
+apart n =
+  T.unlines $
+    ["module M where", ""]
+      <> concat
+        [ [ "#if C" <> T.pack (show i),
+            "x" <> T.pack (show i) <> " = 1",
+            "#else",
+            "x" <> T.pack (show i) <> " = 2",
+            "#endif",
+            "",
+            "y" <> T.pack (show i) <> " = 0",
+            ""
+          ]
+        | i <- [1 .. n]
+        ]
+
+-- | A module with one declaration holding @n@ conditionals and @m@ lines
+-- that are in every configuration.
+oneDeclaration :: Int -> Int -> Text
+oneDeclaration n m =
+  T.unlines $
+    ["module M where", "", "x =", "  [ 0"]
+      <> concat
+        [ ["#if C" <> T.pack (show i), "  , 1", "#endif"]
+        | i <- [1 .. n]
+        ]
+      <> replicate m "  , 0"
+      <> ["  ]"]
+
 -- | A module with @n@ conditionals in a row, all asking the same question.
 --
 -- Which makes them one question, however many times it is written down. The
@@ -660,112 +548,108 @@
       "#endif"
     ]
 
--- | A conditional around a signature's context, which the signature straddles.
---
--- The branches are of unequal length, so the construct the conditional is
--- inside occupies different lines in the two configurations — which is the
--- one case where a span honestly differs without anything having gone wrong.
--- The type is written long enough not to fit on a line once the context is
--- there and to fit comfortably once it is not, so the two configurations also
--- disagree about how to lay the group out.
-conditionalContext :: Text
-conditionalContext =
-  T.unlines
-    [ "module M where",
-      "",
-      "f ::",
-      "#ifdef A",
-      "  (Ord a) =>",
-      "#endif",
-      "  a -> [(String, Int)] -> Maybe String -> Either String Int -> IO ()",
-      "f x pairs fallback outcome = print (x, pairs, fallback, outcome)"
-    ]
-
--- | A conditional in the middle of an expression, which every configuration
--- can be parsed out of, but which no span survives.
-splitExpression :: Text
-splitExpression =
+-- | A conditional around two alternatives, which do not parse one after the
+-- other.
+alternatives :: Text
+alternatives =
   T.unlines
     [ "module M where",
       "",
-      "f x =",
-      "  g x",
-      "#ifdef FOO",
-      "    + 1",
+      "g =",
+      "#ifdef CHECK",
+      "  id $",
+      "    do",
+      "      print 1",
+      "#else",
+      "  do",
+      "    print 1",
       "#endif"
     ]
 
--- | Two conditionals reaching into one expression, so that their
--- differences land in the same place and cannot be applied side by side.
-twoInOneExpression :: Text
-twoInOneExpression =
+-- | An @#ifdef@ around a pragma, and an @#if@ asking about the same macro
+-- around code that needs the pragma, so that no configuration takes the
+-- code without the pragma.
+askedTwoWays :: Text
+askedTwoWays =
   T.unlines
-    [ "module M where",
-      "",
-      "f =",
-      "  a",
-      "#if X",
-      "    + b",
+    [ "{-# LANGUAGE CPP #-}",
+      "#ifdef USE_ST",
+      "{-# LANGUAGE RankNTypes #-}",
       "#endif",
-      "#if Y",
-      "    + c",
+      "module M where",
+      "#if USE_ST",
+      "run :: (forall s. s -> s) -> Int",
+      "run f = f 1",
       "#endif"
     ]
 
--- | A conditional whose two branches say the same thing.
-sameEitherWay :: Text
-sameEitherWay =
+-- | Two alternatives, only one of which parses.
+oneAlternativeParses :: Text
+oneAlternativeParses =
+  T.unlines ["module M where", "", "#ifdef FOO", "f = 1", "#else", "f = (", "#endif"]
+
+-- | Two alternatives, neither of which parses.
+noAlternativeParses :: Text
+noAlternativeParses =
+  T.unlines ["module M where", "", "#ifdef FOO", "f = (", "#else", "f = [", "#endif"]
+
+-- | An @#if@ with nothing to close it.
+unbalanced :: Text
+unbalanced = T.unlines ["module M where", "", "#ifdef FOO", "f = 1"]
+
+-- | An @#endif@ with nothing to close.
+strayEndif :: Text
+strayEndif = T.unlines ["module M where", "", "f = 1", "#endif"]
+
+-- | A directive that the preprocessor acts on although it is written inside
+-- a quasiquote, which is reproduced verbatim.
+includeInQuasiquote :: Text
+includeInQuasiquote =
   T.unlines
-    [ "module M where",
+    [ "{-# LANGUAGE QuasiQuotes #-}",
       "",
-      "#ifdef FOO",
-      "mid = 2",
-      "#else",
-      "mid  =  2",
-      "#endif"
+      "module M where",
+      "",
+      "banner =",
+      "  [template|",
+      "#include \"banner.txt\"",
+      "|]"
     ]
 
--- | A conditional that opens a bracket it does not close, so that dropping
--- the branch leaves something that is not a Haskell module at all.
---
--- Harder to come by than it looks. A conditional holding the only statement
--- of a @do@ block, or the only alternative of a @case@, still leaves both
--- configurations parsing, since GHC2021 has @EmptyCase@ and takes an empty
--- @do@. It is unbalanced delimiters that no blanking can rescue.
-unparseableAlone :: Text
-unparseableAlone =
+-- | An alternative that aborts with @#error@ and leaves an expression
+-- unfinished, in a module whose conditionals cannot be varied one at a
+-- time.
+abortingAlternative :: Text
+abortingAlternative =
   T.unlines
     [ "module M where",
       "",
-      "#ifdef FOO",
-      "f = (1",
+      "f =",
+      "#if A",
+      "  1",
+      "#else",
+      "#error \"b\"",
       "#endif",
-      "  + 2)"
+      "  + 2",
+      "#if A",
+      "g = 1",
+      "#endif"
     ]
 
--- | An @#if@ with nothing to close it.
-unbalanced :: Text
-unbalanced = T.unlines ["module M where", "", "#ifdef FOO", "f = 1"]
-
--- | A directive that is not a conditional, and so cannot be blanked away.
-withDefine :: Text
-withDefine = T.unlines ["module M where", "", "#define N 1", "f = N"]
-
--- | A macro standing for a piece of syntax rather than for a piece of
--- program.
---
--- @CLOSE@ is a bracket, so the module is only balanced once the macro has
--- been expanded. Nothing short of expanding it makes this Haskell, no
--- configuration of it parses, and there is no document to build. The same
--- shape as a conditional that opens a bracket it does not close, and refused
--- for the same reason.
-macroDeclaration :: Text
-macroDeclaration =
+-- | An @#else@ that the @#if@ around it rules out, which no configuration
+-- takes.
+ruledOut :: Text
+ruledOut =
   T.unlines
     [ "module M where",
       "",
-      "#define CLOSE )",
-      "f = (1 CLOSE"
+      "#if FLAG",
+      "#if FLAG",
+      "f = 1",
+      "#else",
+      "f = 2",
+      "#endif",
+      "#endif"
     ]
 
 -- | An @#else@ with an @#elif@ after it, which no preprocessor would accept
@@ -791,19 +675,6 @@
 isLeft = either (const True) (const False)
 isRight = either (const False) (const True)
 
--- | Format a module, then check that every configuration of what came out is
--- the same program as that configuration of what went in.
---
--- The variational form of the check the corpus already makes of every
--- example, with a @forall cfg@ in front of it. The conditionals come back in
--- the order they were written, so the two enumerations line up leaf for leaf
--- — and if they did not, the count would say so first.
-roundTrip :: Text -> Either Text ()
-roundTrip source = do
-  formatted <- formatCpp source
-  pairs <- said (correspondingBranches source formatted)
-  mapM_ sameBranch pairs
-
 sameBranch :: (Maybe Text, Maybe Text) -> Either Text ()
 sameBranch (Nothing, Nothing) = Right ()
 sameBranch (Just input, Just output) = sameProgram input output
@@ -819,19 +690,13 @@
       Right parsed -> Right (pmModule parsed)
 sameBranch _ = Left "preprocessing changed between succeeding and failing"
 
--- | Whether formatting what was formatted changes anything.
---
--- The property the corpus makes of every ordinary example. It is worth
--- asking separately here because the merge is the one part of the printer
--- whose input is its own output: directives go into the text, and the second
--- pass has to split on the very ones the first pass wrote.
-settles :: Text -> Either Text ()
-settles source = do
-  once <- formatCpp source
-  twice <- formatCpp once
-  if once == twice
-    then Right ()
-    else Left ("did not settle:\n" <> once <> "\nbecame:\n" <> twice)
+-- | Does a configuration parse, with what its own pragmas turn on?
+parses :: Text -> Bool
+parses t = either (const False) (const True) (parseModule defaultParserConfig "example.hs" t)
+
+-- | How many modules parsing every branch of a module comes to.
+branchesParsed :: Text -> Maybe Int
+branchesParsed = fmap length . everyBranch defaultParserConfig "example.hs"
 
 -- | A refusal as words, which is the only place these tests want one.
 said :: Either CppError a -> Either Text a
diff --git a/tests/Tilia/DiffSpec.hs b/tests/Tilia/DiffSpec.hs
new file mode 100644
--- /dev/null
+++ b/tests/Tilia/DiffSpec.hs
@@ -0,0 +1,101 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+-- | Finding what changed between two texts, and showing it.
+module Tilia.DiffSpec (spec) where
+
+import Data.Array (listArray, (!))
+import Data.Text (Text)
+import Data.Text qualified as T
+import Test.Hspec
+import Test.QuickCheck
+import Tilia.Diff
+import Tilia.Palette (Palette (..))
+
+spec :: Spec
+spec = do
+  describe "an edit script" $ do
+    it "takes the first sequence to the second" $
+      property $ \(Lines xs) (Lines ys) ->
+        followed (editScript xs ys) xs ys `shouldBe` True
+
+    it "keeps as many lines as the two have in common" $
+      property $ \(Lines xs) (Lines ys) ->
+        length (filter (== Context) (editScript xs ys)) `shouldBe` common xs ys
+
+    it "takes out the lines of every change before it puts any in" $
+      property $ \(Lines xs) (Lines ys) ->
+        editScript xs ys `shouldNotSatisfy` addsBeforeRemoving
+
+    it "takes a line out first where the search splits a change in two" $
+      editScript ["a", "b", "a"] ["d", "c", "b", "b"]
+        `shouldBe` [Removed, Added, Added, Added, Context, Removed]
+
+    it "keeps everything when nothing changed" $
+      editScript ["a", "b", "c"] ["a", "b", "c"] `shouldBe` [Context, Context, Context]
+
+    it "takes everything out and puts everything in when nothing is shared" $
+      editScript ["a", "b"] ["c"] `shouldBe` [Removed, Removed, Added]
+
+  describe "a unified diff" $ do
+    it "shows a changed line with the lines around it" $
+      diffInFull Plain "A.hs" "a\nb\nc\nd\ne\nf\ng\nh\n" "a\nb\nc\nd\nE\nf\ng\nh\n"
+        `shouldBe` T.intercalate
+          "\n"
+          [ "diff --git a/A.hs b/A.hs",
+            "--- a/A.hs",
+            "+++ b/A.hs",
+            "@@ -2,7 +2,7 @@",
+            " b",
+            " c",
+            " d",
+            "-e",
+            "+E",
+            " f",
+            " g",
+            " h"
+          ]
+
+    it "keeps changes far apart in hunks of their own" $
+      length (filter (T.isPrefixOf "@@") (T.lines (diff Plain ("x", "y") far (T.replace "k" "K" (T.replace "b" "B" far)))))
+        `shouldBe` 2
+  where
+    far = T.unlines ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l"]
+
+-- | A short run of lines out of a handful, so that two of them have much
+-- in common.
+newtype Lines = Lines [Text]
+  deriving (Show)
+
+instance Arbitrary Lines where
+  arbitrary = Lines <$> resize 30 (listOf (elements ["a", "b", "c", "d"]))
+  shrink (Lines ls) = Lines <$> shrinkList (const []) ls
+
+-- | Whether following the script consumes both sequences exactly, keeping
+-- only lines they share.
+followed :: [Mark] -> [Text] -> [Text] -> Bool
+followed [] [] [] = True
+followed (Context : ms) (x : xs) (y : ys) = x == y && followed ms xs ys
+followed (Removed : ms) (_ : xs) ys = followed ms xs ys
+followed (Added : ms) xs (_ : ys) = followed ms xs ys
+followed _ _ _ = False
+
+-- | Whether a line is put in somewhere right before one is taken out.
+addsBeforeRemoving :: [Mark] -> Bool
+addsBeforeRemoving marks = (Added, Removed) `elem` zip marks (drop 1 marks)
+
+-- | The length of the longest common subsequence.
+common :: [Text] -> [Text] -> Int
+common xs ys = table ! (0, 0)
+  where
+    n = length xs
+    m = length ys
+    xa = listArray (0, n - 1) xs
+    ya = listArray (0, m - 1) ys
+    table =
+      listArray
+        ((0, 0), (n, m))
+        [cell i j | i <- [0 .. n], j <- [0 .. m]]
+    cell i j
+      | i == n || j == m = 0
+      | xa ! i == ya ! j = 1 + table ! (i + 1, j + 1)
+      | otherwise = max (table ! (i + 1, j)) (table ! (i, j + 1))
diff --git a/tests/Tilia/Doc/InternalSpec.hs b/tests/Tilia/Doc/InternalSpec.hs
--- a/tests/Tilia/Doc/InternalSpec.hs
+++ b/tests/Tilia/Doc/InternalSpec.hs
@@ -7,7 +7,11 @@
 import Test.Hspec
 import Tilia.Doc
 import Tilia.Doc.Combinators
-import Tilia.Doc.Internal (groupLayout)
+import Tilia.Doc.Internal
+  ( Doc (DCppDirective, DHoldBack),
+    Spill (..),
+    groupLayout,
+  )
 import Tilia.Span
 
 spec :: Spec
@@ -85,6 +89,42 @@
     it "does not indent a line with nothing on it" $
       out (broken (indent (txt "a" <> hardBreak)))
         `shouldBe` "  a\n"
+    it "puts held-back text that spills onto lines of its own at the line's indentation" $
+      out (indent (txt "  a" <> held "-- x" <> held "-- y" <> hardBreak))
+        `shouldBe` "    a -- x\n  -- y\n"
+    it "lines spilled held-back text up with what was held back before it" $
+      out (indent (txt "  a" <> held "-- x" <> underPrevious "-- y" <> hardBreak))
+        `shouldBe` "    a -- x\n      -- y\n"
+    it "lines it up with what was held back before it where that spilled too" $
+      out (indent (txt "  a" <> held "-- x" <> held "-- y" <> underPrevious "-- z" <> hardBreak))
+        `shouldBe` "    a -- x\n  -- y\n  -- z\n"
 
+  describe "margin notes" $ do
+    it "go to the margin right above a directive" $
+      out (indent (txt "a" <> hardBreak <> cppMarginNote (txt "-- x") <> hardBreak <> directive))
+        `shouldBe` "  a\n-- x\n#if X\n"
+    it "go to the margin together when several are right above a directive" $
+      out (indent (cppMarginNote (txt "-- x") <> hardBreak <> cppMarginNote (txt "-- y") <> hardBreak <> directive))
+        `shouldBe` "-- x\n-- y\n#if X\n"
+    it "stay indented when a blank line is between them and a directive" $
+      out (indent (cppMarginNote (txt "-- x") <> blankLine <> directive))
+        `shouldBe` "  -- x\n\n#if X\n"
+    it "stay indented with no directive under them" $
+      out (indent (cppMarginNote (txt "-- x") <> hardBreak <> txt "a"))
+        `shouldBe` "  -- x\n  a\n"
+    it "stay where they are on a line something else began" $
+      out (indent (txt "a" <> space <> cppMarginNote (txt "-- x") <> hardBreak <> directive))
+        `shouldBe` "  a -- x\n#if X\n"
+    it "stay indented when something else follows them on their line" $
+      out (indent (cppMarginNote (txt "{- x -}") <> space <> txt "a" <> hardBreak <> directive))
+        `shouldBe` "  {- x -} a\n#if X\n"
+
+held, underPrevious :: Text -> Doc
+held = DHoldBack SpillAtIndentation
+underPrevious = DHoldBack SpillUnderPrevious
+
 out :: Doc -> Text
 out = printDoc defaultRenderOptions
+
+directive :: Doc
+directive = DCppDirective (mkSpan (9, 1) (9, 6)) "if X"
diff --git a/tests/Tilia/EditorSpec.hs b/tests/Tilia/EditorSpec.hs
new file mode 100644
--- /dev/null
+++ b/tests/Tilia/EditorSpec.hs
@@ -0,0 +1,200 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedLabels #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+
+-- | Formatting what an editor holds of a module.
+module Tilia.EditorSpec (spec) where
+
+import Data.Choice (pattern Don't)
+import Data.Text (Text)
+import Data.Text qualified as T
+import Data.Text.IO qualified as T
+import System.Directory (createDirectoryIfMissing)
+import System.FilePath (takeDirectory, (</>))
+import System.IO.Temp (withSystemTempDirectory)
+import Test.Hspec
+import Tilia.Editor (editorSession, formatBuffer)
+import Tilia.Format (FormatError, formatErrorExitCode)
+import Tilia.Run (Outcome (..))
+
+spec :: Spec
+spec = describe "formatting what an editor holds" $ do
+  it "formats the buffer rather than the file it comes from" $
+    withProject $ \buffer ->
+      buffer ("src" </> "Ops.hs") "module Ops where\nx=1\n"
+        `shouldReturn` CameTo "module Ops where\n\nx = 1\n"
+
+  it "says nothing changed where nothing would" $
+    withProject $ \buffer ->
+      buffer ("src" </> "Ops.hs") "module Ops where\n\nx = 1\n"
+        `shouldReturn` CameOut
+
+  it "formats a module that is not on disk yet" $
+    withProject $ \buffer ->
+      buffer ("src" </> "New.hs") "module New where\nx=1\n"
+        `shouldReturn` CameTo "module New where\n\nx = 1\n"
+
+  it "keeps the line endings of the buffer" $
+    withProject $ \buffer ->
+      buffer ("src" </> "Ops.hs") "module Ops where\r\nx=1\r\n"
+        `shouldReturn` CameTo "module Ops where\r\n\r\nx = 1\r\n"
+
+  it "takes fixities from the modules the buffer imports" $
+    withProject $ \buffer ->
+      buffer ("src" </> "Uses.hs") "module Uses where\nimport Ops\nx=a <+> b\n"
+        `shouldReturn` CameTo "module Uses where\n\nimport Ops\n\nx = a <+> b\n"
+
+  it "declines an operator from a module it cannot read" $
+    withProject $ \buffer ->
+      buffer ("src" </> "Uses.hs") "module Uses where\nimport Nowhere\nx=a <?> b\n"
+        `shouldReturn` CameDeclined 15
+
+  it "takes fixities for a buffer whose branches do not parse together" $
+    withProject $ \buffer ->
+      buffer ("src" </> "Checks.hs") alternatives `shouldReturn` CameOut
+
+  it "declines an operator it cannot settle where the branches do not parse together" $
+    withProject $ \buffer ->
+      buffer ("src" </> "Uses.hs") alternativesUsingUnknown
+        `shouldReturn` CameDeclined 15
+
+  it "leaves alone a file the project's .tiliaignore excludes" $
+    withProject $ \buffer ->
+      buffer ("src" </> "Generated.hs") "module Generated where\nx=1\n"
+        `shouldReturn` CameOut
+
+  it "fails on a buffer that does not parse" $
+    withProject $ \buffer ->
+      buffer ("src" </> "Ops.hs") "module Ops where\nx = (\n"
+        `shouldReturn` CameFailed 4
+
+  it "fails where no project is above the file" $
+    withSystemTempDirectory "tilia-editor" $ \dir ->
+      either (Just . failure) (const Nothing)
+        <$> editorSession
+          (dir </> "A.hs")
+          Nothing
+          (Don't #useCache)
+          (Don't #download)
+          (Don't #checkAst)
+          (Don't #checkIdempotence)
+          (Don't #debugFixity)
+        `shouldReturn` Just 2
+
+-- | A formatted module with a conditional around two alternatives, which do
+-- not parse one after the other.
+alternatives :: Text
+alternatives =
+  T.unlines
+    [ "{-# LANGUAGE CPP #-}",
+      "",
+      "module Checks where",
+      "",
+      "g :: IO ()",
+      "g =",
+      "#ifdef CHECK",
+      "  id $",
+      "    do",
+      "      print 1",
+      "#else",
+      "  do",
+      "    print 1",
+      "#endif",
+      "",
+      "h :: Int -> String",
+      "h n =",
+      "  error $",
+      "    \"count: \" ++ show n"
+    ]
+
+-- | The same kind of alternatives, using an operator from a module that
+-- cannot be read.
+alternativesUsingUnknown :: Text
+alternativesUsingUnknown =
+  T.unlines
+    [ "{-# LANGUAGE CPP #-}",
+      "module Uses where",
+      "import Nowhere",
+      "x =",
+      "#ifdef CHECK",
+      "  id $ do",
+      "    a <?> b",
+      "#else",
+      "  do",
+      "    a <?> b",
+      "#endif"
+    ]
+
+-- | What formatting a buffer came to, with errors told apart by the status
+-- they exit with.
+data Came
+  = -- | Nothing to change.
+    CameOut
+  | -- | Formatted into this.
+    CameTo Text
+  | -- | Declined.
+    CameDeclined Int
+  | -- | Failed.
+    CameFailed Int
+  deriving (Eq, Show)
+
+-- | Tell what became of a buffer.
+came :: Outcome -> Came
+came = \case
+  Unchanged -> CameOut
+  Changed _ formatted -> CameTo formatted
+  Declined e -> CameDeclined (failure e)
+  Failed e -> CameFailed (failure e)
+
+-- | The status a failure exits with.
+failure :: FormatError -> Int
+failure = formatErrorExitCode
+
+-- | A project with a module declaring @infixl 6 <+>@, a @.tiliaignore@
+-- excluding @src/Generated.hs@, and a plan for it trusted as up to date,
+-- handed to the test as a way to format a buffer as one of its files.
+withProject :: ((FilePath -> Text -> IO Came) -> Expectation) -> Expectation
+withProject act =
+  withSystemTempDirectory "tilia-editor" $ \dir -> do
+    let project = dir </> "project"
+        planFile = dir </> "elsewhere" </> "plan.json"
+        write path text = do
+          createDirectoryIfMissing True (takeDirectory path)
+          T.writeFile path text
+    write (project </> "fake.cabal") $
+      T.unlines
+        [ "cabal-version: 2.4",
+          "name: fake",
+          "version: 0.1.0.0",
+          "library",
+          "  exposed-modules: Ops",
+          "  hs-source-dirs: src",
+          "  default-language: Haskell2010"
+        ]
+    write (project </> "src" </> "Ops.hs") $
+      T.unlines
+        [ "module Ops ((<+>)) where",
+          "infixl 6 <+>",
+          "(<+>) :: a -> a -> a",
+          "(<+>) = const"
+        ]
+    write (project </> ".tiliaignore") "src/Generated.hs\n"
+    write planFile $
+      "{\"compiler-id\":\"ghc-0.0\",\"install-plan\":[\
+      \{\"pkg-name\":\"fake\",\"pkg-version\":\"0.1.0.0\",\
+      \\"pkg-src\":{\"type\":\"local\",\"path\":\"./.\"}}]}"
+    act $ \file text -> do
+      let path = project </> file
+      editorSession
+        path
+        (Just planFile)
+        (Don't #useCache)
+        (Don't #download)
+        (Don't #checkAst)
+        (Don't #checkIdempotence)
+        (Don't #debugFixity)
+        >>= \case
+          Left e -> pure (CameFailed (failure e))
+          Right session -> came <$> formatBuffer session path text
diff --git a/tests/Tilia/EquivalenceSpec.hs b/tests/Tilia/EquivalenceSpec.hs
--- a/tests/Tilia/EquivalenceSpec.hs
+++ b/tests/Tilia/EquivalenceSpec.hs
@@ -9,7 +9,6 @@
 import GHC.Hs (HsModule)
 import GHC.Hs.Extension (GhcPs)
 import Test.Hspec
-import Tilia.Comments (Comment)
 import Tilia.Equivalence
 import Tilia.Parser
   ( ParsedModule,
@@ -17,9 +16,7 @@
     describeParseError,
     parseModule,
     pmModule,
-    pmSource,
   )
-import Tilia.Source (comments)
 
 spec :: Spec
 spec = do
@@ -159,17 +156,10 @@
 
 -- | What 'commentDifference' makes of two spellings of a module.
 difference :: Text -> Text -> Maybe Text
-difference went came =
-  commentDifference
-    (treeOf went, treeOf came)
-    (commentsOf went)
-    (commentsOf came)
+difference went came = commentDifference (parsed went) (parsed came)
 
 treeOf :: Text -> HsModule GhcPs
 treeOf = pmModule . parsed
-
-commentsOf :: Text -> [Comment]
-commentsOf = comments . pmSource . parsed
 
 parsed :: Text -> ParsedModule
 parsed source = case parseModule defaultParserConfig "Test.hs" source of
diff --git a/tests/Tilia/Fixity/CabalSpec.hs b/tests/Tilia/Fixity/CabalSpec.hs
--- a/tests/Tilia/Fixity/CabalSpec.hs
+++ b/tests/Tilia/Fixity/CabalSpec.hs
@@ -154,6 +154,17 @@
       found `shouldSatisfy` elem MultiWayIf
       found `shouldSatisfy` elem BlockArguments
 
+    it "reads the extensions field older packages use" $
+      extensions "library\n  extensions: BangPatterns\n"
+        `shouldSatisfy` elem BangPatterns
+
+    it "lets default-extensions take back what that field turns on" $
+      extensions
+        "library\n\
+        \  extensions: LambdaCase\n\
+        \  default-extensions: NoLambdaCase\n"
+        `shouldSatisfy` notElem LambdaCase
+
     it "takes one back that the .cabal turns off" $
       extensions "library\n  default-extensions: ImplicitPrelude, NoImplicitPrelude\n"
         `shouldSatisfy` notElem ImplicitPrelude
@@ -163,6 +174,12 @@
         `shouldSatisfy` elem TypeOperators
       extensions "library\n  default-language: Haskell2010\n"
         `shouldSatisfy` notElem TypeOperators
+
+    it "starts from Haskell98 where it names no edition, as cabal builds it" $ do
+      extensions "library\n  build-depends: base\n"
+        `shouldSatisfy` elem NondecreasingIndentation
+      extensions "library\n  build-depends: base\n"
+        `shouldSatisfy` notElem ImportQualifiedPost
 
     it "takes what every edition in the file puts in force" $
       extensions
diff --git a/tests/Tilia/Fixity/CacheSpec.hs b/tests/Tilia/Fixity/CacheSpec.hs
--- a/tests/Tilia/Fixity/CacheSpec.hs
+++ b/tests/Tilia/Fixity/CacheSpec.hs
@@ -6,9 +6,10 @@
 module Tilia.Fixity.CacheSpec (spec) where
 
 import Data.Choice (pattern Do, pattern Don't)
+import Data.List.NonEmpty (NonEmpty (..))
 import Data.Map.Strict qualified as Map
-import Data.Maybe (isNothing)
 import Data.Set qualified as Set
+import Data.Text (Text)
 import System.Directory (getModificationTime, listDirectory, setModificationTime)
 import System.Environment (setEnv, unsetEnv)
 import System.FilePath ((</>))
@@ -23,12 +24,13 @@
   tokens
   database
   describe "a cache not to be used" $
-    it "is not opened, and nothing is made on disk for it" $
+    it "remembers nothing, and nothing is made on disk for it" $
       withIsolatedDirectory $ \dir -> do
         setEnv "XDG_CACHE_HOME" dir
-        opened <- openCache (Don't #useCache) (PlanToken "plan")
+        cache <- openCache (Don't #useCache) (PlanToken "plan")
         unsetEnv "XDG_CACHE_HOME"
-        isNothing opened `shouldBe` True
+        storeModules cache "thing-1.0" ["A"]
+        cachedModules cache "thing-1.0" `shouldReturn` Nothing
         listDirectory dir `shouldReturn` []
   around withIsolatedCache $ do
     describe "modules" $ do
@@ -43,165 +45,264 @@
         storeModules cache "empty-1.0" []
         cachedModules cache "empty-1.0" `shouldReturn` Just []
 
-    describe "fixities" $ do
+    describe "what reading a module established" $ do
       it "round-trips every direction" $ \cache -> do
-        let fixities =
-              Map.fromList
+        let established =
+              declaring
                 [ ((InTerms, OpName "<+>"), Fixity LeftAssoc 6),
                   ((InTerms, OpName ">>="), Fixity RightAssoc 1),
                   ((InTerms, OpName "==="), Fixity NoAssoc 4)
                 ]
-        storeFixities cache "thing-1.0" "A.B" (Declares fixities)
-        cachedFixities cache "thing-1.0" "A.B" `shouldReturn` Just (Declares fixities)
+        storeEstablished cache "thing-1.0" "A.B" established
+        cachedEstablished cache "thing-1.0" "A.B" `shouldReturn` Just established
 
       it "round-trips the extremes of precedence" $ \cache -> do
-        let fixities =
-              Map.fromList
+        let established =
+              declaring
                 [ ((InTerms, OpName "!"), Fixity LeftAssoc 0),
                   ((InTerms, OpName "?"), Fixity LeftAssoc 9),
                   ((InTerms, OpName "->"), Fixity RightAssoc (-1))
                 ]
-        storeFixities cache "thing-1.0" "Edges" (Declares fixities)
-        cachedFixities cache "thing-1.0" "Edges" `shouldReturn` Just (Declares fixities)
+        storeEstablished cache "thing-1.0" "Edges" established
+        cachedEstablished cache "thing-1.0" "Edges" `shouldReturn` Just established
 
       it "remembers that a module declares nothing" $ \cache -> do
-        storeFixities cache "thing-1.0" "Quiet" (Declares Map.empty)
-        cachedFixities cache "thing-1.0" "Quiet" `shouldReturn` Just (Declares Map.empty)
+        storeEstablished cache "thing-1.0" "Quiet" mempty
+        cachedEstablished cache "thing-1.0" "Quiet" `shouldReturn` Just mempty
 
       it "remembers that a module could not be read" $ \cache -> do
-        storeFixities cache "thing-1.0" "Opaque" (Unreadable Nothing)
-        cachedFixities cache "thing-1.0" "Opaque" `shouldReturn` Just (Unreadable Nothing)
+        storeEstablished cache "thing-1.0" "Opaque" unreadable
+        cachedEstablished cache "thing-1.0" "Opaque" `shouldReturn` Just unreadable
 
-      it "remembers which module below it stopped the reading" $ \cache -> do
-        storeFixities cache "thing-1.0" "Opaque" (Unreadable (Just "Deep.Down"))
-        cachedFixities cache "thing-1.0" "Opaque"
-          `shouldReturn` Just (Unreadable (Just "Deep.Down"))
+      it "remembers the way down to where reading gave up" $ \cache -> do
+        storeEstablished cache "thing-1.0" "Opaque" (stoppedAt ["Middle", "Deep.Down"])
+        cachedEstablished cache "thing-1.0" "Opaque"
+          `shouldReturn` Just (stoppedAt ["Middle", "Deep.Down"])
 
       it "tells one stopped below it from one stopped on its own account" $ \cache -> do
-        storeFixities cache "thing-1.0" "Blamed" (Unreadable (Just "Deep.Down"))
-        storeFixities cache "thing-1.0" "Itself" (Unreadable Nothing)
-        blamed <- cachedFixities cache "thing-1.0" "Blamed"
-        itself <- cachedFixities cache "thing-1.0" "Itself"
-        (blamed, itself)
-          `shouldBe` (Just (Unreadable (Just "Deep.Down")), Just (Unreadable Nothing))
+        storeEstablished cache "thing-1.0" "Blamed" (stoppedAt ["Deep.Down"])
+        storeEstablished cache "thing-1.0" "Itself" unreadable
+        blamed <- cachedEstablished cache "thing-1.0" "Blamed"
+        itself <- cachedEstablished cache "thing-1.0" "Itself"
+        (blamed, itself) `shouldBe` (Just (stoppedAt ["Deep.Down"]), Just unreadable)
 
+      it "round-trips the names it leaves unsettled, by namespace and way down" $ \cache -> do
+        let established =
+              mempty
+                { establishedUnsettled =
+                    Map.fromList
+                      [ (["Deep.Down"], Set.fromList [(InTypes, OpName ":+:"), (InTerms, OpName "===")]),
+                        ([], Set.fromList [(InTerms, OpName "<+>"), (InTerms, OpName "v")])
+                      ]
+                }
+        storeEstablished cache "thing-1.0" "M" established
+        cachedEstablished cache "thing-1.0" "M" `shouldReturn` Just established
+
       it "tells an unread module from one it was never told about" $ \cache -> do
-        storeFixities cache "thing-1.0" "Opaque" (Unreadable Nothing)
-        unread <- cachedFixities cache "thing-1.0" "Opaque"
-        never <- cachedFixities cache "thing-1.0" "Absent"
-        (unread, never) `shouldBe` (Just (Unreadable Nothing), Nothing)
+        storeEstablished cache "thing-1.0" "Opaque" unreadable
+        unread <- cachedEstablished cache "thing-1.0" "Opaque"
+        never <- cachedEstablished cache "thing-1.0" "Absent"
+        (unread, never) `shouldBe` (Just unreadable, Nothing)
 
       it "tells an unread module from one that declares nothing" $ \cache -> do
-        storeFixities cache "thing-1.0" "Opaque" (Unreadable Nothing)
-        storeFixities cache "thing-1.0" "Quiet" (Declares Map.empty)
-        opaque <- cachedFixities cache "thing-1.0" "Opaque"
-        quiet <- cachedFixities cache "thing-1.0" "Quiet"
-        (opaque, quiet) `shouldBe` (Just (Unreadable Nothing), Just (Declares Map.empty))
+        storeEstablished cache "thing-1.0" "Opaque" unreadable
+        storeEstablished cache "thing-1.0" "Quiet" mempty
+        opaque <- cachedEstablished cache "thing-1.0" "Opaque"
+        quiet <- cachedEstablished cache "thing-1.0" "Quiet"
+        (opaque, quiet) `shouldBe` (Just unreadable, Just mempty)
 
       it "replaces an unread answer once the module can be read" $ \cache -> do
-        storeFixities cache "thing-1.0" "M" (Unreadable Nothing)
-        storeFixities cache "thing-1.0" "M" (Declares (Map.fromList [((InTerms, OpName "!"), Fixity LeftAssoc 9)]))
-        cachedFixities cache "thing-1.0" "M"
-          `shouldReturn` Just (Declares (Map.fromList [((InTerms, OpName "!"), Fixity LeftAssoc 9)]))
+        storeEstablished cache "thing-1.0" "M" unreadable
+        storeEstablished cache "thing-1.0" "M" (declaring [((InTerms, OpName "!"), Fixity LeftAssoc 9)])
+        cachedEstablished cache "thing-1.0" "M"
+          `shouldReturn` Just (declaring [((InTerms, OpName "!"), Fixity LeftAssoc 9)])
 
       it "knows nothing about a module it was never told about" $ \cache ->
-        cachedFixities cache "thing-1.0" "Absent" `shouldReturn` Nothing
+        cachedEstablished cache "thing-1.0" "Absent" `shouldReturn` Nothing
 
       it "keeps packages apart" $ \cache -> do
-        let ops = Map.fromList [((InTerms, OpName "<>"), Fixity RightAssoc 6)]
-        storeFixities cache "a-1.0" "M" (Declares ops)
-        storeFixities cache "b-1.0" "M" (Declares Map.empty)
-        a <- cachedFixities cache "a-1.0" "M"
-        b <- cachedFixities cache "b-1.0" "M"
-        (a, b) `shouldBe` (Just (Declares ops), Just (Declares Map.empty))
+        let ops = declaring [((InTerms, OpName "<>"), Fixity RightAssoc 6)]
+        storeEstablished cache "a-1.0" "M" ops
+        storeEstablished cache "b-1.0" "M" mempty
+        a <- cachedEstablished cache "a-1.0" "M"
+        b <- cachedEstablished cache "b-1.0" "M"
+        (a, b) `shouldBe` (Just ops, Just mempty)
 
       it "treats a different hash in the key as a different package" $ \cache -> do
-        storeFixities cache "thing-1.0-aaaa" "M" (Declares (Map.fromList [((InTerms, OpName "!"), Fixity LeftAssoc 9)]))
-        cachedFixities cache "thing-1.0-bbbb" "M" `shouldReturn` Nothing
+        storeEstablished cache "thing-1.0-aaaa" "M" (declaring [((InTerms, OpName "!"), Fixity LeftAssoc 9)])
+        cachedEstablished cache "thing-1.0-bbbb" "M" `shouldReturn` Nothing
 
       it "overwrites a previous answer for the same key" $ \cache -> do
-        storeFixities cache "thing-1.0" "M" (Declares (Map.fromList [((InTerms, OpName "!"), Fixity LeftAssoc 9)]))
-        storeFixities cache "thing-1.0" "M" (Declares (Map.fromList [((InTerms, OpName "!"), Fixity RightAssoc 3)]))
-        cachedFixities cache "thing-1.0" "M"
-          `shouldReturn` Just (Declares (Map.fromList [((InTerms, OpName "!"), Fixity RightAssoc 3)]))
+        storeEstablished cache "thing-1.0" "M" (declaring [((InTerms, OpName "!"), Fixity LeftAssoc 9)])
+        storeEstablished cache "thing-1.0" "M" (declaring [((InTerms, OpName "!"), Fixity RightAssoc 3)])
+        cachedEstablished cache "thing-1.0" "M"
+          `shouldReturn` Just (declaring [((InTerms, OpName "!"), Fixity RightAssoc 3)])
 
-    describe "export names" $ do
-      it "round-trips the names an export list gave" $ \cache -> do
-        let names = Exports (Set.fromList [OpName "<+>", OpName ":|", OpName "f"])
-        storeExportNames cache "thing-1.0" "M" names
-        cachedExportNames cache "thing-1.0" "M" `shouldReturn` Just names
+      it "round-trips the members of each name, a name without members among them" $ \cache -> do
+        let established =
+              mempty
+                { establishedMembers =
+                    Map.fromList
+                      [ (OpName "Empty", Set.empty),
+                        (OpName "NonEmpty", Set.fromList [OpName ":|"]),
+                        (OpName "Seq", Set.fromList [OpName ":<|", OpName ":|>"])
+                      ]
+                }
+        storeEstablished cache "thing-1.0" "M" established
+        cachedEstablished cache "thing-1.0" "M" `shouldReturn` Just established
 
-      it "remembers a module that keeps its own counsel" $ \cache -> do
-        storeExportNames cache "thing-1.0" "M" Untellable
-        cachedExportNames cache "thing-1.0" "M" `shouldReturn` Just Untellable
+      it "round-trips what it certainly brings in and the members of its types, by namespace" $ \cache -> do
+        let established =
+              mempty
+                { establishedCertain =
+                    Certain
+                      ( Set.fromList
+                          [ (InTypes, OpName "T"),
+                            (InTerms, OpName "T"),
+                            (InTerms, OpName ":|"),
+                            (InTypes, OpName "Empty")
+                          ]
+                      )
+                      ( Map.fromList
+                          [ (OpName "T", Set.fromList [(InTerms, OpName "T"), (InTypes, OpName "F")]),
+                            (OpName "Empty", Set.empty)
+                          ]
+                      ),
+                  establishedMembers =
+                    Map.fromList
+                      [ (OpName "T", Set.fromList [OpName "T", OpName "F"]),
+                        (OpName "Empty", Set.empty)
+                      ]
+                }
+        storeEstablished cache "thing-1.0" "M" established
+        cachedEstablished cache "thing-1.0" "M" `shouldReturn` Just established
 
-      it "tells one that keeps its own counsel from one never asked about" $ \cache -> do
-        storeExportNames cache "thing-1.0" "Quiet" Untellable
-        cachedExportNames cache "thing-1.0" "Quiet" `shouldReturn` Just Untellable
-        cachedExportNames cache "thing-1.0" "Unasked" `shouldReturn` Nothing
+      it "round-trips the members of a name beyond its certain members" $ \cache -> do
+        let established =
+              mempty
+                { establishedCertain =
+                    Certain
+                      (Set.fromList [(InTypes, OpName "T"), (InTerms, OpName "A")])
+                      (Map.singleton (OpName "T") (Set.singleton (InTerms, OpName "A"))),
+                  establishedMembers =
+                    Map.fromList
+                      [ (OpName "T", Set.fromList [OpName "A", OpName "B"]),
+                        (OpName "U", Set.empty)
+                      ]
+                }
+        storeEstablished cache "thing-1.0" "M" established
+        cachedEstablished cache "thing-1.0" "M" `shouldReturn` Just established
 
-      it "tells one that exports nothing from one that will not say" $ \cache -> do
-        storeExportNames cache "thing-1.0" "Bare" (Exports Set.empty)
-        storeExportNames cache "thing-1.0" "Quiet" Untellable
-        cachedExportNames cache "thing-1.0" "Bare"
-          `shouldReturn` Just (Exports Set.empty)
-        cachedExportNames cache "thing-1.0" "Quiet" `shouldReturn` Just Untellable
+      it "round-trips all of it at once" $ \cache -> do
+        let established =
+              Established
+                { establishedFixities = Map.singleton (InTerms, OpName "<+>") (Fixity LeftAssoc 6),
+                  establishedUnsettled = Map.singleton ["Below"] (Set.singleton (InTerms, OpName "==>")),
+                  establishedUntold = Set.fromList [["Below"], ["Other", "Further"]],
+                  establishedCertain =
+                    Certain
+                      (Set.fromList [(InTerms, OpName "<+>"), (InTerms, OpName "==>")])
+                      Map.empty,
+                  establishedMembers = Map.singleton (OpName "T") (Set.singleton (OpName "A"))
+                }
+        storeEstablished cache "thing-1.0" "M" established
+        cachedEstablished cache "thing-1.0" "M" `shouldReturn` Just established
 
-      it "keeps packages apart" $ \cache -> do
-        storeExportNames cache "one-1.0" "M" (Exports (Set.singleton (OpName "<+>")))
-        storeExportNames cache "two-1.0" "M" (Exports (Set.singleton (OpName "<?>")))
-        cachedExportNames cache "one-1.0" "M"
-          `shouldReturn` Just (Exports (Set.singleton (OpName "<+>")))
+    describe "what the project's own modules say" $ do
+      it "round-trips every kind of thing a summary holds" $ \cache -> do
+        let summaries = Just (crowded :| [bare, unlisted])
+        storeSummaries cache "m" "stamp" summaries
+        cachedSummaries cache "m" "stamp" `shouldReturn` Just summaries
 
-      it "keeps them apart from the fixities of the same module" $ \cache -> do
-        storeFixities cache "thing-1.0" "M" (Unreadable Nothing)
-        storeExportNames cache "thing-1.0" "M" (Exports (Set.singleton (OpName "<+>")))
-        cachedFixities cache "thing-1.0" "M" `shouldReturn` Just (Unreadable Nothing)
-        cachedExportNames cache "thing-1.0" "M"
-          `shouldReturn` Just (Exports (Set.singleton (OpName "<+>")))
+      it "remembers a module none of whose configurations parsed" $ \cache -> do
+        storeSummaries cache "m" "stamp" Nothing
+        cachedSummaries cache "m" "stamp" `shouldReturn` Just Nothing
 
-      it "overwrites a previous answer for the same key" $ \cache -> do
-        storeExportNames cache "thing-1.0" "M" Untellable
-        storeExportNames cache "thing-1.0" "M" (Exports (Set.singleton (OpName "<+>")))
-        cachedExportNames cache "thing-1.0" "M"
-          `shouldReturn` Just (Exports (Set.singleton (OpName "<+>")))
+      it "gives back nothing for what it was not read from" $ \cache -> do
+        storeSummaries cache "m" "before" (Just (crowded :| []))
+        cachedSummaries cache "m" "after" `shouldReturn` Nothing
 
-    describe "what a name carries with it" $ do
-      it "round-trips what each name carries" $ \cache -> do
-        let kept =
-              Map.fromList
-                [ (OpName "NonEmpty", Set.fromList [OpName ":|"]),
-                  (OpName "Seq", Set.fromList [OpName ":<|", OpName ":|>"])
-                ]
-        storeChildren cache "thing-1.0" "M" kept
-        cachedChildren cache "thing-1.0" "M" `shouldReturn` Just kept
+      it "keeps only what the latest text of a module said" $ \cache -> do
+        storeSummaries cache "m" "before" (Just (crowded :| []))
+        storeSummaries cache "m" "after" (Just (bare :| []))
+        cachedSummaries cache "m" "before" `shouldReturn` Nothing
+        cachedSummaries cache "m" "after" `shouldReturn` Just (Just (bare :| []))
 
-      it "remembers a module that carries nothing anywhere" $ \cache -> do
-        storeChildren cache "thing-1.0" "Bare" Map.empty
-        cachedChildren cache "thing-1.0" "Bare" `shouldReturn` Just Map.empty
+      it "keeps modules apart" $ \cache -> do
+        storeSummaries cache "m" "stamp" (Just (crowded :| []))
+        cachedSummaries cache "n" "stamp" `shouldReturn` Nothing
 
-      it "tells that from a module it was never told about" $ \cache -> do
-        storeChildren cache "thing-1.0" "Bare" Map.empty
-        cachedChildren cache "thing-1.0" "Unasked" `shouldReturn` Nothing
+    describe "module names with dots" $
+      it "files a deeply qualified module without confusion" $ \cache -> do
+        storeEstablished cache "thing-1.0" "A.B.C.D" (declaring [((InTerms, OpName "%"), Fixity NoAssoc 5)])
+        cachedEstablished cache "thing-1.0" "A.B.C.D"
+          `shouldReturn` Just (declaring [((InTerms, OpName "%"), Fixity NoAssoc 5)])
 
-      it "remembers a name that carries nothing among ones that do" $ \cache -> do
-        let kept =
-              Map.fromList
-                [ (OpName "Empty", Set.empty),
-                  (OpName "NonEmpty", Set.singleton (OpName ":|"))
-                ]
-        storeChildren cache "thing-1.0" "M" kept
-        cachedChildren cache "thing-1.0" "M" `shouldReturn` Just kept
+-- | A summary with something of every kind in it.
+crowded :: ModuleSummary
+crowded =
+  ModuleSummary
+    { summaryName = Just "M.N",
+      summaryExports =
+        Just
+          [ ExportName InTerms Nothing (OpName "<+>"),
+            ExportName InTerms Nothing (OpName "-"),
+            ExportName InTerms (Just "Q") (OpName "<->"),
+            ExportName InTypes Nothing (OpName ":|:"),
+            ExportAll Nothing (OpName "T"),
+            ExportAll (Just "Q") (OpName "U"),
+            ExportSome Nothing (OpName "C") [OpName "method", OpName "F"],
+            ExportSome (Just "Q") (OpName "V") [],
+            ExportModule "Data.List"
+          ],
+      summaryImports =
+        [ Import "Prelude" False "Prelude" Nothing,
+          Import "Data.List" True "Q" Nothing,
+          Import
+            "Data.Map"
+            False
+            "Data.Map"
+            ( Just
+                ( False,
+                  [ ImportedName (OpName "!"),
+                    ImportedAll (OpName "Map"),
+                    ImportedSome (OpName "NonEmpty") [OpName ":|", OpName "toList"]
+                  ]
+                )
+            ),
+          Import "Data.Set" False "S" (Just (True, [ImportedName (OpName "\\\\")])),
+          Import "Data.Void" False "Data.Void" (Just (False, []))
+        ],
+      summaryFixities =
+        Map.fromList
+          [ ((InTerms, OpName "<+>"), Fixity LeftAssoc 6),
+            ((InTypes, OpName ":|:"), Fixity RightAssoc 5),
+            ((InTerms, OpName "div"), Fixity NoAssoc 7)
+          ],
+      summaryNames =
+        Set.fromList
+          [ (InTerms, OpName "<+>"),
+            (InTypes, OpName "T"),
+            (InTerms, OpName "T"),
+            (InTypes, OpName ":|:")
+          ],
+      summaryDeclaredMembers =
+        Map.fromList
+          [ (OpName "T", Set.fromList [(InTerms, OpName "A"), (InTerms, OpName ":|:")]),
+            (OpName "C", Set.fromList [(InTerms, OpName "method"), (InTypes, OpName "F")]),
+            (OpName "Empty", Set.empty)
+          ],
+      summaryListedMembers = Map.fromList [(OpName "T", Set.singleton (OpName "A"))]
+    }
 
-      it "keeps packages apart" $ \cache -> do
-        storeChildren cache "one-1.0" "M" (Map.singleton (OpName "T") (Set.singleton (OpName ":|")))
-        cachedChildren cache "two-1.0" "M" `shouldReturn` Nothing
+-- | A summary with nothing in it, not even a name.
+bare :: ModuleSummary
+bare = ModuleSummary Nothing Nothing [] Map.empty Set.empty Map.empty Map.empty
 
-    describe "module names with dots" $
-      it "files a deeply qualified module without confusion" $ \cache -> do
-        storeFixities cache "thing-1.0" "A.B.C.D" (Declares (Map.fromList [((InTerms, OpName "%"), Fixity NoAssoc 5)]))
-        cachedFixities cache "thing-1.0" "A.B.C.D"
-          `shouldReturn` Just (Declares (Map.fromList [((InTerms, OpName "%"), Fixity NoAssoc 5)]))
+-- | One whose export list lists nothing, which is not the same as having
+-- no export list.
+unlisted :: ModuleSummary
+unlisted = bare{summaryName = Just "M", summaryExports = Just []}
 
 -- | What the compiler can see, and what it takes to stop believing it.
 --
@@ -259,19 +360,44 @@
     withDatabase $ \db -> do
       storeInstalled cache (Installed [containers, quiet] [db])
       cachedInstalled cache `shouldReturn` Just [containers, quiet]
+
+  it "carries what a package exposes that another one holds" $ \cache ->
+    withDatabase $ \db -> do
+      storeInstalled cache (Installed [prim] [db])
+      cachedInstalled cache `shouldReturn` Just [prim]
+
+  it "keeps the spaces in a path" $ \cache ->
+    withSystemTempDirectory "tilia  db" $ \db -> do
+      setModificationTime db =<< getModificationTime "/"
+      let spaced = containers{ipImportDirs = ["/no where/containers  0.7"]}
+      storeInstalled cache (Installed [spaced] [db])
+      cachedInstalled cache `shouldReturn` Just [spaced]
   where
     containers =
       InstalledPackage
         { ipName = "containers",
           ipVersion = "0.7",
           ipModules = ["Data.Map", "Data.Map.Strict", "Data.Set"],
+          ipReexports = [],
           ipImportDirs = ["/nowhere/containers-0.7"]
         }
+    prim =
+      InstalledPackage
+        { ipName = "ghc-prim",
+          ipVersion = "0.13.1",
+          ipModules = [],
+          ipReexports =
+            [ ("GHC.Prim", "GHC.Internal.Prim"),
+              ("GHC.Types", "GHC.Internal.Types")
+            ],
+          ipImportDirs = ["/nowhere/ghc-prim-0.13.1"]
+        }
     quiet =
       InstalledPackage
         { ipName = "rts",
           ipVersion = "1.0",
           ipModules = [],
+          ipReexports = [],
           ipImportDirs = []
         }
 
@@ -285,34 +411,48 @@
     setModificationTime db =<< getModificationTime "/"
     action db
 
--- | What an answer of \"could not be read\" is tied to, and what it is not.
+-- | What an answer that leaves names unsettled is tied to, and what it is
+-- not.
 tokens :: Spec
 tokens = around withIsolatedDirectory $ do
   it "does not offer an unread answer written under another token" $ \dir -> do
     before' <- open dir (PlanToken "one")
-    storeFixities before' "thing-1.0" "M" (Unreadable Nothing)
+    storeEstablished before' "thing-1.0" "M" unreadable
     after' <- open dir (PlanToken "two")
-    cachedFixities after' "thing-1.0" "M" `shouldReturn` Nothing
+    cachedEstablished after' "thing-1.0" "M" `shouldReturn` Nothing
 
+  it "does not offer one that names what it leaves unsettled either" $ \dir -> do
+    before' <- open dir (PlanToken "one")
+    storeEstablished
+      before'
+      "thing-1.0"
+      "M"
+      mempty{establishedUnsettled = Map.singleton ["Below"] (Set.singleton (InTerms, OpName "==>"))}
+    after' <- open dir (PlanToken "two")
+    cachedEstablished after' "thing-1.0" "M" `shouldReturn` Nothing
+
   it "still offers one written under the same token" $ \dir -> do
     before' <- open dir (PlanToken "one")
-    storeFixities before' "thing-1.0" "M" (Unreadable Nothing)
+    storeEstablished before' "thing-1.0" "M" unreadable
     again <- open dir (PlanToken "one")
-    cachedFixities again "thing-1.0" "M" `shouldReturn` Just (Unreadable Nothing)
+    cachedEstablished again "thing-1.0" "M" `shouldReturn` Just unreadable
 
-  it "keeps an answer that was read, whatever the token" $ \dir -> do
-    let fixities = Map.fromList [((InTerms, OpName "<+>"), Fixity RightAssoc 6)]
+  it "keeps an answer that settles everything, whatever the token" $ \dir -> do
+    let established = declaring [((InTerms, OpName "<+>"), Fixity RightAssoc 6)]
     before' <- open dir (PlanToken "one")
-    storeFixities before' "thing-1.0" "M" (Declares fixities)
+    storeEstablished before' "thing-1.0" "M" established
     after' <- open dir (PlanToken "two")
-    cachedFixities after' "thing-1.0" "M" `shouldReturn` Just (Declares fixities)
+    cachedEstablished after' "thing-1.0" "M" `shouldReturn` Just established
 
-  it "keeps what an export list said, whatever the token" $ \dir -> do
-    before' <- open dir (PlanToken "one")
-    storeExportNames before' "thing-1.0" "M" Untellable
-    after' <- open dir (PlanToken "two")
-    cachedExportNames after' "thing-1.0" "M" `shouldReturn` Just Untellable
+-- | What reading a module that settles every name and declares these
+-- fixities established.
+declaring :: [((Namespace, OpName), Fixity)] -> Established
+declaring fixities = mempty{establishedFixities = Map.fromList fixities}
 
+-- | What reading a module that gave up on the way down given established.
+stoppedAt :: [Text] -> Established
+stoppedAt chain = mempty{establishedUntold = Set.singleton chain}
+
 -- | Give each test its own cache directory, so nothing leaks between them
 -- or into the developer's real cache.
 withIsolatedCache :: (Cache -> IO ()) -> IO ()
@@ -326,8 +466,6 @@
 open :: FilePath -> PlanToken -> IO Cache
 open dir token = do
   setEnv "XDG_CACHE_HOME" dir
-  opened <- openCache (Do #useCache) token
+  cache <- openCache (Do #useCache) token
   unsetEnv "XDG_CACHE_HOME"
-  case opened of
-    Nothing -> fail "could not open a cache in a temporary directory"
-    Just cache -> pure cache
+  pure cache
diff --git a/tests/Tilia/Fixity/DebugSpec.hs b/tests/Tilia/Fixity/DebugSpec.hs
--- a/tests/Tilia/Fixity/DebugSpec.hs
+++ b/tests/Tilia/Fixity/DebugSpec.hs
@@ -8,16 +8,17 @@
 
 import Data.Choice (pattern Is)
 import Data.Map.Strict qualified as Map
+import Data.Maybe (fromMaybe)
+import Data.Set qualified as Set
 import Data.Text (Text)
 import Data.Text qualified as T
 import Test.Hspec
 import Tilia.Fixity
   ( Direction (..),
+    Established (..),
     Fixity (..),
-    KnownModules (..),
     OpName (..),
     inBothNamespaces,
-    noKnownModules,
     resolveScope,
   )
 import Tilia.Fixity.Debug (fixityNotes, renderFixityNotes)
@@ -86,7 +87,7 @@
           ("Right", Just [("<+>", Fixity RightAssoc 5)])
         ]
         "import Left\nimport Right\nf a b = a <+> b\n"
-        >>= (`mentions` "two modules in scope disagree about it")
+        >>= (`mentions` "the imports disagree about it: infixl 6 in Left but infixr 5 in Right")
 
     it "gives an operator one line however often it is written" $ do
       told <- notesFor [("Prelude", Just [])] "f a b c = a <?> b <?> c <?> a\n"
@@ -173,15 +174,12 @@
   IO [Text]
 notesThrough chains world source =
   renderFixityNotes Plain . Map.singleton "M.hs"
-    <$> fixityNotes (Is #implicitPrelude) (pure . exportsOf) chainOf scope hsModule
+    <$> fixityNotes (Is #implicitPrelude) (pure . answerOf) scope (pure parsed)
   where
-    scope =
-      resolveScope
-        (Is #implicitPrelude)
-        noKnownModules{knownFixities = exportsOf, knownChain = chainFor}
-        hsModule
-    chainFor m = maybe [] id (lookup m chains)
-    chainOf = pure . chainFor
+    scope = resolveScope (Is #implicitPrelude) answerOf (pure hsModule)
+    answerOf m = case exportsOf m of
+      Just fixities -> mempty{establishedFixities = fixities}
+      Nothing -> mempty{establishedUntold = Set.singleton (fromMaybe [] (lookup m chains))}
     hsModule = pmModule parsed
     parsed = case parseModule defaultParserConfig "M.hs" ("module M where\n" <> source) of
       Left problem -> error (T.unpack (describeParseError problem))
diff --git a/tests/Tilia/Fixity/DependenciesSpec.hs b/tests/Tilia/Fixity/DependenciesSpec.hs
--- a/tests/Tilia/Fixity/DependenciesSpec.hs
+++ b/tests/Tilia/Fixity/DependenciesSpec.hs
@@ -30,12 +30,13 @@
 import System.Directory (doesDirectoryExist, doesFileExist, listDirectory)
 import System.FilePath ((</>))
 import Test.Hspec
+import Tilia.BootFixities (bootFixities)
 import Tilia.Cpp (blankCpp)
 import Tilia.Fixity
-import Tilia.Fixity.Builtin (builtinFixities)
 import Tilia.Fixity.Interface (Interface (..), readInterface)
 import Tilia.Fixity.PackageDb
 import Tilia.Fixity.Plan
+import Tilia.Gathered (gathered)
 import Tilia.Parser
 import Tilia.WithProjectPlan
   ( Dependency (..),
@@ -51,12 +52,12 @@
 withPlan :: BuildPlan -> Spec
 withPlan plan = do
   installed <- runIO readInstalledPackages
-  fromSource <- runIO (askFixities <$> newResolverVia (Do #useCache) [FromSource] plan)
-  fromInterface <- runIO (askFixities <$> newResolverVia (Do #useCache) [FromInterface] plan)
+  fromSource <- runIO (fixitiesThrough <$> newResolverVia (Do #useCache) [FromSource] plan)
+  fromInterface <- runIO (fixitiesThrough <$> newResolverVia (Do #useCache) [FromInterface] plan)
   resolver <- runIO (newResolver plan)
-  let resolve = askFixities resolver
+  let resolve = fixitiesThrough resolver
   own <- runIO ownModules
-  let isShippedModule m = Map.member m builtinFixities
+  let isShippedModule m = Map.member m bootFixities
   dependencies <- runIO (dependenciesOf (not . isShippedModule) plan installed)
   preloaded <- runIO (dependenciesOf isShippedModule plan installed)
   shippedPackages <- runIO compilerShipped
@@ -125,9 +126,10 @@
     -- reached it, and which module of the cycle gives way is whichever was
     -- entered first. Measured over ghc-lib-parser's 450 modules, sweeping
     -- them forwards, backwards and from twelve threads moved two of them
-    -- either way, and over the whole tree the figure has been seen between
-    -- 74% and 80%. The check is here to catch the route collapsing, not to
-    -- pin a number that is not pinned.
+    -- either way, and over the whole tree, the boot packages read from
+    -- source too, the figure has been seen at 93% on GHC 9.10. The check is
+    -- here to catch the route collapsing, not to pin a number that is not
+    -- pinned.
     it "reads most of them out of source alone" $ do
       answers <- traverse (fromSource . fst) modules
       let reached = length [() | Just _ <- answers]
@@ -152,10 +154,10 @@
 ----------------------------------------------------------------------------
 -- The dependencies
 
--- | Where the built-in table and the compiler both hold a fixity for an
+-- | Where the boot table and the compiler both hold a fixity for an
 -- operator and it is not the same fixity.
 --
--- The table in "Tilia.Fixity.Builtin" was written by asking a GHC of one
+-- The table in "Tilia.BootFixities" was written by asking a GHC of one
 -- version what its boot packages export. The tests run against whichever
 -- GHC built the project, which this package supports three of. This is what
 -- says the answer has not moved underneath the table.
@@ -178,7 +180,7 @@
           ours /= declared
         ]
   where
-    table = Map.findWithDefault Map.empty modName builtinFixities
+    table = Map.findWithDefault Map.empty modName bootFixities
 
 -- | Every fixity the compiler recorded for a module that reading the
 -- package's source did not produce.
@@ -283,13 +285,21 @@
         then haskellFilesIn path
         else pure [path | ".hs" `isSuffixOf` path]
 
+-- | What a module exports, where reading it settles every name.
+fixitiesThrough :: Resolver -> Text -> IO (Maybe Fixities)
+fixitiesThrough resolver modName = settled <$> askModule resolver modName
+  where
+    settled established
+      | settlesEverything established = Just (establishedFixities established)
+      | otherwise = Nothing
+
 -- | Every module this project's own source imports.
 importedByOwn :: [(FilePath, Maybe (HsModule GhcPs))] -> [Text]
 importedByOwn own =
   Set.toList . Set.fromList $
     [ importModule i
     | (_, Just hsModule) <- own,
-      i <- moduleImports (Is #implicitPrelude) hsModule,
+      i <- moduleImports (Is #implicitPrelude) (pure hsModule),
       not ("Paths_" `T.isPrefixOf` importModule i)
     ]
 
@@ -305,8 +315,8 @@
   (FilePath, HsModule GhcPs) ->
   IO [String]
 unsettledIn resolver (path, hsModule) = do
-  scope <- scopeFor resolver (Is #implicitPrelude) hsModule
+  scope <- scopeFor resolver (Is #implicitPrelude) (pure hsModule)
   pure
     [ path <> ": " <> T.unpack (operatorSpelling qualifier op) <> " " <> show why
-    | ((qualifier, op), why) <- unknownOperators scope hsModule
+    | ((qualifier, op), why) <- unknownOperators scope (pure (gathered hsModule))
     ]
diff --git a/tests/Tilia/Fixity/HiFileSpec.hs b/tests/Tilia/Fixity/HiFileSpec.hs
--- a/tests/Tilia/Fixity/HiFileSpec.hs
+++ b/tests/Tilia/Fixity/HiFileSpec.hs
@@ -3,23 +3,33 @@
 -- | Interface files read directly, against what @ghc --show-iface@ makes of
 -- them, for the modules of the packages this project is built against.
 --
--- Every module is decoded, but only those that declare fixities and a fixed
--- eighth of the rest are checked against @ghc@, which costs a process per
--- module and was most of the suite's run time.
+-- Every module is decoded, but only those that offer fixities or hold a
+-- key the table passed over, and a fixed eighth of the rest, are checked
+-- against @ghc@, which costs a process per module and was most of the
+-- suite's run time.
 module Tilia.Fixity.HiFileSpec (spec) where
 
+import Control.Applicative ((<|>))
 import Control.Exception (evaluate)
 import Data.Bits (xor)
 import Data.ByteString qualified as BS
 import Data.Char (ord)
 import Data.Foldable (for_)
 import Data.Map.Strict qualified as Map
+import Data.Set (Set)
 import Data.Set qualified as Set
 import Data.Text (Text)
 import Data.Text qualified as T
 import Data.Word (Word64)
 import Test.Hspec
-import Tilia.Fixity.HiFile (decodeHiFile)
+import Tilia.Fixity (Fixities, Namespace (..), OpName (..))
+import Tilia.Fixity.HiFile
+  ( HiExport (..),
+    HiFile (..),
+    HiName (..),
+    decodeHiFile,
+    primopFixities,
+  )
 import Tilia.Fixity.Interface (Interface (..), fromHiFile, parseInterface)
 import Tilia.Fixity.PackageDb (readInstalledPackages)
 import Tilia.Fixity.Plan (BuildPlan)
@@ -40,6 +50,8 @@
   installed <- runIO readInstalledPackages
   dependencies <- runIO (dependenciesOf (const True) plan installed)
   let modules = concatMap depModules dependencies
+  declaredIn <- runIO (Map.fromList . concat <$> traverse declarations modules)
+  let declared m = Map.lookup m declaredIn <|> Map.lookup m primopFixities
   describe "interface files read directly" $ do
     it "are there to read" $
       length modules `shouldSatisfy` (>= 500)
@@ -50,31 +62,46 @@
 
     for_ (concatMap testsFor dependencies) $ \(label, chunk) ->
       it ("agree with ghc --show-iface on " <> label) $ do
-        found <- concat <$> inParallel disagreeing chunk
+        found <- concat <$> inParallel (disagreeing declared) chunk
         found `shouldBe` []
   where
+    declarations (m, path) = do
+      bytes <- BS.readFile path
+      pure
+        [ (m, Map.fromList [((namespace, op), fixity) | (namespace, op, fixity) <- hiFixities hi])
+        | Right hi <- [decodeHiFile bytes]
+        ]
     undecodable (m, path) = do
       bytes <- BS.readFile path
       evaluate [(m, why) | Left why <- [decodeHiFile bytes]]
     -- Forced before it is returned, so that the output of ghc, which is
     -- hundreds of megabytes across a run, is not kept alive until the end.
-    disagreeing (m, path) = do
-      direct <-
-        either (const Nothing) (Just . fromHiFile m) . decodeHiFile
-          <$> BS.readFile path
-      case direct of
-        Just (Right d)
-          | not (Map.null (interfaceDeclares d)) || sampled m -> do
+    disagreeing declared (m, path) = do
+      decoded <- either (const Nothing) Just . decodeHiFile <$> BS.readFile path
+      case decoded of
+        Just hi
+          | Right d <- fromHiFile m hi,
+            not (Set.null (offered declared m d)) || passesOver hi || sampled m -> do
               shown <-
                 maybe Nothing (parseInterface m)
                   <$> readProgramOutput "ghc" ["--show-iface", path]
-              let found = [(m, x) | Just s <- [shown], x <- disagreements m d s]
+              let found = [(m, x) | Just s <- [shown], x <- disagreements declared m d s]
               found <$ evaluate (length found)
         _ -> pure []
 
--- | Whether a module is in the fixed eighth of those that declare no
--- fixities and are checked against @ghc@ all the same.
+-- | Whether an interface holds a key the table for its series passed over.
 --
+-- A key the table should have listed would be passed over too, and the
+-- module could then look as if it offered nothing.
+passesOver :: HiFile -> Bool
+passesOver = any (elem Unneeded . names) . hiExports
+  where
+    names (Avail n) = [n]
+    names (AvailTC p ns) = p : ns
+
+-- | Whether a module is in the fixed eighth of the rest, which are checked
+-- against @ghc@ all the same.
+--
 -- Chosen by an FNV-1a hash of the name, so that it is the same modules on
 -- every run and machine.
 sampled :: Text -> Bool
@@ -82,18 +109,44 @@
   where
     step h c = (h `xor` fromIntegral (ord c)) * 1099511628211
 
--- | Where a direct reading and the text disagree beyond what the text
--- cannot tell.
-disagreements :: Text -> Interface -> Interface -> [Text]
-disagreements m direct shown =
+-- | Where a direct reading and the text disagree about what fixities depend
+-- on, beyond what the text cannot tell.
+--
+-- A fixity the text puts among terms may be among types all the same: the
+-- text leaves out the declarations of the types GHC wires in.
+disagreements ::
+  -- | The fixities each module declares, where they can be read.
+  (Text -> Maybe Fixities) ->
+  Text ->
+  Interface ->
+  Interface ->
+  [Text]
+disagreements declared m direct shown =
   [ "fixities"
-  | not (interfaceDeclares shown `Map.isSubmapOf` interfaceDeclares direct)
+  | not (inTypes (interfaceDeclares shown) `Map.isSubmapOf` interfaceDeclares direct)
       || byOperator (interfaceDeclares direct) /= byOperator (interfaceDeclares shown)
   ]
-    <> [ "re-exports"
-       | Set.fromList (interfaceReexports direct)
-           /= Set.fromList [r | r@(from, _) <- interfaceReexports shown, from /= m]
-       ]
-    <> ["children" | interfaceChildren direct /= interfaceChildren shown]
+    <> ["offered fixities" | offered declared m direct /= offered declared m shown]
+    <> ["members" | members direct /= members shown]
   where
-    byOperator = Set.fromList . fmap (\((_, op), fixity) -> (op, show fixity)) . Map.toList
+    inTypes = Map.filterWithKey (\(namespace, _) _ -> namespace == InTypes)
+    members i =
+      Map.filter (not . Set.null) $
+        Map.map (Set.filter (`Set.member` withFixities)) (interfaceMembers i)
+    withFixities = Set.map (OpName . fst) (offered declared m direct)
+
+-- | Every fixity a module offers, its own and those of what it reexports,
+-- by operator.
+offered :: (Text -> Maybe Fixities) -> Text -> Interface -> Set (Text, String)
+offered declared m i =
+  byOperator (interfaceDeclares i)
+    <> Set.unions
+      [ byOperator (Map.filterWithKey (\(_, o) _ -> o == op) fixities)
+      | (from, op) <- interfaceReexports i,
+        from /= m,
+        Just fixities <- [declared from]
+      ]
+
+-- | Fixities by the operator alone, namespace aside.
+byOperator :: Fixities -> Set (Text, String)
+byOperator = Set.fromList . fmap (\((_, OpName op), fixity) -> (op, show fixity)) . Map.toList
diff --git a/tests/Tilia/Fixity/InterfaceSpec.hs b/tests/Tilia/Fixity/InterfaceSpec.hs
--- a/tests/Tilia/Fixity/InterfaceSpec.hs
+++ b/tests/Tilia/Fixity/InterfaceSpec.hs
@@ -12,6 +12,7 @@
 import Data.Text (Text)
 import Test.Hspec
 import Tilia.Fixity
+import Tilia.Fixity.HiFile (HiExport (..), HiFile (..), HiName (..))
 import Tilia.Fixity.Interface
 
 spec :: Spec
@@ -107,8 +108,8 @@
                      ("GHC.Internal.Bits", OpName "complement")
                    ]
 
-    it "takes them as what such a type carries" $
-      carries "exports:\n  GHC.Internal.Base.Alternative|{GHC.Internal.Base.<|> GHC.Internal.Base.empty}\n"
+    it "takes them as the members of such a type" $
+      members "exports:\n  GHC.Internal.Base.Alternative|{GHC.Internal.Base.<|> GHC.Internal.Base.empty}\n"
         `shouldBe` [(OpName "Alternative", [OpName "<|>", OpName "empty"])]
 
   describe "which namespace a fixity governs" $ do
@@ -140,32 +141,51 @@
       declaresIn "fixities infixl 9 !\nab12\n  data Other a b where\n  (!) :: Int\n"
         `shouldBe` [((InTerms, OpName "!"), Fixity LeftAssoc 9)]
 
-  describe "what a name carries with it" $ do
+  describe "the members of a name" $ do
     it "takes the members an entry wears in braces" $
-      carries "exports:\n  GHC.Internal.Base.NonEmpty{GHC.Internal.Base.:|}\n"
+      members "exports:\n  GHC.Internal.Base.NonEmpty{GHC.Internal.Base.:|}\n"
         `shouldBe` [(OpName "NonEmpty", [OpName ":|"])]
 
     it "takes every one of them" $
-      carries
+      members
         "exports:\n\
         \  GHC.Internal.Base.Applicative{GHC.Internal.Base.*> GHC.Internal.Base.<*> GHC.Internal.Base.pure}\n"
         `shouldBe` [(OpName "Applicative", [OpName "*>", OpName "<*>", OpName "pure"])]
 
     it "takes them from a partial export, which still says what it has" $
-      carries "exports:\n  GHC.Internal.Base.Functor|{GHC.Internal.Base.<$}\n"
+      members "exports:\n  GHC.Internal.Base.Functor|{GHC.Internal.Base.<$}\n"
         `shouldBe` [(OpName "Functor", [OpName "<$"])]
 
     it "takes a name this module declared, written without a module" $
-      carries "exports:\n  WrappedArrow{WrapArrow unwrapArrow}\n"
+      members "exports:\n  WrappedArrow{WrapArrow unwrapArrow}\n"
         `shouldBe` [(OpName "WrappedArrow", [OpName "WrapArrow", OpName "unwrapArrow"])]
 
     it "keeps entries apart where several sit on one line" $
-      carries "exports:\n  A{B} C{D}\n"
+      members "exports:\n  A{B} C{D}\n"
         `shouldBe` [(OpName "A", [OpName "B"]), (OpName "C", [OpName "D"])]
 
-    it "has nothing to say about a name that carries nothing" $
-      carries "exports:\n  decode'\n  Data.Aeson.Types.FromJSON..:\n" `shouldBe` []
+    it "has nothing to say about a name without members" $
+      members "exports:\n  decode'\n  Data.Aeson.Types.FromJSON..:\n" `shouldBe` []
 
+  describe "what a decoded interface brings in" $ do
+    it "is every name it exports, by namespace, and the members of each type" $
+      fmap
+        interfaceExports
+        (fromHiFile "M" (HiFile "M" [AvailTC (inM InTypes "T") [inM InTypes "T", inM InTerms "C"], Avail (inM InTerms "f")] []))
+        `shouldBe` Right
+          ( Just
+              ( Certain
+                  (Set.fromList [(InTypes, OpName "T"), (InTerms, OpName "C"), (InTerms, OpName "f")])
+                  (Map.fromList [(OpName "T", Set.fromList [(InTerms, OpName "C")])])
+              )
+          )
+
+    it "does not take a type for exported where only its field is" $
+      fmap
+        (fmap certainNames . interfaceExports)
+        (fromHiFile "M" (HiFile "M" [AvailTC (inM InTypes "T") [inM InTerms "field"]] []))
+        `shouldBe` Right (Just (Set.fromList [(InTerms, OpName "field")]))
+
   describe "sections it has no use for" $
     it "is not confused by the rest of the file" $ do
       let out =
@@ -215,9 +235,13 @@
 passesOn :: Text -> [(Text, OpName)]
 passesOn = maybe [] interfaceReexports . parseInterface "M" . (header "M" <>)
 
--- | What each exported name carries with it, in a settled order.
-carries :: Text -> [(OpName, [OpName])]
-carries =
-  maybe [] (fmap (fmap Set.toList) . Map.toList . interfaceChildren)
+-- | The members of each exported name, in a settled order.
+members :: Text -> [(OpName, [OpName])]
+members =
+  maybe [] (fmap (fmap Set.toList) . Map.toList . interfaceMembers)
     . parseInterface "M"
     . (header "M" <>)
+
+-- | A name the module @M@ declares.
+inM :: Namespace -> Text -> HiName
+inM namespace = HiName "M" namespace . OpName
diff --git a/tests/Tilia/Fixity/PackageDbSpec.hs b/tests/Tilia/Fixity/PackageDbSpec.hs
--- a/tests/Tilia/Fixity/PackageDbSpec.hs
+++ b/tests/Tilia/Fixity/PackageDbSpec.hs
@@ -34,6 +34,25 @@
         ]
         `shouldBe` Just ["/opt/ghc/lib/one", "/opt/ghc/lib/two"]
 
+    it "keeps a module another package holds apart, with its name there" $
+      fmap
+        (\p -> (ipModules p, ipReexports p))
+        ( fromFields . Map.fromList $
+            [ ("name", "ghc-prim"),
+              ("version", "0.13.1"),
+              ( "exposed-modules",
+                "GHC.Prim from ghc-internal-9.1401.0:GHC.Internal.Prim,\n\
+                \GHC.Types from ghc-internal-9.1401.0:GHC.Internal.Types, GHC.Own"
+              )
+            ]
+        )
+        `shouldBe` Just
+          ( ["GHC.Own"],
+            [ ("GHC.Prim", "GHC.Internal.Prim"),
+              ("GHC.Types", "GHC.Internal.Types")
+            ]
+          )
+
     it "says nothing of a record that names no package" $
       fromFields (Map.fromList [("import-dirs", "/opt/ghc/lib")])
         `shouldBe` Nothing
diff --git a/tests/Tilia/Fixity/PlanSpec.hs b/tests/Tilia/Fixity/PlanSpec.hs
--- a/tests/Tilia/Fixity/PlanSpec.hs
+++ b/tests/Tilia/Fixity/PlanSpec.hs
@@ -12,15 +12,14 @@
 -- that talks to the outside world will not fail on.
 --
 -- Running the test suite implies the project was built, so the plan and the
--- sources are there. Where they are not — a sandboxed build with no package
--- cache — each test says so and is marked pending rather than failing.
+-- sources are there. Where they are not, each test fails and says why.
 module Tilia.Fixity.PlanSpec (spec) where
 
 import Codec.Archive.Tar qualified as Tar
 import Codec.Archive.Tar.Entry qualified as Tar
 import Codec.Compression.GZip qualified as GZip
 import Control.Exception (bracket)
-import Control.Monad (when)
+import Control.Monad (forM_, when)
 import Data.ByteString.Lazy qualified as BL
 import Data.Choice (pattern Do, pattern Don't, pattern Is)
 import Data.Foldable (traverse_)
@@ -45,7 +44,9 @@
 import System.FilePath (dropExtension, searchPathSeparator, takeBaseName, takeDirectory, (</>))
 import System.IO.Temp (withSystemTempDirectory)
 import System.Info qualified
+import System.Timeout (timeout)
 import Test.Hspec
+import Tilia.Cpp.Macros (Macros (..))
 import Tilia.Fixity
 import Tilia.Fixity.PackageDb
   ( Installed (..),
@@ -57,15 +58,19 @@
 import Tilia.Fixity.Plan qualified as Plan
 import Tilia.Parser
 import Tilia.Process (readProgramOutput)
+import Tilia.Utils (inParallel)
 import Tilia.WithProjectPlan (withProjectPlan)
 
 spec :: Spec
 spec = do
   preparation
   tokens
+  compilerMacros
   reexports
   hscModules
   generatedModuleSpec
+  askedAtOnce
+  readBefore
   gitDependencies
   repositories
   packageCache
@@ -112,6 +117,18 @@
             ]
         }
 
+-- | What a plan says about the macros of the compiler it is for.
+compilerMacros :: Spec
+compilerMacros = describe "the macros a plan settles" $ do
+  it "has those of other compilers undefined under a plan for GHC" $
+    macroUndefined (macrosOf (planFor "ghc-9.10.3"))
+      `shouldBe` Set.fromList ["__MHS__", "__HUGS__"]
+
+  it "has nothing undefined under a plan for another compiler" $
+    macroUndefined (macrosOf (planFor "mhs-0.15.4.0")) `shouldBe` Set.empty
+  where
+    planFor compiler = BuildPlan{bpCompiler = compiler, bpPackages = []}
+
 -- | 'Plan.checkReadiness', with the cache in use as it is by default.
 checkReadiness :: [PlanComponent] -> FilePath -> IO Readiness
 checkReadiness = Plan.checkReadiness (Do #useCache)
@@ -232,7 +249,7 @@
     it "counts the components of this very project as covered" $ do
       plan' <- readBuildPlan (planPathFor ".")
       case plan' of
-        Left _ -> pendingWith "no build plan; run cabal build first"
+        Left _ -> expectationFailure "no build plan; run cabal build first"
         Right p ->
           checkReadiness (plannedComponents p) "."
             `shouldNotReturn` PlanNarrow []
@@ -366,7 +383,50 @@
     chased "module M ((<+>)) where\nimport No.Such.Module\n"
       `shouldReturn` Nothing
 
-  it "comes from a type handed on whole, which carries it" $
+  it "is not held up by an unread import under another qualifier" $
+    chased "module M ((Disp.<+>)) where\nimport qualified No.Such.Module as Q\nimport qualified Text.PrettyPrint as Disp\n"
+      `shouldReturn` Just (Fixity LeftAssoc 6)
+
+  it "is not held up by an unread import that is qualified when it is written plainly" $
+    chased "module M ((<+>)) where\nimport qualified No.Such.Module\nimport Text.PrettyPrint\n"
+      `shouldReturn` Just (Fixity LeftAssoc 6)
+
+  it "is not held up by an unread import whose list does not name it" $
+    chased "module M ((<+>)) where\nimport No.Such.Module (first)\nimport Text.PrettyPrint\n"
+      `shouldReturn` Just (Fixity LeftAssoc 6)
+
+  it "is answered by an import that certainly brings it in, though an unread one could have supplied it" $
+    chased "module M ((Disp.<+>)) where\nimport qualified No.Such.Module as Disp\nimport qualified Text.PrettyPrint as Disp\n"
+      `shouldReturn` Just (Fixity LeftAssoc 6)
+
+  it "comes from a T(..) that certainly brings it in, though an unread import could have supplied it" $
+    chased "module M ((Disp.<+>)) where\nimport qualified No.Such.Module as Disp\nimport qualified Text.PrettyPrint as Disp (Doc (..))\n"
+      `shouldReturn` Just (Fixity LeftAssoc 6)
+
+  it "is still not answered when an unread import could have supplied it and none brings it in for certain" $
+    chased "module M ((Disp.<+>)) where\nimport qualified No.Such.Module as Disp\nimport qualified Text.PrettyPrint as Disp (Doc)\n"
+      `shouldReturn` Nothing
+
+  it "comes from the import that decides its type, though an unread one could have supplied the name" $
+    chased "module M (Doc (..)) where\nimport No.Such.Module (T (..))\nimport Text.PrettyPrint\n"
+      `shouldReturn` Just (Fixity LeftAssoc 6)
+
+  it "is still not answered when the import its type comes from does not certainly bring it in" $
+    chased "module M (Doc (..)) where\nimport No.Such.Module (T (..))\nimport Text.PrettyPrint (Doc)\n"
+      `shouldReturn` Nothing
+
+  it "leaves unsettled only what the unread import could have supplied" $ do
+    answer <- chasedModule "module M ((<+>), (<?>)) where\nimport No.Such.Module ((<?>))\nimport Text.PrettyPrint\n"
+    unsettledThrough answer (InTerms, OpName "<?>") `shouldBe` [["No.Such.Module"]]
+    unsettledThrough answer (InTerms, OpName "<+>") `shouldBe` []
+
+  it "leaves the members of a type from an unread module unsettled, but not what it hands on besides" $ do
+    answer <- chasedModule "module M (T (..), (<+>)) where\nimport No.Such.Module\nimport Text.PrettyPrint\n"
+    unsettledThrough answer (InTerms, OpName "anything") `shouldBe` [["No.Such.Module"]]
+    unsettledThrough answer (InTerms, OpName "<+>") `shouldBe` []
+    Map.lookup (InTerms, OpName "<+>") (establishedFixities answer) `shouldBe` Just (Fixity LeftAssoc 6)
+
+  it "comes from a type handed on whole, of which it is a member" $
     chased "module M (Doc (..)) where\nimport Text.PrettyPrint\n"
       `shouldReturn` Just (Fixity LeftAssoc 6)
 
@@ -374,6 +434,42 @@
     chased "module M (Doc (..)) where\nimport Text.PrettyPrint hiding (Doc (..))\nimport Control.Arrow\n"
       `shouldReturn` Nothing
 
+  it "comes from a module handed on whole" $
+    chased "module M (module Text.PrettyPrint) where\nimport Text.PrettyPrint\n"
+      `shouldReturn` Just (Fixity LeftAssoc 6)
+
+  it "does not come from a module handed on whole by an import that hides it" $
+    chased "module M (module Text.PrettyPrint) where\nimport Text.PrettyPrint hiding ((<+>))\n"
+      `shouldReturn` Nothing
+
+  it "does not come from a module handed on whole by an import that never names it" $
+    chased "module M (module Text.PrettyPrint) where\nimport Text.PrettyPrint (Doc)\n"
+      `shouldReturn` Nothing
+
+  it "does not come from a module handed on whole by an import that hides a type it is a member of" $
+    chased "module M (module Text.PrettyPrint) where\nimport Text.PrettyPrint hiding (Doc (..))\n"
+      `shouldReturn` Nothing
+
+  it "does not come from a module handed on whole that is imported qualified" $
+    chased "module M (module P) where\nimport qualified Text.PrettyPrint as P\n"
+      `shouldReturn` Nothing
+
+  it "comes from the import under the name handed on that brings it in" $
+    chased "module M (module X) where\nimport Text.PrettyPrint as X hiding ((<+>))\nimport Control.Arrow as X\n"
+      `shouldReturn` Just (Fixity RightAssoc 5)
+
+  it "is not taken from a module handed on whole that hides it, further along"
+    $ withFakeProject
+      [ ("src/Persist.hs", "module Persist ((||.)) where\ninfixl 3 ||.\n(||.) :: Bool -> Bool -> Bool\na ||. b = a || b\n"),
+        ("src/Facade.hs", "module Facade (module Persist) where\nimport Persist hiding ((||.))\n"),
+        ("src/Internal.hs", "module Internal ((||.)) where\ninfixr 2 ||.\n(||.) :: Bool -> Bool -> Bool\na ||. b = a || b\n"),
+        ("src/Top.hs", "module Top ((||.), module Facade) where\nimport Facade\nimport Internal\n")
+      ]
+    $ \rs -> do
+      let orOf m = (Map.lookup (InTerms, OpName "||.") =<<) <$> fixitiesOf rs m
+      orOf "Facade" `shouldReturn` Nothing
+      orOf "Top" `shouldReturn` Just (Fixity RightAssoc 2)
+
 -- | What a module written for @hsc2hs@ amounts to, by either route to one.
 --
 -- Both fixtures below are what @hsc2hs@ takes and no compiler does, and
@@ -386,9 +482,7 @@
   it "declares nothing, where it is one of the project's own" $
     withFakeProject [("src/Cursed.hsc", cursed)] $
       \rs -> do
-        askFixities rs "Cursed" `shouldReturn` Just Map.empty
-        askExportNames rs "Cursed" `shouldReturn` Just Set.empty
-        askChildren rs "Cursed" `shouldReturn` Map.empty
+        askModule rs "Cursed" `shouldReturn` mempty
 
   it "declares what the table says, where it comes out of a tarball"
     $ withFakeArchive
@@ -396,9 +490,10 @@
         ("System/Posix/Signals.hsc", signals)
       ]
     $ \rs -> do
-      askFixities rs "Cursed" `shouldReturn` Just Map.empty
-      askExportNames rs "System.Posix.Signals"
-        `shouldReturn` Just (Set.fromList [OpName "addSignal", OpName "deleteSignal"])
+      fixitiesOf rs "Cursed" `shouldReturn` Just Map.empty
+      signalled <- fixitiesOf rs "System.Posix.Signals"
+      fmap (Set.map snd . Map.keysSet) signalled
+        `shouldBe` Just (Set.fromList [OpName "addSignal", OpName "deleteSignal"])
 
 -- | Where a package fetched from a repository is looked for.
 repositories :: Spec
@@ -456,7 +551,7 @@
   it "is the directory cabal reports" $ do
     said <- readProgramOutput "cabal" ["path", "--remote-repo-cache"]
     case said of
-      Nothing -> pendingWith "no cabal on the path to ask"
+      Nothing -> expectationFailure "no cabal on the path to ask"
       Just reported ->
         packageCacheRoot `shouldReturn` T.unpack (T.strip reported)
 
@@ -489,14 +584,14 @@
         Left why -> expectationFailure (T.unpack why)
         Right plan -> do
           resolver <- newResolverVia (Do #useCache) [FromInterface] plan
-          fixities <- askFixities resolver "Ops"
+          fixities <- fixitiesOf resolver "Ops"
           (Map.lookup (InTerms, OpName "<+>") =<< fixities)
             `shouldBe` Just (Fixity LeftAssoc 6)
 
   it "fetches nothing where every dependency is installed" $ do
     installed <- installedPackages <$> readInstalledPackages
     case installed of
-      [] -> pendingWith "nothing installed where this runs"
+      [] -> expectationFailure "nothing installed where this runs"
       p : _ ->
         withGivenPlan [dependency (ipName p) (ipVersion p)] $ \project planFile ->
           filter (== "fetch") . fst <$> runsCabal (fetchingFor project planFile)
@@ -515,7 +610,7 @@
               Left why -> expectationFailure (T.unpack why)
               Right plan -> do
                 resolver <- newResolverVia (Do #useCache) [FromInterface] plan
-                traverse_ (askFixities resolver) ["Ops", "Nowhere.At.All"]
+                traverse_ (fixitiesOf resolver) ["Ops", "Nowhere.At.All"]
           )
         `shouldReturn` []
   where
@@ -573,7 +668,9 @@
 -- on the path that fails, and what it came to.
 runsCabal :: IO a -> IO ([String], a)
 runsCabal act
-  | System.Info.os == "mingw32" = pendingWith "the stand-in is a shell script" >> (,) [] <$> act
+  | System.Info.os == "mingw32" =
+      expectationFailure "the stand-in for cabal is a shell script, which does not run on Windows"
+        >> (,) [] <$> act
   | otherwise =
       withSystemTempDirectory "tilia-cabal" $ \bin -> do
         let stand = bin </> "cabal"
@@ -689,7 +786,7 @@
         Left why -> expectationFailure (T.unpack why)
         Right p -> do
           rs <- newResolver p
-          askFixities rs "Private.Ops"
+          fixitiesOf rs "Private.Ops"
             >>= (`shouldBe` Just (Map.singleton (InTerms, OpName "<+>") (Fixity RightAssoc 3)))
 
 -- | What the plan says each of its packages came from.
@@ -710,7 +807,7 @@
     createDirectoryIfMissing True (takeDirectory (planPathFor dir))
     T.writeFile (planPathFor dir) fromAGitRepository
     traverse_ (unpack dir) clones
-    act dir
+    withEnvironment [("XDG_CACHE_HOME", dir </> "cache")] (act dir)
   where
     unpack dir (named, version) = do
       let at = dir </> "dist-newstyle" </> "src" </> named
@@ -752,15 +849,15 @@
 generatedModuleSpec = describe "a module cabal generates" $ do
   it "declares nothing, rather than being one we could not read" $
     withFakeProject [("src/M.hs", "module M where\nimport Paths_fake\n")] $
-      \rs -> askFixities rs "Paths_fake" `shouldReturn` Just Map.empty
+      \rs -> fixitiesOf rs "Paths_fake" `shouldReturn` Just Map.empty
 
   it "answers for the newer one cabal writes beside it" $
     withFakeProject [("src/M.hs", "module M where\n")] $
-      \rs -> askFixities rs "PackageInfo_fake" `shouldReturn` Just Map.empty
+      \rs -> fixitiesOf rs "PackageInfo_fake" `shouldReturn` Just Map.empty
 
   it "says nothing about a package the plan does not hold" $
     withFakeProject [("src/M.hs", "module M where\n")] $
-      \rs -> askFixities rs "Paths_not_a_package" `shouldReturn` Nothing
+      \rs -> fixitiesOf rs "Paths_not_a_package" `shouldReturn` Nothing
 
   it "lets a module that imports one be read"
     $ withFakeProject
@@ -770,7 +867,7 @@
         ("src/Inner.hs", "module Inner ((<+>)) where\ninfixr 5 <+>\na <+> b = a\n")
       ]
     $ \rs ->
-      askFixities rs "Facade"
+      fixitiesOf rs "Facade"
         >>= (`shouldBe` Just (Map.singleton (InTerms, OpName "<+>") (Fixity RightAssoc 5)))
 
   it "reads one somebody wrote by hand rather than assuming"
@@ -780,9 +877,96 @@
         )
       ]
     $ \rs ->
-      askFixities rs "Paths_fake"
+      fixitiesOf rs "Paths_fake"
         >>= (`shouldBe` Just (Map.singleton (InTerms, OpName "<+>") (Fixity RightAssoc 5)))
 
+-- | Modules asked about from several threads at once.
+askedAtOnce :: Spec
+askedAtOnce = describe "modules asked about from several threads at once" $
+  it "answers for every module of a ring that hands itself on" $
+    withFakePlan [("src/" <> T.unpack (ringModule i) <> ".hs", ringSource i) | i <- [0 .. ringSize - 1]] $ \plan ->
+      forM_ [1 :: Int .. 50] $ \_ -> do
+        resolver <- newResolverVia (Do #useCache) [FromInterface] plan
+        answers <-
+          timeout 30000000 $
+            inParallel (fixitiesOf resolver . ringModule) [0 .. ringSize - 1]
+        case answers of
+          Nothing -> expectationFailure "the threads waited for one another"
+          Just found ->
+            forM_ (zip [0 ..] found) $ \(i, fixities) ->
+              (Map.lookup (InTerms, ringOperator i) =<< fixities)
+                `shouldBe` Just (Fixity RightAssoc (i `mod` 10))
+
+-- | A module of the project's own, which an earlier run has read.
+readBefore :: Spec
+readBefore = describe "a module of the project's own, read by an earlier run" $ do
+  it "is answered for as before while its text stays the same" $
+    withFakePlan [("src/Ops.hs", declaring "infixl 6")] $ \plan -> do
+      _ <- newResolver plan >>= (`fixitiesOf` "Ops")
+      newResolver plan
+        >>= (`fixitiesOf` "Ops")
+        >>= (`shouldBe` Just (Map.singleton (InTerms, OpName "<+>") (Fixity LeftAssoc 6)))
+
+  it "is read again once its text has changed" $
+    withFakePlan [("src/Ops.hs", declaring "infixl 6")] $ \plan -> do
+      _ <- newResolver plan >>= (`fixitiesOf` "Ops")
+      traverse_ (\dir -> T.writeFile (dir </> "src" </> "Ops.hs") (declaring "infixr 2")) (localDirsOf plan)
+      newResolver plan
+        >>= (`fixitiesOf` "Ops")
+        >>= (`shouldBe` Just (Map.singleton (InTerms, OpName "<+>") (Fixity RightAssoc 2)))
+  where
+    declaring fixity =
+      T.unlines
+        [ "module Ops ((<+>)) where",
+          fixity <> " <+>",
+          "(<+>) :: Int -> Int -> Int",
+          "a <+> b = a + b"
+        ]
+    localDirsOf plan = [dir | LocalPackage dir <- fmap ppSource (bpPackages plan)]
+
+-- | How many modules the ring has.
+ringSize :: Int
+ringSize = 8
+
+-- | The name of a module of the ring.
+ringModule :: Int -> Text
+ringModule i = "Ring" <> T.pack (show i)
+
+-- | The operator a module of the ring declares.
+ringOperator :: Int -> OpName
+ringOperator i = OpName ("%" <> T.replicate (i + 1) "|")
+
+-- | A module of the ring, which declares an operator and hands on the next
+-- module, the last handing on the first.
+ringSource :: Int -> Text
+ringSource i =
+  T.unlines
+    [ "module " <> ringModule i <> " ((" <> op <> "), module " <> next <> ") where",
+      "import " <> next,
+      "infixr " <> T.pack (show (i `mod` 10)) <> " " <> op,
+      "(" <> op <> ") :: Int -> Int -> Int",
+      "a " <> op <> " _ = a"
+    ]
+  where
+    OpName op = ringOperator i
+    next = ringModule ((i + 1) `mod` ringSize)
+
+-- | What a module exports, where reading it settles every name.
+fixitiesOf :: Resolver -> Text -> IO (Maybe Fixities)
+fixitiesOf resolver modName = settled <$> askModule resolver modName
+  where
+    settled established
+      | settlesEverything established = Just (establishedFixities established)
+      | otherwise = Nothing
+
+-- | The members of each of a module's names.
+membersIn :: Resolver -> Text -> IO (Map.Map OpName (Set.Set OpName))
+membersIn resolver modName = establishedMembers <$> askModule resolver modName
+
+-- | Every name a module certainly brings in.
+certainNamesOf :: Resolver -> Text -> IO (Set.Set (Namespace, OpName))
+certainNamesOf resolver modName = certainNames . establishedCertain <$> askModule resolver modName
+
 -- | A module of the kind @hsc2hs@ takes, declaring an operator nothing can
 -- get at.
 cursed :: Text
@@ -810,35 +994,50 @@
     ]
 
 -- | What the chase makes of one module's @<+>@, against a world of modules
--- that disagree about it.
+-- that disagree about it, where it settles it.
 chased :: Text -> IO (Maybe Fixity)
 chased source = do
-  answer <-
-    withReexports (Is #implicitPrelude) reach carries Set.empty "M" (pmModule parsed)
-  pure $ case answer of
-    Declares fixities -> Map.lookup (InTerms, OpName "<+>") fixities
-    Unreadable _ -> Nothing
+  answer <- chasedModule source
+  pure $
+    if null (unsettledThrough answer plus)
+      then Map.lookup plus (establishedFixities answer)
+      else Nothing
   where
-    carries m =
-      pure $ case m of
-        "Text.PrettyPrint" ->
-          Map.fromList [(OpName "Doc", Set.fromList [OpName "<+>"])]
-        _ -> Map.empty
+    plus = (InTerms, OpName "<+>")
+
+-- | What the chase makes of one module against that world.
+chasedModule :: Text -> IO Established
+chasedModule source =
+  withReexports reach "M" (summarize (Is #implicitPrelude) (pmModule parsed))
+  where
     parsed = case parseModule defaultParserConfig "M.hs" source of
       Left _ -> error "the test input did not parse"
       Right m -> m
     reach m =
       pure $ case m of
-        "Control.Arrow" -> Just (Map.fromList [((InTerms, OpName "<+>"), Fixity RightAssoc 5)])
-        "Text.PrettyPrint" -> Just (Map.fromList [((InTerms, OpName "<+>"), Fixity LeftAssoc 6)])
-        "Prelude" -> Just Map.empty
-        _ -> Nothing
+        "Control.Arrow" -> bringing (Fixity RightAssoc 5)
+        "Text.PrettyPrint" ->
+          (bringing (Fixity LeftAssoc 6))
+            { establishedCertain =
+                Certain
+                  (Set.fromList [plus, doc])
+                  (Map.singleton (OpName "Doc") (Set.singleton plus)),
+              establishedMembers = Map.singleton (OpName "Doc") (Set.singleton (OpName "<+>"))
+            }
+        "Prelude" -> mempty
+        _ -> unreadable
+    bringing fixity =
+      mempty
+        { establishedFixities = Map.singleton plus fixity,
+          establishedCertain = Certain (Set.singleton plus) Map.empty
+        }
+    plus = (InTerms, OpName "<+>")
+    doc = (InTypes, OpName "Doc")
 
 withPlan :: BuildPlan -> Spec
 withPlan plan = do
   resolver <- runIO (newResolver plan)
-  let resolve = askFixities resolver
-      exported = askExportNames resolver
+  let resolve = fixitiesOf resolver
 
   describe "the plan itself" $ do
     it "names the compiler" $
@@ -881,13 +1080,22 @@
         Map.lookup (InTerms, OpName "<+>") fixities `shouldBe` Just (Fixity RightAssoc 6)
 
   describe "boot packages" $ do
-    it "answers for Prelude from the built-in table" $
+    it "answers for Prelude from its interface" $
       needs resolve "Prelude" $ \fixities -> do
         Map.lookup (InTerms, OpName "$") fixities `shouldBe` Just (Fixity RightAssoc 0)
         Map.lookup (InTerms, OpName ">>=") fixities `shouldBe` Just (Fixity LeftAssoc 1)
         Map.lookup (InTerms, OpName ".") fixities `shouldBe` Just (Fixity RightAssoc 9)
-        Map.lookup (InTerms, OpName ":") fixities `shouldBe` Just (Fixity RightAssoc 5)
 
+    it "answers for the primitive operations, which have no interface" $
+      needs resolve "GHC.Exts" $ \fixities -> do
+        Map.lookup (InTerms, OpName "+#") fixities
+          `shouldBe` Just (Fixity LeftAssoc 6)
+        Map.lookup (InTerms, OpName "seq") fixities
+          `shouldBe` Just (Fixity RightAssoc 0)
+
+    it "answers for a module a package exposes but another one holds" $
+      needs resolve "GHC.Num.Integer" (\_ -> pure ())
+
     it "answers for Control.Applicative" $
       needs resolve "Control.Applicative" $ \fixities ->
         Map.lookup (InTerms, OpName "<|>") fixities `shouldBe` Just (Fixity LeftAssoc 3)
@@ -939,19 +1147,19 @@
     it "reads it, given what the .cabal puts in force" $
       withFakeProject [("fake.cabal", package ["LambdaCase"]), ("src/Fancy.hs", fancy)] $
         \rs ->
-          askFixities rs "Fancy"
+          fixitiesOf rs "Fancy"
             >>= (`shouldBe` Just (Map.singleton (InTerms, OpName "<+>") (Fixity RightAssoc 5)))
 
     it "cannot read it when the .cabal puts nothing in force" $
       withFakeProject [("fake.cabal", package []), ("src/Fancy.hs", fancy)] $
-        \rs -> askFixities rs "Fancy" `shouldReturn` Nothing
+        \rs -> fixitiesOf rs "Fancy" `shouldReturn` Nothing
 
     it "takes an extension the .cabal turns off into account"
       $ withFakeProject
         [ ("fake.cabal", package ["LambdaCase", "NoLambdaCase"]),
           ("src/Fancy.hs", fancy)
         ]
-      $ \rs -> askFixities rs "Fancy" `shouldReturn` Nothing
+      $ \rs -> fixitiesOf rs "Fancy" `shouldReturn` Nothing
 
   describe "modules whose source defeats us" $ do
     it "answers for Test.QuickCheck.Property, which cannot be parsed" $
@@ -988,7 +1196,7 @@
         -- The WINDOWS branch imports a module nothing has, which is what
         -- System.IO.CodePage does with System.Win32.CodePage. That branch
         -- is passed over rather than taken as a reason to say nothing.
-        askFixities rs "Platform"
+        fixitiesOf rs "Platform"
           >>= (`shouldBe` Just (Map.singleton (InTerms, OpName "<+>") (Fixity LeftAssoc 6)))
 
     it "answers from the configurations that are Haskell at all"
@@ -1007,10 +1215,10 @@
           )
         ]
       $ \rs ->
-        askFixities rs "Guarded"
+        fixitiesOf rs "Guarded"
           >>= (`shouldBe` Just (Map.singleton (InTerms, OpName "<+>") (Fixity LeftAssoc 6)))
 
-    it "still refuses when the configurations it can read disagree"
+    it "leaves what the configurations it can read disagree about unsettled"
       $ withFakeProject
         [ ( "src/Disagree.hs",
             T.unlines
@@ -1027,9 +1235,12 @@
               ]
           )
         ]
-      $ \rs -> askFixities rs "Disagree" `shouldReturn` Nothing
+      $ \rs -> do
+        answer <- askModule rs "Disagree"
+        unsettledThrough answer (InTerms, OpName "<+>") `shouldBe` [[]]
+        unsettledThrough answer (InTerms, OpName "sort") `shouldBe` []
 
-    it "says nothing when it can read no configuration at all"
+    it "settles what an import it can read decides, though no configuration reads every import"
       $ withFakeProject
         [ ( "src/Bothbad.hs",
             T.unlines
@@ -1045,36 +1256,35 @@
           )
         ]
       $ \rs ->
-        -- Not @Just mempty@: that would be claiming the module declares
-        -- nothing, which is a guess rather than the silence it deserves.
-        askFixities rs "Bothbad" `shouldReturn` Nothing
+        -- Not a guess: @sort@ is the one Data.List brings in, whatever the
+        -- other import is.
+        fixitiesOf rs "Bothbad" `shouldReturn` Just Map.empty
 
   describe "modules that re-export one another" $
     it "answers for one whose re-exports are mutually entangled" $ do
       answer <- resolve "GHC.Hs"
       answer `shouldSatisfy` (/= Nothing)
 
-  describe "what a package module says it exports" $
-    it "names them, read out of the package's own tarball" $
-      exported "Prettyprinter" >>= \case
-        Nothing -> pendingWith "could not read prettyprinter's source"
-        Just names -> names `shouldSatisfy` Set.member (OpName "<+>")
+  describe "what a package module brings in" $
+    it "names what it hands on" $ do
+      answer <- askModule resolver "Prettyprinter"
+      certainNames (establishedCertain answer) `shouldSatisfy` Set.member (InTerms, OpName "<+>")
 
-  describe "what a module keeps under each of its names" $ do
+  describe "the members of each of a module's names" $ do
     it "reads them out of a package's interface" $ do
-      kept <- askChildren resolver "Data.List.NonEmpty"
-      Map.lookup (OpName "NonEmpty") kept
+      members <- membersIn resolver "Data.List.NonEmpty"
+      Map.lookup (OpName "NonEmpty") members
         `shouldSatisfy` maybe False (Set.member (OpName ":|"))
 
     it "has nothing to say about a module it cannot find" $
-      askChildren resolver "No.Such.Module" `shouldReturn` Map.empty
+      membersIn resolver "No.Such.Module" `shouldReturn` Map.empty
 
     it "reads them out of a local module's source"
       $ withFakeProject
-        [("src/Carrier.hs", "module Carrier (T (..)) where\ndata T = A | Int :| Int\n")]
+        [("src/Members.hs", "module Members (T (..)) where\ndata T = A | Int :| Int\n")]
       $ \rs -> do
-        kept <- askChildren rs "Carrier"
-        Map.lookup (OpName "T") kept
+        members <- membersIn rs "Members"
+        Map.lookup (OpName "T") members
           `shouldBe` Just (Set.fromList [OpName "A", OpName ":|"])
 
     it "follows a type to the module that declares it"
@@ -1083,8 +1293,8 @@
           ("src/Inner.hs", "module Inner (T (..)) where\ninfixr 5 :|\ndata T = A | Int :| Int\n")
         ]
       $ \rs -> do
-        kept <- askChildren rs "Facade"
-        Map.lookup (OpName "T") kept
+        members <- membersIn rs "Facade"
+        Map.lookup (OpName "T") members
           `shouldBe` Just (Set.fromList [OpName "A", OpName ":|"])
 
     it "carries the fixity along with it, so the name can be looked up"
@@ -1093,7 +1303,7 @@
           ("src/Inner.hs", "module Inner (T (..)) where\ninfixr 5 :|\ndata T = A | Int :| Int\n")
         ]
       $ \rs -> do
-        fixities <- askFixities rs "Facade"
+        fixities <- fixitiesOf rs "Facade"
         (Map.lookup (InTerms, OpName ":|") =<< fixities)
           `shouldBe` Just (Fixity RightAssoc 5)
 
@@ -1104,7 +1314,7 @@
         ]
       $ \rs -> do
         let m = parse "module M where\nimport Facade (T (..))\n"
-        scope <- scopeFor rs (Is #implicitPrelude) (pmModule m)
+        scope <- scopeFor rs (Is #implicitPrelude) (pure (pmModule m))
         lookupFixity scope InTerms Nothing (OpName ":|")
           `shouldBe` Resolved (Fixity RightAssoc 5) (DeclaredIn "Facade")
 
@@ -1114,8 +1324,8 @@
           ("src/Inner.hs", "module Inner (T (..)) where\ninfixr 5 :|\ndata T = A | Int :| Int\n")
         ]
       $ \rs -> do
-        kept <- askChildren rs "Facade"
-        Map.lookup (OpName "T") kept
+        members <- membersIn rs "Facade"
+        Map.lookup (OpName "T") members
           `shouldBe` Just (Set.fromList [OpName "A", OpName ":|"])
 
     it "comes back from two modules that hand each other on"
@@ -1123,24 +1333,25 @@
         [ ("src/Ping.hs", "module Ping (T (..)) where\nimport Pong\n"),
           ("src/Pong.hs", "module Pong (T (..)) where\nimport Ping\n")
         ]
-      $ \rs -> askChildren rs "Ping" `shouldReturn` Map.singleton (OpName "T") Set.empty
+      $ \rs -> membersIn rs "Ping" `shouldReturn` Map.empty
 
     it "keeps to what a local module's export list hands on"
       $ withFakeProject
-        [("src/Carrier.hs", "module Carrier (T (A)) where\ndata T = A | Int :| Int\n")]
+        [("src/Members.hs", "module Members (T (A)) where\ndata T = A | Int :| Int\n")]
       $ \rs -> do
-        kept <- askChildren rs "Carrier"
-        Map.lookup (OpName "T") kept `shouldBe` Just (Set.singleton (OpName "A"))
+        members <- membersIn rs "Members"
+        Map.lookup (OpName "T") members `shouldBe` Just (Set.singleton (OpName "A"))
 
-  describe "what a module says it exports, where its fixities are beyond us" $ do
-    it "names them though the module itself went unresolved" $
+  describe "what a module leaves unsettled" $ do
+    it "is what it hands on from where reading gave up" $
       withFakeProject [("src/Opaque.hs", opaqueSource)] $
         \rs -> do
-          askFixities rs "Opaque" `shouldReturn` Nothing
-          askExportNames rs "Opaque"
-            `shouldReturn` Just (Set.fromList [OpName "<+>", OpName "f"])
+          answer <- askModule rs "Opaque"
+          establishedUnsettled answer
+            `shouldBe` Map.singleton ["No.Such.Module"] (Set.singleton (InTerms, OpName "<+>"))
+          establishedUntold answer `shouldBe` Set.empty
 
-    it "says nothing for a module that hands a whole module on"
+    it "is nothing for a module that hands on a whole module it can read, whatever else it imports"
       $ withFakeProject
         [ ( "src/Wide.hs",
             T.unlines
@@ -1150,51 +1361,39 @@
               ]
           )
         ]
-      $ \rs -> askExportNames rs "Wide" `shouldReturn` Nothing
+      $ \rs -> settlesEverything <$> askModule rs "Wide" `shouldReturn` True
 
-    it "says nothing for a module it cannot find at all" $
+    it "is everything for a module it cannot find at all" $
       withFakeProject [("src/Opaque.hs", opaqueSource)] $
-        \rs -> askExportNames rs "No.Such.Module" `shouldReturn` Nothing
-
-    it "follows a type it hands on to the module that declares it"
-      $ withFakeProject
-        [ ("src/Facade.hs", "module Facade (T (..), (<+>)) where\nimport Inner\n"),
-          ("src/Inner.hs", "module Inner (T (..)) where\ndata T = A | Int :| Int\n")
-        ]
-      $ \rs ->
-        askExportNames rs "Facade"
-          `shouldReturn` Just (Set.fromList [OpName "T", OpName "A", OpName ":|", OpName "<+>"])
-
-    it "follows a whole module it hands on"
-      $ withFakeProject
-        [ ("src/Facade.hs", "module Facade (module Inner) where\nimport Inner\n"),
-          ("src/Inner.hs", "module Inner ((<+>)) where\ninfixl 6 <+>\n(<+>) :: Int -> Int -> Int\na <+> b = a + b\n")
-        ]
-      $ \rs ->
-        askExportNames rs "Facade" `shouldReturn` Just (Set.singleton (OpName "<+>"))
+        \rs -> askModule rs "No.Such.Module" `shouldReturn` unreadable
 
-    it "says nothing when what it hands on cannot be read"
+    it "is everything it does not certainly bring in, when what it hands on whole cannot be read"
       $ withFakeProject
         [("src/Facade.hs", "module Facade (module No.Such.Module) where\nimport No.Such.Module\n")]
-      $ \rs -> askExportNames rs "Facade" `shouldReturn` Nothing
+      $ \rs -> do
+        answer <- askModule rs "Facade"
+        establishedUntold answer `shouldBe` Set.singleton ["No.Such.Module"]
 
-    it "says nothing when a type it hands on is beyond us"
+    it "is the type and its members, when a type it hands on is beyond us"
       $ withFakeProject
         [("src/Facade.hs", "module Facade (T (..)) where\nimport No.Such.Module\n")]
-      $ \rs -> askExportNames rs "Facade" `shouldReturn` Nothing
+      $ \rs -> do
+        answer <- askModule rs "Facade"
+        unsettledThrough answer (InTypes, OpName "T") `shouldBe` [["No.Such.Module"]]
+        unsettledThrough answer (InTerms, OpName ":|") `shouldBe` [["No.Such.Module"]]
 
     it "comes back from two modules that hand each other on"
       $ withFakeProject
         [ ("src/Ping.hs", "module Ping (module Pong) where\nimport Pong\n"),
           ("src/Pong.hs", "module Pong (module Ping) where\nimport Ping\n")
         ]
-      $ \rs -> askExportNames rs "Ping" `shouldReturn` Nothing
+      $ \rs -> askModule rs "Ping" `shouldReturn` mempty
 
-    it "says nothing for a module whose source will not parse" $
+    it "is everything for a module whose source will not parse" $
       withFakeProject [("src/Bad.hs", "module Bad ((<+>)) where\nf = (((\n")] $
-        \rs -> askExportNames rs "Bad" `shouldReturn` Nothing
+        \rs -> askModule rs "Bad" `shouldReturn` unreadable
 
-    it "takes them from every configuration the preprocessor allows"
+    it "is what any configuration leaves unsettled, where none settles every name"
       $ withFakeProject
         [ ( "src/Both.hs",
             T.unlines
@@ -1208,31 +1407,16 @@
               ]
           )
         ]
-      $ \rs ->
-        askExportNames rs "Both" `shouldReturn` Just (Set.fromList [OpName "<+>", OpName "<?>"])
-
-    it "says nothing when one configuration hands a whole module on"
-      $ withFakeProject
-        [ ( "src/Half.hs",
-            T.unlines
-              [ "{-# LANGUAGE CPP #-}",
-                "#ifdef WINDOWS",
-                "module Half ((<+>)) where",
-                "#else",
-                "module Half (module Data.List) where",
-                "#endif",
-                "import Data.List",
-                "import No.Such.Module"
-              ]
-          )
-        ]
-      $ \rs -> askExportNames rs "Half" `shouldReturn` Nothing
+      $ \rs -> do
+        answer <- askModule rs "Both"
+        establishedUnsettled answer
+          `shouldBe` Map.singleton ["No.Such.Module"] (Set.fromList [(InTerms, OpName "<+>"), (InTerms, OpName "<?>")])
 
     it "settles an operator no unread module in scope could have declared" $
       withFakeProject [("src/Opaque.hs", opaqueSource)] $
         \rs -> do
           let m = parse "module M where\nimport Opaque\n"
-          scope <- scopeFor rs (Is #implicitPrelude) (pmModule m)
+          scope <- scopeFor rs (Is #implicitPrelude) (pure (pmModule m))
           lookupFixity scope InTerms Nothing (OpName "<??>")
             `shouldBe` Resolved defaultFixity ReportDefault
 
@@ -1240,25 +1424,173 @@
       withFakeProject [("src/Opaque.hs", opaqueSource)] $
         \rs -> do
           let m = parse "module M where\nimport Opaque\n"
-          scope <- scopeFor rs (Is #implicitPrelude) (pmModule m)
+          scope <- scopeFor rs (Is #implicitPrelude) (pure (pmModule m))
           lookupFixity scope InTerms Nothing (OpName "<+>")
             `shouldBe` Unresolved (ModuleChain ("Opaque" :| ["No.Such.Module"]) :| [])
 
     it "names the module that stopped it rather than the import above it" $
       withFakeProject [("src/Opaque.hs", opaqueSource)] $
-        \rs -> askChain rs "Opaque" `shouldReturn` ["No.Such.Module"]
+        \rs -> Map.keys . establishedUnsettled <$> askModule rs "Opaque" `shouldReturn` [["No.Such.Module"]]
 
     it "follows the reasons down more than one module"
       $ withFakeProject
         [ ("src/Near.hs", "module Near ((<+>)) where\nimport Middle\n"),
           ("src/Middle.hs", "module Middle ((<+>)) where\nimport No.Such.Module\n")
         ]
-      $ \rs -> askChain rs "Near" `shouldReturn` ["Middle", "No.Such.Module"]
+      $ \rs -> Map.keys . establishedUnsettled <$> askModule rs "Near" `shouldReturn` [["Middle", "No.Such.Module"]]
 
     it "has nothing to say about a module that could be read" $
       withFakeProject [("src/Opaque.hs", opaqueSource)] $
-        \rs -> askChain rs "Prelude" `shouldReturn` []
+        \rs -> settlesEverything <$> askModule rs "Prelude" `shouldReturn` True
 
+  describe "what a module brings in" $ do
+    it "is every name its interface exports" $ do
+      certain <- certainNamesOf resolver "Data.List"
+      Set.member (InTerms, OpName "isPrefixOf") certain `shouldBe` True
+
+    it "is what one of the project's own modules exports, read from its source" $
+      withFakeProject [("src/Opaque.hs", opaqueSource)] $
+        \rs ->
+          certainNamesOf rs "Opaque"
+            `shouldReturn` (Set.fromList [(InTerms, OpName "<+>"), (InTerms, OpName "f")])
+
+    it "is what a module in a tarball exports, read from its source" $
+      withFakeArchive [("Lib.hs", "module Lib (T (..), f) where\ndata T = C\nf :: Int\nf = 1\n")] $
+        \rs ->
+          certainNamesOf rs "Lib"
+            `shouldReturn` (Set.fromList [(InTypes, OpName "T"), (InTerms, OpName "C"), (InTerms, OpName "f")])
+
+    it "is everything a module with no export list defines, in its namespaces"
+      $ withFakeProject
+        [ ( "src/Own.hs",
+            T.unlines
+              [ "module Own where",
+                "data T = C | Int :+ Int",
+                "class K a where",
+                "  type F a",
+                "  method :: a",
+                "f :: Int",
+                "f = 1"
+              ]
+          )
+        ]
+      $ \rs ->
+        certainNamesOf rs "Own"
+          `shouldReturn` ( Set.fromList
+                             [ (InTypes, OpName "T"),
+                               (InTerms, OpName "C"),
+                               (InTerms, OpName ":+"),
+                               (InTypes, OpName "K"),
+                               (InTypes, OpName "F"),
+                               (InTerms, OpName "method"),
+                               (InTerms, OpName "f")
+                             ]
+                         )
+
+    it "takes the members of a type it exports from the type's declaration" $
+      withFakeProject [("src/Own.hs", "module Own (T (..)) where\ndata T = C | D\n")] $
+        \rs ->
+          certainNamesOf rs "Own"
+            `shouldReturn` (Set.fromList [(InTypes, OpName "T"), (InTerms, OpName "C"), (InTerms, OpName "D")])
+
+    it "keeps to the members its export list writes out beside a type" $
+      withFakeProject [("src/Own.hs", "module Own (T (C)) where\ndata T = C | D\n")] $
+        \rs ->
+          certainNamesOf rs "Own"
+            `shouldReturn` (Set.fromList [(InTypes, OpName "T"), (InTerms, OpName "C")])
+
+    it "takes the members of a type it hands on from the module the type came from"
+      $ withFakeProject
+        [ ("src/Inner.hs", "module Inner where\ndata T = C | D\n"),
+          ("src/Outer.hs", "module Outer (T (..)) where\nimport Inner\n")
+        ]
+      $ \rs ->
+        certainNamesOf rs "Outer"
+          `shouldReturn` (Set.fromList [(InTypes, OpName "T"), (InTerms, OpName "C"), (InTerms, OpName "D")])
+
+    it "takes what a whole module it hands on brings in"
+      $ withFakeProject
+        [ ("src/Inner.hs", "module Inner where\ndata T = C\nf :: Int\nf = 1\n"),
+          ("src/Outer.hs", "module Outer (module Inner) where\nimport Inner\n")
+        ]
+      $ \rs ->
+        certainNamesOf rs "Outer"
+          `shouldReturn` (Set.fromList [(InTypes, OpName "T"), (InTerms, OpName "C"), (InTerms, OpName "f")])
+
+    it "keeps to what the import list of a whole module it hands on certainly brings in"
+      $ withFakeProject
+        [ ("src/Inner.hs", "module Inner where\ndata T = C\nf :: Int\nf = 1\n"),
+          ("src/Outer.hs", "module Outer (module Inner) where\nimport Inner (f)\n")
+        ]
+      $ \rs -> certainNamesOf rs "Outer" `shouldReturn` (Set.fromList [(InTerms, OpName "f")])
+
+    it "keeps to what every configuration of a module brings in"
+      $ withFakeProject
+        [ ( "src/Own.hs",
+            T.unlines
+              [ "{-# LANGUAGE CPP #-}",
+                "module Own",
+                "  ( g,",
+                "#ifdef A",
+                "    f,",
+                "#endif",
+                "  )",
+                "where",
+                "f :: Int",
+                "f = 1",
+                "g :: Int",
+                "g = 2"
+              ]
+          )
+        ]
+      $ \rs -> certainNamesOf rs "Own" `shouldReturn` (Set.fromList [(InTerms, OpName "g")])
+
+    it "settles a name one of the project's own modules brings in, despite an unreadable import"
+      $ withFakeProject
+        [ ("src/A.hs", "module A where\ny = = 1\n"),
+          ("src/B.hs", "module B (clampTo) where\nclampTo :: Int -> Int -> Int\nclampTo = min\n")
+        ]
+      $ \rs -> do
+        let m = parse "module C (w) where\nimport A\nimport B\nw :: Int\nw = 1 `clampTo` 2\n"
+        scope <- scopeFor rs (Is #implicitPrelude) (pure (pmModule m))
+        lookupFixity scope InTerms Nothing (OpName "clampTo")
+          `shouldBe` Resolved defaultFixity ReportDefault
+
+    it "does not take a type it brings in for a constructor spelled the same way"
+      $ withFakeProject
+        [ ("src/A.hs", "module A where\ny = = 1\n"),
+          ("src/B.hs", "{-# LANGUAGE TypeOperators #-}\nmodule B ((:+:)) where\ndata a :+: b = a :+: b\n")
+        ]
+      $ \rs -> do
+        let m = parse "module C (w) where\nimport A\nimport B\nw = 1 :+: 2\n"
+        scope <- scopeFor rs (Is #implicitPrelude) (pure (pmModule m))
+        lookupFixity scope InTerms Nothing (OpName ":+:")
+          `shouldBe` Unresolved (unreadOnly "A")
+
+    it "settles a constructor a T(..) brings in, despite an unreadable module another re-exports"
+      $ withFakeProject
+        [ ("src/A.hs", "module A where\ny = = 1\n"),
+          ("src/Core.hs", "module Core (module A) where\nimport A\n"),
+          ("src/Tree.hs", "module Tree (Tree (..)) where\ndata Tree = Leaf | Node Tree Tree\n")
+        ]
+      $ \rs -> do
+        let m = parse "module C (w) where\nimport Core\nimport Tree (Tree (..))\nw = Leaf `Node` Leaf `Node` Leaf\n"
+        scope <- scopeFor rs (Is #implicitPrelude) (pure (pmModule m))
+        lookupFixity scope InTerms Nothing (OpName "Node")
+          `shouldBe` Resolved defaultFixity ReportDefault
+
+    it "leaves a constructor of a type imported on its own to that unreadable module"
+      $ withFakeProject
+        [ ("src/A.hs", "module A where\ny = = 1\n"),
+          ("src/Core.hs", "module Core (module A) where\nimport A\n"),
+          ("src/Tree.hs", "module Tree (Tree (..)) where\ndata Tree = Leaf | Node Tree Tree\n")
+        ]
+      $ \rs -> do
+        let m = parse "module C (w) where\nimport Core\nimport Tree (Tree)\nw = Leaf `Node` Leaf `Node` Leaf\n"
+        scope <- scopeFor rs (Is #implicitPrelude) (pure (pmModule m))
+        lookupFixity scope InTerms Nothing (OpName "Node")
+          `shouldBe` Unresolved (ModuleChain ("Core" :| ["A"]) :| [])
+
   describe "the whole pipeline, from source text to a fixity" $ do
     it "resolves an operator through a real import" $
       endToEnd resolver "module M where\nimport Prettyprinter\n" $ \scope ->
@@ -1283,6 +1615,12 @@
         lookupFixity scope InTerms Nothing (OpName "<+>")
           `shouldBe` Resolved (Fixity RightAssoc 6) (DeclaredIn "Prettyprinter")
 
+    it "brings in only the methods of a class an import list names with (..)" $
+      endToEnd resolver "module M where\nimport Text.ParserCombinators.ReadP\nimport Text.Read (Read (..))\n" $ \scope -> do
+        lookupFixity scope InTerms Nothing (OpName "+++")
+          `shouldBe` Resolved (Fixity RightAssoc 5) (DeclaredIn "Text.ParserCombinators.ReadP")
+        Map.keys (reachAmbiguous (reachIn InTerms scope)) `shouldBe` []
+
     it "honours a hiding list" $
       endToEnd resolver "module M where\nimport Prettyprinter hiding ((<+>))\n" $ \scope ->
         lookupFixity scope InTerms Nothing (OpName "<+>")
@@ -1298,6 +1636,37 @@
         lookupFixity scope InTerms Nothing (OpName "<!@#>")
           `shouldBe` Unresolved (unreadOnly "No.Such.Module")
 
+    it "settles a name a boot import brings in, despite an unreadable import" $
+      endToEnd resolver "module M where\nimport Data.List\nimport No.Such.Module\n" $ \scope -> do
+        lookupFixity scope InTerms Nothing (OpName "min")
+          `shouldBe` Resolved defaultFixity ReportDefault
+        lookupFixity scope InTerms Nothing (OpName "isPrefixOf")
+          `shouldBe` Resolved defaultFixity ReportDefault
+
+    it "settles a constructor a T(..) brings in, despite an unreadable import"
+      $ endToEnd
+        resolver
+        "module M where\nimport Data.Ord (Down (..))\nimport No.Such.Module\n"
+      $ \scope ->
+        lookupFixity scope InTerms Nothing (OpName "Down")
+          `shouldBe` Resolved defaultFixity ReportDefault
+
+    it "settles one written out beside its type, despite an unreadable import"
+      $ endToEnd
+        resolver
+        "module M where\nimport Data.Ord (Down (Down))\nimport No.Such.Module\n"
+      $ \scope ->
+        lookupFixity scope InTerms Nothing (OpName "Down")
+          `shouldBe` Resolved defaultFixity ReportDefault
+
+    it "leaves a constructor of a type imported on its own to the unreadable import"
+      $ endToEnd
+        resolver
+        "module M where\nimport Data.Ord (Down)\nimport No.Such.Module\n"
+      $ \scope ->
+        lookupFixity scope InTerms Nothing (OpName "Down")
+          `shouldBe` Unresolved (unreadOnly "No.Such.Module")
+
     it "still answers for what it did find, despite an unreadable import" $
       endToEnd resolver "module M where\nimport Prettyprinter\nimport No.Such.Module\n" $ \scope ->
         lookupFixity scope InTerms Nothing (OpName "<+>")
@@ -1340,7 +1709,7 @@
 
     it "reports no ambiguity for a module that compiles" $
       endToEnd resolver "module M where\nimport Prettyprinter\n" $ \scope ->
-        reachAmbiguous (scopeInTerms scope) `shouldBe` []
+        reachAmbiguous (scopeInTerms scope) `shouldBe` Map.empty
 
   describe "readiness" $ do
     it "reports something other than a missing plan for this project" $ do
@@ -1432,8 +1801,8 @@
 -- | The same two, asked only about what @cabal@ builds by default. What is
 -- fallen back on where the whole project will not solve.
 narrowSolve, narrowFetch :: [String]
-narrowSolve = ["build", "all", "--dry-run"]
-narrowFetch = ["build", "all", "--only-download"]
+narrowSolve = ["build", ":all", "--dry-run"]
+narrowFetch = ["build", ":all", "--only-download"]
 
 wholeProject :: [String]
 wholeProject = ["--enable-tests", "--enable-benchmarks"]
@@ -1445,11 +1814,8 @@
 obliging :: IORef [[String]] -> [String] -> IO (Either Text ())
 obliging steps args = record steps args >> pure (Right ())
 
--- | Run an assertion on a module's fixities, or mark the test pending if
--- the module could not be resolved at all.
---
--- Pending rather than failing, because an unpopulated package cache is an
--- environment problem and not a defect in the code under test.
+-- | Run an assertion on a module's fixities, failing where the module could
+-- not be resolved at all.
 needs ::
   (Text -> IO (Maybe (Fixities))) ->
   Text ->
@@ -1457,7 +1823,7 @@
   Expectation
 needs resolve modName assertion =
   resolve modName >>= \case
-    Nothing -> pendingWith ("could not resolve " <> T.unpack modName)
+    Nothing -> expectationFailure ("could not resolve " <> T.unpack modName)
     Just fixities -> assertion fixities
 
 -- | Parse a module, resolve its imports for real, and hand over the scope.
@@ -1470,7 +1836,7 @@
   case parseModule defaultParserConfig "test.hs" source of
     Left _ -> expectationFailure "the test input did not parse"
     Right pm -> do
-      scope <- scopeFor resolver (Is #implicitPrelude) (pmModule pm)
+      scope <- scopeFor resolver (Is #implicitPrelude) (pure (pmModule pm))
       assertion scope
 
 -- | Check one expected fixity, returning a description of any mismatch.
@@ -1572,7 +1938,7 @@
         <> "\"}}]}"
     readBuildPlan (dir </> "plan.json") >>= \case
       Left why -> error (T.unpack why)
-      Right plan -> act plan
+      Right plan -> withEnvironment [("XDG_CACHE_HOME", dir </> "cache")] (act plan)
   where
     haskellIn = filter (isModule . fst)
     isModule path = any (`Data.List.isSuffixOf` path) [".hs", ".hsc"]
diff --git a/tests/Tilia/FixitySpec.hs b/tests/Tilia/FixitySpec.hs
--- a/tests/Tilia/FixitySpec.hs
+++ b/tests/Tilia/FixitySpec.hs
@@ -8,13 +8,18 @@
 module Tilia.FixitySpec (spec) where
 
 import Data.Choice (Choice, pattern Is, pattern Isn't)
-import Data.List.NonEmpty (NonEmpty ((:|)))
+import Data.List.NonEmpty (NonEmpty ((:|)), nonEmpty)
 import Data.Map.Strict qualified as Map
 import Data.Set qualified as Set
 import Data.Text (Text)
+import Data.Text qualified as T
+import GHC.Hs (HsModule)
+import GHC.Hs.Extension (GhcPs)
 import Test.Hspec
+import Tilia.Cpp (blankCpp, branchLeaves)
 import Tilia.Fixity
 import Tilia.Parser
+import Tilia.Span (spanStartColumn, spanStartLine)
 
 spec :: Spec
 spec = do
@@ -110,12 +115,12 @@
 
     it "reports no ambiguity between them" $ do
       let scope = scopeOfBoth "import Types\nimport Terms\n"
-      reachAmbiguous (scopeInTypes scope) `shouldBe` []
-      reachAmbiguous (scopeInTerms scope) `shouldBe` []
+      reachAmbiguous (scopeInTypes scope) `shouldBe` Map.empty
+      reachAmbiguous (scopeInTerms scope) `shouldBe` Map.empty
 
     it "still reports one where both are in the same namespace" $
       reachAmbiguous (scopeInTerms (scopeOfBoth "import Terms\nimport Other.Terms\n"))
-        `shouldBe` [(Nothing, OpName ":>")]
+        `shouldBe` Map.fromList [((Nothing, OpName ":>"), termsDisagreeing)]
 
     it "takes a promoted constructor's fixity from the terms" $
       lookupFixity (scopeOfBoth "import Terms\n") InTypes Nothing (OpName ":>")
@@ -135,7 +140,7 @@
 
     it "declines one that writes an operator both agree to disagree about" $
       fmap snd (unsettledIn "module M where\nimport Terms\nimport Other.Terms\nf a b = a :> b\n")
-        `shouldBe` [Ambiguous]
+        `shouldBe` [Ambiguous termsDisagreeing]
 
   describe "what a module says it exports" $ do
     it "has nothing to say about a module with no export list" $
@@ -143,11 +148,11 @@
 
     it "keeps the qualifier a name was written under" $
       exportsOfSource "module M ((Disp.<+>)) where\n"
-        `shouldBe` Just [ExportName (Just "Disp") (OpName "<+>")]
+        `shouldBe` Just [ExportName InTerms (Just "Disp") (OpName "<+>")]
 
     it "has none for a name written plainly" $
       exportsOfSource "module M ((<+>)) where\n"
-        `shouldBe` Just [ExportName Nothing (OpName "<+>")]
+        `shouldBe` Just [ExportName InTerms Nothing (OpName "<+>")]
 
     it "reads a whole module passed on as the module it names" $
       exportsOfSource "module M (module Data.Map) where\n"
@@ -186,15 +191,23 @@
       lookupFixity (fullScope usesUnknown) InTerms Nothing (OpName "<??>")
         `shouldBe` Unresolved (unreadOnly "Opaque")
 
-    it "passes over one whose import list carries no such operator" $
+    it "blames a module once, however many of its imports could supply it" $
       lookupFixity
+        (fullScope "module M where\nimport Opaque\nimport Opaque ((<??>))\n")
+        InTerms
+        Nothing
+        (OpName "<??>")
+        `shouldBe` Unresolved (unreadOnly "Opaque")
+
+    it "passes over one whose import list names no such operator" $
+      lookupFixity
         (scopeSuspecting [("Opaque", [("T", ["<+>"])])] "import Opaque (T (..))\n")
         InTerms
         Nothing
         (OpName "<??>")
         `shouldBe` Resolved defaultFixity ReportDefault
 
-    it "blames one whose import list carries it" $
+    it "blames one whose import list names it" $
       lookupFixity
         (scopeSuspecting [("Opaque", [("T", ["<??>"])])] "import Opaque (T (..))\n")
         InTerms
@@ -221,73 +234,259 @@
     it "lets a file be formatted when no unread module could have declared it" $
       unknownOperators
         (scopeKnowing [("Opaque", ["<+>"])] usesUnknown)
-        (pmModule (parsed usesUnknown))
+        (pure (pmGathered (parsed usesUnknown)))
         `shouldBe` []
 
-  describe "what a name carries with it" $ do
-    it "takes a type's constructors" $
-      childrenIn "module M where\ndata T = A | Int :| Int\n"
-        `shouldBe` [(OpName "T", [OpName ":|", OpName "A"])]
+    it "passes over every one for a name the module defines itself" $
+      lookupFixity (fullScope definesItsOwn) InTerms Nothing (OpName "clamp")
+        `shouldBe` Resolved defaultFixity ReportDefault
 
-    it "takes a record's fields, which may be operators" $
-      childrenIn "module M where\ndata T = T {(#) :: Int, name :: Int}\n"
-        `shouldBe` [(OpName "T", [OpName "#", OpName "T", OpName "name"])]
+    it "passes over every one for a use under the module's own name" $
+      lookupFixity (fullScope definesItsOwn) InTerms (Just "M") (OpName "clamp")
+        `shouldBe` Resolved defaultFixity ReportDefault
 
-    it "takes a GADT's constructors" $
-      childrenIn "module M where\ndata T where\n  A :: T\n  (:|) :: T -> T\n"
-        `shouldBe` [(OpName "T", [OpName ":|", OpName "A"])]
+    it "still blames one for a use under the qualifier it is imported as" $
+      lookupFixity
+        (fullScope "module M where\nimport qualified Opaque as O\nclamp = max\n")
+        InTerms
+        (Just "O")
+        (OpName "clamp")
+        `shouldBe` Unresolved (unreadOnly "Opaque")
 
-    it "takes a class's methods" $
-      childrenIn "module M where\nclass C a where\n  (.=) :: a -> a -> Int\n  named :: a\n"
-        `shouldBe` [(OpName "C", [OpName ".=", OpName "named"])]
+    it "still blames one for a type when the module defines only a constructor" $
+      lookupFixity
+        (fullScope "module M where\nimport Opaque\ndata T = Int :+: Int\n")
+        InTypes
+        Nothing
+        (OpName ":+:")
+        `shouldBe` Unresolved (unreadOnly "Opaque")
 
-    it "takes a class's associated families" $
-      childrenIn "module M where\nclass C a where\n  type F a\n"
-        `shouldBe` [(OpName "C", [OpName "F"])]
+    it "lets a file be formatted that uses what it defines itself" $
+      unknownOperators (fullScope definesItsOwn) (pure (pmGathered (parsed definesItsOwn)))
+        `shouldBe` []
 
+    it "passes over every one for a name an import it could read brings in" $
+      lookupFixity (scopeBringing preludeBringsMin "import Opaque\n") InTerms Nothing (OpName "min")
+        `shouldBe` Resolved defaultFixity ReportDefault
+
+    it "passes over every one for a name brought in under the qualifier used" $
+      lookupFixity
+        (scopeBringing [("Data.List", [(InTerms, "isPrefixOf")])] "import qualified Data.List as L\nimport qualified Opaque as L\n")
+        InTerms
+        (Just "L")
+        (OpName "isPrefixOf")
+        `shouldBe` Resolved defaultFixity ReportDefault
+
+    it "still blames one for a name brought in only under another qualifier" $
+      lookupFixity
+        (scopeBringing [("Data.List", [(InTerms, "isPrefixOf")])] "import qualified Data.List as L\nimport Opaque\n")
+        InTerms
+        Nothing
+        (OpName "isPrefixOf")
+        `shouldBe` Unresolved (unreadOnly "Opaque")
+
+    it "passes over every one for a variable an import list names" $
+      lookupFixity
+        (scopeBringing [("Data.List", [(InTerms, "isPrefixOf")])] "import Data.List (isPrefixOf)\nimport Opaque\n")
+        InTerms
+        Nothing
+        (OpName "isPrefixOf")
+        `shouldBe` Resolved defaultFixity ReportDefault
+
+    it "still blames one for a name an import list leaves out" $
+      lookupFixity
+        (scopeBringing [("Data.List", [(InTerms, "isPrefixOf")])] "import Data.List (nub)\nimport Opaque\n")
+        InTerms
+        Nothing
+        (OpName "isPrefixOf")
+        `shouldBe` Unresolved (unreadOnly "Opaque")
+
+    it "still blames one for a name a hiding list may hide along with a type" $
+      lookupFixity
+        (scopeBringing [("Readable", [(InTerms, ":|")])] "import Readable hiding (T (..))\nimport Opaque\n")
+        InTerms
+        Nothing
+        (OpName ":|")
+        `shouldBe` Unresolved (unreadOnly "Opaque")
+
+    it "still blames one for a constructor brought in only as a type" $
+      lookupFixity
+        (scopeBringing [("Readable", [(InTypes, ":+:")])] "import Readable\nimport Opaque\n")
+        InTerms
+        Nothing
+        (OpName ":+:")
+        `shouldBe` Unresolved (unreadOnly "Opaque")
+
+    it "does not take a name a module brings in for settled where it leaves the name unsettled" $
+      let leavingMin = \case
+            "Opaque" ->
+              mempty
+                { establishedCertain = Certain (Set.singleton (InTerms, OpName "min")) Map.empty,
+                  establishedUnsettled = Map.singleton [] (Set.singleton (InTerms, OpName "min"))
+                }
+            m -> knowingExports m
+          scope = resolveScope (Is #implicitPrelude) leavingMin (pure (pmModule (parsed "module M where\nimport Opaque\n")))
+       in lookupFixity scope InTerms Nothing (OpName "min") `shouldBe` Unresolved (unreadOnly "Opaque")
+
+    it "lets a file be formatted whose every unsettled name is accounted for" $
+      let source =
+            T.unlines
+              [ "module C (w) where",
+                "import A",
+                "w :: Int",
+                "w = (y `clamp` 2) `min` 3 + n `roundTo` 2",
+                "  where",
+                "    n = 7",
+                "    a `roundTo` b = a * b",
+                "clamp :: Int -> Int -> Int",
+                "clamp = max"
+              ]
+          scope =
+            resolveScope
+              (Is #implicitPrelude)
+              ( \case
+                  "A" -> unreadable
+                  "Prelude" ->
+                    mempty
+                      { establishedFixities =
+                          inBothNamespaces (Map.fromList [(OpName "+", Fixity LeftAssoc 6), (OpName "*", Fixity LeftAssoc 7)]),
+                        establishedCertain =
+                          Certain (Set.fromList [(InTerms, OpName "min"), (InTerms, OpName "+"), (InTerms, OpName "*")]) Map.empty
+                      }
+                  m -> knowingExports m
+              )
+              (pure (pmModule (parsed source)))
+       in unknownOperators scope (pure (pmGathered (parsed source))) `shouldBe` []
+
+  describe "a use a local binding captures" $ do
+    it "is captured by a function its equation binds under where" $
+      capturedIn "f = 1 `roundTo` 2\n  where\n    a `roundTo` b = a * b\n"
+        `shouldBe` [((1, 7), defaultFixity)]
+
+    it "takes the fixity the binding's group declares" $
+      capturedIn "f = 1 <+> 2 <+> 3\n  where\n    infixr 5 <+>\n    a <+> b = a * b\n"
+        `shouldBe` [((1, 7), Fixity RightAssoc 5), ((1, 13), Fixity RightAssoc 5)]
+
+    it "is captured by what a let binds" $
+      capturedIn "f = let a <+> b = a * b in 1 <+> 2\n"
+        `shouldBe` [((1, 30), defaultFixity)]
+
+    it "is captured by an argument of the equation" $
+      capturedIn "f op = 1 `op` 2\n"
+        `shouldBe` [((1, 10), defaultFixity)]
+
+    it "is captured by an argument of a lambda" $
+      capturedIn "f = \\op -> 1 `op` 2\n"
+        `shouldBe` [((1, 14), defaultFixity)]
+
+    it "is captured by the pattern of a case alternative" $
+      capturedIn "f x = case x of\n  Just op -> 1 `op` 2\n"
+        `shouldBe` [((2, 16), defaultFixity)]
+
+    it "is captured by a pattern guard before it" $
+      capturedIn "f x\n  | Just op <- x = 1 `op` 2\n"
+        `shouldBe` [((2, 22), defaultFixity)]
+
+    it "is captured by a bind earlier in a do block" $
+      capturedIn "f = do\n  op <- get\n  pure (1 `op` 2)\n"
+        `shouldBe` [((3, 11), defaultFixity)]
+
+    it "is captured by a bind in a comprehension, before it as written" $
+      capturedIn "f xs = [1 `op` 2 | op <- xs]\n"
+        `shouldBe` [((1, 11), defaultFixity)]
+
+    it "is not captured by a bind later in a do block" $
+      capturedIn "f = do\n  x <- pure (1 `op` 2)\n  op <- get\n  pure x\n"
+        `shouldBe` []
+
+    it "is not captured outside the equation that binds it" $
+      capturedIn "f = 1 `op` 2\ng = x\n  where\n    op = (+)\n"
+        `shouldBe` []
+
+    it "is not captured by a function the module defines at its top level" $
+      capturedIn "f = 1 `op` 2\nop = (+)\n"
+        `shouldBe` []
+
+    it "is not captured by a method an instance defines" $
+      capturedIn "instance Semigroup T where\n  a <> b = a\nf = a <> b\n"
+        `shouldBe` []
+
+    it "is not captured where bindings of different fixities could each capture it" $
+      capturedIn "f op = let infixr 5 `op`\n           a `op` b = a in 1 `op` 2\n"
+        `shouldBe` []
+
+    it "lets a file be formatted that uses it alongside an unread import" $
+      unsettledIn "module M where\nimport Opaque\nf = 1 `roundTo` 2\n  where\n    a `roundTo` b = a\n"
+        `shouldBe` []
+
+    it "is still held against the unread import where nothing binds it" $
+      fmap fst (unsettledIn "module M where\nimport Opaque\nf = 1 `roundTo` 2\n")
+        `shouldBe` [(Nothing, OpName "roundTo")]
+
+  describe "the members of a name" $ do
+    it "takes a type's constructors, among terms" $
+      declaredMembersIn "module M where\ndata T = A | Int :| Int\n"
+        `shouldBe` [(OpName "T", [(InTerms, OpName ":|"), (InTerms, OpName "A")])]
+
+    it "takes a record's fields, which may be operators, among terms" $
+      declaredMembersIn "module M where\ndata T = T {(#) :: Int, name :: Int}\n"
+        `shouldBe` [(OpName "T", [(InTerms, OpName "#"), (InTerms, OpName "T"), (InTerms, OpName "name")])]
+
+    it "takes a GADT's constructors, among terms" $
+      declaredMembersIn "module M where\ndata T where\n  A :: T\n  (:|) :: T -> T\n"
+        `shouldBe` [(OpName "T", [(InTerms, OpName ":|"), (InTerms, OpName "A")])]
+
+    it "takes a class's methods, among terms" $
+      declaredMembersIn "module M where\nclass C a where\n  (.=) :: a -> a -> Int\n  named :: a\n"
+        `shouldBe` [(OpName "C", [(InTerms, OpName ".="), (InTerms, OpName "named")])]
+
+    it "takes a class's associated families, among types" $
+      declaredMembersIn "module M where\nclass C a where\n  type F a\n"
+        `shouldBe` [(OpName "C", [(InTypes, OpName "F")])]
+
     it "has nothing to say about a type synonym" $
-      childrenIn "module M where\ntype T = Int\n" `shouldBe` []
+      declaredMembersIn "module M where\ntype T = Int\n" `shouldBe` []
 
     it "keeps to what an export list hands on" $
-      exportedChildrenIn "module M (T (A)) where\ndata T = A | Int :| Int\n"
+      listedMembersIn "module M (T (A)) where\ndata T = A | Int :| Int\n"
         `shouldBe` [(OpName "T", [OpName "A"])]
 
-    it "hands on everything under a name exported with (..)" $
-      exportedChildrenIn "module M (T (..)) where\ndata T = A | Int :| Int\n"
+    it "hands on every member of a name exported with (..)" $
+      listedMembersIn "module M (T (..)) where\ndata T = A | Int :| Int\n"
         `shouldBe` [(OpName "T", [OpName ":|", OpName "A"])]
 
-    it "hands on nothing under a type it does not declare" $
-      exportedChildrenIn "module M (T (..)) where\nimport Elsewhere\n"
-        `shouldBe` [(OpName "T", [])]
+    it "says nothing of the members of a type it does not declare" $
+      listedMembersIn "module M (T (..)) where\nimport Elsewhere\n"
+        `shouldBe` []
 
   describe "layer 2: imports" $ do
-    it "brings in an operator a type carries" $
-      lookupFixity (scopeCarrying "import Carrier (T (..))\n") InTerms Nothing (OpName ":|")
-        `shouldBe` Resolved (Fixity RightAssoc 5) (DeclaredIn "Carrier")
+    it "brings in an operator among the members of a type" $
+      lookupFixity (scopeWithMembers "import Members (T (..))\n") InTerms Nothing (OpName ":|")
+        `shouldBe` Resolved (Fixity RightAssoc 5) (DeclaredIn "Members")
 
-    it "leaves out an operator the type does not carry" $
-      lookupFixity (scopeCarrying "import Carrier (T (..))\n") InTerms Nothing (OpName "<+>")
+    it "leaves out an operator not among the members of the type" $
+      lookupFixity (scopeWithMembers "import Members (T (..))\n") InTerms Nothing (OpName "<+>")
         `shouldBe` Resolved defaultFixity ReportDefault
 
     it "hides an operator hidden along with its type" $
-      lookupFixity (scopeCarrying "import Carrier hiding (T (..))\n") InTerms Nothing (OpName ":|")
+      lookupFixity (scopeWithMembers "import Members hiding (T (..))\n") InTerms Nothing (OpName ":|")
         `shouldBe` Resolved defaultFixity ReportDefault
 
     it "keeps what a hiding list leaves alone" $
-      lookupFixity (scopeCarrying "import Carrier hiding (T (..))\n") InTerms Nothing (OpName "<+>")
-        `shouldBe` Resolved (Fixity LeftAssoc 6) (DeclaredIn "Carrier")
+      lookupFixity (scopeWithMembers "import Members hiding (T (..))\n") InTerms Nothing (OpName "<+>")
+        `shouldBe` Resolved (Fixity LeftAssoc 6) (DeclaredIn "Members")
 
-    it "brings in one a T(..) may carry, where nothing is known" $
+    it "brings in one a T(..) may stand for, where its members are not known" $
       lookupFixity
-        (fullScope "module M where\nimport Carrier (T (..))\n")
+        (fullScope "module M where\nimport Members (T (..))\n")
         InTerms
         Nothing
         (OpName ":|")
-        `shouldBe` Resolved (Fixity RightAssoc 5) (DeclaredIn "Carrier")
+        `shouldBe` Resolved (Fixity RightAssoc 5) (DeclaredIn "Members")
 
-    it "leaves out one no item of that list could carry" $
+    it "leaves out one no item of that list could name" $
       lookupFixity
-        (fullScope "module M where\nimport Carrier (f)\n")
+        (fullScope "module M where\nimport Members (f)\n")
         InTerms
         Nothing
         (OpName ":|")
@@ -295,19 +494,19 @@
 
     it "keeps one a hiding T(..) cannot be shown to have hidden" $
       lookupFixity
-        (fullScope "module M where\nimport Carrier hiding (T (..))\n")
+        (fullScope "module M where\nimport Members hiding (T (..))\n")
         InTerms
         Nothing
         (OpName ":|")
-        `shouldBe` Resolved (Fixity RightAssoc 5) (DeclaredIn "Carrier")
+        `shouldBe` Resolved (Fixity RightAssoc 5) (DeclaredIn "Members")
 
     it "brings it in under a qualifier too" $
       lookupFixity
-        (scopeCarrying "import qualified Carrier as C (T (..))\n")
+        (scopeWithMembers "import qualified Members as C (T (..))\n")
         InTerms
         (Just "C")
         (OpName ":|")
-        `shouldBe` Resolved (Fixity RightAssoc 5) (DeclaredIn "Carrier")
+        `shouldBe` Resolved (Fixity RightAssoc 5) (DeclaredIn "Members")
 
     it "sees an unqualified import in both scopes" $
       scopeOf "module M where\nimport Data.Map\n"
@@ -349,6 +548,34 @@
       let (unq, _, _) = scopeOf "module M where\nimport Data.Map\ninfixr 3 !\n"
        in unq `shouldBe` [(OpName "!", Fixity RightAssoc 3)]
 
+  describe "what an import list certainly brings in" $ do
+    it "is a variable written on its own" $
+      certainlyBrings Map.empty (InTerms, OpName "f") (listing [ImportedName (OpName "f")])
+        `shouldBe` True
+
+    it "is a member written out beside its type" $
+      certainlyBrings
+        Map.empty
+        (InTerms, OpName ":|")
+        (listing [ImportedSome (OpName "NonEmpty") [OpName ":|"]])
+        `shouldBe` True
+
+    it "is a member of a T(..) whose members are known" $
+      certainlyBrings nonEmptyMembers (InTerms, OpName ":|") (listing [ImportedAll (OpName "NonEmpty")])
+        `shouldBe` True
+
+    it "is not a member of a T(..) whose members are not known" $
+      certainlyBrings Map.empty (InTerms, OpName ":|") (listing [ImportedAll (OpName "NonEmpty")])
+        `shouldBe` False
+
+    it "is not a member of a type written on its own" $
+      certainlyBrings nonEmptyMembers (InTerms, OpName ":|") (listing [ImportedName (OpName "NonEmpty")])
+        `shouldBe` False
+
+    it "is not what a T(..) has under it in the type namespace" $
+      certainlyBrings nonEmptyMembers (InTypes, OpName ":|") (listing [ImportedAll (OpName "NonEmpty")])
+        `shouldBe` False
+
   describe "ambiguity" $ do
     it "reports an operator imported with two different fixities" $
       let (_, _, amb) = scopeOf "module M where\nimport Data.Map\nimport Other\n"
@@ -400,7 +627,9 @@
 
     it "would be caught between two spellings were the Prelude assumed" $
       fmap snd (unsettledAboutPrelude (Is #implicitPrelude) usingItBothWays)
-        `shouldBe` [Ambiguous]
+        `shouldBe` [ Ambiguous
+                       (("Prelude", Fixity RightAssoc 6) :| [("Pretty", Fixity LeftAssoc 6)])
+                   ]
 
     it "still takes the Prelude where the module does import it" $
       let s =
@@ -441,6 +670,17 @@
        in lookupFixity s InTerms Nothing (OpName "<+>")
             `shouldBe` Resolved (Fixity RightAssoc 3) DeclaredHere
 
+    it "takes the fixity of : from the language, whatever is in scope" $
+      let s =
+            scopeAboutPrelude
+              (Isn't #implicitPrelude)
+              "module M where\nimport Opaque\n"
+          cons = Resolved (Fixity RightAssoc 5) BuiltIn
+       in ( lookupFixity s InTerms Nothing (OpName ":"),
+            lookupFixity s InTypes Nothing (OpName ":")
+          )
+            `shouldBe` (cons, cons)
+
     it "does not find a qualified-only operator unqualified" $
       let s = fullScope "module M where\nimport qualified Data.Map\n"
        in lookupFixity s InTerms Nothing (OpName "!")
@@ -501,22 +741,42 @@
     it "holds an ambiguous operator against its unqualified use only" $
       unsettledIn
         "module M where\nimport Data.Map\nimport Other\nimport qualified Data.Map as M\nf a b = (a ! b, a M.! b)\n"
-        `shouldBe` [((Nothing, OpName "!"), Ambiguous)]
+        `shouldBe` [((Nothing, OpName "!"), Ambiguous bangDisagreeing)]
 
     it "holds a clashing alias against the use written under it" $
       unsettledIn
         "module M where\nimport qualified Data.Map as M\nimport qualified Other as M\nf a b = a M.! b\n"
-        `shouldBe` [((Just "M", OpName "!"), Ambiguous)]
+        `shouldBe` [((Just "M", OpName "!"), Ambiguous bangDisagreeing)]
 
     it "leaves the bare operator alone when only an alias is in doubt" $
       unsettledIn
         "module M where\nimport Data.Map\nimport qualified Data.Map as M\nimport qualified Other as M\nf a b = (a ! b, a M.! b)\n"
-        `shouldBe` [((Just "M", OpName "!"), Ambiguous)]
+        `shouldBe` [((Just "M", OpName "!"), Ambiguous bangDisagreeing)]
 
+    it "names a module imported twice once" $
+      unsettledIn "module M where\nimport Data.Map\nimport Data.Map ((!))\nimport Other\nf a b = a ! b\n"
+        `shouldBe` [((Nothing, OpName "!"), Ambiguous bangDisagreeing)]
+
+    it "names every import that brings the operator in, agreeing or not" $
+      unsettledIn "module M where\nimport Data.Map\nimport Other\nimport Agreeing\nf a b = a ! b\n"
+        `shouldBe` [ ( (Nothing, OpName "!"),
+                       Ambiguous (bangDisagreeing <> (("Agreeing", Fixity LeftAssoc 9) :| []))
+                     )
+                   ]
+
     it "spells a use the way the module wrote it" $
       fmap (uncurry operatorSpelling . fst) (unsettledIn "module M where\nimport qualified Opaque as O\nf a b = a O.<+> b\n")
         `shouldBe` ["O.<+>"]
 
+  describe "a module's configurations" $ do
+    it "see what its branches see written in one module" $
+      scopeOverLeaves conditionalImports
+        `shouldBe` fullScope (blankCpp conditionalImports)
+
+    it "do not take the Prelude implicitly where one of them imports it" $
+      fmap importModule (moduleImports (Is #implicitPrelude) (leavesOf conditionalImports))
+        `shouldBe` ["Data.Map", "Data.Sequence", "Prelude", "Opaque"]
+
   describe "parsing with the module's own pragmas"
     $ it "parses a module that needs an extension it declares"
     $ declaredIn "{-# LANGUAGE MagicHash #-}\nmodule M where\ninfixl 6 <+>\n"
@@ -528,6 +788,16 @@
 -- | Stand-in for layer 3. The real one reads a build plan, maps modules to
 -- packages and parses their sources; what it returns is exactly this shape,
 -- so everything above it can be exercised without any of that.
+-- | What @Data.Map@ and @Other@ each bring @!@ in with, in that order.
+bangDisagreeing :: NonEmpty (Text, Fixity)
+bangDisagreeing =
+  ("Data.Map", Fixity LeftAssoc 9) :| [("Other", Fixity RightAssoc 4)]
+
+-- | What @Terms@ and @Other.Terms@ each bring @:>@ in with, in that order.
+termsDisagreeing :: NonEmpty (Text, Fixity)
+termsDisagreeing =
+  ("Terms", Fixity LeftAssoc 5) :| [("Other.Terms", Fixity RightAssoc 9)]
+
 exportsOf :: Text -> Maybe Fixities
 exportsOf = \case
   "Data.Map" -> whichever [(OpName "!", Fixity LeftAssoc 9)]
@@ -538,7 +808,7 @@
       ]
   "Other" -> whichever [(OpName "!", Fixity RightAssoc 4)]
   "Agreeing" -> whichever [(OpName "!", Fixity LeftAssoc 9)]
-  "Carrier" ->
+  "Members" ->
     whichever
       [ (OpName ":|", Fixity RightAssoc 5),
         (OpName "<+>", Fixity LeftAssoc 6)
@@ -577,11 +847,41 @@
 -- about the ones it cannot.
 fullScope :: Text -> Scope
 fullScope =
-  resolveScope (Is #implicitPrelude) knowingExports . pmModule . parsed
+  resolveScope (Is #implicitPrelude) knowingExports . pure . pmModule . parsed
 
+-- | A scope over a module's branch leaves, each parsed on its own.
+scopeOverLeaves :: Text -> Scope
+scopeOverLeaves =
+  resolveScope (Is #implicitPrelude) knowingExports . leavesOf
+
+-- | A module's branch leaves, parsed.
+leavesOf :: Text -> NonEmpty (HsModule GhcPs)
+leavesOf source = case nonEmpty =<< either (const Nothing) Just (branchLeaves source) of
+  Nothing -> error "the test input has no branch leaves"
+  Just texts -> fmap (pmModule . parsed) texts
+
+-- | A module whose imports and fixity declarations are behind conditionals,
+-- one of them importing the Prelude, and whose branches parse together.
+conditionalImports :: Text
+conditionalImports =
+  T.unlines
+    [ "module M where",
+      "import Data.Map ((!))",
+      "#if A",
+      "import Data.Sequence",
+      "import Prelude ()",
+      "#else",
+      "import Opaque",
+      "#endif",
+      "#if B",
+      "infixr 5 +++",
+      "#endif",
+      "(+++) = (++)"
+    ]
+
 -- | What is known in a world made of 'exportsOf' alone.
-knowingExports :: KnownModules
-knowingExports = noKnownModules{knownFixities = exportsOf}
+knowingExports :: Text -> Established
+knowingExports = maybe unreadable (\fixities -> mempty{establishedFixities = fixities}) . exportsOf
 
 -- | The one import blamed for an operator, unread on its own account and so
 -- with nothing below it. What every answer here was before a chain could be
@@ -594,11 +894,34 @@
 usesUnknown :: Text
 usesUnknown = "module M where\nimport Opaque\nf a b = a <??> b\n"
 
+-- | A module that uses a function it defines itself infix, alongside an
+-- import that could not be read.
+definesItsOwn :: Text
+definesItsOwn =
+  "module M where\nimport Opaque\nw = 1 `clamp` 2\nclamp :: Int -> Int -> Int\nclamp = max\n"
+
+-- | A Prelude that brings @min@ in, which declares no fixity for it.
+preludeBringsMin :: [(Text, [(Namespace, Text)])]
+preludeBringsMin = [("Prelude", [(InTerms, "min")])]
+
+-- | A scope over a module with these imports, in a world where the modules
+-- listed bring these names in, by namespace.
+scopeBringing :: [(Text, [(Namespace, Text)])] -> Text -> Scope
+scopeBringing said source =
+  resolveScope
+    (Is #implicitPrelude)
+    (\m -> (knowingExports m){establishedCertain = certain m})
+    (pure (pmModule (parsed ("module M where\n" <> source))))
+  where
+    certain m =
+      Certain (Set.fromList [(namespace, OpName op) | (namespace, op) <- concat (lookup m said)]) Map.empty
+
 -- | The same, with a second unread import to tell apart from the first.
 twoUnread :: Text
 twoUnread = "module M where\nimport Opaque\nimport Other.Opaque\nf a b = a <??> b\n"
 
--- | A scope in which the unread modules listed say what they export.
+-- | A scope in which the unread modules listed say which names they leave
+-- unsettled.
 --
 -- A module absent from the list says nothing, which is what 'fullScope'
 -- assumes of every one of them.
@@ -606,70 +929,98 @@
 scopeKnowing said =
   resolveScope
     (Is #implicitPrelude)
-    knowingExports{knownExportNames = exportNamesOf}
+    (\m -> maybe (knowingExports m) leaving (lookup m said))
+    . pure
     . pmModule
     . parsed
   where
-    exportNamesOf m = Set.fromList . fmap OpName <$> lookup m said
+    leaving ops =
+      mempty
+        { establishedUnsettled =
+            Map.singleton [] (Set.fromList [(namespace, OpName op) | op <- ops, namespace <- [InTypes, InTerms]])
+        }
 
--- | What each name a module declares carries with it, in a settled order.
-childrenIn :: Text -> [(OpName, [OpName])]
-childrenIn = settled . declaredChildren . pmModule . parsed
+-- | The uses of an operator a local binding captures in a module made of
+-- these declarations, by where each operator starts.
+capturedIn :: Text -> [((Int, Int), Fixity)]
+capturedIn decls =
+  [ ((spanStartLine s - 1, spanStartColumn s), fixity)
+  | (s, fixity) <- Map.toList (capturedUses (pmGathered (parsed ("module M where\n" <> decls))))
+  ]
 
+-- | The members of each name a module declares, by namespace, in a
+-- settled order.
+declaredMembersIn :: Text -> [(OpName, [(Namespace, OpName)])]
+declaredMembersIn = fmap (fmap Set.toList) . Map.toList . declaredMembers . pmModule . parsed
+
 -- | The same, as the module's export list hands them on.
-exportedChildrenIn :: Text -> [(OpName, [OpName])]
-exportedChildrenIn = settled . moduleChildren . pmModule . parsed
+listedMembersIn :: Text -> [(OpName, [OpName])]
+listedMembersIn = settled . listedMembers . pmModule . parsed
 
 settled :: Map.Map OpName (Set.Set OpName) -> [(OpName, [OpName])]
 settled = fmap (fmap Set.toList) . Map.toList
 
--- | A scope over a world where Carrier keeps @:|@ under @T@.
+-- | A scope over a world where Members exports @T@ with the member @:|@.
 --
--- Carrier declares @<+>@ as well, under nothing, so that a list naming
+-- Members declares @<+>@ as well, a member of nothing, so that a list naming
 -- @T(..)@ can be seen to bring the one in and leave the other out.
-scopeCarrying :: Text -> Scope
-scopeCarrying source =
+scopeWithMembers :: Text -> Scope
+scopeWithMembers source =
   resolveScope
     (Is #implicitPrelude)
-    knowingExports{knownChildren = childrenOf}
-    (pmModule (parsed ("module M where\n" <> source)))
+    (\m -> (knowingExports m){establishedMembers = membersIn m})
+    (pure (pmModule (parsed ("module M where\n" <> source))))
   where
-    childrenOf = \case
-      "Carrier" -> Map.fromList [(OpName "T", Set.fromList [OpName ":|"])]
+    membersIn = \case
+      "Members" -> Map.fromList [(OpName "T", Set.fromList [OpName ":|"])]
       _ -> Map.empty
 
+-- | An unqualified import of M with this list.
+listing :: [ImportItem] -> Import
+listing items =
+  Import
+    { importModule = "M",
+      importQualified = False,
+      importAlias = "M",
+      importNames = Just (False, items)
+    }
+
+-- | What @NonEmpty@ has under it, as an interface tells it.
+nonEmptyMembers :: Map.Map OpName (Set.Set OpName)
+nonEmptyMembers = Map.singleton (OpName "NonEmpty") (Set.singleton (OpName ":|"))
+
 -- | A scope over the two modules that spell @:>@ in different namespaces.
 scopeOfBoth :: Text -> Scope
 scopeOfBoth source =
   resolveScope
     (Is #implicitPrelude)
     knowingExports
-    (pmModule (parsed ("module M where\n" <> source)))
+    (pure (pmModule (parsed ("module M where\n" <> source))))
 
--- | A scope over an unread module, told what it keeps under its names.
+-- | A scope over an unread module, told the members of its names.
 --
 -- Opaque cannot be read for fixities and says nothing about what it
 -- exports, so what the import list brings in is all there is to go on.
 scopeSuspecting :: [(Text, [(Text, [Text])])] -> Text -> Scope
-scopeSuspecting carries source =
+scopeSuspecting members source =
   resolveScope
     (Is #implicitPrelude)
-    knowingExports{knownChildren = childrenOf}
-    (pmModule (parsed ("module M where\n" <> source <> "f a b = a <??> b\n")))
+    (\m -> (knowingExports m){establishedMembers = membersIn m})
+    (pure (pmModule (parsed ("module M where\n" <> source <> "f a b = a <??> b\n"))))
   where
-    childrenOf m =
+    membersIn m =
       Map.fromList
         [ (OpName parent, Set.fromList (fmap OpName kids))
-        | (parent, kids) <- Map.findWithDefault [] m (Map.fromList carries)
+        | (parent, kids) <- Map.findWithDefault [] m (Map.fromList members)
         ]
 
 -- | The uses of an operator a module makes that its scope cannot settle.
 unsettledIn :: Text -> [((Maybe Text, OpName), Unknown)]
 unsettledIn src =
-  let hsModule = pmModule (parsed src)
+  let p = parsed src
    in unknownOperators
-        (resolveScope (Is #implicitPrelude) knowingExports hsModule)
-        hsModule
+        (resolveScope (Is #implicitPrelude) knowingExports (pure (pmModule p)))
+        (pure (pmGathered p))
 
 -- | A module that takes its Prelude from elsewhere and hides an operator
 -- from it, in order to take that operator from a module which spells it the
@@ -687,8 +1038,8 @@
 --
 -- Kept out of 'exportsOf' so that a Prelude which declares something does
 -- not have to be reckoned with by every other test in the file.
-disagreeingAboutPrelude :: KnownModules
-disagreeingAboutPrelude = noKnownModules{knownFixities = said}
+disagreeingAboutPrelude :: Text -> Established
+disagreeingAboutPrelude = maybe unreadable (\fixities -> mempty{establishedFixities = fixities}) . said
   where
     said = \case
       "Prelude" -> whichever [(OpName "<%>", Fixity RightAssoc 6)]
@@ -699,7 +1050,7 @@
 -- | That world's scope for a module, told whether it has the Prelude.
 scopeAboutPrelude :: Choice "implicitPrelude" -> Text -> Scope
 scopeAboutPrelude implicitPrelude =
-  resolveScope implicitPrelude disagreeingAboutPrelude . pmModule . parsed
+  resolveScope implicitPrelude disagreeingAboutPrelude . pure . pmModule . parsed
 
 -- | What that world leaves unsettled in a module.
 unsettledAboutPrelude ::
@@ -707,10 +1058,10 @@
   Text ->
   [((Maybe Text, OpName), Unknown)]
 unsettledAboutPrelude implicitPrelude src =
-  let hsModule = pmModule (parsed src)
+  let p = parsed src
    in unknownOperators
-        (resolveScope implicitPrelude disagreeingAboutPrelude hsModule)
-        hsModule
+        (resolveScope implicitPrelude disagreeingAboutPrelude (pure (pmModule p)))
+        (pure (pmGathered p))
 
 scopeOf ::
   Text ->
@@ -722,5 +1073,5 @@
   let reach = scopeInTerms (fullScope src)
    in ( Map.toList (Map.map fst (reachUnqualified reach)),
         Map.toList (Map.map fst (reachQualified reach)),
-        reachAmbiguous reach
+        Map.keys (reachAmbiguous reach)
       )
diff --git a/tests/Tilia/Gen.hs b/tests/Tilia/Gen.hs
--- a/tests/Tilia/Gen.hs
+++ b/tests/Tilia/Gen.hs
@@ -118,6 +118,7 @@
           [ DCat <$> go half <*> go half,
             DNest <$> choose (0, 2) <*> go (n - 1),
             DAlign <$> go (n - 1),
+            DCppMarginNote <$> go (n - 1),
             DLocated <$> genSpan <*> go (n - 1),
             DFence <$> genSpan <*> go (n - 1)
           ]
@@ -147,16 +148,19 @@
   DHardBreak -> [DEmpty]
   DVerbatimBreak _ _ -> [DEmpty]
   DCloseLine -> [DEmpty]
-  DHoldBack t -> DHoldBack <$> filter (not . T.null) (T.inits t)
+  DCloseLineUnlessAfterOpener _ -> [DEmpty, DCloseLine]
+  DHoldBack s t -> DHoldBack s <$> filter (not . T.null) (T.inits t)
   DCat a b -> [DEmpty, a, b] <> [DCat a' b | a' <- shrinkDoc a] <> [DCat a b' | b' <- shrinkDoc b]
   DNest n d -> [DEmpty, d] <> [DNest n d' | d' <- shrinkDoc d]
   DAlign d -> [DEmpty, d] <> [DAlign d' | d' <- shrinkDoc d]
+  DCppMarginNote d -> [DEmpty, d] <> [DCppMarginNote d' | d' <- shrinkDoc d]
   DGroup l d -> [DEmpty, d] <> [DGroup l d' | d' <- shrinkDoc d]
   DVariant a b -> [DEmpty, a, b]
   DLocated s d -> [DEmpty, d] <> [DLocated s d' | d' <- shrinkDoc d]
   DFence s d -> [DEmpty, d] <> [DFence s d' | d' <- shrinkDoc d]
-  DCppChoice bs e -> [DEmpty, e] <> fmap snd bs
+  DCppChoice _ bs e -> [DEmpty, e] <> fmap snd bs
   DCppDirective _ _ -> [DEmpty]
+  DDeclarationsStart -> [DEmpty]
 
 -- | Every fragment of literal text the document contains, in order.
 --
@@ -173,13 +177,16 @@
   DHardBreak -> []
   DVerbatimBreak _ _ -> []
   DCloseLine -> []
-  DHoldBack t -> [t]
+  DCloseLineUnlessAfterOpener _ -> []
+  DHoldBack _ t -> [t]
   DCat a b -> docTexts a <> docTexts b
   DNest _ d -> docTexts d
   DAlign d -> docTexts d
+  DCppMarginNote d -> docTexts d
   DGroup _ d -> docTexts d
   DVariant a _ -> docTexts a
   DLocated _ d -> docTexts d
   DFence _ d -> docTexts d
-  DCppChoice bs e -> concat [c : docTexts d | (c, d) <- bs] <> docTexts e
+  DCppChoice _ bs e -> concat [c : docTexts d | (c, d) <- bs] <> docTexts e
   DCppDirective _ t -> [t]
+  DDeclarationsStart -> []
diff --git a/tests/Tilia/IgnoreSpec.hs b/tests/Tilia/IgnoreSpec.hs
new file mode 100644
--- /dev/null
+++ b/tests/Tilia/IgnoreSpec.hs
@@ -0,0 +1,126 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+-- | Ignore files written the way @.gitignore@ files are.
+module Tilia.IgnoreSpec (spec) where
+
+import Data.Map.Strict qualified as Map
+import Data.Text (Text)
+import Data.Text.IO qualified as T
+import System.Directory (canonicalizePath, createDirectoryIfMissing)
+import System.FilePath (splitDirectories, takeDirectory, (</>))
+import System.IO.Temp (withSystemTempDirectory)
+import Test.Hspec
+import Tilia.Ignore
+
+spec :: Spec
+spec = do
+  describe "a pattern" $ do
+    it "without a slash matches a name at any depth" $
+      "*.hs" `ignores` ["A.hs", "src/A.hs", "src/x/B.hs"] `butNot` ["A.hsc"]
+
+    it "with a slash at the start or in the middle matches from the file's directory" $ do
+      "/foo" `ignores` ["foo/a.hs"] `butNot` ["a/foo/b.hs"]
+      "doc/*" `ignores` ["doc/x", "doc/y/x"] `butNot` ["a/doc/x"]
+
+    it "with a slash at the end matches directories alone" $
+      "foo/" `ignores` ["foo/a.hs", "a/foo/b.hs"] `butNot` ["foo", "a/foo"]
+
+    it "with * and ? does not match a slash" $ do
+      "a/*/b" `ignores` ["a/x/b"] `butNot` ["a/b", "a/x/y/b"]
+      "?.hs" `ignores` ["a.hs"] `butNot` ["ab.hs"]
+
+    it "with **/ at the start matches in every directory" $
+      "**/gen/" `ignores` ["gen/G.hs", "q/gen/G.hs"] `butNot` ["gen"]
+
+    it "with /**/ matches any number of directories, none included" $
+      "a/**/b" `ignores` ["a/b", "a/x/b", "a/x/y/b"] `butNot` ["b"]
+
+    it "with /** at the end matches everything inside" $
+      "deep/**" `ignores` ["deep/1/2/3/f.hs"] `butNot` ["deep"]
+
+    it "with a bracket matches the characters it lists, or all others" $ do
+      "[ab].hs" `ignores` ["a.hs", "b.hs"] `butNot` ["c.hs"]
+      "[!a].hs" `ignores` ["b.hs"] `butNot` ["a.hs"]
+      "[^a].hs" `ignores` ["b.hs"] `butNot` ["a.hs"]
+      "[a-c]x" `ignores` ["bx"] `butNot` ["dx"]
+      "x[[:digit:]]" `ignores` ["x1"] `butNot` ["xa"]
+
+    it "with an unclosed bracket matches nothing" $
+      "[ab.hs" `ignores` [] `butNot` ["[ab.hs", "a.hs"]
+
+    it "can escape what is special with a backslash" $ do
+      "\\#x" `ignores` ["#x"] `butNot` []
+      "\\!x" `ignores` ["!x"] `butNot` []
+      "t/a\\*b" `ignores` ["t/a*b"] `butNot` ["t/axb"]
+      "foo\\ " `ignores` ["foo "] `butNot` ["foo"]
+
+    it "loses the spaces it ends in but not the ones it begins with" $ do
+      "foo  " `ignores` ["foo"] `butNot` []
+      " foo" `ignores` [" foo"] `butNot` ["foo"]
+
+  describe "an ignore file" $ do
+    it "says nothing on a blank line or a comment" $
+      "# *.hs\n\n" `ignores` [] `butNot` ["A.hs"]
+
+    it "lets a later pattern win, and ! re-include" $ do
+      "*.hs\n!keep.hs\n" `ignores` ["a.hs"] `butNot` ["keep.hs"]
+      "!keep.hs\n*.hs\n" `ignores` ["a.hs", "keep.hs"] `butNot` []
+
+    it "cannot re-include a file whose directory it excluded" $ do
+      "lib/\n!lib/keep.hs\n" `ignores` ["lib/keep.hs", "lib/drop.hs"] `butNot` []
+      "lib/*\n!lib/keep.hs\n" `ignores` ["lib/drop.hs"] `butNot` ["lib/keep.hs"]
+
+    it "reads lines ended with a carriage return" $
+      "*.hs\r\n!keep.hs\r\n" `ignores` ["a.hs"] `butNot` ["keep.hs"]
+
+  describe "ignore files in several directories" $ do
+    it "match from their own directories" $
+      nested [([], ""), (["src"], "/x/\n")] ["src/x/B.hs"] ["x/B.hs", "src/A.hs"]
+
+    it "let the deeper file win" $
+      nested [([], "*.hs\n"), (["src"], "!A.hs\n")] ["B.hs", "src/x/B.hs"] ["src/A.hs"]
+
+    it "cannot re-include what a file above excluded the directory of" $
+      nested [([], "q/\n"), (["q"], "!gen/\n")] ["q/gen/G.hs"] []
+
+  describe "a file of a project" $ do
+    it "is ignored by the .tiliaignore files above it, whether it exists or not" $
+      withProject $ \root -> do
+        isIgnoredInProject root (root </> "src" </> "Generated.hs") `shouldReturn` True
+        isIgnoredInProject root (root </> "src" </> "inner" </> "A.hs-boot") `shouldReturn` True
+        isIgnoredInProject root (root </> "src" </> "inner" </> ".." </> "Generated.hs") `shouldReturn` True
+        isIgnoredInProject root (root </> "src" </> "New.hs") `shouldReturn` False
+
+    it "is not ignored when it is outside of the project" $
+      withProject $ \root ->
+        isIgnoredInProject root (takeDirectory root </> "Generated.hs") `shouldReturn` False
+
+-- | A project with @src/Generated.hs@, which its root's @.tiliaignore@
+-- ignores, and a @.tiliaignore@ in @src/inner@ ignoring boot files.
+withProject :: (FilePath -> Expectation) -> Expectation
+withProject act =
+  withSystemTempDirectory "tilia-ignore" $ \dir -> do
+    root <- canonicalizePath dir
+    let write path text = do
+          createDirectoryIfMissing True (takeDirectory (root </> path))
+          T.writeFile (root </> path) text
+    write ".tiliaignore" "src/Generated.hs\n"
+    write ("src" </> "Generated.hs") "module Generated where\n"
+    write ("src" </> "inner" </> ".tiliaignore") "*.hs-boot\n"
+    act root
+
+-- | Check which of the paths a single ignore file at the root ignores.
+ignores :: Text -> [FilePath] -> [FilePath] -> Expectation
+ignores content = nested [([], content)]
+
+-- | Read the paths that follow as the ones the pattern should not ignore.
+butNot :: ([FilePath] -> Expectation) -> [FilePath] -> Expectation
+butNot = ($)
+
+-- | Check which paths ignore files in several directories ignore.
+nested :: [([FilePath], Text)] -> [FilePath] -> [FilePath] -> Expectation
+nested files ignored kept =
+  fmap (isIgnored rules . splitDirectories) (ignored <> kept)
+    `shouldBe` fmap (const True) ignored <> fmap (const False) kept
+  where
+    rules = Map.fromList [(directory, parseIgnoreFile t) | (directory, t) <- files]
diff --git a/tests/Tilia/RenderSpec.hs b/tests/Tilia/RenderSpec.hs
--- a/tests/Tilia/RenderSpec.hs
+++ b/tests/Tilia/RenderSpec.hs
@@ -164,6 +164,30 @@
                      "    * d"
                    ]
 
+    it "takes an operator's fixity from the local binding that captures it" $
+      formatWith
+        (Just arithmetic)
+        [ "module M where",
+          "",
+          "f =",
+          "  a * b",
+          "    + c * d",
+          "  where",
+          "    infixl 8 +",
+          "    x + y = x"
+        ]
+        `shouldBe` [ "module M where",
+                     "",
+                     "f =",
+                     "  a",
+                     "    * b",
+                     "      + c",
+                     "    * d",
+                     "  where",
+                     "    infixl 8 +",
+                     "    x + y = x"
+                   ]
+
     it "lets a separator hand a block to what precedes it" $
       formatWith
         (Just arithmetic)
@@ -333,7 +357,7 @@
                   (OpName "*", (Fixity LeftAssoc 7, DeclaredHere))
                 ]
           },
-      scopeUnread = []
+      scopeUnsettled = []
     }
 
 -- | A namespace with nothing in it.
@@ -342,5 +366,6 @@
   Reach
     { reachUnqualified = Map.empty,
       reachQualified = Map.empty,
-      reachAmbiguous = []
+      reachAmbiguous = Map.empty,
+      reachDecided = Set.empty
     }
diff --git a/tests/Tilia/RunSpec.hs b/tests/Tilia/RunSpec.hs
--- a/tests/Tilia/RunSpec.hs
+++ b/tests/Tilia/RunSpec.hs
@@ -20,7 +20,13 @@
 import Test.Hspec
 import Tilia.Cabal.Package (PackageProblem (..))
 import Tilia.Cpp (CppError (..))
-import Tilia.Fixity (ModuleChain (..), OpName (..), Unknown (..))
+import Tilia.Fixity
+  ( Direction (..),
+    Fixity (..),
+    ModuleChain (..),
+    OpName (..),
+    Unknown (..),
+  )
 import Tilia.Format (FormatError (..), formatErrorExitCode, refused)
 import Tilia.Palette (Color (Bad), Palette (..))
 import Tilia.Run
@@ -33,7 +39,7 @@
       fmap
         refused
         [ PositionPragmas "A.hs",
-          CppUnsupported "A.hs" UnsplittableConditional,
+          CppUnsupported "A.hs" TooManyConfigurations,
           UnknownFixity "A.hs" []
         ]
         `shouldBe` [True, True, True]
@@ -86,7 +92,7 @@
   describe "the summary an inplace run prints" $ do
     it "counts the files it formatted, indented, by extension" $
       reportOut (inplaceReport Plain [("A.hs", Unchanged), ("B.hs", Changed "a" "b")])
-        `shouldBe` ["  [✓] Formatted 2 .hs files"]
+        `shouldBe` "  [✓] Formatted 2 .hs files\n"
 
     it "counts each extension on its own line, in a settled order" $
       reportOut
@@ -94,21 +100,22 @@
             Plain
             [("C.hsig", Unchanged), ("A.hs", Unchanged), ("B.hs-boot", Unchanged)]
         )
-        `shouldBe` [ "  [✓] Formatted 1 .hs file",
-                     "  [✓] Formatted 1 .hs-boot file",
-                     "  [✓] Formatted 1 .hsig file"
-                   ]
+        `shouldBe` T.unlines
+          [ "  [✓] Formatted 1 .hs file",
+            "  [✓] Formatted 1 .hs-boot file",
+            "  [✓] Formatted 1 .hsig file"
+          ]
 
     it "says file rather than files when there is one" $
       reportOut (inplaceReport Plain [("A.hs", Unchanged)])
-        `shouldBe` ["  [✓] Formatted 1 .hs file"]
+        `shouldBe` "  [✓] Formatted 1 .hs file\n"
 
     it "counts neither a refusal nor a failure among the formatted" $
       reportOut (inplaceReport Plain [("A.hs", Unchanged), ("B.hs", decline), ("C.hs", failure)])
-        `shouldBe` ["  [✓] Formatted 1 .hs file"]
+        `shouldBe` "  [✓] Formatted 1 .hs file\n"
 
     it "says nothing at all about a run with no files" $
-      inplaceReport Plain [] `shouldBe` Report [] []
+      inplaceReport Plain [] `shouldBe` Report "" []
 
   describe "the files a run did not format" $ do
     let mixed =
@@ -186,11 +193,40 @@
       flattened (inplaceReport Plain [("A.hs", twoAnswers)])
         `shouldSatisfy` T.isInfixOf
           "the fixity of <|> may be declared in Criterion.Main, which this run \
-          \could not read, and the fixity of <+> is declared differently by two \
-          \modules in scope"
+          \could not read, and the fixity of <+> is infixl 6 in Left but infixr 5 \
+          \in Right"
 
+    it "names the imports that disagree and what each brings" $
+      flattened (inplaceReport Plain [("A.hs", about "<+>")])
+        `shouldSatisfy` T.isInfixOf "the fixity of <+> is infixl 6 in Left but infixr 5 in Right"
+
+    it "gathers the imports that agree with one another" $
+      flattened (inplaceReport Plain [("A.hs", disagreeing (leftSix :| [rightFive, ("Middle", Fixity LeftAssoc 6)]))])
+        `shouldSatisfy` T.isInfixOf "is infixl 6 in Left and Middle but infixr 5 in Right"
+
+    it "lists three fixities the way it lists three of anything" $
+      flattened (inplaceReport Plain [("A.hs", disagreeing (leftSix :| [rightFive, ("Third", Fixity NoAssoc 4)]))])
+        `shouldSatisfy` T.isInfixOf "is infixl 6 in Left, infixr 5 in Right, and infix 4 in Third"
+
+    it "gives one disagreement once however many operators share it" $
+      flattened
+        ( inplaceReport
+            Plain
+            [ ( "A.hs",
+                Declined
+                  ( UnknownFixity
+                      "A.hs"
+                      [ ((Nothing, OpName "<|>"), Ambiguous (leftSix :| [rightFive])),
+                        ((Nothing, OpName "<+>"), Ambiguous (leftSix :| [rightFive]))
+                      ]
+                  )
+              )
+            ]
+        )
+        `shouldSatisfy` T.isInfixOf "the fixities of <|> and <+> are infixl 6 in Left but infixr 5 in Right"
+
     it "keeps all of it off the stream the summary goes to" $
-      reportOut (inplaceReport Plain mixed) `shouldBe` []
+      reportOut (inplaceReport Plain mixed) `shouldBe` ""
 
     it "says the same about them in either command" $
       reportErr (checkReport Plain mixed) `shouldBe` reportErr (inplaceReport Plain mixed)
@@ -198,29 +234,49 @@
   describe "what a check run prints" $ do
     it "shows a diff for a file that would change" $
       reportOut (checkReport Plain [("A.hs", Changed "one\n" "two\n")])
-        `shouldSatisfy` any (T.isInfixOf "--- a/A.hs")
+        `shouldSatisfy` T.isInfixOf "--- a/A.hs"
 
     it "heads it the way git heads one" $
       reportOut (checkReport Plain [("A.hs", Changed "one\n" "two\n")])
-        `shouldSatisfy` any (T.isInfixOf "diff --git a/A.hs b/A.hs")
+        `shouldSatisfy` T.isInfixOf "diff --git a/A.hs b/A.hs"
 
     it "shows the removal and the addition" $ do
-      let shown = T.unlines (reportOut (checkReport Plain [("A.hs", Changed "one\n" "two\n")]))
+      let shown = reportOut (checkReport Plain [("A.hs", Changed "one\n" "two\n")])
       shown `shouldSatisfy` T.isInfixOf "-one"
       shown `shouldSatisfy` T.isInfixOf "+two"
 
     it "says nothing on standard output about a file it did not format" $
       reportOut (checkReport Plain [("A.hs", Unchanged), ("B.hs", decline), ("C.hs", failure)])
-        `shouldBe` []
+        `shouldBe` ""
 
+  describe "what a for-editor run prints" $ do
+    it "prints the formatted module exactly, and nothing else" $
+      stdinReport Plain "a\n" [("A.hs", Changed "a\n" "b\n")]
+        `shouldBe` Report "b\n" []
+
+    it "gives the module back as it was read where nothing changed" $
+      stdinReport Plain "a\n" [("A.hs", Unchanged)]
+        `shouldBe` Report "a\n" []
+
+    it "gives the module back as it was read where it was declined, and says why" $ do
+      let report = stdinReport Plain "a\n" [("A.hs", decline)]
+      reportOut report `shouldBe` "a\n"
+      T.unwords (fmap T.strip (reportErr report))
+        `shouldSatisfy` T.isInfixOf "will not format A.hs"
+
+    it "prints no module where it failed, and says why" $ do
+      let report = stdinReport Plain "a\n" [("A.hs", failure)]
+      reportOut report `shouldBe` ""
+      reportErr report `shouldSatisfy` (not . null)
+
   describe "color" $ do
     it "leaves everything bare when there is nobody to see it" $
       reportOut (inplaceReport Plain [("A.hs", Unchanged)])
-        `shouldSatisfy` all (not . T.isInfixOf "\ESC")
+        `shouldSatisfy` (not . T.isInfixOf "\ESC")
 
     it "colors the tick and not the brackets around it" $
       reportOut (inplaceReport Colors [("A.hs", Unchanged)])
-        `shouldSatisfy` any (T.isInfixOf "[\ESC[32m✓\ESC[0m]")
+        `shouldSatisfy` T.isInfixOf "[\ESC[32m✓\ESC[0m]"
 
     it "colors the equals sign yellow" $
       reportErr (inplaceReport Colors [("A.hs", decline)])
@@ -228,7 +284,7 @@
 
     it "sets the extension in the summary in bold" $
       reportOut (inplaceReport Colors [("A.hs", Unchanged)])
-        `shouldSatisfy` any (T.isInfixOf "\ESC[1m.hs\ESC[0m")
+        `shouldSatisfy` T.isInfixOf "\ESC[1m.hs\ESC[0m"
 
     it "sets the file a case is about in bold, and nothing around it" $
       reportErr (inplaceReport Colors [("src/A.hs", failureAbout "src/A.hs")])
@@ -355,7 +411,7 @@
       differs (formattingOutcome "a\r\nb\nc\r\n" "a\nb\nc\n") `shouldBe` True
 
     it "says as much in the diff, having nothing else to show" $
-      T.unlines (reportOut (checkReport Plain [("A.hs", formattingOutcome "a\r\nb\nc\r\n" "a\nb\nc\n")]))
+      reportOut (checkReport Plain [("A.hs", formattingOutcome "a\r\nb\nc\r\n" "a\nb\nc\n")])
         `shouldSatisfy` T.isInfixOf "differ only in how they end their lines"
 
     it "leaves a carriage return that is not a line ending where it is" $
@@ -465,8 +521,17 @@
 
 -- | A case about one operator whose fixity could not be settled.
 about :: Text -> Outcome
-about op = Declined (UnknownFixity "A.hs" [((Nothing, OpName op), Ambiguous)])
+about op = Declined (UnknownFixity "A.hs" [((Nothing, OpName op), Ambiguous (leftSix :| [rightFive]))])
 
+-- | A case about @<+>@, which the imports bring in as given.
+disagreeing :: NonEmpty (Text, Fixity) -> Outcome
+disagreeing offers = Declined (UnknownFixity "A.hs" [((Nothing, OpName "<+>"), Ambiguous offers)])
+
+-- | What two disagreeing imports bring.
+leftSix, rightFive :: (Text, Fixity)
+leftSix = ("Left", Fixity LeftAssoc 6)
+rightFive = ("Right", Fixity RightAssoc 5)
+
 -- | A case about an operator whose fixity is in a module we could not read.
 missing :: Text -> Outcome
 missing modName = missingIn [modName]
@@ -486,7 +551,7 @@
     ( UnknownFixity
         "A.hs"
         [ ((Nothing, OpName "<|>"), NotRead (ModuleChain ("Criterion.Main" :| []) :| [])),
-          ((Nothing, OpName "<+>"), Ambiguous)
+          ((Nothing, OpName "<+>"), Ambiguous (leftSix :| [rightFive]))
         ]
     )
 
diff --git a/tests/Tilia/TestConfig.hs b/tests/Tilia/TestConfig.hs
--- a/tests/Tilia/TestConfig.hs
+++ b/tests/Tilia/TestConfig.hs
@@ -10,29 +10,29 @@
 where
 
 import Data.Choice (pattern Is)
+import Data.List.NonEmpty (NonEmpty)
 import Data.Map.Strict (Map)
 import Data.Map.Strict qualified as Map
 import Data.Set qualified as Set
 import Data.Text (Text)
-import GHC.Hs (HsModule)
-import GHC.Hs.Extension (GhcPs)
 import GHC.LanguageExtensions.Type (Extension)
+import Tilia.BootFixities (bootFixities)
 import Tilia.Fixity
   ( Direction (..),
+    Established (..),
     Fixities,
     Fixity (..),
-    KnownModules (..),
     Namespace (..),
     OpName (..),
     Provenance (..),
     Reach (..),
     Scope (..),
     inBothNamespaces,
-    noKnownModules,
     operatorsUsed,
     resolveScope,
+    unreadable,
   )
-import Tilia.Fixity.Builtin (builtinFixities)
+import Tilia.Parser (ParsedModule (..))
 import Tilia.Pragma (effectiveExtensions)
 import Tilia.Render (RenderConfig (..), defaultRenderConfig)
 
@@ -41,20 +41,21 @@
   -- | What the package around it puts in force, if it is a module of one.
   [Extension] ->
   Text ->
-  HsModule GhcPs ->
+  -- | Its configurations, parsed.
+  NonEmpty ParsedModule ->
   RenderConfig
-exampleRenderConfig package source hsModule =
+exampleRenderConfig package source parsed =
   defaultRenderConfig
     { rcExtensions =
         Set.fromList (effectiveExtensions package source),
       rcScope =
         Just
           ( underEveryQualifier
-              (resolveScope (Is #implicitPrelude) known hsModule)
+              (resolveScope (Is #implicitPrelude) known (fmap pmModule parsed))
           )
     }
   where
-    known = noKnownModules{knownFixities = exportsOf}
+    known = maybe unreadable (\fixities -> mempty{establishedFixities = fixities}) . exportsOf
     underEveryQualifier scope =
       scope
         { scopeInTypes = alsoQualified (scopeInTypes scope),
@@ -67,7 +68,7 @@
               (reachQualified reach)
               ( Map.fromList
                   [ ((qualifier, op), (fixity, DeclaredIn qualifier))
-                  | (_, (Just qualifier, op)) <- operatorsUsed hsModule,
+                  | (_, (Just qualifier, op)) <- concatMap (operatorsUsed . pmGathered) parsed,
                     Just exported <- [exportsOf qualifier],
                     Just fixity <- [Map.lookup (InTerms, op) exported]
                   ]
@@ -78,13 +79,13 @@
 exportsOf :: Text -> Maybe Fixities
 exportsOf name = Just (Map.union ours (inBothNamespaces elsewhere))
   where
-    ours = case Map.lookup name builtinFixities of
+    ours = case Map.lookup name bootFixities of
       Just exact -> exact
       Nothing -> everythingKnown
 
 -- | Every operator any boot module exports.
 everythingKnown :: Fixities
-everythingKnown = Map.unions (Map.elems builtinFixities)
+everythingKnown = Map.unions (Map.elems bootFixities)
 
 -- | Operators the examples use that no boot package exports.
 --
diff --git a/tests/Tilia/WithProjectPlan.hs b/tests/Tilia/WithProjectPlan.hs
--- a/tests/Tilia/WithProjectPlan.hs
+++ b/tests/Tilia/WithProjectPlan.hs
@@ -76,7 +76,7 @@
 fetchMissingSources :: BuildPlan -> IO ()
 fetchMissingSources plan = do
   installed <- readInstalledPackages
-  let unread = shippedIn installed <> modulelessIn installed
+  let unread = modulelessIn installed
   absent <-
     filterM (fmap not . doesFileExist . snd)
       . filter (not . (`Set.member` unread) . ppName . fst)
diff --git a/tilia.cabal b/tilia.cabal
--- a/tilia.cabal
+++ b/tilia.cabal
@@ -1,6 +1,6 @@
 cabal-version: 2.4
 name: tilia
-version: 0.0.2.0
+version: 0.1.0.0
 license: BSD-3-Clause
 license-file: LICENSE.md
 maintainer: Mark Karpov <markkarpov92@gmail.com>
@@ -16,6 +16,7 @@
 category: Development, Formatting
 build-type: Simple
 extra-source-files:
+  bench/bench.record
   corpora/hackage/hackage.manifest
   corpora/hackage/hackage.report
   corpora/vendored/**/*.hs
@@ -43,24 +44,32 @@
     Tilia.Comments.Place
     Tilia.Cpp
     Tilia.Cpp.Directives
+    Tilia.Cpp.Fragment
     Tilia.Cpp.Macros
+    Tilia.Cpp.Merge
+    Tilia.Cpp.Place
     Tilia.Diff
     Tilia.Doc
     Tilia.Doc.Body
     Tilia.Doc.Combinators
     Tilia.Doc.Internal
+    Tilia.Editor
     Tilia.Equivalence
     Tilia.Fixity
-    Tilia.Fixity.Builtin
     Tilia.Fixity.ByHand
     Tilia.Fixity.Cabal
     Tilia.Fixity.Cache
     Tilia.Fixity.Debug
     Tilia.Fixity.HiFile
     Tilia.Fixity.Interface
+    Tilia.Fixity.KnownKeys.Ghc910
+    Tilia.Fixity.KnownKeys.Ghc912
+    Tilia.Fixity.KnownKeys.Ghc914
     Tilia.Fixity.PackageDb
     Tilia.Fixity.Plan
     Tilia.Format
+    Tilia.Gathered
+    Tilia.Ignore
     Tilia.Imports
     Tilia.Newline
     Tilia.Palette
@@ -95,7 +104,6 @@
   default-language: GHC2021
   build-depends:
     Cabal-syntax >=3.12 && <3.17,
-    Diff >=0.4 && <2.1,
     aeson >=2.1 && <3,
     array >=0.5 && <0.6,
     base >=4.14 && <5,
@@ -104,6 +112,7 @@
     choice >=0.2 && <0.3,
     containers >=0.5 && <0.9,
     cryptohash-sha256 >=0.11 && <0.12,
+    deepseq >=1.4 && <1.6,
     directory ^>=1.3,
     filepath >=1.4 && <1.6,
     ghc-lib-parser >=9.14 && <9.15,
@@ -111,6 +120,7 @@
     syb >=0.7 && <0.8,
     tar >=0.6 && <0.8,
     text >=2.1 && <3,
+    time >=1.9 && <1.16,
     transformers >=0.5 && <0.7,
     zlib >=0.6 && <0.8,
 
@@ -137,6 +147,7 @@
   default-language: GHC2021
   build-depends:
     base >=4.14 && <5,
+    bytestring >=0.11 && <0.13,
     choice >=0.2 && <0.3,
     directory ^>=1.3,
     optparse-applicative >=0.14 && <0.20,
@@ -182,6 +193,7 @@
   hs-source-dirs: tests
   other-modules:
     Spec
+    Tilia.BootFixities
     Tilia.Cabal.PackageSpec
     Tilia.Cabal.ProjectSpec
     Tilia.Cabal.TargetSpec
@@ -193,10 +205,12 @@
     Tilia.Cpp.MacrosSpec
     Tilia.Cpp.PropertiesSpec
     Tilia.CppSpec
+    Tilia.DiffSpec
     Tilia.Doc.BodySpec
     Tilia.Doc.CombinatorsSpec
     Tilia.Doc.InternalSpec
     Tilia.Doc.PropertiesSpec
+    Tilia.EditorSpec
     Tilia.EquivalenceSpec
     Tilia.Fixity.CabalSpec
     Tilia.Fixity.CacheSpec
@@ -208,6 +222,7 @@
     Tilia.Fixity.PlanSpec
     Tilia.FixitySpec
     Tilia.Gen
+    Tilia.IgnoreSpec
     Tilia.NewlineSpec
     Tilia.PragmaSpec
     Tilia.ProcessSpec
@@ -220,6 +235,7 @@
   default-language: GHC2021
   build-depends:
     QuickCheck >=2.14 && <3,
+    array >=0.5 && <0.6,
     base >=4.14 && <5,
     base16-bytestring >=1 && <2,
     bytestring >=0.11 && <0.13,
@@ -242,6 +258,64 @@
     -threaded
     -rtsopts
     "-with-rtsopts=-M8G -N"
+
+  if flag(dev)
+    ghc-options:
+      -O2
+      -Wall
+      -Werror
+      -Wredundant-constraints
+      -Wpartial-fields
+      -Wunused-packages
+      -haddock
+      -Winvalid-haddock
+  else
+    ghc-options:
+      -O2
+      -Wall
+
+benchmark bench
+  type: exitcode-stdio-1.0
+  main-is: Main.hs
+  hs-source-dirs:
+    bench
+    tests
+
+  other-modules:
+    Tilia.Bench.Cases
+    Tilia.Bench.Fixity
+    Tilia.Bench.Measure
+    Tilia.Bench.Record
+    Tilia.BootFixities
+    Tilia.Corpus
+    Tilia.TestConfig
+
+  c-sources: bench/cbits/counter.c
+  default-language: GHC2021
+  build-depends:
+    base >=4.14 && <5,
+    base16-bytestring >=1 && <2,
+    bytestring >=0.11 && <0.13,
+    choice >=0.2 && <0.3,
+    containers >=0.5 && <0.9,
+    cryptohash-sha256 >=0.11 && <0.12,
+    deepseq >=1.4 && <1.6,
+    directory ^>=1.3,
+    filepath >=1.4 && <1.6,
+    ghc-lib-parser >=9.14 && <9.15,
+    http-client >=0.7 && <0.8,
+    optparse-applicative >=0.14 && <0.20,
+    process >=1.6.12 && <1.7,
+    req >=3.13 && <4,
+    tar >=0.6 && <0.8,
+    text >=2.1 && <3,
+    tilia,
+    zlib >=0.6 && <0.8,
+
+  ghc-options:
+    -threaded
+    -rtsopts
+    "-with-rtsopts=-N1 -A1g -O1g -C1000 -T"
 
   if flag(dev)
     ghc-options:
